Manual testing is one of the earliest type of software testing. Here the tester manually tests the software for defects (performs a set of functional tasks). The tester follows a set of test cases derived from a set of requirements. Here a test plan is followed.
It requires the tester to step into the shoes of the enduser and test the application as if he was to use it.
There are several stages of Manual testing. They are
Unit Testing
Integration Testing
System Testing
User Acceptance Testing
Please find various links related to the different aspects of manual testing on the left hand side.
As “recently as 1998, in one Fortune 100 company, performance testing was conducted while one test engineer sat with a stopwatch, timing the functionality that another test engineer was executing manual testing”. [Elfriede99]
Manual testing is that part of software testing that requires operator input, analysis, or evaluation.
Manual Testing should be documented in great procedural detail. This helps in repeating the tests consistently, in the way they were intended.
Manual Test case generation
The Manual test cases are developed in the implementation phase of the project. Functional specification document, Test Plan and design document are taken as input for the manual test case generation. The manual test case specifies actual input values and expected results. The goal in the generation of manual test cases is to exercise the component’s logic and to setup testing scenarios that will expose errors, omissions and unexpected results. The task is carried out by testers and test lead and verified by Test Manager.
SQA using the exploratory testing method, manually tests and then plans more exhaustive testing and automation.
Manual Test case creation is expensive. Estimates run from 3-10 times the time to create and manually execute a test case.
Tests which are suitable for manual testing are not necessarily suitable for test automation.
Software Testing
- Aimed at breaking the system.
- Understand dynamic behaviour of the work product.
- Process of finding deviations of Observed Behaviour from Expected Behaviour.
Software Testing Tips:
- Never ignore any test cases.
- Be worried if all test cases go smoothly(pass) without noticing any defects – on the first time.
- Look for additional test cases for scenarios or coverage based on the test execution.
- Include exceptional conditions, alternate path and boundary conditions for testing.
- Perform monkey testing to see work product’s behavior in all extreme conditions.
- Get smart: Write effective test cases, that can give maximum coverage with minimum testing.
- Get disciplined: Script your test data so that testing can be done by anybody.
- Get thinking: Identify components that are important to be tested.
- Prioritize: Identify business scenarios that are important to be tested Prioritized testing ensures that the important areas are covered first.
- Communicate: Status reporting to interested groups on product quality status can be precise.
Challenges in Software Testing
- Attitude
- Avoid - "Writing test cases is too hard and boring."
- Avoid - "My code is too simple for tests."
- Coverage
- Scenarios of functions
- End User needs
- Time & Cost
- Schedule
- Workload
- Budget
- Inadequate planning
- Testing Plan
- Test Data
- Test Environment
Still, Good Software Testing improves confidence!