Testing is one of the most time-consuming stages of product development, starting much earlier than the actual coding begins. It's a crucial phase that should never be overlooked. We've previously discussed its importance here.
We have a dedicated testing department, with specialists who are integral members of every project team. Each project involves at least one tester, and larger projects may require up to four testers.
In this article, we'll walk you through how testing is conducted at various stages of a project:
- at the planning stage
- at the design stage
- at the development stage
Requirements and Wireframe Testing
During the planning phase, we test the product's requirements and wireframes (interactive prototypes of the user interface). The requirements outline the product’s functionality from the user’s perspective, while the wireframes illustrate the fundamental mechanisms of the product's operation.
Testers carefully review the requirements and scrutinize the wireframes. When issues are identified, testers collaborate with analysts to update the requirements based on their feedback and suggest potential improvements.
Additionally, during the planning phase, development tasks are created based on the requirements and wireframes. Before these tasks are handed over to developers, testers review them once more, ensuring that each task is clearly articulated, detailed enough, and doesn’t need further decomposition.
A critical part of task verification before development is the creation of acceptance criteria, which testers formulate and attach to the task.
Test documentation is also prepared at this stage. Testers develop test cases and test suites for the upcoming testing process. We manage our test cases using Qase.io. These test cases cover all requirements, including negative scenarios, and are continuously updated as the project progresses.
Design Testing
While the testers prepare test documentation, designers are busy creating screen layouts and the UI Kit, which includes all elements of the user interface.
Testers ensure that all screen elements align with the requirements. The UI Kit must include all states of active UI elements, and the text must be free from grammatical errors. The tester monitors these aspects, ensuring no flawed decisions are made in terms of user experience at the layout stage.
Functionality Testing
Simultaneously with design testing, testers also start testing the API, which developers have already begun implementing. We use tools like curl or Postman for API testing, working with prepared API documentation and verifying responses against the documentation.
Once the designs are tested and approved, developers start implementing them and mark the task as "ready for testing" as each part is completed. The tester then tests the implementation against the previously written test cases.
The product is compared with the approved designs; fonts, colors, and element displays are checked using tools like DevTools, Figma, and extensions such as PixelPerfect and WhatFont. To optimize the interface of web applications, testers use PageSpeed, Lighthouse, and Chrome DevTools. We test the product on various platforms using our own test devices in the office, and we also have access to Browserstack’s device farm.
All identified bugs and inaccuracies are logged in Jira to ensure they are fixed promptly. After a fix, everything is rechecked. Suggested improvements are also a result of the tester's work, often coming after the product has been developed, as testers view the product from the user's perspective and identify opportunities to enhance the user experience.
At the end of each development stage, we ship a stable version of the product to a demo environment – a special server where the customer can see the results of our work. However, before presenting the product to the customer, the tester performs smoke testing (a set of basic tests for obvious errors like installation, database connection, and retrieving settings for launch).
A detailed test report is provided to the project team and project manager, outlining the components that have been tested and whether any corrections are needed before delivery to the customer.
As the product evolves, the number of required checks increases, making manual testing increasingly time-consuming. To streamline this process, we use automated tests written in JavaScript with Cypress or Playwright tools. While these tests do not replace manual testing, they significantly save time and resources.
Selected Test Cases
A special focus is placed on testing payment systems. We use test environments provided by vendors – so-called sandboxes – to test various scenarios such as successful and unsuccessful payments, payments with 3D Secure, payments with expired cards, and more.
We also conduct performance testing to ensure the system runs optimally and remains available under load. We verify that computing power is efficiently utilized when needed and scaled down to save costs when demand decreases.
For performance testing, we use off-the-shelf tools and technologies like K6 for API load testing, as well as our custom tool based on JS, Puppeteer, and Amazon Spot Fleet. This allows us to flexibly simulate thousands of users on a particular site and observe how the system behaves under such load.
When the system is ready for release, we conduct regression testing – a thorough examination of all functions to detect any bugs introduced by recent changes and improvements.
Next Step
Just like with development, once testing is successfully completed, the team begins preparing for the next crucial step – launching the product. This stage involves installing the product on the server, connecting essential services, conducting final tests, and reviewing documentation. To learn more about this process, stay tuned for our next article.
Interested in developing your own software product or refining the testing process on your current project? Contact us or book a quick call for a free personal consultation.
Take a look at our other articles too:
Personalized Planning: Ideation, Personal Consultation, and Scoping
Personalized Planning: Requirements Clarification and Visualization
Product Development: Step-by-Step Approach to Product Creation
Comments