Add file


January 22, 2017
Project Manager
Let's say you found an ideal development team that created a perfect app you ordered. How do you know it is not just a pretty picture, but a flawless piece of software engineering that will earn you a good profit? That is exactly why quality control practices, including software testing, were created.

Quality control is an integral part of software development process, focused on fulfilling quality requirements. The purpose of quality control is to find any flaws and defects within the software product and to eliminate them before the final release. Testing is one of the most important steps of the software quality control process. And as a customer, you should understand, how testing ensures the impeccable quality of your products.

Nowadays most software development companies employ Agile development to produce new applications quickly and cost-effectively. Within the Agile method, software testing is integrated into the development process, with developers and testers frequently comparing notes and thinking outside of their designated roles to ensure the product's high quality.

So how exactly does software testing work? Let's take a peek behind the scenes of testing procedures of the Agile development process.


Though testing is a continuous practice throughout the development process, it can be divided into four important steps. We will go through them one by one for you to understand, how software testing works.

Initial Analysis of Quality Requirements

Before the development starts, you will have a very important meeting with your project manager and Quality Assurance (QA) specialists. Every concerned party must be 100% aware of the product's requirements so that no issues will arise after the development is complete. Initial requirements' analysis will allow QA specialists to form a preliminary testing plan, including test specifications.

ISO 9126 divides software quality characteristics into six categories. To meet all of the standard requirements, the developed software should be functional, reliable, usable, efficient, maintainable and portable. Each of these requirements must be tested. You should be able to check the testing results via a clear and concise documentation.

Testing within the Iterations

Agile development divides the desired product into a number of iterations. The intermediate result of every iteration is a version of the product with reduced functionality. This approach allows you to introduce changes to the product requirements and receive quick transitional results every step of the way. As we mentioned before, Agile development implements parallel development and testing processes. Therefore, testing is conducted within each iteration to fix every problem and to not transfer it into the next iteration.

First of all, the QA specialists plan the whole testing process and determine its specifics: types of testing, required environment and software, features to be tested and testing criteria for every feature. Next, the test documentation is created. It can take a form of checklists or test cases, depending on the project's scope and your requirements.

After the preliminary stages are complete, the actual testing can begin. According to the iteration plan, testers conduct the checks to locate any defects or issues. When the bugs are fixed, it's time for regression testing. It checks the quality of the implemented corrections and determines the negative effect they had on the application's other components. The iteration is complete after the test results are analyzed, and the testing report is compiled.

Final Testing and Verification Before the Release

When the developers are done, it is time for testers to roll up their sleeves and get down to work. At these final stages, you will not be able to change your requirements much. All you have to do is wait for the testing to be complete before the final release of your software.

Testers work full-time on checking and re-checking the code, locating and fixing any bugs, and polishing the finished product. This step is extremely important and is never skipped since only now testers get their hands on the whole functionality of the product and can test the final version. Do not try to hurry the testing along, as sloppy quality control might lead to a number of post-release problems.

Post-Release Maintenance and Support

In an ever-changing world, no app can last forever without an update. Every new version needs to be tested with the same attention to detail as the first release. And even if you don't plan on launching upgraded versions anytime soon, it's a good idea to invest in some post-release maintenance. There are bound to be some unforeseen issues requiring instant fixing. Quality control and quality assurance measures are as paramount post-release, as they are before the final launch.

READ ALSO: Do you really need mobile app post-release support or is it an exercise in futility?Description


Testing is usually assigned to a separate part of the team to ensure that every test is complete with the adherence to quality assurance standards, strategies, and guidelines. Dedicated professionals possess experience and methodological expertise required to plan, analyze and perform all the necessary types of testing. Testers are continuously improving their methodology and tools in order to meet the varied demands of the market and to optimize existing techniques.

Most of the tests (about 80%) are automated. They require regular results with numerous repetitions within one or several iterations. Load tests and other test types that are difficult to perform manually are also automated. These tests require specific testing environment and software tools to guarantee solid results. The remaining 20% of tests are performed manually to assess the product's usability, accessibility, and other characteristics.

Now you know how testing helps ensure the high quality of your software. But remember that testing is only one reactive part of the quality control management and the quality assurance systems. There are numerous proactive measures focused on ensuring confidence that your quality expectations will be met. But that is a story for another time.
Show more