
GAITS specializes in establishing and deploying effective testing methodologies and disciplines. Our employees have significant project experience, starting with requirements analysis, through test planning test execution and test reporting. Having honed these skills over many years with numerous programs, GAITS has a T&E program suited for your needs. GAITS is experienced in all phases of testing to include: Unit, Systems Integration, System Acceptance, Deployment and Security Testing for all types of systems. Below is a listing of actions required for a successful testing program.
Software Testing
- Test early and often
- Use a structured, well-planned approach to testing
- Consider all human factors - peers, managers, customers
Testing Strategies
- Use strategic planning - defining the overall approach
- Write detailed test process guidelines/a master test plan
- Define all test activities, e.g., white and black box testing and boundary condition testing
- Define entry and exit criteria, but avoid criteria that is too restrictive, e.g., the system testing entry criterion of "all defects are fixed prior to starting systems testing" does not all a Project Manager to make the judgment call of starting systems testing since the defects will not impact systems testing for several days, weeks or months.
- Identifying and managing testing risks
- The impact of legacy systems or data conversion must be carefully examined since these are high risk test areas
- Insure requirements are testable, as applicable
- Provide budgeting, scheduling and estimating for effort
Test Documentation
- Develop objective test documents, test result and test oversight reports
- Use standard test document templates
- Tailor standards to suit your needs
Reviews (part of a Test Readiness Review (TRR) support effort)
- Review the test environment
- Review each document (using checklists)
- Review tests and test execution
- Ensure all data is ready for testing
- Prior to a TRR, report on the review results
- Review progress continuously
Requirements
- Ensure requirements traceability, e.g., throughout the test process
- Testers must be integrated into requirements review process
- Identifying good and bad (and ugly) requirements for testability
Unit Testing
- Verifying the code/module/hardware/databases/procedures/system component functions as designed
- Document unit tests
- Insure baseline is in place before test begins
- Requirements- and user-based testing
- Manage the risks management system
Functional and Performance Testing
- Verify the functional and performance (e.g., service level agreement) requirements are met
- Plan tests – that will fully exercise the component /module/system
- Design tests using a variety of test types & methods
- Write test cases & procedures for the application
- Identify and establish a viable test environment
System Testing
- Ensure system is baselined before testing begins
- Configuration management’s Physical/Functional Configuration Audits (PCA/FCAs) have been performed and are acceptable
- Validate the system is fit for purpose
- System testing of re-used, Customer Provided Equipment (CPE) and Commercial-Off-the-Shelve (COTS) components
- Insure all threads are tested fully through the system.
- Verify 508 and performance requirements
- Verify all security requirements are met.
- Verify operator, user and other procedures match the operational system and are easy to understand
- Verify the system’s installation and checkout process is effective
Test Tools
- Identify test tool requirements
- Evaluate the pros and cons of using automated test tools
- Use a sensible approach to test automation
- Ensure tools used provide value
- Ensure tools are selected and prepared before testing begins
- Ensure users are properly trained in the use of the tools
- Ensure the tools are under configuration management control and have be tested prior to first use of the tools
Running Tests
- Control the test environment
- Execute all test scripts and test procedures as prescribed
- Identify defects through the established reporting system
Test Metrics - The feedback loop
- Define what data should be collected
- Define what information is required
- Identify the frequency and means of data collection and presentation
- Identify how metric results relate to or impact other metric results, e.g., adding resources usually increases cost and may or may not reduce the schedule
- Analyze metrics on an agreed to basis
- If a metric identifies a negative aspect, identify this to the affected group; work with the group to analyze the reason for the negative aspect and resolution, and then notify management of the metric results and what is being done to resolve negative metrics
Regression Testing
- Ensure regression testing is done as part of any build or release
- Identify the portion of the system that is impacted by new builds and ensure regression tests are run on at least the possible impacted areas
- Performance testing should also be done
User Acceptance Testing
- Determine if any previous test results can substitute for a user acceptance test script or scenario
- Perform a Functional Configuration Audit and a Physical Configuration Audit (FCA/PCA
- Audit the CM process to ensure the system’s test version is properly built with only approved configuration items and changes
- First test should be related to installation and checkout, e.g., load software and databases per the installation instructions to ensure the system being tested can be installed and does not have any prior temporary test components
- The next test should be stress testing, e.g., if a system is to have a maximum of 50 input devices, test for 51 input devices. History and test experts have shown stress testing can identify problems early instead of wait until later to find a problem, or possibly not finding a problem
- Emphasize boundary testing to ensure inequalities are properly addressed, e.g., for the equation "a > 5", where "a" is an integer, testing "a = 5" tests for all conditions where "a is less than or equal to 5"; and testing where "a = 6" tests for all conditions where "a is greater than 5".
- Emphasize critical functions and interfaces, e.g., user interfaces and interfaces between the system and external systems.
- Ensure data and legacy conversions are appropriate, complete and accurately represent the system being replaced.
Final Acceptance
- Ensure all requirements have been met and the system is ready for operational release
- Final acceptance – CM audits and tests are complete and verified
- Develop test reports with full traceability between requirements and test scripts, and test scripts and test results.