Throughout the iterations, our QA team is busy testing new functionality as early as possible. Our standard development process includes the development of unit and integration tests using tools such as JUnit and NUnit. Although the unit test scripts are usually created by developers (Note: no feature is deemed complete till there is an associated unit test), on some projects the test cases required are more extensive and may require the assistance by members of the QA team. Integration test scripts are also created as necessary, using tools such as HTTPUnit or Cactus, depending on the specifics of the product being developed.
Where possible, we recommend the use of automated scripts, which are developed throughout the course of product development and maintained after the product’s commercial release. The full suite of test scripts are then executed on the QA servers for each build, and are constantly enhanced to test new functionality and perform regression testing for bugs that have been previously fixed. Although this requires more of an up-front investment, over the full course of developing and enhancing the product, companies typically realize significant savings as well as an improvement in product reliability and quality.
The diagram below illustrates the various types of testing we routinely perform during the development of software products.

Throughout each step of the CUP testing process we produce and deliver extensive documentation. Some key deliverables we produce include:
- Test Strategy
- Test Plan
- Test Cases
- Test Execution Results
- Test Framework and Harness Architecture
- Test Framework and Harness Design
- Performance Test Documentation
- User Acceptance Test Documentation
