All notes


QA, QC and testing




Static, Dynamic

Reviews, walkthroughs, or inspections are referred to as static testing, whereas actually executing programmed code with a given set of test cases is referred to as dynamic testing.

Static testing involves verification, whereas dynamic testing involves validation.

Grey-box testing

Grey-box testing involves having knowledge of internal data structures and algorithms for purposes of designing tests, while executing those tests at the user, or black-box level. The tester is not required to have full access to the software's source code.

Testing levels

There are generally four recognized levels of tests: unit testing, integration testing, component interface testing, and system testing.

Unit testing

Also known as component testing.

Depending on the organization's expectations for software development, unit testing might include static code analysis, data-flow analysis, metrics analysis, peer code reviews, code coverage analysis and other software verification practices.

Integration testing

Integration testing works to expose defects in the interfaces and interaction between integrated components (modules).

Component interface testing

The practice of component interface testing can be used to check the handling of data passed between various units, or subsystem components, beyond full integration testing between those units. wcfNote: is it sub-system testing?

System testing

System testing, or end-to-end testing, tests a completely integrated system to verify that the system meets its requirements.

Operational Acceptance testing

Operational Acceptance is used to conduct operational readiness (pre-release) of a product, service or system as part of a quality management system.

Regression testing

Acceptance testing

Destructive testing

Other testings

Sanity testing determines whether it is reasonable to proceed with further testing.

Smoke testing consists of minimal attempts to operate the software, designed to determine whether there are any basic problems that will prevent it from working at all. Such tests can be used as build verification test.