February 24, 2011 by in Software Development
Software testing is an important part of any software development process, and it begins with an initial investigation to understand exactly what the software is designed to achieve. Software testers might pull this information from functional specifications, wireframes (outlines), compositions, project meetings, and interviews, all of which can be valuable resources for developing a test plan. When beginning any development project, it’s essential to ensure that all available collateral is available to the development team. This post describes some of the benefits that result from a methodical testing process to complement the development process.
Mapping Requirements into Storyboards
Information from all of the referenced resources is also used by project managers and developers, who add their software design expertise and business acumen to draft the storyboards. Typically, the software tester then reviews the storyboard drafts along with the functional specification to determine whether any critical elements are missing and whether any clarification is needed from the client.
Storyboards provide a pictorial view of the application and its user interface (UI) so the client can see what the developers and project managers took away from the initial informational meetings. Storyboards also help clarify and refine the specifications during the development process.
Asking the Right Questions
Good questions are perhaps the most important tools in a tester’s toolkit. For example, how many entry points will a webpage have? How many exit points will it have? How to break up the modules within the page such that no single operation performs more than one single function? What are the possible outcomes of a particular operation?
Answers to these questions gathered from storyboards and functional specifications and through meetings with developers, program managers, and the client are drafted into a detailed test plan (DTP) document. The DTP document goes beyond traditional test plans in that it calls out the various UI features, the functionality of all elements on the pages, as well as all possible end-to-end scenarios. The DTP document also lists what will be tested for all features, functionality, and elements.
Creating the Plan
The DTP is the most effective way to communicate to the client as precisely as possible what each feature is designed to do, its expected output, and also, just as importantly, what each feature will not do. Once it is finished, the DTP document is reviewed and approved by the development team before it is submitted to the client for review.
Feedback from the client is incorporated into the DTP document, which provides the necessary means to measure the success of the ongoing development efforts. Without an agreed-upon measurement tool, software development projects run the risk of becoming amorphous projects with undefined goals.
Problems that are caught early can be more easily addressed, which helps minimize development costs. And having the client review the DTP document alongside the storyboards helps eliminate surprises when development work is concluded.
Developing Test Cases
A test case document is then created that draws from the DTP document. The software tester writes test cases as precisely as possible for features and functionality, detailing the steps that are required to reproduce the expected outcome. The test cases are more comprehensive than the DTP, because they contain the steps to verify the accuracy of the data as well as the behavior of the application’s features. When enough of the project has been developed so that it is in a testable state, the tester can use the test case document to verify functionality.
Increasing Value through Quality Assurance
Development and testing is achieved through rolling handoffs using an Agile-like methodology, which provides a number of advantages. Because developers become aware of issues sooner, modules that are developed later and that use the same features will likely have fewer errors. Bugs are found and fixes implemented earlier than in traditional development cycles. Also, as more modules are developed, those developed earlier will have undergone at least one test pass, which should cause later builds to be more stable. In addition, integration testing doubles as regression testing. For example, when a new feature goes into integration testing, all of the previously completed features are also tested for regression.
Regardless of software’s complexity, software testers are essential to cost-effective software development and add much needed value to the software development process.
Contact Us to learn more.