Методы и средства инженерии программного обеспечения

Организация подготовки тестов


                                  

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

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

 

Создаются  тесты, проверяющие:

– полноту функций;

– согласованность интерфейсов;  

– корректность выполнения функций и правильность функционирования системы в заданных условиях;

– надежность выполнения системы;

– защиту  от сбоев аппаратуры и не выявленных ошибок и др.

Тестовые данные готовятся как  для проверки  отдельных  программных элементов, так и для групп  программ или комплексов на разных стадиях процесса разработки. На рис. 7.5 приведена классификация тестов проверки по  объектам тестирования на основных стадиях  разработки.

Многие типы тестов готовятся заказчиком для проверки работы программной   системы.  Структура и содержание  тестов  зависят  от вида тестируемого элемента,  которым может быть: модуль, компонента,  группа  компонент,  подсистема  или система. Некоторые тесты зависят от цели и необходимости знать: работает ли система   в   соответствии  с  ее  проектом,    удовлетворены ли требования и участвует ли заказчик в проверке работы тестов и т.п.

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



         спецификаций          программ                  комплекса               при испытаниях




          Тесты проверки:                Тесты проверки:                Тесты проверки:                    Тесты проверки:

           – полноты и согласо–         – структуры програм–       –– структуры комплек–         – соответствия  тре–

              ванности функций;             мы;                                      са;                                         бованиям;

         – согласованности          – вычислений  и пре–       –  интерфейса  компо–          –  удобства установки

           интерфейсов                    образования данных;            нент;                                     рабочей версии;

                                                        – полноты  выполняе–       –   ограничений по                 – работы комплекса

                                                          мых функций                      памяти;                                  на оборудовании;

                                                                            – длительности испо–          – удобства интерфей–

                                                                                нения;                                 са пользователя;

                                                                             – полноты решения             – удобства модифика–

                                                                               задач комплекса            ции и сопровождения

                                      Рис.7.5   Классификация тестов проверки

В зависимости  от  задач, которые  ставятся  перед  тестированием программ, эта команда составляет тесты  проверки промежуточных результатов проектирования элементов системы на  стадиях ЖЦ, а также создает тесты испытаний окончательного кода системы.

 

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



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

Первый шаг этого процесса – интеграция элементов, которая  основывается на интеграционных тестах, создаваемых по спецификациям проекта. Рассмотрим  этот шаг более подробно  на примере схемы (рис. 7.4)  интеграции отдельных элементов.

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

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

Согласно приведенной  схеме,   вначале   тестируются  компоненты А, В, D     независимо друг от друга и каждая с отдельным тестом. После  их проверки  выполняется   следующий  шаг – проверка интерфейсов для последующей их интеграции, суть которой заключается в анализе выполнения  операторов  вызова                                А   à   E,    B à C,   D à G, на нижних уровнях  графа: компоненты – Е, С, G. При этом предполагается, что указанные вызываемые  компоненты так же должны быть  отлажены отдельно. Аналогично  проверяются все обращения  к компоненте F, являющейся связывающим звеном  с вышележащими элементами.



                              Тести –                          Тести–                            Тести–

                            рование                         рование                           рование

                                   А                                   В                                       D



                                  Тести–                          Тести–                          Тести–



                                рование                       рование                       рование

                                    А, Е                             В,  С                            D,  G



                                                                              F

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

                                                            интеграции элементов

                                                                 A, B, C, D, E, G      

                             Рис.7.4.  Интеграционное тестирование  компонент

                         

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

Следующим    шагом    тестирования системы  является проверка      функционирования системы с помощью тестов проверки   функций    и    требований  к ним. После   проверки   системы  на  функциональных  тестах   идет   проверка системы  на исполнительных и  испытательных   тестах, подготовленных согласно  требований к ПО,   аппаратуре и  выполняемым функциям. Испытательному тесту предшествует  верификация и  валидация ПО.

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


Содержание раздела