Cross-platform software libraries and APIs
Qt Creator IDE and productivity tools
UI Design tool for UI composition
for Qt projects
Digital advertising for UI apps
Usage intelligence for embedded devices
GUI test automation
Code coverage analysis
Test results management and analysis
Software static code analysis
Software architecture verification
The latest version of Qt.
Make the most of Qt tools, with options for commercial licensing, subscriptions, or open-source.
Explore Qt features, the Framework essentials, modules, tools & add-ons.
The project offers PySide6 - the official Python bindings that enhance Python applications.
Qt empowers productivity across the entire product development lifecycle, from UI design and software development to quality assurance and deployment. Find the solution that best suits your needs.
Insight into the evolution and importance of user-centric trends and strategies.
Learn how to shorten development times, improve user experience, and deploy anywhere.
Tips on efficient development, software architecture, and boosting team happiness.
Get the latest resources, check out upcoming events, and see who’s innovating with Qt.
A wealth of Qt knowledge at your fingertips—discover your ideal learning resource or engage with the community.
Whether you're a beginner or a seasoned Qt pro, we have all the help and support you need to succeed.
In the MCC coverage metric, all statements must be executed and all combinations of truth values in each decision must occur at least once to reach full coverage. The coverage of a program is the number of executed statement blocks and condition combinations divided by their total number in the program.
A C/C++ function with a decision based on a composed set of conditions nicely shows the difference between MCC and plain Condition Coverage:
bool isValidPosition(int x, int y, int z)
{
if ((x > 10 || y > 20) && z > 0)
return true;
else
return false;
}
For 100% MCC all combinations of truth values for the tree boolean expressions x > 10, y > 20 and z > 0 need to be exercised. One might expect 23 = 8 tests to be needed. Languages like C, C++, C# and JavaScript perform a so called short-circuit evaluation: If x > 10 evaluates to TRUE the expression y > 20 won’t be evaluated anymore. Likewise, if neither x > 10 nor y > 20 is TRUE z > 0 won’t be valuated anymore as it cannot change the decision anymore.
As a result the number of possible combinations and number of needed tests for 100% Multiple Condition Coverage is reduced to these five:
x > 10 | y > 20 | z > 0 |
---|---|---|
FALSE | TRUE | TRUE |
TRUE | TRUE | |
FALSE | TRUE | FALSE |
TRUE | FALSE | |
FALSE | FALSE |
The number of possible combinations can ‘explode’ in light of big numbers of conditions. To mitigate this problem the Modified Condition/Decision Coverage metric was created.
Multiple Condition Coverage is also known as Multicondition Coverage and Condition Combination Coverage.
100% Multiple Condition Coverage implies 100% Modified Condition/Decision Coverage, 100% Condition Coverage and so forth.
Unlike Condition Coverage a) all possible combinations and b) the decision outcomes are considered.
EN 50128 recommends MCC (or Modified Condition/Decision Coverage) for SIL 1 and 2. For SIL 3 and 4 this level is even highly recommended.
Qt Group includes The Qt Company Oy and its global subsidiaries and affiliates.