Menu

Tuesday, August 21, 2018

Software Testing Techniques

Here, we will discuss some important software testing techniques. In exams like UGC NET, questions are often asked from this topic.

There are four levels of software testing: Unit >> Integration >> System >> Acceptance.

Usually, Black Box Testing method is used in Acceptance Testing. Acceptance Testing is performed after System Testing and before making the system available for actual use.

Smoke Testing, also known as “Build Verification Testing", comprises of a non-exhaustive set of tests that aim at ensuring that the most important functions work, but none of them in depth. It helps in exposing integration and major problems early in the cycle.

Functional testing ensures that the requirements are properly satisfied by the application. During functional testing, Black Box Testing technique is used. It is performed during the levels of System Testing and Acceptance Testing. It has a high possibility of redundant testing.

Security Testing intends to uncover vulnerabilities of the system and determine that its data and resources are protected from possible intruders.
Example of a basic security test: Click the BACK button of the browser (Check if you are asked to log in again or if you are provided the logged-in application.)

Regression testing intends to ensure that changes (enhancements or defect fixes) to the software have not adversely affected it.Regression testing can be performed during any level of testing but it is mostly relevant during System Testing.

Unit Testing is performed by using the White Box Testing method. This type of testing is performed prior to Integration Testing, by software developers themselves or their peers.

Integration Testing: The purpose of this level of testing is to expose possible faults in the interaction between integrated units. Different approaches are:
Big Bang:  all or most of the units of the code are combined together and tested at one go. This approach is used when the testing team receives the entire software in a bundle. Big Bang Integration tests only the interactions between the units while System Testing tests the entire system.

Top Down: top level units are tested first and (step by step ) lower level units are tested later. This approach is followed with top down development. Test Stubs are needed to simulate lower level units which may not be available during the initial phases.

Bottom Up: bottom level units are tested first and upper level units step by step after that. This approach is used when bottom up development approach is followed. Test Drivers are needed to simulate higher level units which may not be available during the initial phases.

Sandwich/Hybrid: A combination of Top Down and Bottom Up approaches.

System Testing: A complete, integrated system/software is tested. The purpose is to evaluate the system’s compliance with the specified requirements. Usually, Black Box Testing method is used. independent Testers perform System Testing.

Acceptance Testing: This testing method does not usually follow a strict procedure and is not scripted but is rather ad-hoc. It is performed after System Testing and before making the system available for actual use.

Black Box Testing is also known as Behavioral Testing. There are some techniques that can be used for designing black box tests:

Equivalence partitioning: Involves dividing input values into valid and invalid partitions and selecting representative values from each partition as test data.

Boundary Value Analysis: Involves determination of boundaries for input values and selecting values that are at the boundaries and just inside/outside of the boundaries as test data.

Cause Effect Graphing: Identifies the cases (input conditions) and effects (output conditions), producing a Cause-Effect Graph, and generating test cases accordingly.

White Box Testing (Code-Based Testing or Structural Testing): The internal structure/design/implementation of the item being tested is known to the tester. It is mainly applied to Unit Testing.

Gray Box Testing: The internal structure is partially known. This involves having access to internal data structures and algorithms for purposes of designing the test cases, but testing at the user, or black-box level. it is primarily useful in Integration Testing.

No comments:

Post a Comment