Manual testing

Manual testing
Compare with Test automation.

Manual testing is the process of manually testing software for defects. It requires a tester to play the role of an end user, and use most of all features of the application to ensure correct behavior. To ensure completeness of testing, the tester often follows a written test plan that leads them through a set of important test cases.

Contents

Overview

A key step in the process of software engineering is testing the software for correct behavior prior to release to end users.

For small scale engineering efforts (including prototypes), exploratory testing may be sufficient. With this informal approach, the tester does not follow any rigorous testing procedure, but rather explores the user interface of the application using as many of its features as possible, using information gained in prior tests to intuitively derive additional tests. The success of exploratory manual testing relies heavily on the domain expertise of the tester, because a lack of knowledge will lead to incompleteness in testing. One of the key advantages of an informal approach is to gain an intuitive insight to how it feels to use the application.

Large scale engineering projects that rely on manual software testing follow a more rigorous methodology in order to maximize the number of defects that can be found. A systematic approach focuses on predetermined test cases and generally involves the following steps.[1]

  1. Choose a high level test plan where a general methodology is chosen, and resources such as people, computers, and software licenses are identified and acquired.
  2. Write detailed test cases, identifying clear and concise steps to be taken by the tester, with expected outcomes.
  3. Assign the test cases to testers, who manually follow the steps and record the results.
  4. Author a test report, detailing the findings of the testers. The report is used by managers to determine whether the software can be released, and if not, it is used by engineers to identify and correct the problems.

A rigorous test case based approach is often traditional for large software engineering projects that follow a Waterfall model.[2] However, at least one recent study did not show a dramatic difference in defect detection efficiency between exploratory testing and test case based testing.[3]

Stages

There are several stages. They are:[4]

Unit Testing
This initial stage in testing normally carried out by the developer who wrote the code and sometimes by a peer using the white box testing technique.
Integration Testing
This stage is carried out in two modes, as a complete package or as a increment to the earlier package. Most of the time black box testing technique is used. However, sometimes a combination of Black and White box testing is also used in this stage.
System Testing
In this stage the software is tested from all possible dimensions for all intended purposes and platforms. In this stage Black box testing technique is normally used.
User Acceptance Testing
This testing stage carried out in order to get customer sign-off of finished product. A 'pass' in this stage also ensures that the customer has accepted the software and is ready for their use.

Comparison to Automated Testing

Test automation may be able to reduce or eliminate the cost of actual testing. A computer can follow a rote sequence of steps more quickly than a person, and it can run the tests overnight to present the results in the morning. However, the labor that is saved in actual testing must be spent instead authoring the test program. Depending on the type of application to be tested, and the automation tools that are chosen, this may require more labor than a manual approach. In addition, some testing tools present a very large amount of data, potentially creating a time consuming task of interpreting the results.

Things such as device drivers and software libraries must be tested using test programs. In addition, testing of large numbers of users (performance testing and load testing) is typically simulated in software rather than performed in practice.

Conversely, graphical user interfaces whose layout changes frequently are very difficult to test automatically. There are test frameworks that can be used for regression testing of user interfaces. They rely on recording of sequences of keystrokes and mouse gestures, then playing them back and observing that the user interface responds in the same way every time. Unfortunately, these recordings may not work properly when a button is moved or relabeled in a subsequent release. An automatic regression test may also be fooled if the program output varies significations

References

  1. ^ ANSI/IEEE 829-1983 IEEE Standard for Software Test Documentation
  2. ^ Craig, Rick David; Stefan P. Jaskiel (2002). Systematic Software Testing. Artech House. p. 7. ISBN 1580535089. 
  3. ^ Itkonen, Juha; Mika V. Mäntylä and Casper Lassenius (2007). "Defect Detection Efficiency: Test Case Based vs. Exploratory Testing". First International Symposium on Empirical Software Engineering and Measurement. http://www.soberit.hut.fi/jitkonen/Publications/Itkonen_Mäntylä_Lassenius_2007_ESEM.pdf. Retrieved 2009-01-17. 
  4. ^ http://softwaretestinginterviewfaqs.wordpress.com/category/testing-in-stages/

See also


Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Look at other dictionaries:

  • Software testing — is an empirical investigation conducted to provide stakeholders with information about the quality of the product or service under test [ [http://www.kaner.com/pdfs/ETatQAI.pdf Exploratory Testing] , Cem Kaner, Florida Institute of Technology,… …   Wikipedia

  • Unit testing — In computer programming, unit testing is a method by which individual units of source code are tested to determine if they are fit for use. A unit is the smallest testable part of an application. In procedural programming a unit may be an… …   Wikipedia

  • Agile testing — is a software testing practice that follows the statutes of the agile manifesto, treating software development as the customer of testing.Agile testing involves testing from the customer perspective as early as possible, testing early and often… …   Wikipedia

  • Non-regression testing — (NRT) is an approach of software testing. The purpose of non regression testing is to verify that, after introducing or updating a given software application, previous software functions have not been compromised. This is aimed at preventing… …   Wikipedia

  • Regression testing — is any type of software testing which seeks to uncover software regressions. Such regressions occur whenever software functionality that was previously working correctly stops working as intended. Typically regressions occur as an unintended… …   Wikipedia

  • Data-driven testing — (DDT) is a term used in the testing of computer software to describe testing done using a table of conditions directly as test inputs and verifiable outputs as well as the process where test environment settings and control are not hard coded. In …   Wikipedia

  • Keyword-driven testing — OverviewKeyword driven testing (also: table driven testing, action word testing) is a software testing methodology. Although keyword testing can be used for manual testing, it is a technique particularly well suited to automated testing [… …   Wikipedia

  • Psychological testing — is a field characterized by the use of samples of behavior in order to infer generalizations about a given individual. The technical term for the science behind psychological testing is psychometrics. By samples of behavior , one means… …   Wikipedia

  • The Open Source Security Testing Methodology Manual — This Open Source Security Testing Methodology Manual ( [http://www.osstmm.org/ OSSTMM] ) provides a methodology for a thorough security test, now referred to as an OSSTMM audit. An OSSTMM audit is an accurate measurement of security at an… …   Wikipedia

  • NATO EPVAT testing — Left to right: 7.62 mm NATO, 5.56 mm NATO and 9 mm NATO ammunition. NATO EPVAT testing is one of the three recognized classes of procedures used in the world to control the safety and quality of firearms ammunition. Beside this,… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”