- •1. Роль и место тестирования в жизненном цикле разработки по.
- •Проектирование
- •Тестирование
- •2. Тестирование методами “черного, белого и серого ящика”
- •3. Понятие «качество программного продукта». Экономические и психологические аспекты тестирования.
- •4. Основные составляющие «быстрого тестирования».
- •5. Каскадная, V-образная и спиралевидная модели разработки по.
- •6. Процесс разработки требований. Свойства и категории требований.
- •8. Модульное тестирование и его методы
- •9. Структурное тестирование.
- •If_then case
- •10. Интеграционное тестирование.
- •Заключается в том, что тестирование начинается с головного модуля (a). Тогда возникает проблема передачи данных в головной модуль. Решение проблемы:
- •11. Особенности объектно-ориентированного тестирования.
- •12. Тестирование классов.
- •13. Автоматизация модульного тестирования.
- •14. Тестовые случаи и их свойства. Процесс разработки тестовых случаев.
- •15. Сходства и различия тестовых случаев для приемочного, критического и углубленного тестов.
- •16. Эквивалентирование и анализ граничных значений.
- •17. Тестовый план. Тестовая стратегия.
- •18. Статическое тестирование, его виды.
- •19. Процесс динамического тестирования.
- •20. Ошибка. Свойства ошибки.
- •21. Правила составления отчета об ошибках.
- •22. Жизненный цикл ошибки. Системы документирования ошибок.
- •23. Специфика и ограничения тестирования Web-приложений.
- •24. Приемочный тест. Критерии непрохождения приемочного теста.
- •25. Критическое тестирование. Углубленное тестирование.
- •26. Использование контрольных перечней в углубленном тестировании.
- •27. Теория модели cmm
- •28. Автоматизированное тестирование, его этапы, преимущества и недостатки.
- •Достоинства автоматизированного тестирования.
- •Необоснованные ожидания от авто-го тестирования.
- •29. Метод функциональной декомпозиции
- •30. Методы Data-driven, Keyword-driven.
If_then case
IF_THEN_ELSE DO_WHILE REPEAT_UNTIL
По построенным графам для отдельного модуля можно посчитать цикломатическое число, которое определяет сложность написанной программы.
Цикломатическое число графа (метрический показатель сложности программы): G=R(ребра) – V(вершины) + 2
Формула справедлива для замкнутого графа (существуют начальный и конечный узлы). Цикломатическое число отражает сложность графа. G>=15 недопустимо (необходимо дробить модуль).
Также оно показывает минимальное количество проходов по графу, необходимое для тестирования этого модуля.
Проход – путь по графу от первого до последнего узла.
Выбор проходов для тестирования (если общее количество проходов больше цикломатического числа) осуществляется по следующим стратегиям:
длительность исполнения прохода и число операторов в проходе
количество условных переходов (рассматриваются проходы, которые участвуют в формировании условий)
Характерна для логических программ.
10. Интеграционное тестирование.
Для проверки взаимодействия модулей можно применить 2 способа:
монолитное тестирование
пошаговое тестирование
Монолитное тестирование заключается в том, что каждый модуль тестируется отдельно. Для каждого модуля пишется 1 модуль-драйвер, который передает тестируемому модулю управление, а также пишется 1 или несколько модулей-заглушек.
Когда все модули протестируются по отдельности, их собирают вместе и тестят систему в целом.
Недостатки
требуется много дополнительных действий: написание драйверов и заглушек;
поздно обнаруживается ошибка в междумодульных взаимодействиях;
Труднее и дольше отлаживать программу.
Преимущества:
экономия машинного времени
возможность параллельной организации работы на начальной фазе тестирования.
Например для B нужно 2 заглушки, кот. будут имитировать работу модулей E и F.
Пошаговое тестирование предполагает, что модули тестируются не изолированно, а подключаются поочередно к набору уже протестированный модулей.
Существует 2 стратегии выполнения пошагового тестирования: Нисходящее и восходящее.
Нисходящее тестирование.
Заключается в том, что тестирование начинается с головного модуля (a). Тогда возникает проблема передачи данных в головной модуль. Решение проблемы:
написать несколько вариантов заглушек модуля B для различных тестов;
написать заглушку модуля B таким образом, чтобы она читала тестовые данные из внешнего файла.
Можно использовать одну из следующих стратегий подключения:
Подключить наиболее важные модули сточки зрения тестирования;
Подключить модули, осуществляющие операцию вв/выв для того, чтобы обеспечить тестовыми данными внутренние модули.
Недостатки – написание заглушек.
Наприм.: модули I и J уже подключены и на следующем шаге тестирования заглушка модуля Н меняется на реальный модуль Н. Как тогда передать тестовые данные в модуль Н? Т.к. между модулями J и имеются промежуточные модули и может оказаться невозможным передать тестовые данные, соответствующие разработанным тестам. К тому же достаточно сложно интерпретировать результаты тестирования модуля Н, т.к. между Н и I также существуют промежуточные модули.
Восходящее тестирование.
Восходящее тестирование начинается с не вызывающих другие модули (терминальных) модулей.
Стратегия подключения новых модулей также должна основываться на степени критичности данного модуля в программе.
Недостаток заключается в том, что рабочая программа не существует до тех пор, пока не будет подключен последний главный модуль (А).