Пріоритезація автоматизації тестових випадків на основі схожості

Автор:

Анотація: Важливість ефективних процедур тестування програмного забезпечення визначається глобальною конкуренцією та складністю системи, що постійно збільшується. У конкретному випадку, на рівні системної інтеграції, де можуть бути виконані тисячі тестів перед випуском, потрібно витратити достатню кількість часу для того, щоб протестувати систему максимально повно та ефективно. Автоматизація підмножини ручних тестів - це один із способів зменшити тестові зусилля. Тестові приклади мають подібність, яку можна використати шляхом повторного використання при автоматизації набору тестів. У цій роботі ми досліджуємо можливість зменшення тестових зусиль з урахуванням використання повторно автоматизованих частин тестових кейсів. У своєму аналізі ми досліджуємо кілька підходів для пріоритизації.

Бібліографічний опис статті:

. Пріоритезація автоматизації тестових випадків на основі схожості//Наука онлайн: Міжнародний електронний науковий журнал - 2021. - №11. - https://nauka-online.com/publications/technical-sciences/2021/11/02-4/

Стаття опублікована у: : Наука Онлайн No11 листопад 2021

Технічні науки

УДК 004.4

Мітряєв Сергій Сергійович

студент

Харківського національного університету радіоелектроніки

Митряев Сергей Сергеевич

студент

Харьковского национального университета радиоэлектроники

Mitriaiev Serhii

Student of the

Kharkiv National University of Radioelectronics

ПРІОРИТЕЗАЦІЯ АВТОМАТИЗАЦІЇ ТЕСТОВИХ ВИПАДКІВ НА ОСНОВІ СХОЖОСТІ

ПРИОРИТЕЗАЦИЯ АВТОМАТИЗАЦИИ ТЕСТОВЫХ СЛУЧАЕВ НА ОСНОВЕ СХОЖЕСТИ

PRIORITIZATION OF TEST CASE AUTOMATION BASED ON SIMILARITY

Анотація. Важливість ефективних процедур тестування програмного забезпечення визначається глобальною конкуренцією та складністю системи, що постійно збільшується. У конкретному випадку, на рівні системної інтеграції, де можуть бути виконані тисячі тестів перед випуском, потрібно витратити достатню кількість часу для того, щоб протестувати систему максимально повно та ефективно. Автоматизація підмножини ручних тестів – це один із способів зменшити тестові зусилля. Тестові приклади мають подібність, яку можна використати шляхом повторного використання при автоматизації набору тестів. У цій роботі ми досліджуємо можливість зменшення тестових зусиль з урахуванням використання повторно автоматизованих частин тестових кейсів. У своєму аналізі ми досліджуємо кілька підходів для пріоритизації.

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

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

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

Summary. Importance of effective procedures of software testing is determined as complexity of a system which is constantly increasing as well as global competitiveness. In a specific case at the level of system integration where thousands of methods could be carried out before the release, we need to spend enough time to have the system tested fully and effectively. Automatization of subsets of manually-made tests is one of the ways to reduce testing efforts. More common is that testing cases have similarity which can be used as secondary using in test sets automatisation. In this article we research the possibility of reducing efforts of the test, ordering test cases before automatisation, considering that we may use secondary automated parts of test cases. In this article, we explore the possibility of reducing test effort by using re-automated parts of test cases. In our analysis, we explore several approaches of prioritization.

Key words: software testing, test cases automatisation, priority, secondary using, efforts.

Актуальність теми. Через складність програмних систем, яка постійно збільшується, та через конкуренцію на світовому ринку ефективні процедури тестування програмного забезпечення є важливими та необхідними. Пріоритезація автоматизації тестових випадків дає можливість протестувати програмну систему ефективно та у максимально повному обсязі на основні схожості з мінімальними витратами часу.

Аналіз останніх досліджень та публікації, на які спирається автор.

Метою статті є дослідження пріоритизації автоматизації тестових випадків на основі їх схожості.

Викладення матеріалу та результатів:

Наш підхід робить наступні явні припущення та спрощення:

1) усі кейси незалежні;

2) керівні тестові кейси написані природною мовою;

3) робота з автоматизації виконується послідовно і зі швидкістю λ кроків тестування/годину. Це означає, що всі етапи тестування вважаються рівними щодо часу автоматизації.

Таблиця 1

Основні позначення, прийняті в роботі

Символ Опис
Т Набір ручних тестів, які ми хочемо автоматизувати.
| τ | Кількість кроків тесту в конкретному тесті τ .
|| Т || Кількість тестових кроків, накопичених у всіх випадках випробувань в T .
σ Стратегія автоматизації.

Практично ми бачимо σ = {повторне використання / неповторне використання, алгоритм упорядкування}

