In the last post about Quality Assurance we talked about what QA is, and how your business could benefit from building a structured testing framework. In this post we explore the most popular QA test methods and how they are used. So, here is a brief list of testing methods for your consideration:
This method takes an external perspective of the test object to derive test cases. These tests can be functional or non-functional, although most QA testers favour functional testing. The test designer selects valid and invalid input and determines what the correct output of the system should be. The black box testing approach requires no foreknowledge of the test object’s internal structure. Although this method can uncover unimplemented parts of the specification, testers cannot be sure that all existent parts are fully tested.
Using an internal perspective of the system, designers create test cases based on the structure which they are made aware of in advance. White-box testing requires programming skills to identify all paths that data and users take through the software. The QA engineer chooses test case inputs to examine each path through the code, and determines the expected outputs. Though this method of test design can uncover an overwhelming number of test cases, it is unable to detect unimplemented parts of the specification or missing requirements. However testers can be sure that all paths through the test object are executed because they are already known before the test begins.
The smallest on the scale of QA testing, this method focuses on individual functions or code modules. Typically done by the programmer and not the QA team, unit testing requires detailed knowledge of the internal program design and code. This method is not always easily applied unless the application has a well-designed architecture and tight (well-formed) code.
Integration testing assesses the combined parts of an application to determine if they function together correctly. The parts can be code modules, individual applications, client and server applications on a network, etc. This type of testing is especially relevant to client/server and distributed systems.
Typically an initial testing effort to determine if a new build version is performing well enough to submit it for a more formal testing process. Using smoke testing, the QA Engineer “touches” all areas of the application without going through a full, in-depth testing cycle.
Re-testing after applying fixes or modifications of the software or the environment is known as regression testing. It can be difficult to determine how much re-testing is needed, especially towards the end of the development cycle. Automated testing tools can be especially useful for this type of testing.
More of a routine, informal test, than a properly mapped out framework, exploratory testing uses neither test plans or test cases. Typically this type of testing is used by QA engineers learning the software as they test it.
The most important factor to consider is that the QA team performs an in-depth, robust analysis that identifies bugs and faults quickly. To do this they will need to choose the right procedures and methods to test the software or website, and ensure the quality reaches agreed standards.
If you have any questions about choosing the right testing strategy, or need help with carrying out QA testing, feel free to contact Green River Media for advice.