
QA involvement at every phase of software development
Starting from the requirements gathering stage (or any other stage of your current project), and continuing through the implementation and maintenance of your solution, A1QA will test every interim deliverable to ensure that it meets requirements and specifications for that phase.
In the classic and ideal approach to quality assurance, an end-to-end testing of the software should be performed. In practice, much depends on the project and resource constraints, including time and budget. A1QA has flexible processes that can deviate from the classic approach and be adjusted to the real project conditions at any stage.
The strategy of early and frequent testing optimizes costs and reduces a solution's time-to-market, although that may seem contradictory at first glance. However, the later code defects are discovered in the development life cycle, the higher the costs will be and the more time will be required to fix them.
By outsourcing the quality assurance function to A1QA with its constant improvement of business processes, deep expertise and focus on QA services, you get significant business value and cost benefits. A1QA's independent team will handle all your quality assurance tasks, including the development of a QA strategy, resource planning, team building and overall management, while you concentrate on your core activities.
Contact us to benefit from full life-cycle testing service!
Stages of full life-cycle testing
Full life-cycle testing is a sequence of different phases, each having a specific input and output. In full lifecycle testing, development and testing stages are coordinated to complement each other. These stages are described below.
1. Software requirements stage
Since a tester thinks from the user's point of view, it is particularly important that he or she is involved in the project from the requirements-gathering stage (this is especially true for product-based companies). In this case, the tester gets first-hand information from the customer and has a clear understanding of testing and QA goals. Ideally, each module should be discussed by a developer, a tester and a user.
2. QA strategy development and planning
A1QA attaches high value to a well-defined QA strategy, as it allows delivery of a cost-effective solution and tests the most important parts of the software at the right times. A good strategy eliminates the confusion of unorganized and frequent testing yet ensures that the most crucial parts of the application are not left out.
Well-timed planning is essential at all stages of the project and builds trust between the customer and the vendor. At the beginning of the project, estimates and accurate definition of plans (build planning, test types and order, efforts) are established.
The test plan aligns with the QA strategy and contains the following information:
- Testing methodologies and tools
- Duration and objective of each phase
- Test types
- Number of features to be tested and test coverage
- Efforts and human resources required
- Other QA-related and auxiliary activities (test documentation creation, analysis, reports creation, etc.)
3. Requirements testing
Even flawless code may prove ineffective if based on poorly-documented, incomplete and ill-defined requirements.
For optimal results, testing should begin before the first line of code is written, at the requirements analysis stage. By performing requirements testing, we assist you in eliminating the majority of potential defects in the solution, since many of them arise at the requirements stage. A1QA will test your requirements for conformity, completeness, relevance and consistency.
4. Test documentation creation
Depending on your project, test documentation may vary in detail, format and coverage, but in each case it makes the process transparent to you, increases the testing quality and shows what you are paying for. This can be presented in different types of documents: acceptance sheets, test cases and test surveys, etc. As your project grows, it is also important to keep all testing documentation up-to-date, therefore at A1QA we pay special attention to the relevance of documents and their regular update.
5. Prototype testing
A prototype can be a set of images, static web pages, or the initial release version of a system. As an application's foundation, the prototype reveals stability and performance of the application and by this plays an important role in the overall QA strategy. Prototype testing includes detection of design, structural or logical errors. During prototype testing A1QA gives much consideration to usability testing, since making changes on the conceptual level of the prototype prevents potential expensive rework. Testing of code for compliance with standards (xhtml/html, css, rss/rdf, wai, etc.), functional, GUI and accessibility testing are also executed, if necessary.
6. Regular testing
Planned testing may cover different aspects:
|
Unit Testing
Integration Testing
|
Acceptance Test (Smoke Test)
Positive Test (Minimal Acceptance Test)
Ad-hoc Test (Full Acceptance Test)
Regression testing
|
Functional Testing
GUI Testing
Usability Testing
Security Testing
Database Testing
Cross-platform Testing
Cross-browser Testing
Accessibility Testing
Installation Testing
Configuration Testing
Localization Testing
Performance/Load Testing
Stress Testing |
We produce customized online reports about activities performed and defects found that will save your time and allow you to be as much involved as you wish. Both the customer's and A1QA's own templates can be used for reporting.
7. Stabilization testing
Stabilization testing is carried out when all functionality has been developed and the application is almost ready to be launched into production. Interconnection between all modules and parts becomes ever more clear and the testing is carried out in live conditions. Some features can be tested to their best only at this stage, e.g. the work of large databases, real life payments, sms services, etc.
8. Release to production and product support
Even after the system has been released, testing still plays an important role in the maintenance process. All changes introduced to a system must be tested to ensure that the system continues to provide the business function it was originally designed for, without impacting other functions or other systems it interacts with. When the environment changes (hardware or software), the solution has to be retested in different aspects to make sure that it continues to operate as expected and works well with other parts and modules of the software (regression testing is used here).