Предполагает составлять тесты, изучая только логику программы.
Предполагает составлять тесты только на основе внешних спецификаций.
Существует два похода к тестированию.
Никогда нельзя изменять программу с целью облегчения ее тестирования.
Тестирование нужно поручать самым способным программистам.
По мере роста числа ошибок, обнаруженных в программе, растет относительная вероятность существования в ней необнаруженных ошибок.
Нужно детально изучать результаты каждого теста.
Нужно готовить тесты как для правильных, так и для неправильных входных данных.
Нужно избегать не воспроизводимых тестов, то есть не задавать в качестве входных воздействий заранее не спланированные значения, которые часто невозможно повторить при нахождении ошибок. Тесты следует документировать.
Невозможно тестировать свою собственную программу. Тестирование должно быть разрушительным процессом.
|
|
Хорош тот тест, для которого высока вероятность обнаружить ошибку, а не тот, который демонстрирует правильную работу программы.
Тестирование программного обеспечения.
Тестирование – это процесс выполнения программы с намерением найти ошибки. Если цель – показать отсутствие ошибок, то их будет найдено немного, если цель – показать наличие ошибок, то их будет найдено значительно больше. Отладка – это процесс установления точной природы уже найденной ошибки и ее исправление. Результат тестирования является исходными данными для отладки. Фундаментальные принципы тестирования отражены в следующих аксиомах тестирования.
2. Одна из самых сложных проблем при тестировании – решить, когда надо закончить, то есть как выбрать минимум тестов, дающих максимальную отдачу.
4. Необходимая часть любого теста – описание ожидаемых выходных данных и результатов, то есть ожидаемые результаты тестирования нужно определять заранее, до написания программы.
1. Руководствуясь внешними спецификациями, нужно подготовить тест для каждой ситуации, вызывающей внешние эффекты, для каждой границы областей допустимых значений входных и выходных данных, для всех недопустимых условий. Если входных параметров немного и они имеют мало различных значений, имеет смысл перебрать все входные комбинации. Если входные аргументы ограничены некоторым диапазоном значений, то проверяют работу на границах области допустимых значений и в нескольких внутренних точках. Многие программы имеют функциональные границы. (Например, модуль выполняет сортировку чисел. Функциональные границы: массив пуст или содержит один элемент, массив уже отсортирован, все элементы массива – одинаковые).
|
|
2. Нужно проверить текст программы и добавить тесты с целью охвата всех условных переходов.
3. Для каждого цикла необходимо составить тесты соответствующие однократному выполнению тела цикла, максимальному числу итераций, обходу тела цикла.
4. По тесту программы необходимо выявить чувствительность к особым значениям входных данных и добавить тесты.