Smoke Testing


Smoke Testing, also known as  ‘Building Verification Testing’ is a type of software testing that comprises of  a non-exhaustive set of tests that aim at ensuring that the most important functions work.  The results of this is used to decided if a building is stable enough to proceed with further testing.

The term ‘smoke testing’ it is said came to software testing from a similar type of hardware testing. In which the device passed the test if it did not catch fire (or smoked) the first time it was turned on.

Advantages

  • It is exposes integration issues
  • It uncovers problems early
  • It provides some level of confidence in the organization

Test Type


There are different type of  test

  • Smoke Testing
  • Installation Testing
  • Functional Testing
  • Look & Feel Testing
  • Usability Testing
  • Compatibility Testing
  • Security Testing
  • Performance Testing
  • Security Testing
  • Regression Testing

Integration Testing


Is a level of  the software testing process where individual units are combined and tested as a group.

The purpose of this level of testing is to expose faults in the interaction between integrated units.

It occur after unit testing and before validation testing, the purpose of integration testing is to verify functional, performance, and reliability requirement placed on major design items.

Test drivers and test stubs are used to assist in integration Testing.

Note: The definition of a unit a debatable and it could mean any of  the following:

  1. the smallest testable part of a software
  2. a ‘module’ which could consist of many of ‘1’
  3. a ‘component’ which could consist of many of  ‘2’

Integration testing definition, Analogy, Method, Tasks, Details, Approaches, Tips:

The purpose of integration testing is to  detect any inconsistencies between the software units that are integrated together called ‘assemblages’

Load and Performace Testing


Load and performance testing is a non functional testing.

Performance testing allow tester to judge how well an application or website performs under specific circumstance .

Measuring the time taken, the scalability and reliability of an action is key to performance testing.

Performance test and Load/Stress Test determine the ability of the application  to perform while under load.

During Stress / Load testing the tester attempts to stress or load an aspect of the system to the point of failure.

  • the goal being to determine weak points in the system architecture.

reference: http://www.automationanywhere.com/Testing/solutions/automated-performance

Security Testing


Security testing encapsulate Application Security,Network Security and System Security.

It is a process to determine that an Information system protects data and maintains functionality as intended.

The six basic security concepts that need  to be covered by security testing are:

  • Confidentiality
  • Integrity
  • Authentication
  • Authorization
  • Availability
  • Non-repudiation

Reference:  en.wikipedia.org/wiki/security_testing

System testing


System testing is defined as the process of testing an integrated system to verify that it meets specified requirement.

System testing of software or hardware is testing conducted on a complete, integrated system to evaluate the system’s compliance with its specified requirements.

System testing takes as its input , all of the “Integrated”  software components that have been successfully passed integration testing and also the its integrated  with any applicable hardware system(s)

You will come across two very different type  of System testing.

  • Functional system testing
  • Non-Functional system testing
 
Functional system testing  is focuses on testing the system based on what it is supposed to do.
 
Non-Functional system  testing  looks at those aspects that are important yet not directly related
 

System testing falls within the scope of black box testing. and as such should require no knowledge of the inner design of the code or logic.

Regression testing


Regression testing is any type software testing that seeks to uncover new errors, or regressions, in existing functionality after changes have been made to a system such as functional enhancement, patches or configuration changes.

It is a type of software testing that intends to ensure that changes (enhancement or defects fixes) to the software have not adversely affected it.

The likelihood of any code change impacting functionalities that are not directly associated with the code is always there and it is essential that regression testing is conducted to make sure that fixing one thing has not broken another thing.

During regression testing new test cases are not created but previously crested test cases are re-executed.

Non Functional Testing


Non-functional testing is the testing of a software application for its non-functional requirements.

The names of many non-functional test are often used interchangeably because of the overplap in scope between various non-functional requirements.

For example, software performance is a broad term that includes many specific requirements like reliability and scalability

  • Baseline testing
  • Compatibility testing
  • Load testing
  • Performance testing
  • Resilience testing
  • Stress testing
  • Security testing
  • Load testing

reference:  http://en.wikipedia.org/wiki/Non-functional_testing

Functional Testing


It  is a type of black box  testing that bases its test cases on the specifications of the softeware component under test.

Functions are tested by feeding them input and examining the output, and internal program structure is rarely considered.

Testing the functionality of an application or website require GUI testing.

GUI automation offers two main challenge, you require a highly sophisticated GUI test technology for the best reliability and secondly, it needs to be cost effective.

Functional testing differs from system testing because functional testing “Verifies a program by checking it against the desing docment(s) or specification(s) while System testing is validating a program by checking it against the published user or system requirements.

Funtional testing involves five main steps

  • Identification of functions  ‘SUT” that the software is expected to perform
  • Create an input data source on the function’s specifications
  • Determine an output based on the function’s specifications
  • Execute of  test case
  • Comparing of actual and expected outputs