DOI: 10.12731/2070-7568-2020-1-83-94 УДК 004.054
ПРОБЛЕМЫ ВЫБОРКИ
тест-кейсов для автоматического
ТЕСТИРОВАНИЯ ИТ-ПРОДУКТОВ
Кривозятева М.С., ГайковаЛ.В.
Рассматриваются проблемы выборки тест-кейсов автоматического функционального тестирования ИТ-продуктов. В среде конкурирующих компаний наблюдается тенденция развития собственных тест-кейсов автоматического тестирования. Проанализированы плюсы и минусы автоматического тестирования ИТ-продуктов.
Выработаны критерии выборки тест-кейсов автоматического тестирования, объединяющих основные принципы уже существующих.
Цель исследования: определение проблематики различия тест-кейсов автоматического тестирования современных ИТ-продуктов.
Методы и инструменты: использован диалектический метод как общий научный метод познания; приемы и инструменты системного, сравнительного анализа и обобщений.
Результаты: описаны проблемы выборки тест-кейсов автоматического функционального тестирования ИТ-продуктов.
Область применения результатов: руководители компаний при решении вопросов о выборке тест-кейсов для автоматического тестирования ИТ-продуктов, который будет отображать положительный показатель окупаемости инвестиций на потребительском рынке.
Ключевые слова: тестирование; тест-кейсы; ИТ-продукт; подбор кейс-тестов; критерии выборки тестов; продвижение; задачи тестировщиков.
PROBLEMS IN SELECTING TEST CASES FOR AUTOMATIC TESTING OF IT-PRODUCTS
Krivozjateva M.S., Gajkova L.V.
The problems ofselecting test cases for automatic functional testing of it products are considered. Among competing companies, there is a tendency to develop their own automated test cases. The pros and cons of automatic testing of it products are analyzed. We have developed criteria for selecting automated test cases that combine the basic principles of existing ones.
Purpose: defining the problem of distinguishing test cases for automatic testing of modern it products.
Methodology: the dialectical method is used as a General scientific method of cognition; methods and tools of system, comparative analysis and generalizations are used.
Results: the problems ofselecting test cases for automatic functional testing of it products are described.
Scope of results: managers of companies when deciding on a sample of test cases for automatic testing of it products, which will display a positive indicator of return on investment in the consumer market.
Keywords: testing; test cases; it product; selection of case tests; criteria for selecting tests; promotion; tasks of testers.
Введение
В условиях цифровизации экономики развитие цифровых технологий, а вместе с ними ИТ-продуктов, способствующих росту конкурентоспособности как отдельных компаний, организаций, фирм, так и целых отраслей народного хозяйства [14] требует внедрение все более качественных ИТ-продуктов. Каждое предприятие стремится доставить изменения пользователям быстрее конкурентов. Для этого необходимо увеличить скорость производительности таки обновлений. Один из этапов, на котором часто экономят в производстве - это тестирование. Благодаря различным методологиям есть возможность оптимального тестирования продукта.
На сегодняшний день, как отмечается во многих источниках, например, [9, 13], одним из основных методов управления качеством ИТ-продуктов является тестирование программного обеспечение. При этом важно понять, что автоматизация - это наилучший способ не просто сэкономить время, но и повысить эффективность, широту охвата и точность тестирования, ведь повторяющиеся задачи в условиях ручного подхода подвергаются риску человеческих ошибок. Автоматизация не превосходит и не заменяет ручное тестирование, но дополняет его [4].
цель исследования
Тестирование программного продукта (software testing) - это процесс анализа или эксплуатации программного обеспечения с целью выявления дефектов [4]. Анализируя уже созданный продукт, тестирование может помочь выявить огрехи, связанные с первичным анализом [11].
Основными целями автоматического тестирования являются [1]:
- снижение затрат на ручное тестирование;
- сокращение времени, необходимого для отладки, выпуска релизов;
- сокращение количества дефектов;
- снижение рисков;
- улучшение архитектуры.
Когда начинают внедрять автоматическое тестирование всегда возникает вопрос: «Что именно необходимо автоматизировать в первую очередь?». Для бизнеса важно видеть и получать результат автоматизации, отображающий положительный показатель стратегии развития бизнеса компании [3].
В таблице 1 представлены плюсы и минусы автоматического тестирования [4].
Если бы не минусы - можно было бы считать автоматическое тестирование волшебной таблеткой от всех дефектов производства в ИТ-продуктах.
Таблица 1.
Плюсы и минусы автоматического тестирования
Плюсы Минусы
Сокращение времени на исполнение тестов по сравнению с ручным тестированием Любое изменение в работе системы может потребовать трудозатратных изменений в автоматических тестах
Возможность проведения тестов, которые нельзя провести без использования средств автоматизации Ошибка в реакции системы на один из тестов может привести к ошибочным результатам прогона последующих тестов
Повышение независимости экспертизы (исключается человеческий фактор) Риск возникновения ошибок в самом автоматическом тесте
Возможность проводить тестирование вне рабочих часов тестировщика В отдельных случаях не все функциональные особенности системы можно покрыть автоматизированными тестами с помощью выбранного инструментария
Поиск научно обоснованного подхода выборки тест-кейсов для автоматического тестирования ИТ-продуктов, который будет отображать положительный показатель окупаемости инвестиций [2] на потребительском рынке, и явилось целью настоящего исследования.
Методы исследования
Исходя из анализа и обобщений минусов автоматического тестирования [1, 9, 10, 12, 13], определены проблемы подбора тест-кейсов для автоматизации дефектов производства ИТ-продуктов.
1. Нередко приложение проектируют без учёта необходимости его тестировать. В таком случае сложно/невозможно выделить отдельные компоненты на разных уровнях и проверить корректность их работы.
2. Могут отсутствовать модульные и интеграционные тесты - то, за что, как правило, отвечают разработчики. Причины могут быть самыми разными. Это может быть связано и с первой проблемой (нетестируемое приложение). Или, возможно, сами разработчики считают это лишней работой.
3. Тестирование бизнес-логики зачастую проводится через пользовательский интерфейс. На первый взгляд, это логично, ведь пользователи именно так и взаимодействуют с приложением. Вот только бизнес-логика, как правило, реализуется на уровнях
ниже. И если есть возможность обращаться к ней напрямую, можно получить на порядки более быстрые тесты, при этом более надежные.
4. Спрос рождает предложение: появляются компании-разработчики коробочных продуктов либо сервисов, которые обещают сделать всю автоматизацию за вас всего несколькими нажатиями кнопок.
5. Преднамеренное или непреднамеренное усложнение тестового решения. Используется большое количество зависимостей, без разбора применяются все паттерны проектирования, которые только можно применить.
Результаты исследования и их обсуждения
Чтобы понимать, какие тесты вообще нам нужны, нужно понимать строение работы проектной команды. В команде работают разработчики, тестировщики и аналитики, которые общими усилиями создают и улучшают программное обеспечение. У команды есть единая цель, и задачи, которые помогают достичь этой цели. В настоящем исследовании анализировались задачи тестировщиков.
Опираясь на анализ источников [6, 7, 8, 12], в исследовании выделены факторы, которые могут не влиять на постановку цели, но на постановку верных задач для тестировщиков повлияют сильно. Эти факторы представлены в таблице 2.
Таблица 2.
Факторы, влияющие на задачи тестировщиков
Фактор Назначение
Вид разрабатываемого приложения / информационной системы Понимание архитектуры системы, наличие БД, возможность работы через Web-приложения, количество запускаемых серверов [7]
Объем данных и количество пользователей - задачи верхнего уровня, идущие прямо под целью Определяется необходимость проводить тестирование отказоустойчивости, производительности и масштабирования [8]
Взаимоотношения с разработчиками Если взаимоотношения с разработчиками не налажены, некоторые виды тестирования будут недоступны в принципе [6, 12]
Окончание табл. 2.
Наличие и полнота документации От наличия и полноты документации зависит подготовленность тестов. Документация также может быть объектом тестирования [6, 12]
Инструментарий Выбор наиболее важных инструментов тестирования [6]
Возможность посмотреть код Сократить время на общение с разработчиком [12]
Имея в голове понимание того, что вы хотите добиться тестированием, делается следующий шаг - выбираются тесты. Классифицировать тесты довольно сложно, т.к. часто один и тот же тест можно отнести к совершенно разным группам [7, 15]. Если ограничиваться только одним видом группировки тестов, можно упустить другие, что может повлечь потерю важных тест-кейсов при тестировании.
На основе анализа источников [1, 4, 5, 6, 7, 8, 9] в исследовании были сформулированы критерии и определено их содержание для классификации тестов (таблица 3).
Таблица 3.
Критерии классификации тестов
Критерий Содержание
Вид требований Тесты зависят от того, что требуется от разрабатываемого ИТ-продукта
Объект тестирования Тестирование интерфейса пользователя; инфраструктурные и эксплуатационные тесты; тестирование безопасности
Знание системы Различают тесты черного, серого и белого ящика
Степень автоматизации Эволюционное развитие тестов
Степень изолированности компонентов Протестировать систему «от-и-до» можно на безопасность, можно на соответствие стандартам, можно на удобство эксплуатации
Время проведения тестирования Максимум тестов должно выполняться на стадии подготовки релиза
Степень подготовленности тестов Определяется производителем ИТ-продуктов
Глубина тестирования Определяются в первую очередь тесты, которые должны пройти успешно. Если они не прошли, то остальные можно не проверять
Те8М;о-ра88 Тесты в нормальном, наиболее часто используемом режим эксплуатации
Те81;-1;о-£аП Тесты нужны только для поиска особых состояний системы, в которых возможно возникновение ранее не обнаруженного дефекта или вообще сбой всей системы
Динамичность При тестировании происходят манипуляции с приложением
Используя предложенные критерии классификации тестов, определены вопросы, на которые надо ответить, при выборе нужных видов тестов:
• Определить состав функциональных и нефункциональных требований, которые предъявлены к системе.
• Описать основные структурные элементы системы.
• Оценить знания тестировщиков относительно элементов системы.
• Описать алгоритм и средства воспроизведения тестовых ситуаций.
• Определить разделы и масштабы тестируемой системы.
• Обозначить этап жизненного цикла системы для тестирования.
• Оформить требования для описания и хранения тестов.
• Оценить уровень знаний тестировщиков относительно методов составления тестовых сценариев.
• Оценить выбранную спецификацию тестирования.
Также существуют тесты, которые следует исключать из тестирования автоматизации:
• тесты юзабилити, требующие ручного вмешательства для проверки ошибок или отклонения от ожидаемого поведения;
• тестовые примеры, включающие в себя установку или не нуждающиеся в повторном исполнении функции;
• тесты, которые могут привести к непредсказуемым результатам;
• иХ-тесты, которые включают проверку повторной калибровки объектов на разных размерах экрана.
Выводы
К большому сожалению, автоматизированное функциональное тестирование очень часто воспринимают как «серебряную пулю», с помощью которой можно решить любые проблемы, связанные с контролем качества программного обеспечения. Подобные ожидания в своем большинстве оказываются ложными.
Автоматизация функционального тестирования требует тщательного планирования, выбора инструментальных средств, проектирования и внедрения процесса, обучения пользователей и сопровождения, и, в следствии всего этого, тщательной подборки самих тест-кейсов для автоматизации. Важно понимать, что ни одно инструментальное
средство само по себе не является гарантией успешного внедрения процесса автоматизированного функционального тестирования [6].
Автоматизация тестирования не может рассматриваться как универсальное средство в борьбе за качество конечного продукта, потому что кроме явных преимуществ (таких, как повышение независимости экспертизы за счёт исключения человеческого фактора, например), у автоматизации тестирования есть и ряд недостатков.
Опираясь на выделенные в исследовании факторы, влияющие на задачи тестировщиков, и предложенные критерии классификации тестов можно сделать вывод, что автоматизация тестирования не всегда необходима, рационально обоснована или экономически оправданна. Только детальный анализ может помочь сделать осознанный выбор, а также выявить плюсы и минусы выбранного подхода.
Список литературы
1. Автоматизированное тестирование: как не выстрелить себе в ногу, [Электронный ресурс] // MS: [сайт]. Режим доступа: https://techrocks. ru/2018/10/28/test-automation-in-software-development/
2. Гайкова Л.В. Динамическое бизнес-планирование инвестиций на основе имитационного моделирования // Мы продолжаем традиции российской статистики сборник докладов I Открытого российского статистического конгресса. Российская ассоциация статистиков; Федеральная служба государственной статистик и РФ; Новосибирский государственный университет экономики и управления «НИНХ». 2016. С. 82-89.
3. Гайкова Л.В. Информационные системы - одна из составляющих стратегии развития бизнеса компании // Информационные технологии в прикладных исследованиях: сборник научных трудов под ред. А.Л. Осипова. Новосибирск: НГУЭУ, 2012. С. 99-105.
4. Гребенюк В. М. Оценка целесообразности внедрения автоматизированного тестирования. М.: Науковедение, 2013. 128 с.
5. Дастин Э., Рэшка Д., Пол Д. Автоматизированное тестирование программного обеспечения. Внедрение, управление и эксплуатация. М.: Изд-во Лори, 2003. 567 с.
6. Инструменты и подходы к автоматизации тестирования. Варианты развития направления автоматизированного функционального тестирования, [Электронный ресурс] // MS: [сайт]. Режим доступа: http://aplana.ru/infocenter/publications/2014/1343-instrumenty-i-pod-khody-k-avtomatizatsii-testirovaniya-varianty-razvitiya-napravleni-ya-avtomatizirovannogo-funktsionalnogo-testirovaniya
7. Какие тесты вам нужны? Часть 1. О целях и задачах, что влияют на выбор тестов, [Электронный ресурс] // MS: [сайт]. Режим доступа: https://habr.com/ru/post/246211/
8. Какие тесты вам нужны? Часть 2. Матрица видов тестирования, [Электронный ресурс] // MS: [сайт]. Режим доступа: https://habr.com/ ru/post/257159/
9. Канер С. Тестирование программного обеспечения. Фундаментальные концепции менеджмента бизнес-приложений / С. Канер, Дж. Фолк, Е. Кек Нгуен К.: Издательство «Диасофт», 2001. 544 с.
10. Карл И. Вигерс. Разработка требований к программному обеспечению. 2004. 561 с.
11. Лаврищева Е. М. Software engineering компьютерных систем. На-укова думка, 2013. 283 с.
12. Степанченко И.В. Методы тестирования программного обеспечения: Учеб. пособие. Волгоград: ВолгГТУ, 2006. 76 с.
13. Тамре, Л. Введение в тестирование программного обеспечения; Пер. с англ. М.: Издательский дом «Вильямс», 2003. 368 с.
14. Что такое цифровая экономика? Тренды, компетенции, измерение: докл. к XX Апр. междунар. науч. конф. по проблемам развития экономики и общества, Москва, 9-12 апр. 2019 г. / Г.И. Абдрахманова, К.О. Вишневский, Л.М. Гохберг и др. ; науч. ред. Л.М. Гохберг; НИУ «ВШЭ». М.: Изд. дом Высшей школы экономики, 2019. 85 с.
15. Ron Patton. Software Testing. Sams Publishing, 2005. 408 с.
References
1. Avtomatizirovannoe testirovanie: kak ne vystrelit' sebe v nogu [Automated testing: how not to shoot yourself in the foot]. https://techrocks. ru/2018/10/28/test-automation-in-software-development/
2. Gaykova L.V. Dinamicheskoe biznes-planirovanie investitsiy na osnove imitatsionnogo modelirovaniya [Dynamic business planning of investments based on simulation].Myprodolzhaem traditsii rossiyskoy statis-tiki sbornik dokladovI Otkrytogo rossiyskogo statisticheskogo kongressa [We continue the traditions of Russian statistics, a collection of reports of the I Open Russian Statistical Congress]. Russian Association of Statisticians; Federal State Statistics Service and the Russian Federation; Novosibirsk State University of Economics and Management "NINH". 2016, pp. 82-89.
3. Gaykova L.V. Informatsionnye tekhnologii v prikladnykh issledovani-yakh: sbornik nauchnykh trudov [Information technology in applied research: collection of scientific papers] / ed. A.L. Osipov. Novosibirsk: NSUU, 2012, pp. 99-105.
4. Grebenyuk V.M. Otsenka tselesoobraznosti vnedreniya avtomatiziro-vannogo testirovaniya [Assessment of the feasibility of introducing automated testing]. M.: Science of Science, 2013. 128 p.
5. Dustin E., Rashka D., Paul D. Avtomatizirovannoe testirovanie pro-grammnogo obespecheniya. Vnedrenie, upravlenie i ekspluatatsiya [Automated software testing. Implementation, management and operation]. M.: Publishing House Lori, 2003. 567 p.
6. Instrumenty i podkhody k avtomatizatsii testirovaniya. Varianty razvi-tiya napravleniya avtomatizirovannogo funktsional'nogo testirovaniya [Tools and approaches to test automation. Development options for the direction of automated functional testing]. http://aplana.ru/info-center/publications/2014/1343-instrumenty-i-podkhody-k-avtomati-zatsii-testirovaniya-varianty-razvitiya-napravleniya-avtomatizirovan-nogo-funktsionalnogo-testirovaniya
7. Kakie testy vam nuzhny? Chast' 1. O tselyakh i zadachakh, chto vli-yayut na vybor testov [What tests do you need? Part 1. On the goals and objectives that affect the choice of tests]. https://habr.com/en/ post/246211/
8. Kakie testy vam nuzhny? Chast'2. Matritsa vidov testirovaniya [What tests do you need? Part 2. Matrix of types of testing]. https://habr.com/ en/post/257159/
9. Kaner S. Testirovanieprogrammnogo obespecheniya. Fundamental 'nye kontseptsii menedzhmenta biznes-prilozheniy [Software Testing. Fundamental concepts of business application management] / S. Kaner, J. Folk, E. Kek Nguyen K.: Diasoft Publishing House, 2001. 544 p.
10. Karl I. Wigers Razrabotka trebovaniy kprogrammnomu obespecheniyu [Development of software requirements]. 2004. 561 p.
11. Lavrishcheva E. M. Software engineering komp'yuternykh sistem [Software engineering of computer systems]. Naukova Dumka, 2013. 283 p.
12. Stepanchenko I.V. Metody testirovaniyaprogrammnogo obespecheniya [Software Testing Methods]. Volgograd: VolgSTU, 2006. 76 p.
13. Tamre L. Vvedenie v testirovanie programmnogo obespecheniya [Introduction to software testing]; Per. from English M.: Williams Publishing House, 2003. 368 p.
14. Chto takoe tsifrovaya ekonomika? Trendy, kompetentsii, izmerenie: dokl. k XXApr. mezhdunar. nauch. konf. po problemam razvitiya ekonomiki i obshchestva, Moskva, 9-12 apr. 2019 [What is the digital economy? Trends, competencies, measurement: dokl. by Apr 20 Int. scientific conf. on the problems of economic and social development, Moscow, April 9-12. 2019] / G.I. Abdrakhmanova, K.O. Vishnevsky, L.M. Gokhberg and others; scientific ed. L.M. Hochberg; HSE. M.: Higher School of Economics Publ. House, 2019. 85 p.
15. Ron Patton. Software Testing. Sams Publishing, 2005. 408 p.
ДАННЫЕ ОБ АВТОРАХ
Кривозятева Мария Сергеевна, инженер-тестировщик
Центр Финансовых Технологий
ул. Мусы Джалиля, 11, г. Новосибирск, 630090, Российская Федерация
Гайкова Любовь Вадимовна, кандидат экономических наук, доцент
Новосибирский государственный университет экономики и управления
ул. Каменская, 52/1, г. Новосибирск, 630099, Российская Федерация
DATA ABOUT THE AUTHORS Krivozjateva Mary Sergeevna, QA engineer
Center of Financial Technologies
11, Musa Jalil Str., Novosibirsk, 630099, Russian Federation [email protected]
Gajkova Luybov Vadimovna, Candidate of Economics (Ph.D.), Associate Professor
Novosibirsk State University of Economics and Management 52/1, Kamenskaya Str., Novosibirsk, 630099, Russian Federation [email protected]