Студопедия

Главная страница Случайная лекция


Мы поможем в написании ваших работ!

Порталы:

БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика



Мы поможем в написании ваших работ!




Тестирование

Читайте также:
  1. Биоиндикация и биотестирование.
  2. Криптосистемы с открытыми ключами. Тестирование чисел на простоту и выбор параметров RSA
  3. Тестирование программного обеспечения (Software Testing по SWEBOK)

Кодирование модулей

 

После разработки структуры будущего программного изделия и потоков передачи информации выполняется разработка алгоритмов и кодирование модулей с использованием конкретного языка программирования. Первоначально обосновывается выбор языка программирования. Чаще всего этот выбор утверждается на этапе анализа требований заказчика. В дальнейшем выполняется разработка алгоритмов и выбор структур данных. Существует большое количество алгоритмов, поэтому использование опыта предыдущих разработок позволяет получить эффективное программное изделие.

Разработка алгоритма, как и дальнейшее кодирование, выполняется на основе методов структурного программирования, предполагающих создание улучшенных программ. Данные методы позволяют избежать логических ошибок и быстрее обнаруживать дополнительные ошибки. В основу метода заложены 4 составляющие:

1. Кодирование «сверху вниз» - создание алгоритма методом пошаговой детализации. Первоначальный вариант приближен к специфическому программному изделию. Окончательный вариант алгоритма максимально приближен к реальной программе.

2. Модульное программирование, предполагающее разделение задачи на отдельные модули с учетом искусства данного разбиения.

3. Структурное кодирование, т.е. построение алгоритма и программы на основе трех базовых структур.

4. Сквозной структурный контроль, предполагающий проверку правильности алгоритма и программы до начала этапа отладки.

После разработки алгоритма выполняется непосредственное кодирование модулей с помощью конкретного языка программирования. Завершается данный процесс отладкой модулей отдельными разработчиками.

 

 

Данный этап занимает более 30% временных затрат, выделяемых на всю разработку.

Тестирование – это процесс многократного прогона программы с целью обнаружения ошибок. Принято считать, что программа является правильной, если она удовлетворяет всем своим спецификациям. Система является надежной, если она выдает приемлемые или удовлетворительные результаты при ошибочных входных спецификациях.

Особенности тестирования программного изделия:

1. Невозможность полного перебора всех возможных тестов;

2. Отсутствие эталонов, которым должна соответствовать тестируемая программа;

3. Трудность формализации процесса тестирования ввиду большого влияния творческого начала.

Основные правила организации процесса тестирования:

1. Тестирование должно проводится не автором программы;

2. Иногда исходные данные и соответствующие выходные данные трудно связать, особенно для сложных вычислительных систем;

3. Необходимо разрабатывать входные данные, которые заранее являются ошибочными;

4. Считается, что число необнаруженных ошибок в одном модуле пропорционально числу уже обнаруженных ошибок;

5. Автоматизация процесса тестирования, предполагающая подготовку тестов в виде файлов и программ для анализа полученных результатов, а также программ для автоматизации подготовки тестовых наборов.

Выделяют 4 метода, обычно применяемых в тестировании:

1. Сквозной (т.е. проверка текста готовой программы за столом).

2. Детерминированное тестирование – многократное выполнение программы с помощью ЭВМ. При этом выделяют 2 вида тестовых наборов:

· Структурные тесты предполагают проверку структуры самой программы, т.е. считается, что должен быть проверен каждый оператор, каждая ветвь, каждый путь;

· Функциональные тесты предназначены для проверки работоспособности на основании анализа исходных спецификаций.

Первоначально выполняется автономное тестирование каждого из модулей. Модули, прошедшие автономное тестирование, подвергается комплексному тестированию, т.е. происходит их объединение с другими модулями. Заключительным этапом является системное тестирование, т.е. тестирование всей системы в целом на наборах независимых тестов.

Как и этап проектирования, тестирование системы выполняется методом пошаговой детализации (сверху вниз). Если тестирование системы выполняется сверху вниз, то для каждого неоттестированного модуля, находящегося на уровень ниже, разрабатывается программа, имитирующая работу вызываемого модуля (заглушки). Если тестирование ведется снизу вверх, то программа имитирующая вызов тестируемого модуля, называется драйвером. После определения ошибок в модулях выполняется их исправление, т.е. отладка программы.

3. Стохастическое тестирование, основой которого является подготовка в качестве тестов случайных наборов данных;

4. Тестирование в реальном масштабе времени, когда проверка работы программного изделия проводится на рабочем месте с учетом времени поступления данных, длительности и приоритетности их обработки.

Этап тестирования принято считать завершенным, если:

1. Налицо явное уменьшение количества ошибок;

2. Программное изделие достигло требуемого уровня надежности;

3. Истекло время, выделенное на данный этап.

Большинство данных о количестве ошибок и частоте их появления используется при анализе надежности программного изделия.

 

