В статье автор рассматривает методологию и процесс ручного тестирования программного обеспечения, а также различные виды и этапы тестирования.
Ключевые слова : программное обеспечение, ручное тестирование, программный продукт, этап тестирования, проверка.
Высокое качество программного обеспечения требуется в связи со стремительным развитием современных информационных технологий. Ручное тестирование является важным этапом обеспечения качества программного продукта (Quality Assurance, QA), так как оно помогает выявить ошибки и недоработки до его релиза.
Функциональное тестирование направлено на проверку конкретных функций и задач программного продукта. Оно включает несколько уровней, каждый из которых имеет свои цели и методы:
1. Модульное тестирование:
– проверка отдельных модулей или компонентов программы;
– тесты пишутся до написания основного кода (Test-Driven Development, TDD);
– разработчики проверяют каждый модуль на соответствие требованиям и тестам;
– цель — проверить, корректно ли работают отдельные части кода, прежде чем объединять их.
2. Интеграционное тестирование:
– проверка взаимодействия между модулями;
– делится на модульное интеграционное тестирование (взаимодействие между модулями) и системное интеграционное тестирование (взаимодействие между разными системами);
– цель — обнаружить проблемы, возникающие при объединении модулей.
3. Системное тестирование:
– полная проверка системы на контуре, приближенном к реальному;
– охватывает все аспекты функционирования продукта;
– цель — проверить, насколько корректно функционирует вся система в условиях, схожих с реальными.
4. Приемочное тестирование:
– тестирование продукта заказчиком или конечными пользователями;
– включает альфа- и бета-тестирование;
– цель — определить готовность продукта к выпуску на рынок.
Функциональное тестирование также охватывает проверку безопасности и взаимодействия с другими системами, чтобы гарантировать, что продукт работает надежно и безопасно.
Нефункциональное тестирование оценивает характеристики программного обеспечения, которые измеряются различными величинами. Оно направлено на проверку аспектов, не связанных непосредственно с функциональностью, но важных для общего восприятия и эксплуатации продукта:
1. Тестирование производительности:
– проверка корректной работы продукта при высокой нагрузке;
– измеряются время отклика, пропускная способность, устойчивость к нагрузкам;
– цель — убедиться, что продукт справляется с предполагаемой нагрузкой и работает эффективно.
2. Тестирование установки:
– проверка корректной установки, обновления и удаления продукта;
– цель — убедиться, что пользователи могут легко установить и удалить продукт, не сталкиваясь с проблемами.
3. Тестирование удобства пользования:
– оценка интерфейса на предмет его интуитивности и удобства;
– включает юзабилити-тестирование с участием пользователей;
– цель — сделать продукт максимально удобным и приятным в использовании.
4. Тестирование на отказ и восстановление:
– проверка способности системы восстанавливаться после сбоев;
– цель — убедиться, что система надежна и может быстро вернуться к нормальной работе после критических ошибок.
5. Конфигурационное тестирование:
– определение минимальных и оптимальных конфигураций для работы системы;
– проверка работы на разных устройствах и платформах;
– цель — гарантировать совместимость и оптимальную производительность на всех целевых устройствах.
Тестирование, связанное с изменениями. Этот тип тестирования используется для проверки после внесения коррективов, чтобы убедиться, что новые функции или исправления не вызвали непредвиденных проблем:
1. Дымовое тестирование:
– быстрая проверка основных функций продукта после установки новой версии;
– цель — обнаружить очевидные и критические ошибки, которые могут сделать систему непригодной для дальнейшего тестирования.
2. Регрессионное тестирование:
– полное тестирование продукта для выявления новых багов, вызванных внесенными изменениями;
– цель — убедиться, что изменения не нарушили существующий функционал.
3. Тестирование сборки:
– проверка спецификаций и пожеланий на данном этапе тестирования;
– цель — обеспечить соответствие продукта требованиям и ожиданиям на каждом этапе разработки.
4. Санитарное тестирование:
– узконаправленное тестирование конкретной функции или блока;
– цель — тщательно проверить конкретную область, которая была изменена или является критически важной. [1]
Каждая компания может иметь свою уникальную модель тестирования, но общие этапы включают:
- Написание тест-плана:
– определение целей тестирования, объектов тестирования, подходов и критериев успешности.
– цель — создать структуру и план для всего процесса тестирования.
- Разработка тест-кейсов:
– создание подробных сценариев тестирования на основе документации и требований.
– цель — обеспечить полноту тестирования и охват всех аспектов функциональности.
- Дымовое тестирование для быстрой проверки основных функций новой версии продукта.
- Проверка дефектов: тестирование ранее выявленных и исправленных ошибок.
- Регрессионное тестирование: полная проверка системы после всех изменений.
- Санитарное тестирование: углубленная проверка конкретных функций.
- Написание отчета о тестировании:
– документирование всех этапов тестирования и выявленных дефектов;
– цель — предоставить полную картину процесса тестирования и результатов.
- Дымовое тестирование на продуктивном контуре: окончательная проверка продукта с реальными данными. [2]
Тестирование программного обеспечения — это важнейший этап в разработке всех программных продуктов. Существует множество методов и стратегий, направленных на обеспечение высокого качества конечного продукта. Особое значение в этом процессе имеет ручное тестирование. В условиях быстро меняющихся технологий и усложнения программных систем ручное тестирование остаётся важным инструментом для успешного завершения проектов и удовлетворения потребностей пользователей.
Литература:
- Морозова, Ю. В. Тестирование программного обеспечения: учебное пособие / Ю. В. Морозова. — Томск: Эль-Контент, 2019. — 120 с. — ISBN 978–5-4332–0279–5. — Текст: электронный. — URL: https://znanium.com/catalog/product/1845910 (дата обращения: 18.07.2024). — Режим доступа: по подписке.
- Методология и процесс ручного тестирования / Д. А. Моисеев // Надежность и качество сложных систем. — 2017. — № 3 (19). — С. 107–112. DOI 10.21685/2307–4205–2017–3-16.