To assure the quality of the
deliverables in every phase, Crewsoft uses a common and proven set
of Quality Assurance (QA) definitions. These definitions will
enable Crewsoft with the use of each phases's artifacts, to build
an effective Quality Assurance strategy.
Phase 1: Discovery
Quality assurance in the Discovery Phase is focused on structuring
the approach, ensuring that the processes for change management,
risk management, and issue resolution are well-defined, and that
the development life cycle has been appropriately tailored for the
Some of the components that must be
considered for the QA of planning and management:
The basic development approach
Overall scope of the project
Team logistics and communications
Responsibilities and roles
Phase 2: Analysis
QA in the Analysis Phase involves review of the requirements for
completeness and accuracy. Attention should be focused on
identifying requirements that are difficult or not possible to
implement given the customer's environment. QA regarding the
organizational design activities in this phase should be focused
on the integration of the organizational design with the
requirements. Some considerations during
User state design
Security (internal and external)
Information storage policies and limitations
Organizational policies and legal restrictions
Managing customer expectations (ongoing)
Attributes of good requirements
according to the IEEE:
effort to modify an operational program.
Includes factors that protect the software
from accidental or malicious access, use, modification,
destruction, or disclosure.
Requires minimal effort to
couple one system with another.
Provides ease of maintenance of
the software itself.
Provides ease of porting the
software to another host.
Includes factors that establish
the required reliability of the system.
Addresses the extent to which
design and code can be reused in another application.
Requires minimal effort to test
and ensure that everything performs as intended.
Requires minimal effort to
learn, operate, prepare input, and interpret output.
Includes factors required to
guarantee a well-defined availability level for the
Phase 3: Design
QA of the design is very complex, since it must account for each
part of the application system. An application architect will need
to coordinate the overall QA of the application, but some experts
may be needed to provide QA for specific areas. QA of the
technical infrastructure ensures that all areas of the
infrastructure have been assessed, and that the proposed design
will provide sufficient performance and scalability for the
During design QA:
Determine the level of complexity of the application with
regard to integration, security, performance, databases,
platforms, specifications, scalability, extensibility,
modularity, maintenance, re-use, and so on.
Determine the areas of the application that are most at
Determine the areas to which the customer is most sensitive.
This will require some understanding of the customer's
priorities and objectives. This information may be available
in the system requirements artifact.
Phase 4: Development
QA of the construction effort ensures that the system is developed
according to the specifications and with a solid technical
framework. This QA effort ensures that general coding guidelines
and specific client requirements are implemented in the system.
During construction QA:
Ensure that the detailed designs are consistent with the
high-level designs. The system should be logically organized
to facilitate assignment of resources and areas of re-use.
Enforce good coding practices and guidelines. Identify areas
of excessive complexity for a coordinated detailed design.
This will involve design and code reviews at the appropriate
Implement a team structure that optimizes communication of
development issues. Implement the project communications plan.
Identify areas that require early assignment of
responsibility such as database loading or conversion.
Create escalation paths and mentoring teams. Provide
checkpoints and reviews for new team members.
Emphasize and implement the design objectives for security,
performance, portability, scalability, extensibility,
modularity, maintenance, and re-use.
Phase 5: Deployment
A major issue in the deployment phase is testing; testing is the
final QA checkpoint to assure the quality of the system to be
delivered. Test scripts should not only test the expected
functionality of the site but should also test all possible
functionality and behavior of the site. QA of the deployment is
centered on the configuration of the entire system in a production
environment. The focus of this QA effort is to ensure a clean site
launch, rather than on any particular application functionality.
The deployment will require executing the deployment steps and
deployment tests to verify that the site is operational.
During test QA:
Validate that the system has been constructed exactly as
indicated in the functional specifications and associated
project change requests.
Map which programs and pages satisfy each specification.
Develop test scripts that show how to test each function and
state in each program and page.
Ensure the success of the user acceptance test by executing
test scripts and conditions for all possible behaviors. Bang
on the system to see if you can get it to break.
Develop multiple databases or data sets if needed to
implement all of the test scripts. Data preparation is
essential for a high-quality testing effort.
Implement problem tracking to identify and resolve issues.
Develop a system to re-evaluate and escalate problems if
necessary. This system should ensure that the priority,
severity, and cost of problems are accounted for in setting
During deployment QA:
Review the site deployment software and hardware
Identify which key areas of production testing are to be
performed once the site is placed in a production environment.
These tests must be structured to test all of the