Tags: QA strategy, Quality assurance, Quality assurance strategy
Software development is a complex process that consists of multiple stages. Progressing through these stages transforms the software from concept and a basic visualization to the actual product with a state-of-the-art interface and competitive functionality. At DB Best we utilize 7 application development stages described on our dedicated landing page. The purpose of this post is to stress the importance of the testing stage as an essential element for product quality. So here we will share the fundamentals of our quality assurance strategy.
Regardless of how simple or advanced your solution is, you will want to test it before demonstrating it to anyone. Often, with new software, things don’t work the way you planned. Hence the sooner you detect your code’s weak points the cheaper and easier it will be for you to eliminate them. In fact, when it comes to code, destroyers are as important as creators. By destroyers, we mean quality assurance engineers who strive to find the app’s weaknesses and imperfections. Their mission is to validate the solution in terms of its business requirements as well as its technical features. They must be rigorous and even harsh in their evaluation and testing to prepare the solution for real-life challenges with real users. This critique allows them to foresee all possible scenarios of the market and users’ behavior while investigating the application’s structure and workflow.
Key Test Parameters
Prior to each micro release, the most efficient approach for quality assurance strategy is to test every newly added feature. And, you also want to know how it integrates with existing functionality. The main things to test include:
- A proper look of the app’s interface on different devices
- Availability of all planned features
- User-friendly performance
- Proper behavior under load
- Adequate operability during fluctuations in internet connection quality, offline mode, etc.
In other words, usability, functionality, performance and edge cases behavior — are key aspects to your verification.
Next, we’ll describe the optimal testing strategy to ensure the highest quality for apps that you build. By the way, the following test stages and corresponding documentation are an essential part of the DB Best approach to quality assurance. That’s how we test complex projects and manage to meet international quality and security standards like HIPAA and GDPR for healthcare solutions.
Software Testing Stages
The scope of your testing strategy will depend on the specifics of your solution. If it’s an app with just a few features that will operate on one platform for a limited number of users, you may be able to skip some of the testing stages. Critical steps include basic functionality testing, code review, performance testing, and unit testing. But the most important part of the application requires extended testing to ensure proper performance under the pressure of live conditions.
At DB Best, we came up with the following testing stages to be applied to complex mobile solutions. This implies applications for the healthcare industry and those that involve IoT elements, machine learning, etc.
Testing and development phases codependence
- Unit testing stands for the initial testing of new or changed code in the system; at this stage, you validate whether each unit of the software performs as designed
- API testing involves testing programming interfaces (APIs) to determine whether they meet expectations for functionality, reliability, performance, and security
- Interface testing, or GUI testing, helps ensure proper functionality of the graphical user interface (GUI) of the app
- Functional testing is a black-box type of manual testing where you test the system against its functional requirements
- Regression testing ensures you that recent code or program changes do not interfere with the existing functionality of the software
- User acceptance testing (UAT) allows actual software users to test the software to assure it can handle required tasks in real-world scenarios, according to specifications
- Load testing helps you identify potential performance problems before they occur in production; here, you determine the system’s behavior under normal as well as peak conditions
- Performance testing serves to eliminate performance bottlenecks and to ensure the software application will operate well under its expected workload
- Security testing helps uncover vulnerabilities in the system and determine whether its data and resources are protected from possible intruders
- Post-release testing serves to ensure that the first deployed system is operating according to requirements; for this purpose, we prepare a specific suite of test cases
Creating Documentation that Helps
To bring your testing strategy to life, you should have a clear vision of what you want to achieve after each development and deployment stage. To achieve this, you should create a collection of documents describing every aspect of your software testing in accordance with expected functionality, performance, and other variables. Documenting your testing activities is an important phase that overlaps with Business Analysis – as the latter stage is often underestimated and in many cases, skipped. It forces you to look at your solution strategically to determine the list of devices it should be operating on, define possible use cases and scenarios, and set goals as for results after each testing stage.
The set of test documents
Here, we want to share the type of documents that might be essential for your software testing and bug fixing to be efficient and for your product to meet the quality expectations.
- Test Strategy is a high-level document that you prepare at the initial stage of the project generally describing your testing approach for achieving test objectives
- Device Scope is a list of devices used for testing that varies depending on your business goals or audience
- Test Plan describes the specific test coverage and priorities and encompasses the detailed scope and test objectives for each testing stage. You should update the plan for each release
- Test Suite is a set of test cases designed for the appropriate test goal
- Test Cases is the set of positive and negative executable steps of a test scenario which includes a set of pre-conditions, test data, expected result, post-conditions, and actual results
- Test Checklist describes post-release testing scenarios
- Test Execution Report contains test results and the summary of test execution activities
To sum up, your testing documents are your insurance policy that all application aspects are taken into account. That they are described and covered by proper tests. These documents are a great manual for the testing team. They are also a firm foundation for the customer’s team or for a product owner to control quality assurance procedures.
Improve Your Product Quality with Top Tools
Even though manual testing is effective, complex solutions require automated testing. When you have regular builds and code updates you should check several devices. And automated test frameworks are a good way to do so.
There are a lot of testing tools on the market and you may be able to find the right ones for your requirements. But at DB Best, our team has come up with a list of the most crucial testing tools. The following solutions help us successfully release project updates and build top-quality products for our clients:
- Jira is a basic tool we use for bug tracking, issue tracking, and project management
- Zephyr is a test management tool that provides a suite of solutions to optimize speed and quality of software testing
- Fabric, which is a build, deliver and crash reporting system
- UI Automator and Espresso are frameworks for test automation for Android
- KIF is a framework for test automation for iOS
- Appium is a test automation framework we apply for iOS and Android
- Postman is an API testing tool
- JMeter is a Java application allowing to load test functional behavior and measure performance
- MobSF is an all-in-one mobile application pen-testing framework that performs static analysis, dynamic analysis, malware analysis, and web API testing
Frequently asked QA questions
We briefly interviewed those who wanted to dive deeper into the specifics of testing. And found out what they wanted to know. Olga Musienko, our Senior QA Engineer, helped us highlight the most common questions and explain how things work in the DB Best QA department.
As a general rule for testing procedures, our team works closely with the client so there are no surprises in terms of features to be tested, estimates, and unplanned risks. We have fully vetted our processes and have specified them in our project and testing documentation. So, we know exactly what to do and what results we must achieve up front for the initial phase of each project.
1. How can you be sure that you tested everything properly?
We have testing documents and a qualified testing team for that purpose. The first thing we do is go to our “Test Checklist” within the Project Specification and check the list of test scenarios approved for the project. The client can provide test scenarios or are created by us with further approval from the client. We then compare the activities described in the document with those already implemented and ensure that all aspects were covered successfully.
2. How do you make sure the application looks correct for the entire set of devices?
Before proceeding to development, we discuss the list of devices and browsers where the solution will run and come to an agreement as a team. This list is precisely described and approved in a statement of work. Our QA team will use the SOW during the testing campaign. At DB Best, we have a stock of mobile devices such as phones and tablets that include the most current models. We also strive to test every feature on actual hardware so that we do not need to use emulators. If the project requires testing of a client’s devices, we ask the client to send them to us. This ensures a top quality solution using applicable devices.
3. Is that a feature or a bug?
Once again, all we need to know about the product and the way it should behave are described in the correspondent specification. Our QA team can easily verify any aspect of the solution behavior and determine whether the questionable behavior is a feature or a bug. With proper business analysis applied using the exact requirements as specified in the documentation, confusion as to whether the behavior is a feature or bug is not possible.
4. How do you make sure that a single bug doesn’t appear twice?
When a critical bug appears and our development team applies a fix, our QA engineers will continue to monitor this sensitive part of the app within the next build and continue to track the feature closely in future. That’s how we ensure that fixed bugs don’t pop up again.
5. Why do you need so many stages in your quality assurance strategy?
As described above in the blog post, complex solutions that have numerous requirements that run on a large number of devices that likely serve thousands of users. This requires a complex testing procedure. Testing stages we refer to in this article allow us to see the product from different angles and to check every inch of it to assure its quality.
6. How can I estimate the time needed for testing my app?
Every professional team can estimate each set of tests, and, moreover, every test-case they apply. At DB Best, we do this in advance and provide our clients with general estimates up front. The time actually spent can be tracked by special time-tracking systems in real time. Or, QA engineers can just add the estimates to the testing documents. This way, knowing in advance how much time we need for each test scenario allows our clients to better plan their time and budget for the project.
DB Best knows how to build and test
Our team has more than 10 years’ software development experience for some of the world’s most important companies. Particularly, we have delivered products for industry-leading companies like Microsoft and Amazon as well as several world-class healthcare organizations.
To ensure quality that we’re proud of, we came up with an optimal quality assurance strategy for complex mobile solutions. So, no matter how challenging the task is, don’t hesitate to turn to us for help.
We will be glad to build software of superior quality and performance for you. Let’s have a chat and start working on your project today!