Сообщение Re[4]: И как тестировать алгоритм? от 08.12.2014 8:57
Изменено 08.12.2014 8:58 devcoach
Здравствуйте, landerhigh, Вы писали:
L>Уменьшает, как я это показал — вместо экспоненциального закона количество тестов растет линейно.
Не уменьшает ни на единицу. Вы что, не можете понять такую простую вещь, что от разнесения методов кода меньше не стало? А раз кода столько же, то и тестов требуется столько же. Единственное, в чем это помогает — упрощает изоляцию ошибок.
Вариант 1:
Вариант 2:
Из этого примера понятно, что такое "точки перехода"? Даже когда вы доказали, что smallMethod() возвращает правильные значения, вам надо проверить, что вы правильно интегрировали его в bigMethod(), что приводит нас к тому же количеству юнит-тестов.
L>Уменьшает, как я это показал — вместо экспоненциального закона количество тестов растет линейно.
Не уменьшает ни на единицу. Вы что, не можете понять такую простую вещь, что от разнесения методов кода меньше не стало? А раз кода столько же, то и тестов требуется столько же. Единственное, в чем это помогает — упрощает изоляцию ошибок.
Вариант 1:
int bigMethod(int x, int y, int z) {
if (x ^ y == 0)
return z;
else
return -z;
}Вариант 2:
int bigMethod(int x, int y, int z) {
if (smallMethod(x, y))
return z;
else
return -z;
}
bool smallMethod(int x, int y) {
return x ^ x;
}Из этого примера понятно, что такое "точки перехода"? Даже когда вы доказали, что smallMethod() возвращает правильные значения, вам надо проверить, что вы правильно интегрировали его в bigMethod(), что приводит нас к тому же количеству юнит-тестов.
Re[4]: И как тестировать алгоритм?
Здравствуйте, landerhigh, Вы писали:
L>Уменьшает, как я это показал — вместо экспоненциального закона количество тестов растет линейно.
Не уменьшает ни на единицу. Вы что, не можете понять такую простую вещь, что от разнесения методов кода меньше не стало? А раз кода столько же, то и тестов требуется столько же. Единственное, в чем это помогает — упрощает изоляцию ошибок.
Вариант 1:
Вариант 2:
Из этого примера понятно, что такое "точки перехода"? Даже когда вы доказали, что smallMethod() возвращает правильные значения, вам надо проверить, что вы правильно интегрировали его в bigMethod(), что приводит нас к тому же количеству юнит-тестов.
L>Уменьшает, как я это показал — вместо экспоненциального закона количество тестов растет линейно.
Не уменьшает ни на единицу. Вы что, не можете понять такую простую вещь, что от разнесения методов кода меньше не стало? А раз кода столько же, то и тестов требуется столько же. Единственное, в чем это помогает — упрощает изоляцию ошибок.
Вариант 1:
int bigMethod(int x, int y, int z) {
if (x ^ y == 0)
return z;
else
return -z;
}Вариант 2:
int bigMethod(int x, int y, int z) {
if (smallMethod(x, y))
return z;
else
return -z;
}
bool smallMethod(int x, int y) {
return x ^ y == 0;
}Из этого примера понятно, что такое "точки перехода"? Даже когда вы доказали, что smallMethod() возвращает правильные значения, вам надо проверить, что вы правильно интегрировали его в bigMethod(), что приводит нас к тому же количеству юнит-тестов.