Testing and software quality assurance is an integral part of any development process. The quality of how it is organized can show the professionalism of the developer company. We at Sloboda Studio, pay special attention to this component and are ready to share our successful experience with you.
We begin testing before the development starts. At this stage, only a description of the functions, namely the specification (if any), documentation, mockup reviews, etc. are available. To have an idea of how to manage testing when there is actually nothing to test and decrease costs in the future, we write use studies or test cases, checklists (it usually depends on the time availability and on if there is a need to get a test documentation.)
After the development of the new feature, we usually practice such an approach: running a smoke test, making edits, retesting or conducting a sanity testing. If after that a QA engineer believes that everything is okay and the feature is almost ready, its implementation is reviewed by the customer’s representative (acceptance testing) or a PM. If there are any objections, the feature is modified and the steps elicited earlier go once again.
After the final approval of the project, there is a necessity to run a full-fledged regression testing of the entire application in case other parts of the application have been affected by the updates. Also, these tests will soon reveal bugs with the integration of different code parts and features that were tested solely but may not operate properly when given in a system.
This includes all QA activities which can be conducted without running the code (such as, for instance, when there is no written code yet available). Instead, the documentation, mockups, design are available, so we can start a documentation review. In fact, there are many types of such a review (like a walkthrough or formal inspection), but we use just basic review most often.
When this part is finished, but code writing is still ongoing, you can start creating test artifacts, such as test plan, checklists, test cases, optimizing them now to have more time for comprehensive testing in future. The most widespread strategy of our company is to create checklists applying relevant test design strategies and then, if there are adequate requirements available, building a traceability matrix, optimized in a way one could easily find a requirement the particular test case tests.
One more important activity is a prototype testing. As usually there is nothing else to test except the design in a prototype, we testing its UI/UX issues. In some cases, we can apply unit testing if some small parts of the app are already implemented in a prototype.
There are three classic stages of basic testing.
Smoke testing is aimed to ensure the app performs its immediate function (that is, the most important functionality, which makes the existence of the product inconsistent). It could include both functional and nonfunctional testing.
Critical path testing tests the essential user stories, the features most of the users will use daily, without some special cases.
Extended path testing tests all the features and all the stories available, so it takes much more time compared to the previous stages. It is aimed to find rare but critical bugs, that can destroy the system or damage it greatly. Although, the time on it can be reduced if the app changes quickly and releases updates too often.
Stabilization is not the same thing as stability testing, as you may think. On this stage, there are much less critical issues, but still, it is unavoidable. What should it include?
|Issues monitoring||Newrelic, Rollbar|
|Alert systems||Blazer, Logentries, Newrelic|
|Requests monitoring||Newrelic, Skylight.io|
|Feature autotests||Allure Test Report|
|Cross browser testing||Browserstack, Cross-browser testing|
Each team develops its own style of testing, based on past experience or project needs. However, there are techniques that everyone can take a note of. We tried to collect precisely such approaches in this article. Sloboda Studio wishes you success in the implementation of your projects!