- •1. Определение термина «тестирование».
- •2. Принципы тестирования.
- •3. Классификация ошибок.
- •4. Первичное выявление ошибок.
- •5. Список вопросов для выявления ошибок при инспекции.
- •6. Ошибки обращения к данным.
- •7. Ошибки описания данных
- •8. Ошибки вычислений
- •9. Ошибки при сравнениях
- •10. Ошибки в передачах управления.
- •11. Ошибки интерфейса
10. Ошибки в передачах управления.
Сводный список вопросов таков:
1. Может ли значение индекса в переключателе превысить число переходов? Например, значение переключателя для оператора select case.
2. Будет ли завершен каждый цикл?
Будет ли каждый цикл, в конце концов, завершен? Придумайте неформальное доказательство или аргументы, подтверждающие их завершение. Хотя иногда бесконечные циклы не являются ошибкой, но лучше их избегать.
3. Будет ли завершена программа? Будет ли программа, метод, модуль или подпрограмма в конечном счете завершена?
4. Существует ли какой-нибудь цикл, который не выполняется из-за входных условий?
Возможно ли, что из-за входных условий цикл никогда не сможет выполняться? Если это так, то является ли это оплошностью?
5. Есть ли ошибки отклонения числа итераций от нормы?
Существуют ли какие-нибудь ошибки «отклонения от нормы» (например, слишком большое или слишком малое число итераций)?
11. Ошибки интерфейса
Сводный список вопросов таков:
1. Равно ли число входных параметров числу аргументов?
Равно ли число параметров, получаемых рассматриваемым методом, числу аргументов, ему передаваемых каждым вызывающим методом? Правилен ли порядок их следования? Первый тип ошибок может обнаруживаться компилятором (но не для каждого языка), а вот правильность следования (особенно, если параметры одинакового типа) является важным моментом.
2. Соответствуют ли единицы измерения параметров и аргументов?
Например, нет ли случаев, когда значение параметра выражено в градусах, а аргумента – в радианах? Или ошибки связанные с размерностью параметра/аргумента (например, вместо тонн передаются килограммы).
3. Не изменяет ли метод аргументы, являющиеся только входными?
4. Согласуются ли определения глобальных переменных во всех использующих их методах?
Выводы
Мы рассмотрели несколько решений для автоматизации процесса тестирования (и автоматизированного тестирования). Отметим, что тестирование проектов можно и проводить и без помощи специальных средств(например, редактировать тестовые случаи в блокноте, а тест - сьюиты хранить в папках). Но это неудобно для тестирования больших проектов, при работе а команде более двух человек.
Все рассмотренные продукты предназначены для тестирования функциональности(регрессионное тестирование, тестирование нового функционала), так же выполняют коммуникативную функию(тестировщик - разработчик).
Так же решения, такие как HP Software предполагают взаимодействие разработчиков и различных тестировщиков обычных, ручных(не автоматических, которые обычно тестируют функционал(регрессионное тестирование, тестирование нового функционала)), автоматизаторов тестирования(разрабатывают автоматизированные скрипты), нагрузочных, тестировщиков и, наконец, самих разработчиков.
