Often, QA is thought of as just testing. In fact, it’s that and much more; testing is just one part of the entire process. The QA process covers all of the steps that are necessary to ensure that the product meets the stakeholder expectations and provides a positive customer experience.
Who does the testing?
The QA testing is done by a person or team independent of development while they do work closely with the development team to resolve issues and define processes.
What is the scope of the QA process?
It is the responsibility of the QA team to represent the customer. They must think and act like the end user. They must consider questions such as: How will features interrelate with one another? Are there different permission roles and what does each of the roles need to accomplish to be successful?
The QA team are required to be knowledgeable in the QA process and should be able to understand the application to the degree of the client and all of their consumers.
At Art+Logic, we provide a correctly sized/customized testing solution for your Project based upon key factors:
- Complexity of the Application
Number of components and features being implemented and the level at which they interact with one another. Are functions dependent upon interfaces? How many paths can be taken by a user?
As a general rule of thumb, we expect the cost of QA to be 25% of the overall Project budget. When we talk about budget, there are key aspects that must be taken into consideration.
- Resource allotment: The appropriate number of QA personnel that represents a sustainable ratio to the number of developers dedicated to the project.
- Tools: What tools must be employed whether it be automation software, a device farm and/or physical devices.
- Size of your User base
The size of the project’s user base is a crucial factor to consider. Developing an application for 100 users versus an application that is public facing and potentially consumed by an unlimited number of users is key not only to how development is approached but also to how the application is tested to ensure continuous operation.
- Operating System(s) and Device coverage
An application that is solely web based is inherently simpler than one that is running on both web and mobile devices where the user population engages using many operating system and device versions. Since devices and operating systems react to code differently and employ their own set of rules, compatibility testing needs to be performed to cover as many scenarios as possible.
Describes the areas, features and integrations being tested as well as those that are not in scope.
Clearly defines the expected outcome of the test team. Common goals include ensuring the product meets functional and non-functional requirements and that the product is bug free prior to delivery.
Outlines the members of the QA team and each of the responsibilities specific to their role.
- Testing Environment(s)
Establishes the list of software and hardware platforms that require coverage. Typically includes:
- Operating Systems
- Software Integrations
- Acceptance Criteria
Delineates the conditions and standards that the product must satisfy to be accepted by the Client.
- Saves money in the long run – defects are found early minimizing the chance of having to make large changes later
- Identify holes in the requirements that will impede development or lead to an app based upon perception rather than client need
- QA is continuous; provides checkpoint coverage throughout the development life cycle
- Reviews an application from a usability perspective(i.e. Will a User/Customer be able to use the application seamlessly and without frustration points?)
- Increased Customer Trust & Loyalty
The QA team reviews the requirements and identifies any questions or areas requiring additional information. This is not only completed at the initial requirements stage, but continues throughout functionality changes and new feature requests.
Once the requirements evaluation is complete, a test plan is created that outlines the following points:
Deliverables typically include Test Cases, Scripts, Test Data and Defect Reports.
In depth test cases are created based upon the project requirements. They cover all functionality of the application and the interdependencies between features. Test cases are continually updated to incorporate enhanced or new functionality.
Test Case Execution
Test cases are executed throughout the development life cycle. We not only test the current feature implemented but also perform a full regression test to ensure that no new defects have been introduced.
Why should QA be incorporated into our Project?
Why couldn’t my in-house team perform the testing?
This is certainly doable, but bear in mind that a good QA process takes time. Consider whether or not it is feasible to pull your team away from their daily workload to devote the time necessary and the opportunity cost of that time. Can those team members generate more value by staying focused on their day-to-day responsibilities?
QA testing is performed on your application before it hits production. During this process, we set up a staging and/or QA server to test the application in an isolated environment.
The earlier the QA team is involved,the better. More than 50% of issues can be attributed to requirements.
QA should begin at the requirements gathering process and continue throughout the development life cycle.