Покрытие путей и покрытие ветвейJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Покрытие путей и покрытие ветвей

Сообщение Anonymous »

Я работаю над классом Java, в котором я хочу, чтобы метод содержал ошибку деления на ноль и как минимум две ветви, чтобы (1) можно было создать набор тестов, который обеспечивает 100% покрытие пути и не выявить ошибку, и (2) каждый возможный набор тестов, обеспечивающий 100%-ное покрытие ветвей, выявляет ошибку.
В простой реализации что-то вроде этого:

Код: Выделить всё

int i;
read(i);
print(10/i-3);
Я мог бы использовать набор тестов (1,-5), (-1,2.5) и (0,-3). Это обеспечивает 100% покрытие пути и не выявляет ошибку деления на 0. При попытке сделать это, используя как минимум две ветки, мои решения продолжают давать неверные результаты.

Код: Выделить всё

public static void dbz(int x, int y) { // Change the signature as needed
if (x > 0) {
if (y > 0) {
int result = 99 / (x - x); // This will cause division by zero if executed
System.out.println(result);
} else {
System.out.println("Branch 1");
}
} else {
System.out.println("Branch 2");
}
}
Здесь для 100% покрытия пути потребуются x > 0 и y > 0, что приведет к обнаружению моего деления на нулевой путь.
Вопрос, который я задаю я пытаюсь ответить:
Создайте в классе ThisIsAClass метод под названием ThisIsAClass1, который содержит ошибку деления на ноль и как минимум две ветви, так что (1) можно создать тест набор, который обеспечивает 100% покрытие пути и не выявляет ошибку, и (2) каждый возможный набор тестов, который достигает 100% покрытия ветвей, выявляет ошибку.
Метод может иметь любую сигнатуру.
Если вы считаете, что невозможно создать метод, отвечающий обоим требованиям, то:
Создайте пустой метод.
Добавьте комментарий в (пустое) тело метода, который кратко, но убедительно объясняет, почему создание такого метода невозможно.
И наоборот, если вы смогли создать метод, создайте два тестовых класса JUnit следующим образом:
ThisIsAClassTestPC1 должен достичь 100% пути охват нестабильного метода1 и не выявлять в нем ошибку.
ThisIsAClassTestBC1 должен достичь 100 % покрытия ветки нестабильного метода1 и выявить ошибку в нем.

Подробнее здесь: https://stackoverflow.com/questions/787 ... h-coverage
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Покрытие ветвей метода приостановки не может достигать 100 %.
    Anonymous » » в форуме Android
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Покрытие ветвей метода приостановки не может достигать 100 %.
    Anonymous » » в форуме Android
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Покрытие ветвей метода приостановки не может достигать 100 %.
    Anonymous » » в форуме Android
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Предупреждение: необходимо установить XDEBUG_MODE=покрытие или xdebug.mode=покрытие.
    Гость » » в форуме Php
    0 Ответы
    64 Просмотры
    Последнее сообщение Гость
  • Прогнозирование ветвей и UB (неопределенное поведение)
    Anonymous » » в форуме C++
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»