Модифицированный инструмент анализа условий / покрытия решений в 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: мне не хватило репутации, чтобы опубликовать более двух ссылок, поэтому я сделал их непробиваемыми. Но они все еще важны в средствах цитирования.

Другие вопросы по тегам