There are several key points which differ coverage-based testing from usage-based statistical testing:
Usage-based statistical testing considers the objects of testing from a user’s side and pays the main attention to the usage scenarios, sequences, templates. At the same time coverage-based testing considers the objects of testing from a developer’s side and pays the main attention to covering functional or execution units.
Although the objects tested may overlap, coverage-based testing is commonly used to test and cover not very big objects; and usage-based statistical testing is commonly more appropriate for big software systems.
For big software systems, coverage-based testing is often used in early sub-stages of software testing. At the same time usage-based testing is usually used in late sub-stages of testing, such as system and acceptance testing.
Independent Verification & Validation
Although both coverage-based and usage-based testing can be used for both verification and validation test, usage-based statistical testing is more likely to be used for validation test because of their interrelation to clients and users.
Software Bug Identification
In usage-based statistical testing, software bugs that are more likely to be detected by users are also more likely to be monitored in testing, which may lead to corresponding bugs being identified and eliminated for reliability betterment. In coverage-based testing, bugs are more closely related to objects under test, leading to effectual software bug removal.
Usage-based statistical testing uses testing environment similar to that for in-field operation at client installations. At the same time coverage-based testing uses environment specifically set up for testing.
Different techniques may be used to construct models and create test cases to conduct systematic coverage-based testing. When these models are augmented with usage information, normally as the probabilities associated with checklist items, partitions and states they can be used as models for usage-based statistical testing as well.
Dedicated professional software testers normally conduct usage-based statistical testing; and coverage-based testing may be conducted by either professional testers or by developers themselves.
Client and User Roles
Usage-based statistical testing models are created with comprehensive client and user input. At the same time coverage-based testing models are often created without active client or user input.
Usage-based statistical testing uses product reliability purposes as the stop criteria; while coverage-based testing uses coverage purposes as the stop criteria.