Take a Tour Through the World of Software Testing
Software testers do not just test software. The day-to-day life of a software tester involves a plethora of activities that require various skill sets. From verifying requirements to conducting meetings to reporting bugs, software testers have an important role in any software project.
The Software Development Life Cycle
Every project – small or large – follows some type of standard software development life cycle or SDLC. The SDLC was established to make sure that all software projects follow a premeditated standard and are easy to manage. The SDLC comprises different phases, and the phases include planning, design, testing, implementation and maintenance. Software testers contribute in each phase of the SDLC -- not just in the testing phase -- to ensure the project's success.
In the planning phase of a software project, analysts interview, survey and gather requirements from business owners and users. They turn this collection of requirements into documentations, tables of data, mockups and other graphical and verbal representation of the software being engineered. Analysts then present these artifacts through a series of planning meetings to the project team that includes management, users, developers and testers.
A tester’s role in these meetings is to understand, analyze and find loopholes within the proposed requirements. Earlier detection of mistakes or misunderstandings helps mitigate future problems.
If the project team runs into a problem, testers must offer solutions according to their expertise. For example, if a piece of functionality appears easy to develop but takes massive amounts of effort to test, the tester should voice this concern and propose that the functionality – or at least the testing of it – be postponed until the next release.
In the design phase, developers and architects draft up how the software should be built. The draft includes architecture, workflow, data model, code standards and other implementation details. In more iterative development cycles such as rapid or agile, developers are often already coding in this phase and testers are writing test plans, conducting test plan reviews, developing test cases, creating scenarios and test data, and setting up test environments and accounts. If testers use automated tools, then automated test cases are also already being created. Testers often work in parallel with developers to get ready for testing.
In the testing phase, testers play a key role, along with support from other team members. After code has been delivered to the test environment, testers execute test cases according to test plan through a series of scenarios on the new program.
Testers use several types of testing methods to break the code. The most common ones are functional testing, load testing, automated testing and data testing. Each type of testing has its own setups and methods of execution. By combining all the methods, testers maximize their opportunities to find as many defects as they can within the allotted time.
Testers must also report the defects found. Some organizations purchase expensive testing suites with bug-reporting features while other organizations use freeware or even just word documentation. Whichever tools the testers use, their defect documentation must include detailed steps for reproduction and expected and actual results. The purpose of the report is to convey the bug in an understandable manner to the rest of the project team.
If there exist too many defects or defects that halt the entire effort, then testers must conduct a triage meeting involving the entire team to immediately eliminate the problems.
The testing phase may last a few rounds with bug fixing happening at the same time, and code may be re-delivered several times. Each time testers receive new code, they must apply regression testing to ensure that the new code did not break existing functionalities.
At the end of this phase, testers approve the application for production with no or minimal defects.
After testing, software enters the implementation phase and gets released for public use. During this phase, real users operate the software and can discover a lot more defects. Some software, such as popular commerce websites, can have tens and thousands of hits a day and therefore many chances to run into new bugs.
When the production environment reports defects, developers must fix them right away to ensure that businesses are not affected. Testers must also examine new fixes right away, according to users’ reported steps, to ensure that the bugs are truly fixed. They must again execute regression tests to ensure that nothing else breaks due to the fix.
In the maintenance phase, software works properly in production and few activities happen on the development or testing front. However, software testers need to be ready to explain the application to others, including the workflow, data and the testing procedure. Testers also want to complete documentation on the testing effort in this phase so that others understand the steps taken to ensure quality.
The writer has previously worked as a software tester.
More To Explore