Testing is an inseparable part of any software development process and provides an important link in the overall chain of the development life cycle. We are advocates of 'smart' and 'rapid response' testing techniques.
In general, testing serves two primary functions:
"Constructive" Approach: To demonstrate planned quality and/or proper/expected behavior -
proving that the software under test DOES work.
"Destructive" Approach: To detect and fix defects - proving that the software under test does NOT work!
We offer the following services:
Review of the requirements specification (where it exists) to ensure consistency and testability of all proposed features and functionalities, and to establish product quality and release criteria
Review of design documentation including architectural design, detailed design, external interface design, etc.
Definition of entry and exit criteria for each phase of the development cycle, where appropriate
Establishment of change management procedure
Development of a 'Test Plan', where the overall testing strategy is articulated along with a timeline, set of deliverables, the schedule, tools requirements, and resource requirement/allocation
Development of test cases, test procedures, and other related test artifacts
Review of the 'Unit Test Plan'
Grouping of test cases and description of the testing techniques to be used for each group
Evaluation and selection of automation tools (build vs. buy)
Execution of test cases, analysis and reporting of defects, and logging of test results
Creation of statistical data, coverage analyses, and readiness/convergence metrics to assist in making a 'go/nogo' decision for the release of the product
Development of automated regression (and other relevant) test suites
Review of user documentation and reference manuals