Quality Assurance

Quality Assurance Activities

The purpose of testing is to provide information to project members and stakeholders on the state of the project, particularly with respect to the project requirements but also compared to commonly accepted assessments of software quality. Quality assurance seeks to not only identify discrepancies between stakeholder expectations and the current implementation of the application but also to enable the quickest, clearest resolution and to prevent them from occurring in the first place. To this end, testing occurs on many levels thought the life of the project. Quality is built in, rather than being “tested in”, by every member of the team. This approach results in faster delivery, better applications, and lower overall costs for a comparable scope and quality.

Testing Tasks

Testing may include the following types of tests:

  • Unit tests of the developed code and the User Interface (UI).
  • Automated UI-level smoke tests.
  • Automated functional tests (e.g., FIT / Fitnesse style tests)
  • Exploratory functional and integration tests of release candidate application builds.
  • User experience testing for usability and business rule validation.
  • Performance / Stress testing (as feasible and needed).

Testing commences very early in the project compared to more traditional “waterfall” style projects. As an agile project, tests that are defined in advance of development allow developers to clearly understand what will be expected of their code.

Tests will be automated, where feasible, for ease of execution. This will provide verification feedback frequently and in a timely fashion to project staff. This can be thought of as “testing early and often”. Regular execution of the unit tests and frequent reviews of the application when verifying bug fixes provide feedback on any regression problems that may emerge.

Manual tests will always be performed to identify problems not easily detectable through automated testing and to support validation of the business requirements. Client participation in the validation activities is an integral part of the process, allowing the team to adapt to new and modified requirements that emerge as the project progresses.

Roles and responsibilities

Testing will be performed by several different people in the project:

  • Developers will routinely perform unit testing to ensure the functionality of each build that is installed in the test environment.
  • Automated UI smoke tests will be performed by the QA Lead to evaluate the suitability of the application for more extended testing.
  • Exploratory testing will be performed by the QA and BA staff on builds as they stabilize within each increment to evaluate the application against requirements in ways that are not feasibly automated. These tests also provide greater initial coverage for less common business scenarios. They inform changes to the automated test suites and are used when bug fixes are verified
  • Performance, stress, and/or security testing will be performed by the QA Lead and developers for high risk areas.