Модифицированный инструмент анализа условий / покрытия решений в Java
Существуют ли какие-либо инструменты с открытым исходным кодом для анализа изменения условий / решений в Java.
Я посмотрел на Коберту, и кажется, что он обеспечивает только условное покрытие.
Я заинтересован в проведении анализа, описанного здесь
http://sunnyday.mit.edu/papers/dupuy.pdf
http://en.wikipedia.org/wiki/Modified_condition/decision_coverage
Чтобы удовлетворить критерию покрытия MC/DC, во время тестирования все нижеприведенное должно быть верно хотя бы один раз [1]:
* Each decision tries every possible outcome * Each condition in a decision takes on every possible outcome * Each entry and exit point is invoked * Each condition in a decision is shown to independently affect the outcome of the decision
1 ответ
MC/DC - покрытие нескольких условий / решений
Каждая точка входа и выхода в программе вызывается по крайней мере один раз, каждое условие в решении в программе принимало все возможные результаты по крайней мере один раз, и было показано, что каждое условие влияет на результат этого решения независимо. Показано, что условие влияет на результат решения независимо, изменяя только это условие, оставляя фиксированными все другие возможные условия. [Wikipedia MC/DC - en.wikipedia.org/wiki/Modified_condition/decision_coverage]
CodeCover
http://codecover.org/features/coverage.html
CodeCover заявляет, что также проверяет наличие MC/DC, они называют это Термин Покрытие в смысле термина Людвиг. Я пытался найти дополнительную информацию о терминах Ludewig, но не смог найти никакой полезной информации об этом.
Срок покрытия (CodeCover)
Термин покрытия покрытия проверяет булеву семантику короткого замыкания, например, решения, связанные с побочными эффектами, которые не всегда оцениваются:
if (expressionA && myfunc(b)) {
do_something();
}
[Wikipedia Оценка короткого замыкания - en.wikipedia.org/wiki/Short-circuit_evaluation]
Если expressionA имеет значение false, myfunc(b) не будет выполнен. Это обычная техника для написания более быстрого кода, но это рискованно, потому что myfunc (b) может внести некоторые изменения в среду, которые могут быть легко отслежены разработчиками и, таким образом, создавать небезопасный код.
Из моего понимания термин покрытие проверяет, что expressionA оценивается как true и false, так что myfunc (b) выполняется хотя бы один раз.
Testwell CTC++
http://www.verifysoft.com/en_ctcpp.html
- Проприетарное программное обеспечение с лицензиями от 4100 € до 8800 €
- Кажется, для поддержки C, C++, Java, C#
- Поддерживает все компиляторы
- Соответствие требованиям DO 178-C / ED-12C (аэрокосмическая техника), EN 50128 (железная дорога), IEC 61508 (электронные системы, связанные с безопасностью), IEC 62304 (медицинское), ISO 26262 (автомобильное), IEC 60880 (ядерная энергетика) и др. стандарты качества.
PS: мне не хватило репутации, чтобы опубликовать более двух ссылок, поэтому я сделал их непробиваемыми. Но они все еще важны в средствах цитирования.