В работе отмечена актуальность проведения мероприятий по тестированию в процессе разработки программного обеспечения, рассмотрены существующие стратегии тестирования, проведен анализ выбора стратегии тестирования для программных обеспечений организаций в области жилищно-коммунального хозяйства.
Ключевые слова: жилищно-коммунальное хозяйство, тестирование программного обеспечения, стратегии тестирования, модульное тестирование, интеграционное тестирование, системное тестирование.
В настоящее время к автоматизации процессов прибегают практически все предприятия с целью эффективного хранения, обработки и передачи информации. К таким предприятиям относятся организации, специализирующиеся на расчетах в сфере жилищно-коммунального хозяйства (далее- ЖКХ). Именно качественно разработанное программное обеспечение (далее- ПО) может обеспечить максимально эффективную работу поставщиков услуг ЖКХ, а для граждан — наиболее выгодные условия оплаты жилищно-коммунальных услуг.
Даже искренне добиваясь высокого качества в ходе разработки ПО, сопровождения и поставки, люди совершают ошибки. Для устранения рисков и ошибок в продукте необходимо проводить тестирование начиная с замысла системы и до завершения существования или окончания поддержки системы.
Тестирование программного обеспечения- процесс анализа программного средства и сопутствующей документации с целью выявления дефектов и повышения качества продукта [2].
Во многих случаях разработка программного продукта происходит в рамках ограниченного времени и средств. Поэтому для обнаружения большего количества дефектов с минимальным набором тестовых комбинаций выбор стратегии тестирования должен быть не спонтанным, а основан на определенной стратегии.
Стратегия тестирования — это план проведения работ по тестированию системы или её модуля, учитывающий специфику функциональности и зависимости с другими компонентами системы и платформы [4].
Различные наборы стратегий тестирования направлены на достижение одной общей цели — устранение багов и ошибок в коде, и обеспечения точной и оптимальной производительности программного обеспечения [3].
В настоящее время можно выделить три стратегии тестирования: модульное, интеграционное и системное тестирование.
Модульное тестирование предполагает написание тест-кодов на отдельные программные компоненты, которые проверяют на соответствие поведение программы ожидаемому результату и на наличие ошибок. При тестировании необходим доступ к внутренней логике и структуре кода, поэтому такое тестирование также называется тестированием «белого ящика». Такими проверками чаще всего занимаются разработчики, они пишут тесты на написанный ими код. Схематическое представление метода можно увидеть на рисунке 1.
Рис. 1. Схема метода «белый ящик»
При интеграционном тестировании компоненты программы интегрируются между собой и также проверяются на наличие ошибок, но уже с ограниченным знанием внутренней работы программы и в первую очередь выявляет ошибки интерфейса. Такой тип тестирования позволяет подготовить наиболее эффективные тестовые комбинации данных и сценариев, так как специалист по тестированию имеет доступ к проектной документации и базе данных. Такое тестирование также называется тестированием «серого ящика» (см. рисунок 2).
Рис. 2. Схема метода «серый ящик»
В системном тестировании программное обеспечение проверяется на наличие ошибок с начала и до конца без каких-либо знаний о внутренней работе программы. При тестировании проверяется ожидаемое поведение программного обеспечения с точки зрения пользователя, предоставляя входные данные и анализируя выходы, не зная, как и где обрабатываются входы. Это тестирование числится под методом тестирования «черного ящика» (см. рисунок 3).
Рис. 3. Схема метода «черный ящик»
Выбор стратегии тестирования должен быть основан на анализе полученных требований к ПО и на оценке рисков, так как основная цель стратегии — это минимизация рисков и ошибок.
Жилищно-коммунальный комплекс представляет собой технически сложное хозяйство, которое обслуживает жилой фонд, коммуникации, водопроводы, обеспечивает сбор и вывоз мусора, текущий и капитальный ремонт коммуникаций и систем [1]. Поэтому при выборе стратегии тестирования следует учитывать следующие важные моменты:
- Хранение, обработка и анализ большого массива данных;
- Одновременная работа нескольких пользователей;
- Ограниченный доступ к данным;
- Работа с несколькими базами данных;
- Интеграция с существующими информационными системами организации;
- Доступное для понимания и простое в эксплуатации.
Исходя из вышеперечисленного, следует, что стратегия тестирования должна покрывать работы ПО как со стороны пользователя, так и внутреннюю работу программы, так как маленькая ошибка, допущенная при эксплуатации, может привести к неисправимым последствиям.
Тестирование «черного ящика» позволит покрыть тестами функционал, доступный пользователю, но за корректность получения данных отвечают тесты, написанные на каждый модуль программы разработчиками.
С помощью интеграционного тестирования можно проверить взаимодействие с другими существующими смежными системами организации.
В результате изучения современных стратегий тестирования ПО было отмечено, что единой и универсальной стратегии тестирования, подходящей каждому разрабатываемому ПО, не существует. Каждая стратегия направлена на выявление своего, определенного класса ошибок.
При тестировании разрабатываемого ПО для ЖКХ необходимо провести всестороннее тестирование системы. Следует учитывать специфику работы предприятия, интеграцию с другими смежными системами предприятия, а также ограниченный доступ к информации предприятия. Необходимо предусмотреть случаи нагрузки системы- работы нескольких пользователей с системой одновременно с большим массивом данных. Поэтому для обеспечения приемлемого качества ПО целесообразно применять комбинацию из рассмотренных стратегий.
Литература:
- Кожевников С. А. Государственно-частное партнерство в жилищно-коммунальном хозяйстве региона: проблемы и перспективы развития — Вологда: ИСЭРТ РАН, 2016. — 18 c.
- Куликов С. С. Тестирование программного обеспечения. — 2-е изд. — Минск: Четыре четверти, 2017. — 6 с.
- Методы тестирования программного обеспечения // http://juice-health.ru/program/software-testing/495-software-testing-methods (дата обращения: 23.04.2020).
- Стратегия в тестировании // Software-Testing.ru. URL: https://www.software-testing.ru/library/5-testing/207–2008–10–06–10–05–53 (дата обращения: 23.04.2020).