Рассмотрим детерминированное тестирование. В детерминированном тестировании выделяют два подхода:

    • структурный – метод “ белого ящика”. В этом случае считается, что логика программы известна. Тестовые наборы разрабатываются в соответствии с оператором программы.
    • Функциональный - метод “ черного ящика”. В этом случае считается, что логика программы неизвестна. Для каждого набора входных данных рассчитывается выходной результат по алгоритму.

Т.к. количество тестов растет очень быстро при использовании циклических конструкций, то выделяют понятие эффективного тестового набора (ЭТН). ЭТН называется подмножество всех тестовых наборов, которые обладают максимальной обнаруживающей способностью. При тестировании любого программного изделия разрабатывается только ЭТН.

Методы разработки ЭТН.

Для структурного подхода выделяют три основных метода:

1) Метод покрытия операторов. Разрабатывается такое количество тестов, чтобы каждый оператор в программе отработал как минимум один раз.

2) Покрытие условий. Разрабатывается такое количество тестов, чтобы каждая веточка в операторе условия ”Истина - Ложь” отработала как минимум один раз.

3) Метод комбинаторного покрытия условий. Количество тестов определяется сходя из правила: каждое условие в операторе сравнения должно принимать значение “Истина” или “Ложь” как минимум один раз.

Самым слабым является первый метод. Лучшей обнаруживающей особенностью обладает третий.

Для функционального подхода выделяют три метода.

  • Метод эквивалентных разбиений. Этот метод состоит из двух этапов: разбиение на классы эквивалентности и построение тестового набора. Классом эквивалентности называют множество входных значений, каждое из которых имеет одинаковую вероятность обнаружения определенного типа ошибки. Классы эквивалентности строятся путем анализа входных значений. В результате все данные разбиваются на две или более группы и заполняется следующая таблица.

 

Входные условия Правильные классы эквивалентности – это классы, удовлетворяющие входным условиям Неправильные классы эквивалентности т.е. ошибочные входные данные
     

 

Принято разбивать на классы эквивалентности исходя из следующих принципов:

1) Когда входные данные принадлежат области значений. Например, имя файла в MS-DOS должно содержать от одного до восьми символов. Выделяют один правильный класс эквивалентности (когда имя от одного до восьми символов) и два неправильных класса эквивалентности (когда имя отсутствует или когда больше восьми символов).

2) Когда входные данные имеют перечень конкретных значений. В этом случае для каждого значения выделяется свой правильный класс эквивалентности.

3) Когда входное значение описывается фразой “должно быть”. Например первым символом в имени переменной д.б. буква. Разрабатывается один правильный класс эквивалентности, когда первый символ – буква и один неправильный класс эквивалентности, когда первый символ – не буква. Количество тестовых наборов разрабатывается исходя из следующего принципа: для всех правильных классов эквивалентности разрабатывается минимальное количество тестовых наборов. Для каждого неправильного класса эквивалентности свой тестовый набор.

 

· Метод граничных значений – предполагает исследование ситуаций, возникающих на границе диапазона вводимых данных.

· Метод функциональных диаграмм. Он заключается в преобразовании входных данных в функциональную диаграмму. При построении диаграммы используется: причинно-следственные связи и Булевы отношения. Построение состоит из 5 этапов:

1. для программы определяется причины и следствия. Причинами являются определенные комбинации входных данных. Следствиями – результаты работы системы. Каждой причине и следствию присваивается уникальный номер.

2. все следствия связаны с причинами Булевыми отношениями. Первое отношение а↔в. В истина, если а истина. Если в ложь, то и а ложь. Второе отношение – отрицание. В истина, если а ложь. Третье отношение – или. Д истина, если хотя бы одна из причин а, в, с истина, в противном случае д ложь. Четвертое отношение – и. Д истина, если а, в, с истина, в противном случае д ложь.

3. В случае необходимости на диаграмму накладывается ограничения. Ограничения м.б. следующие.

· Ограничение е показывает, что причины а и в не могут поступать одновременно.

· Ограничение и показывает, что хотя одна из причин обязательно истина.

· Ограничение R устанавливает, что причины а и в д.б. истинны одновременно.

· Ограничение M на следствие. Если следствие с истина, то второе следствие д обязательно д.б. ложно или наоборот.

 

4.По полученной диаграмме строится таблица, в которой поочередно каждое следствие принимает значение истина. Затем по линиям графа отслеживается обратный путь к причине.

5. По каждому столбцу таблицы разрабатываются тесты. Например, надо сформировать два файла для студентов заочного отделения по специальности: “Менеджмент” и ”БУ”.

ЗМ –ФМ, ЗБ- ФБ. Причины: первая буква З, вторая буква М, вторая буква Б. Следствия: сформирован файл по менеджменту, сформирован файл по БУ, ошибка в первом символе имени, ошибка в втором символе имени.

 

Причины -
- -
- -
Следствия - - -
- - -
- - -
- - -

 

 


<== предыдущая страница | следующая страница ==>
Проектирование | Управление разработкой программного продукта

Дата добавления: 2014-03-04; просмотров: 432; Нарушение авторских прав




Мы поможем в написании ваших работ!
lektsiopedia.org - Лекциопедия - 2013 год. | Страница сгенерирована за: 0.004 сек.