Manual testing

From Wikipedia, the free encyclopedia

Manual testing is the oldest and most rigorous type of software testing. Manual testing requires a tester to perform manual test operations on the test software without the help of Test automation. Manual testing is a laborious activity that requires the tester to possess a certain set of qualities; to be patient, observant, speculative, creative, innovative, open-minded, resourceful, unopinionated, and skillful.

As a tester, it is always advisable to use manual white box testing and black-box testing techniques on the test software. Manual testing helps discover and record any software bugs or discrepancies related to the functionality of the product.

Manual testing can be replaced by test automation. It is possible to record and playback manual steps and write automated test script(s) using Test automation tools. Although, test automation tools will only help execute test scripts written primarily for executing a particular specification and functionality. Test automation tools lack the ability of decision-making and recording any unscripted discrepancies during program execution. It is recommended that one should perform manual testing of the entire product at least a couple of times before actually deciding to automate the more mundane activities of the product.

Despite the proliferation of automated solutions, manual testing still accounts for at least 80% of all testing. Automation can only be justified where repeatable consistent tests can be run over a stable environment. When this isn't the case (i.e. during the early stages of the test cycle), testing teams almost always revert back to manual testing. So manual testing is here to stay! Here are some reasons why:

  • Business critical / Heavily tested software: With constantly changing applications, automation can simply be too daunting.
  • New to testing: Those that are new to testing may not want to dive right in to complex automation tools. Using a tool such as TestDrive-Assist [1] can provide an easy and cost effective way to gain real advantages in a short space of time and use it as a springboard to full automation.
  • Script based automation tools not living up to their hype: Many people still find that despite investing in script based automation solutions this only covers 10-20% of their total testing. The rest is still carried out manually.
  • Full automation is simply not appropriate: You may be testing new functionality, new platforms/OS, or there maybe insufficient time and/or skills to develop test scripts.
  • Agile Development: With Agile development techniques, there is no place for traditional automation tools because they take too long to set up and need to be re-scripted after the first change to the application.

Manual testing helps discover defects related to the usability testing and GUI testing area. 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. During manual testing you might discover that on some screen, it is not. This is a new defect related to the usability of the screen. In addition, there could be many cases where the GUI is not displayed correctly and the basic functionality of the program is correct. Such bugs are not detectable using test automation tools.

Repetitive manual testing can be difficult to perform on large software applications or applications having very large dataset coverage. This drawback is compensated for by using manual black-box testing techniques including equivalence partitioning and boundary value analysis. Using which, the vast dataset specifications can be divided and converted into a more manageable and achievable set of test suites.

A manual tester would typically perform the following steps for manual testing:

  1. Understand the functionality of program
  2. Prepare a test environment
  3. Execute test case(s) manually
  4. Verify the actual result
  5. Record the result as Pass or Fail
  6. Make a summary report of the Pass and Fail test cases
  7. Publish the report
  8. Record any new defects uncovered during the test case execution

There is no complete substitute for manual testing. Manual testing is crucial for testing software applications more thoroughly. Test automation has become a necessity mainly due to shorter deadlines for performing test activities, such as regression testing, performance testing, and load testing.

[edit] See also