Технология тестирования программы — КиберПедия 

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

Технология тестирования программы

2021-03-17 112
Технология тестирования программы 0.00 из 5.00 0 оценок
Заказать работу

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

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

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

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

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

Тестирование - процесс деструктивный (то есть обратный созидательному, конструктивному).

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

Тестирование системы проводилось двумя методами:

· функциональное тестирование;

· метод контрольных тестов (Test - испытание, проверка) [3.3].

Функциональное тестирование, или тестирование методом черного ящика [3.4] позволяет получить комбинации входных данных, обеспечивающих полную проверку всех функциональных требований к программе. Программное изделие здесь рассматривается как «черный ящик», чье поведение можно определить только исследованием его входов и соответствующих выходов.

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

Функциональное тестирование проводилось в соответствии с планом тестирования, который был построен на основе спецификации требований к системе. Для каждого функционального требования было создано несколько тестовых сценариев и наборов входных тестовых данных, корректное выполнение которых могло бы свидетельствовать о корректной работы функции системы. Несмотря на то, что наборы входных тестовых данных были невелики, максимальное покрытие всех областей эквивалентности входных данных [3.5] позволило обнаружить практически все ошибки в работе указанных функций на этапе тестирования.

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

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

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

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

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

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

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

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

д) Необходимо проверять не только, делает ли программа то, для чего она предназначена, но и ни делает ли она то, что не должна делать.

е) Не следует выбрасывать тесты, даже если программа уже не нужна.

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

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

· статический;

· детерминированный;

· стохастический.

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

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

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

Тестирование PHP программы – означает тестирование того, что на экран пользователя выводятся нужные данные, что запрос пользователя принимается, обрабатывается, происходит соответствующее взаимодействие с СУБД MySQL, и ответ направляется на соответствующим образом генерируемую HTML страницу, отображающуюся у пользователя, пославшего зарос. Сбои отображения происходят в следующих случаях:

· на экране не отображается ничего (сервер перегружен), или выдается системная ошибка с соответствующим кодом (ошибка авторизации, сбой);

· произошел внутренний сбой, при обращении к БД, при этом генерируется отчет об ошибке;

· ошибка в выборе языка либо различные языки выбраны для представления на экране различных разделов текста (ошибки системных кодировок);

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

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

Для тестирования таких систем характерны два этапа. Во-первых, тестирование встраиваемого модуля отдельно от всей системы в целом, и в случае отсутствия конфликтов переход ко второму этапу – тестированию всех модулей в совокупности – т.е. всей информационной системы в целом..

Тестирование на протяжении жизненного цикла PHP программ означает тестирование на наборе пользовательских транзакций. Эти транзакции должны быть выбраны таким образом, чтобы был использован полный набор серверных команд и запросов. Перспектива жизненного цикла обычно охватывает несколько различных платформ, в том числе и систему пользователя - браузер, СУБД и приложения сторонних разработчиков.

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

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

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

· работа с PHP кодом программы;

· работа с базой данных (хранение, сортировка, выборка, поиск и анализ данных);

· формирование входных и выходных HTML страниц.

При программировании производился анализ БД, а после программирования – правильность отображения введенных данных.

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

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

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

 


Поделиться с друзьями:

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...

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



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.024 с.