Three levels of test coverage for the customer-side system testers

Three levels of test coverage for the customer-side system testers

Systems testers are under constant pressure to complete their work faster. If they work for system supplier, they prevent product from being shipped and the project manager from reporting a milestone. If they are on the customer side, they prevent the system from being used and the acquisition manager from reporting a milestone. 

Signing off the milestone is extremely tangible with tangible benefits for the managers, so the testers are under constant pressure to test faster. On the other hand, the testing quality is extremely intangible and very hard to explain, especially when the testers themselves are not sure what is test quality anyway.

In software business, test coverage metrics provide partial cure. "Don't ship - we've just tested 70% of the code" may convince the project manager to add few more testing days. "We've only tested 80% of customer's requirements" is even better. But what about customer-side testers? How can they justify their testing time, when the supplier reports completed testing with all contractual requirements covered?

Customer-side testers need to ensure that the system will perform adequately in all possible proper usage scenarios' and it will not punish improper use too severely - no death sentence is justified even for using an explosive device as a hammer. But how does one account for all possible use scenarios?

For the start, some job is already done by systems engineers and systems designers. The system performance in proper usage scenarios should be captured in system requirement documentation. When the systems engineering job is of low quality , the requirements don't cover all possible uses leading to inadequate design or engineering coverage. Given the final system design, experienced testers can improve the engineering coverage by thinking about unanticipated use scenarios and augmenting the requirement specification -  reverse engineering the system requirements.

The second type of coverage is the conventional one - statistical coverage of parametrized requirements. The Design of Experiments may help, but the requirements have to be formally defined its mathematics to be effective - "in certain environment parameter range and in certain system state parameter range, certain event will lead to certain (adequate) outcome range".

The third type of coverage is risk or project coverage. It is perfectly valid for managers to take risks to meet time or financial constraints, so they are allowed to authorize an insufficiently tested system. In such case, the system tester job is to quantify residual risks to facilitate rational decisions, lest the decisions will be made on the basis of the manager's experience, heuristics or simple bravery. The possible method of working with the risk coverage is presented in Avner Engel's book "Verification, Validation, and Testing of Engineered Systems" and the accompanying software tool.

To summarize, three distinct types of test coverage should be considered:

  • the design or engineering coverage provided by up-front systems engineering augmented by reverse engineering by system testers,
  • the conventional statistical coverage of formalized requirements using Design of Experiments mathematics and
  • the risk or project coverage facilitating rational decisions in the case of incomplete testing.

All that remains is to design methods to measure and employ these types of coverage.

You are right! I found out that it is very hard to met tight deadlines of a project and do all necessary tests with full coverage. But, I this this is the most entertaining part of tester.

Like
Reply

To view or add a comment, sign in

More articles by Sergey Tozik

  • Do we serve machines or use them as tools?

    I have recently attended two presentations focused on user experience. Both presentations described how the system's…

    3 Comments
  • Autonomous Cars? What about Autonomous People? Beware of becoming an Operator.

    Public interest has turned recently to the automobile industry's race to bring us driver-less cars and other autonomous…

    2 Comments
  • Ghost in the Machine - Integrative Engineering merges social, virtual and physical

    Systems Engineering and Software Engineering develop side-by-side for several decades, starting from a need for coping…

  • What is a Capability?

    In the previous post I announced the discovery of a lost tribe of Capability Engineers. Now it's the time to learn what…

  • The lost tribe of Capability Engineers

    Are you an engineer working for a hospital? For an educational institution? For a business? May it be that you're a…

  • Who's the Fighter here?

    In Soviet era song by Vladimir Vysotzky the WWII aircraft takes credit of being the fighter on its pilot's expense: I'm…

    6 Comments
  • Amazing Vanishing QA Act

    Recently I've listened to a talk delivered by one of Fiverr's engineers about their incremental change to…

    10 Comments
  • Do you do what you think you do?

    Responding to Niels Malotaux post about five processes, I'd like to propose 3x2 process types on three levels of…

  • Blade Runner lessons on Systems Maintenance

    Sometimes Systems Engineers refer to System Maintenance as a process ensuring that the system still meets it…

  • The Martian view on Systems Engineering

    It's good to use movies as a teaching tool - they can convey a point better than a slideshow, if you can find the right…

    10 Comments

Others also viewed

Explore content categories