Друкарня від WE.UA

Мої нотатки зі статті “Change-Driven Testing” за авторством Dr. Sven Amann and Dr. Elmar Jürgens

Примітка автора. Рекомендую ознайомитись із першоджерелом.

Проблема

  • тестування повільне, тому люди пишуть багато автотестів

  • автотестів стає дуже багато, на кожен PR не запустиш усі

  • нічні прогони тестів допомагають частково: бо треба знайти саме той коміт, що зламав master

  • автотести вирішують питання efficiency (продуктивності), але залишається питання effectiveness (результативності чи корисності)

Change-Drive Testing

Суть - концентрація на тестуванні змін. Підхід - заснований на даних, як і Business Intelligence. Тому й дістав назву Test Intelligence.

Дані збираються:

  • з системи контроля версій

  • з тікет системи (JIRA)

  • профайлерів для покриття коду

  • систем менеджменту тестів

Основна ідея Change-Driven testing - "Існуючі тести впадуть тільки, якщо виникнуть нові помилки. Нові помилки виникнуть, коли відбулися зміни в коді".

Пропонується тестувати в два етапи

  1. Для продуктивності тестуємо тільки те, чого торкнулись зміни. Застосовуємо для цього Test Impact Analysis

  2. Для результативності тестуємо усі можливі зміни. Для цього є Test-Gap Analysis.

Важливо! Під змінами розглядають саме зміни в поведінці чи функціональності, а не рефакторінг.

Test Impact Analysis (TIA)

Мета - знайти саме ті тести, що перевірять конкретні зміни в коді.

Test Impact Analysis проходить в два етапи

  1. Крок вибору тестів (Test Selection step): визначаємо тести, на які вплинули зміни. Це можуть бути модульні тести в самому PR, а також усі, що використовують конкретний змінений метод.

  2. Крок пріоретизації тестів (Test Prioritization step): використовуємо "жадібну" (greedy) еврістику - обираються тести, що покривають найбільше зміненого коду за одиницю часу.

Test Gap Analysis (TGA)

Мета - порівняти зміни в коді з сукупним тестовим покриттям та знайти таким чином зміни, що не покриті жодним тестом (test gaps).

Примітка автора. Test-Gap аналіз розкритий достатньо розмито. Треба напевне писати авторам з конкретними питаннями

Як результат, будується treemap

Обмеження, або чому підхід не "панацея"

  • обидва підходи TIA та TGA не враховують зміни в конфігурації та даних системи

  • TIA розраховує, що покриття стабільне - тобто кожне виконання тесту дає те ж саме покриття. Це працює для автотестів, але погано працює для ручного тестування

  • TGA не враховує наскільки ретельно була протестована зміна. Тільки - чи усі методи в конкретному PR були покриті.

Результати

  • До впровадження Test Impact аналізу - на кожен PR запускались тести на CI та фідбеку треба було чекати 45 хвилин.

  • Після впровадження Test Impact аналізу - 1.5 хвилини на перший тестовий запуск саме тих тестів, які потрібно плюс 45 секунд на ретест після фікса проблеми.

  • автори використовують Test-Gap аналіз для побудови treemap діаграм навіть при змінах на UI. Одразу позначено червоним місця, де потрібно додати тестів

Висновок

Виглядає доволі цікаво. До того ж - я точно знаю, що Test Impact аналіз працює й доволі успішно. Але треба докласти чимало зусиль, щоб додати його в проєкт. Деякі інструменти, типу Sealights “обіцяють” легку інтеграцію, але насправді не така вже вона й легка.

До того ж хочу зазначити, що Test Impact аналіз - може бути не тільки для автотестів. Це можна пробувати проводити вручну. Так само, як Test Gap аналіз.

Статті про вітчизняний бізнес та цікавих людей:

  • Вітаємо з Різдвом Христовим!

    Друкарня та платформа WE.UA вітають всіх наших читачів та авторів зі світлим святом Різдва! Зичимо всім українцям довгожданого миру, міцного здоровʼя, злагоди, родинного затишку та втілення всього доброго і прекрасного, чого вам побажали колядники!

    Теми цього довгочиту:

    Різдво
  • Каблучки – прикраси, які варто купувати

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

    Теми цього довгочиту:

    Як Вибрати Каблучку
  • П'ять помилок у виборі домашнього текстилю, які псують комфорт сну

    Навіть ідеальний матрац не компенсує дискомфорт, якщо текстиль підібрано неправильно. Постільна білизна безпосередньо впливає на терморегуляцію, стан шкіри та глибину сну. Більшість проблем виникає не через низьку якість виробів, а через вибір матеріалів та подальшу експлуатацію

    Теми цього довгочиту:

    Домашній Текстиль
  • Як знайти житло в Києві

    Переїжджаєте до Києва і шукаєте житло? Дізнайтеся, як орендувати чи купити квартиру, перевірити власника та знайти варіанти, про які зазвичай не говорять.

    Теми цього довгочиту:

    Агентство Нерухомості
  • Як заохотити дитину до читання?

    Як залучити до читання сучасну молодь - поради та факти. Користь читання для дітей - основні переваги. Розвиток дітей - це наше майбутнє.

    Теми цього довгочиту:

    Читання
Поділись своїми ідеями в новій публікації.
Ми чекаємо саме на твій довгочит!
Test Engineering Notes
Test Engineering Notes@TestEngineering

Про складні речі в тестуванні

1.3KПрочитань
4Автори
14Читачі
На Друкарні з 27 червня

Більше від автора

Це також може зацікавити:

Коментарі (0)

Підтримайте автора першим.
Напишіть коментар!

Це також може зацікавити: