Чтобы показать, что основные системы безупречны, вы либо
а) Нужно доказать, что они безупречны
- Математическое доказательство
- Реально возможно только для тривиальных программ
б) сделать исчерпывающий тест
- Возможно только для тривиальных программ и некоторых простых программ
- Как только элемент синхронизации входит в тест, невозможно провести исчерпывающий тест, поскольку время может быть разделено на неопределенное время.
- За тривиальными программами возможные варианты выполнения растут в геометрической прогрессии.
В тестировании программного обеспечения исчерпывающий тест используется только в модульном тестировании некоторых простых функций.
Пример: вы хотите протестировать 8-символьный ввод utf-8 в какое-то поле, вы делаете выбор, чтобы обрезать ввод в 8 раз по сравнению с максимальной длиной 6 utf-8 в байтах, что дает 8 * 6 = 48 байтов, чтобы фактически иметь конечное количество возможностей.
Теперь вы можете подумать, что вам нужно только протестировать 1,112,064 действительных кодовых точек каждого из 8 символов, т.е. 1,112,064 ^ 8 (скажем, 10 ^ 48) тестов (что уже вряд ли возможно), но на самом деле вы должны проверить каждое значение каждого из 48 байтов или 256 ^ 48, что составляет около 10 ^ 120, что является такой же сложностью, что и шахматы по сравнению с общим числом атомов во вселенной примерно 10 ^ 80.
Вместо этого вы можете использовать в порядке возрастания усилий, и каждый тест должен охватывать все предыдущие:
а) проверить хороший и плохой образец.
б) покрытие кода, т.е. Попробуйте проверить каждую строку кода, которая относительно проста для большинства кода. Теперь вы можете задаться вопросом, что там за последний 1% кода, который вы не можете протестировать ... ошибки, мертвый код, аппаратные исключения и т. Д.
c) охват пути, тестируются все результаты всех ветвей во всех комбинациях. Теперь вы знаете, почему отдел тестирования ненавидит вас, когда ваши функции содержат более 10 условий. Также вы удивляетесь, почему последние 1% не могут быть протестированы ... некоторые ветки зависят от предыдущих веток.
d) проверка данных, проверка числа образцов с граничным значением, общими проблемными значениями и магическими числами, ноль, -1, 1, мин +/- 1, макс +/- 1, 42, rnd значения. Если это не дает вам покрытия пути, вы знаете, что вы не уловили все значения в своем анализе.
Если вы уже делаете это, вы должны быть готовы к экзамену ISTQB Foundation.