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.
The modified condition/decision coverage (MC/DC) coverage is like condition coverage, but every condition in a decision must be tested independently to reach full coverage. This means that each condition must be executed twice, with the results true and false, but with no difference in the truth values of all other conditions in the decision. In addition, it needs to be shown that each condition independently affects the decision.
With this metric, some combinations of condition results turn out to be redundant and are not counted in the coverage result. The coverage of a program is then then number of executed statement blocks and non-redundant combinations of condition results divided by the number of statement blocks and required condition result combinations.
A sample C/C++ function with a decision composed of OR and AND expressions illustrates the difference between Modified Condition/Decision Coverage and a coverage of all possible combinations as required by MCC:
bool isSilent(int *line1, int *line2)
{
if ((!line1 || *line1 <= 0) && (!line2 || *line2 <= 0))
return true;
else
return false;
}
For 100% Multiple Condition Coverage a total of seven tests would be required. The “modified” requirements of MC/DC, on the other hand, reduces the number of required tests to the five listed below:
!line1 | *line1 < 0 | !line2 | *line2 < 0 | Decision |
---|---|---|---|---|
TRUE | FALSE | TRUE | TRUE | |
TRUE | FALSE | FALSE | FALSE | |
FALSE | TRUE | TRUE | TRUE | |
TRUE | TRUE | TRUE | ||
FALSE | FALSE | FALSE |
For completeness here are the two tests that MCC would require in addition:
!line1 | *line1 < 0 | !line2 | *line2 < 0 | Decision |
---|---|---|---|---|
FALSE | TRUE | FALSE | TRUE | TRUE |
FALSE | TRUE | FALSE | FALSE | FALSE |
ISO 26262 recommends MC/DC for ASIL A, B, C and highly recommends this method for ASIL D.
EN 50128 recommends MC/DC (or Multiple Condition Coverage) for SIL 1 and 2. For SIL 3 and 4 this level is even highly recommended.
DO 178C mandates that MC/DC should be satisfied with independence for Software Level A.
IEC 61508 recommends MC/DC for SIL 1, 2 and 3 and highly recommends this level for SIL 4.
Qt Group includes The Qt Company Oy and its global subsidiaries and affiliates.