Как вы узнаете, когда вы закончите захват контрольных примеров?
Вы не можете. Вы не можете получить 100%, за исключением самых тривиальных случаев. Также 100% покрытие (линий, путей, условий ...) не говорит о том, что вы достигли всех граничных условий.
Самое главное, контрольные примеры не пишут и забывают. Каждый раз, когда вы обнаруживаете ошибку, пишите дополнительный тест. Проверьте, что он не работает с оригинальной программой, проверьте, прошел ли он с исправленной программой и добавьте его в ваш набор тестов.
Отрывок из Искусство тестирования программного обеспечения Гленфорда Дж. Майерса:
- Если входное условие задает диапазон значений, запишите контрольные примеры для концов диапазона и недопустимые входные тесты для ситуаций, выходящих за пределы.
- Если входное условие задает количество значений, запишите контрольные примеры для минимального и максимального количества значений и одного под этими значениями и за их пределами.
- Используйте для каждого условия вывода рекомендацию 1.
- Используйте для каждого условия вывода рекомендацию 2.
- Если вход или выход программы является упорядоченным набором, обратите внимание на первый и последний элементы набора.
- Кроме того, используйте свою изобретательность для поиска других граничных условий
( Я вставил только минимум по соображениям авторского права. )
Пункты 3. и 4. выше очень важны. Люди склонны забывать граничные условия для выходов. 5. все в порядке. 6. действительно не помогает: -)
Короткий экзамен
Это сложнее, чем кажется. Майерс предлагает этот тест:
Программа считывает три целочисленных значения из диалогового окна ввода. Три значения представляют длины сторон треугольника. Программа отображает сообщение, в котором указано, является ли треугольник равносторонним, равнобедренным или равносторонним.
Помните, что равносторонний треугольник - это тот, в котором нет двух равных сторон, тогда как равнобедренный треугольник имеет две равные стороны, а равносторонний треугольник имеет три стороны равной длины. Кроме того, углы, противоположные равным сторонам в равнобедренном треугольнике, также равны (из этого следует, что стороны, противоположные равным углам в треугольнике, равны), и все углы в равностороннем треугольнике равны.
Напишите ваши контрольные примеры. Сколько у тебя? Майерс задает 14 вопросов о вашем наборе тестов и сообщает, что высококвалифицированные профессиональные программы в среднем 7,8 из возможных 14.