Over the last couple of days, we’ve talked about the need for Software Quality Assurance (SQA) throughout an entire eCommerce development project and the first of three SQA process areas that support web system and services development, Daily Support. Now, on to the next: today and tomorrow, we’ll discuss iterative verification functions that assure the system’s integrity as features are added and defects are corrected.

Iterative Verification

Iterative QA functions occur either at a greater than daily interval or on demand. They are used to provide assurance that the system as a whole retains its integrity as new features and functions are added to it. Iterative tests include sanity checks, integration testing, and user acceptance testing (discussed below), API verification, third party service access, and test automation (which will be covered tomorrow).

Sanity Check

This automated test is run across a broad swath of the deployed web assets immediately after receipt of a code drop and just prior to production rollout to identify unintended consequences of code changes. If this “smoke test” passes, then additional testing of features and pages can continue. If one or more of these tests fail, QA will raise a red flag to address the code, migration or environment issues causing the failures.

Integration Testing with Customer Systems

Integration tests dig deep into functionality that requires integration with other systems that the customer of the new web system already has in place. It is important that this testing occur as soon as possible in the development process: learning about integration issues late in the project introduces significant risk and cost since much of the complexity of the system is in the integrated functionality.

User Acceptance Testing

Here, the user community interacts with the system under test and provides feedback about how it meets their expectations and what changes are required. User Acceptance Testing should occur throughout the development lifecycle as it gives developers early feedback, gives the customers the information they need to refine their requirements, and reduces the risk of expensive surprises at the end of the project. This type of testing can take the form of reviewing mockups, viewing demonstrations of still-fragile pages, and testing how robust system functionality actually is.

First Steps toward Iterative Verification

QualityLogic’s QA engineers work with the developers to create a list of major features and functions from which we build test cases to verify functionality in depth. The checks are implemented so they can be exercised by both QA and the development staff.

We coordinate with development and test representatives of the site developer’s customer to facilitate integration of their systems in the QA environment. To design integration tests, we research the necessary system requirements and design documents.

QualityLogic’s project manager works with customer representatives to define their acceptance criteria by demonstrating new functionality and pages to customer representatives as they become available. We then work with the customer representatives to create defect reports for issues found, as well as supporting fix validation for these defects.