Індекс i-го тестового випадку в порядку σ.
Тестовий приклад в Т з індексом i.  ∈ T, i = 1 .. | Т |.
γ Середня швидкість виконання тесту вручну (кількість кроків тесту /годину).
λ Середня швидкість автоматизації (кількість тестових кроків/годину).
Момент початку автоматизації тестових випадків в T.
т Момент початку проведення системного тестування.

1) Швидкість λ є постійною, поки всі тестові випадки не будуть автоматизовані.

2) Тестовий кейс вважається ручним тестом, поки не будуть заплановані всі його етапи для автоматизації.

3) Зусилля щодо виконання автоматизованого тестового випадку не враховуються.

4) Зусилля з перевірки та адаптації повторно використаного етапу тестування не враховуються.

5) Під час системного тестування виконується решта ручних тестів послідовно та зі швидкістю γ кроків тестування/годину.

6) Швидкість γ є постійною, поки не виконані всі ручні тести.

Автоматизація тестових кейсів

Автоматизація набору ручних тестів включає переклад інструкцій у їх автоматичний математично виконуваний аналог (код автоматизації). Хоча ці інструкції з експлуатації написані природною мовою, код автоматизації зазвичай виражається в якійсь формі сценарію або за допомогою візуальної мови програмування. Цей код автоматизації іноді можна використовувати повторно, якщо ми можемо відстежувати подібні кроки ручного тестування, які були автоматизовані раніше. Для такої роботи ми передбачаємо інструмент, де тестувальник може автоматизувати один тест-кейс за раз, крок за кроком, маючи інструкції зліва та код сценарію, прикріплений праворуч. Якщо користувач стикається з етапом тесту, який було автоматизовано раніше, йому пропонується відповідний код сценарію.

Те, наскільки швидко завершиться робота з автоматизації, залежить від багатьох факторів. У цій роботі ми зміщуємо фокус від швидкості автоматизації ( γ ) на користь порядку автоматизації ( σ 1 , .., σ n ).

Порядок автоматизації описує, як ми плануємо тестування роботи з автоматизації, тобто послідовний порядок тестів. Під повторним використанням, у цьому контексті, ми маємо на увазі повторне використання на основі подібності.

Правильно підібраний порядок автоматизації – це порядок, в якому якомога більше тестових випадків отримує автоматизацію якомога раніше і з найменшими зусиллями. Цей порядок автоматизації може бути визначений вручну або за алгоритмом.

Процес створення порядку автоматизації називаємо стратегією автоматизації ( σ ). Поняття стратегії автоматизації може бути розширено та може включати більше аспектів, таких як підпріоритетність системи та вибір тестів. Однак у цій роботі ми в першу чергу зосереджуємо увагу на порядку автоматизації та на необхідності повторного використання на основі подібності. Наведений вище текст приводить нас до таких спостережень:

Випадки T послідовно автоматизуються з часом, використовуючи певну стратегію автоматизації σ. Враховуючи це, ми можемо розглядати тест як ручний або як автоматизований. Це означає, що Т можна завжди розділити на дві категорії: не повністю автоматизовані ручні тестові випадки та повністю автоматизовані тестові випадки.

Тестовий випадок є повністю автоматизованим, коли:

1) тестовий кейс призначений для автоматизації, відповідно до прийнятого рішення про автоматизацію;

2) всі етапи перекладені;

3) поетапні сценарії були перевірені та адаптовані.

З цього випливає, що тестовий випадок не вважається повністю автоматизованим навіть, якщо всі його кроки схожі на етапи, які були автоматизовані раніше. У нашій моделі перевірка та адаптація зусилля наближені до нуля, що призводить до того, що такий тест буде “негайно” автоматизовано, як тільки це заплановано, але не раніше. Давайте розглянемо практичний приклад вищезазначених міркувань:

Тестові приклади Tx і Ty містять по одному кроку тесту в кожному. Етапи тестування схожі між собою. У певний момент часу, ми повністю автоматизуємо Tx. Як наслідок, етап випробування в Ty вже автоматизований. Якщо цей тестовий випадок планується автоматизувати пізніше, то він буде розглядатись як ручний тест. Коли ми досягаємо Ty в порядку автоматизації, Ty буде вважатися повністю автоматизованим. Варто відзначити, що успішна стратегія встановлення пріоритетів поставить Ty близько до Tx.

Зараз ми формально визначаємо набір повністю автоматизованих тестових випадків у будь-який конкретний час t, враховуючи швидкість автоматизації λ кроків тестування/годину та порядок автоматизації σ, який визначений як послідовність тестових прикладів  в безлічі тестових прикладів . З визначення та припущення, що час перевірки та адаптації дорівнює нулю маємо, що k(i) – загальна кількість етапів автоматизованого тестування в положенні i становить:

        (1)

Набір повністю автоматизованих тестів до часу t дорівнює:

    (2)

де

Налаштування експерименту

Цей розділ описує експериментальні параметри, що використовуються в промисловій оцінці. Під повторним використанням ми завжди маємо на увазі повторне використання коду автоматизації на основі подібності.

  1. R0 —Немає повторного використання та випадкового порядку

Мета цього експерименту – імітувати випадок, коли ми не використовуємо повторно код автоматизації подібних етапів тестування та не автоматизуємо тестові випадки. Це має дати 50% і служить базовим порівнянням.

  1. R1 – повторне використання із випадковим порядком

Код автоматизації подібних етапів тестування використовується повторно. Порядок автоматизації є випадковим.

  1. SF — повторне використання та найкоротше спочатку

Код автоматизації подібних етапів тестування використовується повторно. Найкоротший тест буде автоматизовано спочатку, а якщо два тести однакової довжини, буде обрано той, який відбувся першим.

  1. LF – повторне використання та спочатку довше

Код автоматизації подібних етапів тестування використовується повторно. Довгий тест буде автоматизовано спочатку, а якщо два тести однакової довжини, буде обрано той, який відбувся першим.

  1. P/E – повторне використання та пріоритетність P/E

Код автоматизації подібних етапів тестування використовується повторно. Порядок автоматизації визначається алгоритмом P/E. Він розглядає тестові кейси та призначає P/E оцінку за кожен тест. Якщо два тестові випадки мають однаковий бал, то буде обрано той, який був першим.

  1. SH — повторне використання та стохастичне сходження на пагорб

Код автоматизації подібних етапів тестування використовується повторно. Порядок автоматизації обрано за алгоритмом стохастичного сходження на пагорб.

Пошук найбільш ефективного порядку автоматизації є важливим критерієм при виборі алгоритму пріоритетності роботи з автоматизації. Однак, важливо також враховувати ефективність обчислень.

У цьому розділі ми порівнюємо два найкращих алгоритми, SH та P/E, і порівнюємо їх продуктивність щодо обчислювальної ефективності.

Час виконання показує відповідне значення для алгоритму P/E, тоді як час, повідомлений для алгоритму сходження на пагорб враховує ще й час очікування.

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

Висновки та перспективи подальших досліджень. Очевидно, що запропонований у цій статті підхід до визначення пріоритетів P/E, порівнянний із більш стандартним стохастичним сходженням на пагорб, є зручним для пріоритезації автоматизації тестових випадків. Цей підхід не вимагає жодного введення вручну для встановлення пріоритетів чи подібності відстеження. У майбутньому можна розглянути інші критерії, такі як охоплення коду та здатність тестових кейсів виявити несправності.

Література

  1. Гленфорд Дж. Майєрс. Мистецтво тестування програмного забезпечення / Гленфорд Дж. Майєрс, Кори Сандлер, Том Баджет., 1979.
  2. Сем Кенер Тестування програмного забезпечення / Сем Кенер, Джек Фолк, Hung Q. Nguyen, 1988.
  3. Лі Копеланд. Практичний посібник до тестування програмного забезпечення / Лі Копеланд., 2004. – 288 с.
  4. Барр Е. Т., Харман М., Макмін П., Шахбаз М., Йо С. Проблема при тестуванні програмного забезпечення: опитування. IEEE Trans Software Eng. 2015. № 41 (5). С. 507–525.
  5. Басіт Х., Ярзабек С. Підхід до аналізу даних для виявлення клонів вищого рівня в програмному забезпеченні. Транзакції IEEE з програмної інженерії. 2009. № 35 (4). С. 497–514.
  6. Горшек Т., Гарре П., Ларссон С., Волін С. Модель передачі технологій на практиці. Програмне забезпечення IEEE. 2006. № 23 (6). С. 88–95.
  7. Дослідження моделей процесів тестування зручностей використання програмних продуктів / О. С. Ісаков, О. Ю. Чередніченко, В. В. Мозгін, О. В. Янголенко. 2018. 8 с. (Стратегічне управління, управління портфелями, програмами та проектами).
  8. Бенюх Л. І. поведінковий підхід (BDD) як ефективний метод для організації автоматизованого тестування у безперервному доставленні продукту / Бенюх Л. І., Глибовець А. М, Афонін А. О.., 2020. 7 с.
  9. Теорія ймовірностей, теорія випадкових процесів та математична статистика (частина І) / І.А. Рудоміно-Дусятська, Л.М. Козубцова, О.Ю. Пояркова та ін.]. Київ, 2019. 187 с.
  10. Звіт про досвід: автоматичне визначення пріоритетів тесту на регресійний рівень із використанням багатьох факторів / П. Е.Стрендберг, Д. Сундмарк, В. Афзал, Т. Д. Остранд // 29th IEEE International Symposium on Software Reliability Engineering. 2018.

Перегляди: 309

Коментарі закрито.

To comment on the article - you need to download the candidate degree and / or doctor of Science

Підготуйте

наукову статтю на актуальну тему, відповідно до роздлів журналу

Відправте

наукову статтю на e-mail: editor@inter-nauka.com

Читайте

Вашу статтю на сайті нашого журналу та отримайте сертифікат