We take every care to ensure that the software we
build satisfies our client's requirements. The only way
to ensure that is to perform quality assurance
throughout the software lifecycle. We typically involve
a lead quality engineer in the early phases of a project
to participate in requirements elicitation and analysis,
to ensure that our quality assurance team understands
the business objectives and the detailed requirements.
This understanding enables the team to develop a
comprehensive quality assurance plan for the project
that includes the following elements:
Test Plan and Test Cases - We develop a complete testing
plan based on the requirements. The test plan includes
unit, integration and system testing. The test plan
includes all the test cases that typically cover
functionality, error handling, performance,
scalability, and fail over, among other required
tests. The test plan and test cases are validated with
the client during the early stages of a project, and
are refined and enhanced during the downstream
activities (detailed design and coding).
Traceability Matrix - During the software lifecycle
we trace the requirements to the design components, to
the code modules, and to the test cases. This enables
us to track changes to the requirements and to
validate the test plan covers all requirements and all
design elements.
Peer reviews of designs and code - Depending on the
size and duration of a project, we conduct design and
code reviews with architects and engineers from
outside the project. These reviews provide an
opportunity for valuable feedback and independent
perspective.
Acceptance Plan - At the beginning of each
iteration of a project, we develop a detailed
acceptance plan that describes all the expected
deliverables during or at the end of the iteration.
The client signs off on the acceptance plan to
indicate agreement on the expected results.
The quality engineers staffed on a project are
responsible for implementing, tracking and adjusting the
quality assurance plan to make sure that it is completed
successfully by the delivery date. They often use test
automation tools to help them in conducting the required
testing and establishing a complete regression test
suite for the product that is as automated as
possible. |