Мегаобучалка Главная | О нас | Обратная связь


ТЕСТИРОВАНИЕ ПРОГРАММНОГО ПРОДУКТА



2019-10-11 3210 Обсуждений (0)
ТЕСТИРОВАНИЕ ПРОГРАММНОГО ПРОДУКТА 5.00 из 5.00 3 оценки




Общая характеристика тестирования и его цикл

 

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

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

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

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

 

Принципы тестирования

 

 Тестирование проводится по специально подготовленным тестам, которые включают:

1) конкретные значения всех необходимых входных данных;

2) ожидаемые конкретные значения всех выходных данных, рассчитанных по допустимым входным данным вручную или с использованием специальных программ;

3) описание ожидаемой реакции программы на неверные входные данные.

Однократное исполнение программы с использованием теста называется тестовым прогоном. Г. Майерс дает следующее определение: «Тестирование – это процесс исполнения программы с целью обнаружения ошибок». Отсюда следует несколько основных выводов:

1) тестирование – процесс деструктивный, т. е. направленный на то, чтобы добиться получения неправильных результатов или отказа программы;

2) удачным считается тестовый прогон, который позволил обнаружить ошибку;

3) следует проверить, все ли функции программа выполняет правильно;

4) программу надо тестировать при неправильных и недопустимых входных данных;

5) необходимо проверять, не выполняет ли программа побочные, не предусмотренные разработчиком, функции;

6) необходимо, чтобы тестирование программы проводилось как самим разработчиком, так и незаинтересованным лицом;

7) результаты применения каждого теста должны быть зафиксированы и тщательно проанализированы;

8) чем больше ошибок обнаружено в некоторой части программы, тем больше вероятность обнаружения в ней новых ошибок.

 

Аксиомы тестирования

 

Тестирование должно начинаться с определения целей.

Хорошим считается тест, для которого высока вероятность найти еще не выявленную ошибку.

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

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

Тесты должны проверять выполнение всех функций программы.

Тесты должны проверять наличие непредусмотренных функций.

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

Результаты выполнения каждого теста должны быть оформлены документально и проанализированы.

Нельзя изменять программу, чтобы облегчить ее тестирование.

 

Виды тестирования

Модульное тестирование. Этот вид тестирования представляет собой процесс проверки отдельных программных процедур и подпрограмм, входящих в состав программ или программных систем. Модульное тестирование производится непосредственным разработчиком и позволяет проверять все внутренние структуры и потоки данных в каждом модуле. Этот вид тестирования является частью этапа разработки. При модульном тестировании выполняется набор тестов, определяемый разработчиком так, чтобы охват тестированием каждого модуля быть не менее 70 – 75 %.

Элементами модульного тестирование являются:

1) синтаксическая проверка — проверка с использованием некоторого инструментального средства для выявления синтаксических ошибок в программном коде;

2) проверка соответствия стандартам кодирования — проверка кода на соответствие стандартам кодирования компании;

3) технический обзор программного кода.

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

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

Элементами интеграционного тестирования являются:

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

2) проверка промежуточных результатов — проверка всех промежуточных результатов и файлов на наличие и корректность;

3) проверка интеграции — проверка того, что модули передают друг другу информацию корректно.

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

Системное тестирование. Этот вид тестирования предназначен для проверки программной системы в целом, ее организации и функционирования на соответствие спецификациям требований заказчика. Его проводит независимый тестировщик после успешного завершения интеграционного тестирования.

Элементами системного тестирования являются:

1) граничное тестирование — тестирование в граничных условиях;

2) прогоночное тестирование — тестирование всех функциональных характеристик реальной работы системы;

3) целевое тестирование — тестирование на целевой платформе (по возможности);

4) проверка документации — проверка пользовательской документации на корректность;

5) другие тесты, определяемые тестировщиком.

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

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

1) проверка инсталляции — проверка на ясность и корректность инструкций по инсталляции;

2) проверка документации — проверка того, что вся необходимая документация полностью подготовлена и готова к передаче заказчику.

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

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

 

Методы тестирования

 

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

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

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

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

Метод «большого скачка» заключается в том, что все модули сначала тестируются автономно, затем одновременно интегрируются в систему. Метод является наиболее неприемлемым: заглушки следует создавать для каждого модуля, ошибки в сопряжениях не обнаруживаются до последнего момента, выявленные ошибки трудно локализовать.

Сравнительная оценка стратегий приведена в таблице:

  Восходящая   Нисходящая   Метод большого скачка Метод сэндвича
Сборка Рано Рано Поздно Рано
Время до появления работающего варианта Поздно Рано Поздно Рано
Потребность в заглушках Средняя Средняя Высокая Низкая
Параллелизм в начале работы Средний Низкий Высокий Высокий
Возможность тестировать отдельные пути Легко Трудно Трудно Легко
Возможность планировать и контролировать последовательность Легко Трудно Легко Трудно

 

 

Проектирование тестов

 

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

Хороший тест должен удовлетворять следующим требованиям:

1) должна быть достаточной вероятность выявления тестом ошибки.

2) Целью тестирования является поиск возможных ошибок. Поэтому, разрабатывая тестовые примеры, необходимо проанализировать все возможные варианты сбоев программы или ее некорректной работы;

3) набор тестов не должен быть избыточным. Если два теста предназначены для выявления одной и той же ошибки, то достаточно выполнить только один из них;

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

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

 



2019-10-11 3210 Обсуждений (0)
ТЕСТИРОВАНИЕ ПРОГРАММНОГО ПРОДУКТА 5.00 из 5.00 3 оценки









Обсуждение в статье: ТЕСТИРОВАНИЕ ПРОГРАММНОГО ПРОДУКТА

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

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



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (3210)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.006 сек.)