Page 23 - SOFTWARE TESTING & QUALITY ASSURANCE
P. 23
Software Testing and Quality Assurance
but also make the process of testing more organized. Choosing a suitable technique helps to define the
correct methodology of approach.
The main focus of any testing technique is to make the software bug free. Therefore, it can be said that
the testing techniques aim to target a specific area of the software and find bugs. Testing techniques
provide methods which the tester can use to search bugs even in a highly complex and lengthy
software, easily and efficiently.
Software testing depends more on what you want to test in software, and how you want to test. This
will help you to decide the tools that you need to gather in order to perform the test. In deciding the
nature of the testing, testers play a key role in an organization. Their contribution is vital in deciding the
appropriate implementation for a given test.
2.1 Testing Strategies and Techniques
A test strategy is a concise statement that describes how the objectives of the software testing are met.
The test strategy views the test event at a high level, concentrates on the objectives of the test event, the
techniques that can be used and the resources that are required. It is vital that developers should plan
their approach to testing at every stage of the project and establish a framework for testing the project.
A testing technique can be defined as a process that ensures that the application being tested functions
in a structured way. A testing strategy and technique is based on the method of testing adopted. Let us
now learn the different methods of testing.
The three main methods of testing are the following:
1. Structural or functional testing
2. Static or dynamic testing
3. Manual or automated testing
2.1.1 Structural versus Functional Testing
If the test cases are developed to check the actual structure of the program code, then it is called
structural testing. Structural testing is also known as white box testing, where the tester checks the
actual code of the software. However, in functional testing, the tester checks only the behavior of the
software and will not check the actual code. The tester only checks the response of the software for
predefined inputs and tests whether the software produces the desired output. Therefore, this is called
black box testing.
If the test cases are developed to check how the entire system works, then it is called functional testing.
During functional testing, the tester uses test cases to check how the software works, i.e., whether it
produces the desired outputs for a set of given inputs.
Functional testing for a calculator could check whether the software does the
addition operation correctly.
We will cover Structural and Functional Testing in detail in unit 3.
2.1.2 Static versus Dynamic Testing
Static testing refers to the analysis of the program, which is carried out without executing the program.
This is a typical white box testing technique, where the developer checks the code to find errors in it. It
is preventive in nature and is completed in the verification phase. The common methods include
feasibility review and code review.
Software developers perform syntax check to test syntactical correctness.
Dynamic testing refers to the analysis of the program in its executable form. This is performed by
supplying valid entries and is validated against the expected results. It is a curative method and is
performed during the validation phase.
Software developers perform unit test to check for correctness in a module.
16 LOVELY PROFESSIONAL UNIVERSITY