Various steps will be taken to ensure that the designed application works as per the accepted requirements/specifications. Once the requirements have been finalized, they will be documented and signed off by CLIENT authorized scope changes will be formalized through the change control process.
The testing team will test independently all built code. The testing process will involve the active participation of CLIENT team. We invite CLIENT project team members to scrutinize the development process at any point within our methodology.
The Quality Assurance team within the production support organisation will consist of a Quality Assurance Lead and a team of Reviewers. The size of the Quality Assurance team will be approximately 20-30% of the size of the production support team.The standard ANVIN’s Checklists, Review templates will be used in QA.
The work products that would be subjected to quality assurance process are:
The activities that would be performed by the Quality Assurance Team are:
The purpose of ANVIN Software Configuration Management (SCM) is to establish and maintain the integrity of the work products throughout the life cycle of the project. The SCM activities will be planned and executed at a very early stage of the Software Project.
Software Configuration Management involves identifying the configuration of the software (i.e., selected software work products and their descriptions) at given points in time, systematically controlling changes to the configuration, and maintaining the integrity and traceability of the configuration throughout the software life cycle. The work products placed under software configuration management include the software that will be delivered to CLIENT (e.g. unit test plans, system integration test plans, unit tested code, Deployment descriptors if any)
Our offshore development environment can be suitably configured to manage the development of code during development and to ensure proper delivery of code to CLIENT on-site development environment.
Risk Management describes the processes concerned with identifying, analyzing, and responding to project risk. Risk management is a formalized way to identify, analyze, address, and potentially eliminate problems within a project before they affect the outcome of the project, or before the risk becomes unmanageable.
ANVIN will use the Continuous Risk Management model developed by Software Engineering Institute.
This will allow us to:
The objective is to control the risks associated with those cost, schedule, functional, and technical aspects of the project
The following table describes the various activities in the ANVIN risk management approach
Activity |
Description |
Identify |
Search for and locate risks before they become problems |
Transform risk data into decision-making information. Evaluate impact, probability and timeframe, classify and prioritize risks |
|
Plan |
Translate risk information into decisions and mitigating actions (both present and future) and implement those actions |
Track |
Monitor risk indicators and mitigation plans |
Control |
Correct for deviation from risk mitigation plans |
Communicate |
Provide information and feedback internal and external to the project on the risk activities, current risks, and emerging risks Note:Communication happens throughout all the functions of risk management |
ANVIN utilizes specific techniques to assist in the mitigation of risks within known areas of risk. Some of these techniques are outlined in the table below
ANVIN employs a structured testing approach to ensure that the system meets not only the business requirements but also the technical and performance specifications. The ANVIN Team has extensive experience in planning, monitoring, and conducting large scale testing activities. The ANVIN Testing Methodology will use a proven testing approach.
This methodology includes:
Our offshore development environment can be suitably configured to manage the development of code during development and to ensure proper delivery of code to CLIENT on-site development environment.
The following deliverables will result from this task:
ANVIN employs several testing levels to ensure a high quality product is delivered to the customer. ANVIN believes thorough testing at every phase and level is critical to the successful delivery of a project. The delivery of quality software necessitates the identification of defects as early as possible in the development process.
Unit testing provides a concise testing environment for the resolution of defects. During this task, developers use test conditions provided in the detailed specification to test the logic of the application. Additional test conditions may be defined to help ensure most of the logic paths within the code are tested. Test data is created to test the application as needed. At this level, the development team serves as primary testers. Units are defined as the individual development work packages in the project plan. The purpose of unit testing is to ensure that each package has been completed as defined by the specifications. Completed unit tests serve as checkpoints in the development of a larger application system. To ensure complete testing of some units, the construction of a shell application is sometimes necessary. This shell application mimics functions of units that are not yet completed. The client will have the opportunity to review and sign off on unit test results.
Module/string/subsystem testing consists of testing the data flows through the system. Module testing provides the first look at how units work together. When possible, ANVIN tests the business processes that will use the completed modules.
Integration testing establishes that the entire application meets the client’s functional and technical requirements. The system test confirms that the technical interfaces work seamlessly and accurately. It also demonstrates that the new system can function in the proposed operating environment without adversely affecting other systems. The integration/system test phase will be broken down into the following stages:
These will be described in detail in the following section.
This phase of testing emphasizes that the functional requirements of the system have been met. Business Testing comprises of the following stages:
Business Process Testing -- This stage involves testing the business processes that the system must support in order to meet the needs of the users.
Integration Testing -- The purpose of Integration Testing is to test the integration of business processes. Integration Testing will be performed using the system test conditions, scripts, and test cases.
Life Cycle Testing -- Life Cycle Testing essentially mimics the business services to be provided by the system. An example of a life cycle test case scenario would be register a new client, screen for eligibility for a specific program, and generate an electronic referral to the service provider.
Regression Testing -- Regression Testing is the continual re-testing of previously run tests to ensure that all of the expected results are met. Regression Testing is necessary to test components that may be affected by a change to another component
The purpose of Technical Testing is focused on technical rather than business functional testing. It consists of the following two stages:
Performance/Stress Testing -- The Performance/Stress Test confirms that, once the application is rolled out, it provides the appropriate online response time. Performance Testing is an ongoing process that will begin in the early stages of development. An early start on Performance Testing provides analysts with more time to test and improve system performance. Stress Testing tests the extremes of the system and verifies that it functions correctly under high-volume conditions.
Volume Testing -- Volume Testing includes testing batch processes with high volumes of transaction data to ensure that the system will perform as designed during peak or abnormal conditions
The Acceptance Test Stage represents a validation of the components and their interactions. It demonstrates that the new system can function in the proposed operating environment without adversely affecting other systems. The Acceptance Test also confirms that the technical interfaces work seamlessly and accurately.
As a precursor to testing, the ANVIN Team will train the designated testing team in the use of the application and the testing methodology. ANVIN proposes to make use of the end-user training materials as the foundation for the application training. While ANVIN agrees that formal training in the enhanced application is critical for a smooth testing effort, the actual training on the application will begin well before the acceptance test stage of the project. Given the proposed solution, the existing application will be used as a reference throughout the project life cycle. This will provide valuable experience to the testing team very early in the project and reduce the risks associated with User Acceptance Test.
The standard practice for the ANVIN Team is to conduct a formal Test Kickoff seminar. During the seminar, the Test Team will review and refine the strategies and procedures used during the acceptance test effort. Armed with a single vision and direction, the Test Team will have a much easier time evaluating the application during the process. By the beginning of the Acceptance Test Stage, the application will have been developed (and tested) to a point that it will formally “exist” and can be rigorously evaluated by the client and ANVIN staff for its adherence to business requirements and its overall functioning.
A number of deliverables created during the previous stage’s effort may be reused during Acceptance Test to facilitate the validation activity while minimizing the additional workload on client staff. Online help, training manuals, and user training is provided to ensure that staff is acquainted with the application and can begin to work proficiently in the user acceptance effort.
Automated and manual test scenarios developed with the client staff in preparation for Integration and Life Cycle Testing can be reused in User Acceptance Test. As part of the Acceptance Test Process, ANVIN uses a comprehensive test data file that serves as the baseline information required to fully test the system. This file will be augmented by the data used to verify the viability of every aspect of the system, and documented accordingly.