![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Курск -2014Стр 1 из 4Следующая ⇒
В.Н. ЛОПИН Методические указания к выполнению контрольной работы по дисциплине «Программная инженерия» для студентов, обучающихся по направлению «Бизнес-информатика»
Тема: Тестирование ПО на основе стратегии «Белого ящика»
Курск -2014
Содержание
1. Теоретическая часть. Виды тестирования. ……………………………….…. 3 2. Стратегия «белого ящика»………………………………………………….… 6 · Метод покрытия решений ………………………………………….…...6 · Метод комбинаторного покрытия условий ……………………….… 10 3. Структура контрольной работы …………………………………………...…15 4. Пояснения к выполнению контрольной работы ……………………….........15 5. Приложение 1 ………………………………………………………………….17 6. Приложение 2 ………………………………………………………………….18 7. Приложение 3 ………………………………………………………………….19 1. Теоретическая часть. Виды тестирования Тестирование программного обеспечения включает в себя целый комплекс действий, аналогичных последовательности процессов разработки программного обеспечения. В него входят: • постановка задачи для теста; • проектирование теста; • написание тестов; • тестирование тестов; • выполнение тестов; • изучение результатов тестирования. Наиболее важным является проектирование тестов. Существуют разные подходы к проектированию тестов. Первый состоит в том, что тесты проектируются на основе внешних спецификаций программ и модулей, программа при этом рассматривается как «черный ящик». Смысл теста заключается в том, чтобы проверить, соответствует ли программа внешним спецификациям. При этом содержание модуля не имеет значения. Такой подход получил название — стратегия «черного ящика». Второй подход — стратегия «белого ящика», основан на анализе логики программы. При таком подходе тестирование заключается в проверке каждого пути, каждой ветви алгоритма. При этом внешняя спецификация во внимание не принимается. Ни один из этих подходов не является оптимальным. Реализация тестирования методом «черного ящика» сводится к проверке всех возможных комбинаций входных данных. Невозможно протестировать программу, подавая на вход бесконечное множество значений, поэтому ограничиваются определенным набором данных. При этом исходят из максимальной отдачи теста по сравнению с затратами на его создание. Она измеряется вероятностью того, что тест выявит ошибки, если они имеются в программе. Затраты измеряются временем и стоимостью подготовки, выполнения и проверки результатов теста. Тестирование методом «белого ящика» также не дает 100%-ной гарантии того, что модуль не содержит ошибок. Даже если предположить, что выполнены тесты для всех ветвей алгоритма, нельзя с полной уверенностью утверждать, что программа соответствует ее спецификациям. Например, если требовалось написать программу для вычисления кубического корня, а программа фактически вычисляет корень квадратный, то реализация будет совершенно неправильной, даже если проверить все пути. Вторая проблема — отсутствующие пути. Если программа реализует спецификации не полностью (например, отсутствует такая специализированная функция, как проверка на отрицательное значение входных данных программы вычисления квадратного корня), никакое тестирование существующих путей не выявит такой ошибки. И наконец, проблема зависимости результатов тестирования от входных данных. Одни данные будут давать правильные результаты, а другие нет. Например, истинность выражения вида A + B+C/3 = A зависит от конкретных значений переменных А, В и С.Если концентрировать внимание только на тестировании путей, нет гарантии, что эта ошибка будет выявлена. Таким образом, полное тестирование программы невозможно, т. е. никакое тестирование не гарантирует полное отсутствие ошибок в программе. Поэтому необходимо проектировать тесты таким образом, чтобы увеличить вероятность обнаружения ошибки в программе. В контрольной работе необходимо провести тестирование на основе стратегии «белого ящика». Технология такого тестирования рассматривается на двух конкретных примерах схем алгоритмов, отражающих особенности этой стратегии. В приводимых схемах алгоритмов используется проверка выполнения некоторых условий для определения дальнейшего пути вычислительного процесса. Эти условия записываются с помощью соответствующих логических выражений, использующих операцию логического умножения – and, и операцию логического сложения – or. Ниже приведены все возможные результаты (1, 0) выполнения этих операций в зависимости от входных значений (Ложь, Истина).
(Ложь) and (Ложь) = 0 (Ложь) or (Ложь) = 0 (Ложь) and (Истина) = 0 (Ложь) or (Истина) = 1 (Истина) and (Ложь) = 0 (Истина) or (Ложь) = 1 (Истина) and (Истина) = 1 (Истина) or (Истина) = 1 2. Стратегия «белого ящика» Можно выделить, прежде всего, следующие методы тестирования в этой стратегии: • покрытие решений; • комбинаторное покрытие условий.
|