Функциональное тестирование программного средства

 

Функциональное тестирование (functional testing) - тестирование ПО, направленное на проверку реализуемости функциональных требований. При функциональном тестировании проверяется способность ПО правильно решать задачи, необходимые пользователям.

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

Стресс-тестирование – тестирование ПО, которое оценивает надёжность и устойчивость системы в условиях превышения пределов нормального функционирования. Это проверка программы в таких стрессовых ситуациях как наличие большого объёма входных параметров, нехватка дискового пространства или маломощный процессор.

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

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

Тестирование совместимости (compatibility testing) - тестирование ПО, которое проверяет работоспособность ПО в определенном окружении.

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

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

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

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

Регрессионное тестирование (regression testing) – тестирование ПО, при котором проводится проверка ранее найденных ошибок, а также проверка основной функциональности. Проводится, как правило, на каждой новой версии программного продукта. Регрессивное тестирование является наиболее важной фазой тестирования непосредственно перед окончанием работ над продуктом, так как непосредственно перед релизом продукта крайне необходимо проверить не только основную функциональность, но и то, что ни одна из ранее найденных ошибок не повторяется в финальной версии. Являясь неотъемлемой частью функционального тестирования, регрессионное тестирование позволяет гарантировать, что изменения, связанные с устранением дефектов, не оказали негативного воздействия на остальные функциональные области приложения.

Ручное тестирование (manual testing) - тестирование при котором не используются программные средства для выполнения тестов и проверки результатов выполнения.

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

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

Для разработанного программного средства были разработаны тест-кейсы для тестирования модулей работы программного средства, а также тестирование общего функционала программы.

Тест-кейсы, на основании которых проводилось тестирование, приведены в таблице 3.25.

Таблица 3.25 – Набор тест-кейсов.

  Модуль Условия Действие Ожидаемый результат Итог
1 Авторизация На форму поступают валидные и не валидные данные Ввод логина и пароля, нажатие кнопки для авторизации Авторизация пользователя либо нет пройден
2 Поиск записей по полю поиск На форму поступают валидные и не валидные данные Ввод данных для поиска Нахождение записей по введенным данным пройден  
3 Поиск записей по первой букве алфавита На форму поступают валидные и не валидные данные Выбор буквы, по которой производится поиск Нахождение записей по выбранной букве алфавита пройден  
4 Добавление товара в корзину Выбор функции добавления товара в корзину Нажатие кнопки «Добавить в корзину» Вывод сообщение пользователю о добавлении товара в корзину пройден  
5 Удаление товара из корзины Выбор функции удаления товара из корзину Нажатие кнопки «Удалить из корзины» Вывод сообщение пользователю об удалении товара из корзины пройден  
6 Фильтр Регулирование позиции фильтра Выбор диапазона стоимости товара Фильтр товаров по диапазону стоимости  пройден  

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

 

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

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

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

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

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

 

Выделяют следующие уровни тестирования: 

– модульное тестирование – тестируется минимально возможные компоненты web-сайта;

– интеграционное тестирование – ищет проблемы в интерфейсах взаимодействия между модулями системы;

– функциональное тестирование.

Web-сайт был протестирован на компьютерах с разными разрешениями экрана для проверки корректности отображения, результаты тестирования представлены в таблице 3.26

Таблица 3.26 ­– Тестирование адаптивного дизайна

Разрешение экрана/ Страницы сайта 1366  x 768 1600x 900 1650x 1060 800x 600
Пользовательская часть + + + +
Часть администратора + + + +

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

Таблица 3.27 ­– Тестирование адаптивного дизайна (браузер)

Разрешение экрана/ Страницы сайта Mozilla FireFox Opera Chrome Yandex
Пользовательская часть + + + +
Часть администратора + + + +

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


 



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: