Manual testing is generally carried out by test engineers by carrying out a methodic testing approach.Manual testing is a laborious activity that requires the tester to possess a certain set of qualities. Currently in the IT industry 80% of the testing is done manually. Manual testing is crucial for testing software applications more thoroughly
A manual tester would typically perform the following steps for manual testing:
1. Understand the functionality of a software program, application or product
2. Prepare a test environment
3. Identify test conditions and Prepare test data
4. Design and Develop test cases
5. Execute test case(s) manually
6. Verify the actual result against expected results
7. Judge and Record the result as Pass or Fail
8. Prepare a summary report of the Pass and Fail test cases
9. Prepare the test report
10. Record any defects(bugs) uncovered during the test case execution
While performing manual tests the software application can be validated whether it meets the various standards defined for effective and efficient usage and accessibility. For example, the standard location of the OK button on a screen is on the left and of CANCEL button on the right.
Manual Testing Techniques
1. White box testing (a.k.a. clear box testing, glass box testing or structural testing)
White box testing is detailed investigation of internal logic and structure of the code. White box testing is also called as glass, structural, open box or clear box testing. The tests written based on the white box testing strategy incorporate coverage of the code written, branches(cyclomatic – complexity), paths, statements and internal logic of the code etc.
In order to implement white box testing, the tester has to deal with the code and hence is needed to possess knowledge of coding and logic i.e. internal working of the code. White box test also needs the tester to look into the code and find out which unit/statement/chunk of the code is malfunctioning.
Advantages of White box testing are:
i) As the knowledge of internal coding structure is prerequisite, it becomes very easy to find out which type of input/data can help in testing the application effectively.
ii) The other advantage of white box testing is that it helps in optimizing the code
iii) It helps in removing the extra lines of code, which can bring in hidden defects.
Disadvantages of white box testing are:
i) As knowledge of code and internal structure is a prerequisite, a skilled tester is needed to carry out this type of testing, which increases the cost.
ii) And it is nearly impossible to look into every bit of code to find out hidden errors, which may create problems, resulting in failure of the application.
Types of testing under White/Glass Box Testing
Unit Testing:
The developer carries out unit testing in order to check if the particular module or unit of code is working fine. The Unit Testing comes at the very basic level as it is carried out as and when the unit of the code is developed or a particular functionality is built.
Static and dynamic Analysis:
Static analysis involves going through the code in order to find out any possible defect in the code. Dynamic analysis involves executing the code and analyzing the output.
Statement Coverage:
In this type of testing the code is executed in such a manner that every statement of the application is executed at least once. It helps in assuring that all the statements execute without any side effect.
Branch Coverage:
No software application can be written in a continuous mode of coding, at some point we need to branch out the code in order to perform a particular functionality. Branch coverage testing helps in validating of all the branches in the code and making sure that no branching leads to abnormal behaviour of the application.
Security Testing:
Security Testing is carried out in order to find out how well the system can protect itself from unauthorized access, hacking – cracking, any code damage etc. which deals with the code of application. This type of testing needs sophisticated testing techniques.
Mutation Testing:
This is a kind of testing in which, the application is tested for the code that was modified after fixing a particular bug/defect. It also helps in finding out which code and which strategy of coding can help in developing the functionality effectively.
Black box testing (a.k.a grey box testing)
These tests can be functional or non-functional, though usually functional. The test designer selects valid and invalid input and determines the correct output.
The tester does not ever examine the programming code and does not need any further knowledge of the program other than its specifications.
The advantages of this type of testing include:
• The test is unbiased because the designer and the tester are independent of each other.
• The tester does not need knowledge of any specific programming languages.
• The test is done from the point of view of the user, not the designer.
• Test cases can be designed as soon as the specifications are complete.
The disadvantages of this type of testing include:
• The test can be redundant if the software designer has already run a test case.
• The test cases are difficult to design.
• Testing every possible input stream is unrealistic because it would take a inordinate amount of time; therefore, many program paths will go untested.
Black Box Testing techniques
• Equivalence partitioning
• Boundary value analysis
• Decision table testing
• Pairwise testing
• State transition tables
• Use case testing
• Cross-functional testing
Equivalence Partitioning
Equivalence partitioning is designed to minimize the number of test cases by dividing tests in such a way that the system is expected to act the same way for all tests of each equivalence partition. Test inputs would be selected from each partition. Equivalence partitions are designed so that every possible input belongs to one and only one equivalence partition.
WHY LEARN EQUIVALENCE PARTITIONING?
Equivalence partitioning drastically cuts down the number of test cases required to test a system reasonably. It is an attempt to get a good 'hit rate', to find the most errors with the smallest number
of test cases.
DESIGNING TEST CASES USING EQUIVALENCE PARTITIONING
To use equivalence partitioning, you will need to perform two steps
• Identify the equivalence classes
• Design test cases
Boundary Value analysis
To determine the tests for this method, first identify valid and invalid input and output conditions for a given function.
Then, identify the tests for situations at each boundary. For example, one test each for >, =, <, using the first value in the > range, the value that is equal to the boundary, and the first value in the < range.
Boundary conditions do not need to focus only on values or ranges, but can be identified for many other boundary situations as well, such as end of page, (i.e., identify tests for production of output that is one line less than the end of page, exactly to the end of page, and one line over the end of page).
Boundary value analysis is designed to determine to extreme test conditions
• zero or negative values,
• zero or one transaction,
• empty files,
• missing files (file name not resolved or access denied),
• multiple updates of one file,
• full, empty, or missing tables,
• widow headings (i.e., headings printed on pages with no details or totals),
• table entries missing,
• subscripts out of bounds,
• sequencing errors,
• missing or incorrect parameters or message formats,
• concurrent access of a file,
• file space overflow.
|