одиниці
1. Вступ до штучного інтелекту в тестуванні програмного забезпечення та якості: ролі, межі, ризик підробки та перевірка 2. Тестовий сценарій і генерація тестових випадків: від вимоги до всебічного контролю 3. Дослідницьке тестування та генерація тестових ідей: креативний пошук помилок за допомогою ШІ 4. Автоматизація тестування інтерфейсу користувача: створення коду Selenium, Playwright і Cypress за допомогою ШІ 5. Автоматизація тестування API: контракт, схема та наскрізна перевірка за допомогою ШІ 6. Генерація модульних тестів і можливість тестування: надійне тестування за допомогою ШІ 7. Написання звіту про помилку та встановлення пріоритетів: чіткі, відтворювані записи за допомогою ШІ 8. Аналіз тестового покриття та тестування на основі оцінки ризиків: правильна ціль за допомогою ШІ 9. Регресійне тестування, обслуговування тестів і боротьба з крихкими тестами 10. Ризик помилкової довіри, якість тесту та тестування на мутації: Тести тестування 11. Наскрізний робочий процес, інтеграція CI/CD, етика та безпека: відповідальне використання ШІ
одиниця 11 / 11

Наскрізний робочий процес, інтеграція CI/CD, етика та безпека: відповідальне використання ШІ

Прибуток:

  • Здатність розробити роль штучного інтелекту та точок схвалення людини в наскрізному потоці контролю якості від ідеї до випуску в контексті CI/CD
  • У CI/CD не дозволяє штучному інтелекту автоматично «проходити» тест, але застосовує обмеження для захисту конфіденційних даних і ключів
  • Здатність виконувати тестування безпеки в рамках повноважень і з метою захисту, а також прийняти принципи відповідального розкриття інформації та етичної прозорості.

У попередніх десяти розділах ми використовували ШІ в окремих завданнях: генерація сценарію, код автоматизації, звіт про помилки, аналіз покриття, тестування на мутації. Цей останній блок об’єднує їх усіх в один відповідальний робочий процес. Сучасний контроль якості – це не робота, яка закінчується за столом однієї людини; Це процес, який живе в CI/CD (безперервна інтеграція / безперервна доставка — конвеєр, у якому код постійно поєднується, автоматично перевіряється та готується до частої та безпечної публікації). ШІ може торкатися кожного етапу цього процесу. Але зі зростанням потужності штучного інтелекту зростає важливість його відповідального використання: конфіденційність, авторитет у тестуванні безпеки, етика та, що найважливіше, прийняття рішень щодо якості за людиною. У цьому розділі ви дізнаєтесь про наскрізний потік і межі.

Наскрізний потік контролю якості на основі ШІ

Роль штучного інтелекту на шляху функції від ідеї до випуску:

1. Аналіз вимог. ШІ позначає неоднозначність у вимозі та відсутні критерії прийнятності («у цьому правилі не зазначено, скільки символів має бути мінімальний пароль»).

2. Дизайн тесту. Чернетки сценарію та кейсу (блок 2), крайові випадки (блок 3) є одними з критеріїв прийнятності.

3. Автоматизація. Проекти тестового коду блоку (6), API (5) та інтерфейсу користувача (4); кожен підтверджується мутацією (10).

4. Інтеграція CI/CD. Тести запускаються автоматично з кожним злиттям коду. ШІ створює проекти конфігурації конвеєра (YAML), підсумовує журнали невдалих тестів, пропонує можливу першопричину.

5. Рішення про звільнення. Результати аналізу ризиків (8) і регресії (9) збираються, але експерт вирішує, чи може це бути успішним.

6. Моніторинг виробництва та зворотній зв'язок. Помилки в прямому ефірі стають майбутніми тестами; AI пропонує регресійний випадок виробничого дефекту.

Порада: налаштуйте ШІ як рівень у CI/CD, який «прискорює чернетки, перевірені людиною», а не «пише тести та приймає рішення». Жодні автоматично згенеровані тести не повинні входити в конвеєр без перевірки та затвердження людиною.

ШІ в CI/CD: де так, де ні

етап

ШІ підходить

людина є важливою

Чернетка тестового коду

так

Перегляд + мутація

Проект конвеєра YAML

так

Аутентифікація + перевірка секретного ключа

Failed log summary

так

Підтвердження першопричини

Крихкий тестовий діагноз

так

Рішення про постійне рішення

«Може бути версія?»

немає

Експертна оцінка та відповідальність

Автоматично «пройти» тест

ніколи

Застереження: ніколи не давайте ШІ наказу на кшталт «виправити, щоб пройти невдалий тест» у CI/CD. Це перешкоджає меті тестування та автоматично приховує помилки. ШІ може пояснити помилку, запропонувати виправлення; але «пофарбувати тест в зелений» має бути свідомим, обґрунтованим рішенням людини.

Конфіденційність, дані та безпека: незмінні межі

Конфіденційність. У тестовому середовищі фактичні дані клієнта, копії робочої бази даних, ключі API та внутрішня системна інформація є конфіденційними. Не віддавайте це публічним інструментам ШІ. Персональні дані регулюються КВКК та аналогічними нормативними актами; Журнали масок і скріншоти. Використовуйте синтетичні (вигадані) дані тесту, де це можливо.

Тестування безпеки — захисне та авторизоване. Тести безпеки, вивчені в цьому модулі (тести авторизації/IDOR, обмеження завантаження файлів, перевірка введених даних), призначені лише для тестування вашого власного продукту в межах письмового дозволу та визначеного обсягу. Використання штучного інтелекту для доступу до чужої системи без дозволу, застосування реальних уразливостей або проведення тестування за межами області видимості є неетичним і незаконним. Коли ви виявите вразливість системи безпеки, дотримуйтеся принципу відповідального розголошення — зберігайте вразливість в таємниці та повідомляйте про неї відповідній стороні, щоб її можна було виправити.

Етичність і прозорість. Не представляйте тести, створені ШІ, як свою власну роботу; Заява про те, що ви використовуєте ШІ в команді, є прозорою. Ви несете відповідальність за неточність вироблених ШІ результатів — «ШІ написав це» не є виправданням.

Слабка підказка / Сильна підказка

Слабкий: «Налаштувати тестовий конвеєр для CI».
Сильно: «Створіть проект робочого циклу CI YAML для дій GitHub: запустіть модульні тести + API для кожного PR, створіть звіт про покриття, запустіть тестування на мутації (Stryker) щотижня. Не вставляйте секрети в код; використовуйте лише посилання на секрети. Блокуйте злиття, якщо тести червоні. Це ПРОЕКТ; я перегляну та відредагую керування секретними ключами та етапи перевірки. НЕ ДОДАВАЙТЕ «виправлення» автоматизованого тестування або крок "мігрувати".

Потужна підказка; Він накладає обмеження на конфіденційність, перевірку людьми та «відсутність автоматизованого тестування».

Чотири шаблони, які можна копіювати

1) План наскрізного тестування:

Ваша роль: старший керівник QA. Розробіть план наскрізного тестування від ідеї до випуску для такої функції: [функція + критерії прийняття]. Етапи: аналіз вимог (невизначеності), дизайн тесту, рівні автоматизації (блок/API/користувальницький інтерфейс), інтеграція CI/CD, критерії прийняття рішення про випуск, відстеження виробництва. Укажіть роль точок затвердження AI та HUMAN на кожному етапі окремо.

2) Конвеєр CI/CD:

Чернетка CI YAML для [GitHub Actions/GitLab CI/Azure Pipelines]:- Одиниця + тест API + область у PR- Запобігання злиття в червоному тесті- Секретні значення лише з секретами; вбудовування в код Це чернетка; Я перегляну основні етапи керування та затвердження. Додавання кроку автовиправлення/проходження тесту.

3) Невдалий аналіз журналу тестування:

У цій роздруківці CI тести червоні. Огляньте журнал; згрупуйте невдачі, розрізніть можливу першопричину та ЩО може бути справжньою невдачею, а яка може бути крихкою проблемою тестування/оточення. Якщо є персональні дані, замаскуйте їх. Рішення та виправлення будуть моїми. Журнал: [вставити]

4) Попередня перевірка безпеки/конфіденційності:

Перш ніж ці тестові дані/журнал буде надіслано до інструменту ШІ, перевірте: чи містять вони особисті дані, ключ API, внутрішню системну адресу, виробничі дані? Перелічіть, які області, якщо такі є, потрібно замаскувати/видалити. Обробка як є. Вміст: [вставити]

три міні-чохла

Випадок 1 — Швидкість наскрізного потоку. Одна команда розробила нову функцію «поновлення підписки» за допомогою наскрізного потоку на основі штучного інтелекту: невизначеності вимог позначено наперед, розроблено трирівневі тести та перевірено на мутації, прив’язане до CI. Ця функція скоротила цикл тестування, який займав 5 днів у традиційному процесі, до 2 днів; але схвалення з боку людини було збережено на кожному етапі, а невизначеність вимог (що трапиться, якщо оновлення не вдасться) було закрито перед опублікуванням.

Випадок 2 — Повернення після витоку ключа. Розробник змусив штучний інтелект створити CI YAML, і штучний інтелект вставив у YAML справжній ключ API як приклад. Крок «попередня перевірка безпеки/конфіденційності» зафіксував це; ключ перетворено на секретне посилання. Без етапу аудиту ключ міг би просочитися до системи керування версіями (історія git).

Випадок 3 — Межа повноважень. Член команди хотів застосувати тест IDOR, який він навчився, до живої системи ділового партнера через «мені було цікаво». Керівник QA зупинився: це незаконно проводити тестування безпеки на іншій системі без письмового дозволу та визначеного обсягу. Тестування проводилося лише в тестовому середовищі власних продуктів, з повноваженнями; Відкриту відповідальну сторону було повідомлено відповідній групі.

Поширені помилки

  • Змусити ШІ приймати рішення про випуск. Задаючи питання "Чи можна звільнити?" до ШІ і поставивши відповідь замість підпису.
  • «Проходження» автоматизованого тесту. У CI запропонуйте ШІ зафарбувати тест зеленим кольором; приховування помилок.
  • Передача конфіденційних даних/ключа від автомобіля. Обмін виробничими даними, особистими даними або ключами API без нагляду.
  • Несанкціоноване тестування безпеки. Тестування зловмисників на іншій системі без обсягу та дозволу.
  • Введення тестів у конвеєр без перегляду. Автоматично запускайте ескіз AI без схвалення людини.
  • Покладання провини на ШІ. Захист неправильного результату, кажучи: «Це написав ШІ».

Підсумовуючи

Наскрізна перевірка якості – це процес, який поширюється від вимог до відстеження виробництва та живе в рамках CI/CD; На кожному етапі штучний інтелект створює чернетки, підсумовує журнал і пропонує першопричини. Але межі незмінні: люди приймають рішення щодо тестування та схвалення випуску; ШІ ніколи не надається повноваження автоматично «пройти» тест; конфіденційні дані та ключі не потрапляють в транспортний засіб; Тестування безпеки виконується лише на вашому власному продукті в межах письмового дозволу та визначеного обсягу з метою захисту, а результати повідомляються з відповідальним розголошенням. Будьте прозорими, коли використовуєте ШІ; Ви несете відповідальність за точність виведених даних. ШІ прискорює; Ви гарантуєте якість і етику.

Аплікаційне завдання

Створіть план від ідеї до випуску за допомогою шаблону «план наскрізного тестування» для функції з вашого власного проекту; Позначте роль ШІ та точок схвалення людини окремо на кожному етапі. Потім згенеруйте YAML із «конвеєром CI/CD» і застосуйте «попередню перевірку безпеки/конфіденційності» до цього YAML, щоб перевірити наявність вбудованих ключів/секретних даних. Нарешті, перерахуйте всі пункти «людського рішення» у вашому плані та обґрунтуйте одним реченням, чому ці рішення не можна делегувати ШІ.

контрольний список

  • [ ] Я відношу рішення про випуск і тестування до схвалення людини; Я не здавав його ШІ.
  • [ ] У CI/CD я не дав ШІ дозволу на автоматичне проходження/виправлення тесту.
  • [ ] Я перевірив і замаскував конфіденційні дані, особисті дані та ключі перед тим, як відправити їх у транспортний засіб.
  • [ ] Я розглядав лише тестування безпеки на своєму власному продукті в межах письмового дозволу та обсягу.
  • [ ] Я розглянув виявлені вразливості за принципом відповідального розкриття інформації.
  • [ ] Я прозоро заявив, що використовував штучний інтелект, і відповідав за точність результату.

Модульний екзамен

1. Як найбільш точно визначається «помилковий пропуск» у контексті забезпечення якості?

  • A) Хоча тест стає зеленим, він фактично не підтверджує жодної поведінки; ✔ Не стає червоним, навіть якщо код пошкоджено
  • B) Тест виконується дуже повільно, час очікування.
  • C) Тест виявляє справжню помилку і стає червоним
  • D) Тест виконується лише у робочому середовищі

Пояснення: псевдопрохід — це коли тест каже «пройшов», але насправді нічого значущого не підтверджує; Тест зелений, але навіть якщо програмне забезпечення несправне, воно його не вловить. Це ризик номер один для штучного інтелекту під час перевірки якості, оскільки штучний інтелект створює тести, які виглядають акуратно, але є порожніми.

2. Яке найточніше позиціонування штучного інтелекту в процесі тестування та контролю якості?

  • A) Штучний інтелект може вирішити, чи можна опублікувати версію без схвалення людини
  • Б) Штучний інтелект – це помічник, який генерує чернетки та ідеї; Рішення та відповідальність за те, чи готовий він до публікації, належить експерту ✔
  • В) Штучний інтелект лише пише текст і взагалі не може працювати з тестовим кодом
  • D) Штучний інтелект завжди пише правильний тест, ніж людина, тому перегляд непотрібний

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

3. Виходячи з того факту, що помилки здебільшого виникають при порогових значеннях, яка техніка планування тесту полягає у тестуванні 17, 18 і 19 років окремо для вікового обмеження 18 років?

  • А) Тест переходу стану
  • B) Таблиця рішень
  • C) Аналіз граничних значень ✔
  • Г) Пошукове тестування

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

4. Якому підходу слід віддати перевагу у виборі елементів, щоб зменшити крихкість коду автоматизації тестування інтерфейсу користувача, створеного за допомогою штучного інтелекту?

  • A) Використання найдовшого можливого шляху XPath
  • B) Вибір елемента відповідно до його позиції пікселя на екрані
  • C) Використання селекторів на основі імен класів CSS
  • D) Використання стабільних атрибутів (data-testid), доданих для тестування ✔

Пояснення: довгі шляхи XPath та імена класів CSS надзвичайно залежать від структури та дизайну сторінки; Він ламається при найменшій зміні інтерфейсу. На стабільні атрибути, додані спеціально для тестування (наприклад, data-testid), не впливають зміни дизайну, і вони роблять тести надійними.

5. Чому для тесту API недостатньо просто перевірити код статусу HTTP (наприклад, 200)?

  • A) Оскільки дані тіла з правильним кодом статусу можуть бути пошкоджені, і лише перевірка статусу не вловить це (псевдовіра) ✔
  • B) Тому що коди стану взагалі не є надійними в тестах API
  • C) Тому що перевірка коду статусу дуже уповільнює тест
  • D) Оскільки код стану ніколи не повертається в тестах API

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

6. Чому важливо сказати штучному інтелекту «вручну обчислити очікуване значення відповідно до правила прийняття, не посилатися на поточний вихід функції» під час друку модульних тестів?

  • A) Оскільки обчислення вручну запускає тести швидше
  • B) Оскільки в іншому випадку тест приймає поточну (можливо, помилкову) поведінку коду як «правильну» та підтверджує помилку ✔
  • В) Тому що штучний інтелект взагалі не може обчислювати десяткові числа
  • D) Оскільки правила прийняття ніколи не використовуються в тестах

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

7. Що з наведеного є найбільш відмінною рисою хорошого звіту про помилку?

  • А) Бути якомога довшим і технічним
  • Б) Написаний штучним інтелектом
  • C) Містить детерміновані кроки відтворення, які розробник може виконувати самостійно та створювати помилку ✔
  • D) Це просто скріншот

Пояснення: Справжня цінність звіту про помилку полягає в тому, що розробник може відтворити помилку без вашої допомоги. Детерміновані, відстежувані кроки відтворення з нуля забезпечують це; Якщо ці кроки відсутні, звіт часто закривається як «не вдалося створити».

8. Яке найточніше вираження зв’язку між серйозністю та пріоритетом у помилці неправильного написання назви компанії на головній сторінці?

  • A) Інтенсивність і пріоритет завжди повинні мати однакове значення
  • B) Серйозність і пріоритет цієї помилки безумовно низькі
  • C) Серйозність і пріоритет — це те саме поняття, достатньо однієї мітки
  • D) Технічна інтенсивність може бути низькою, але бізнес-пріоритет (репутація) може бути високим; Ці двоє оцінюються по-різному ✔

Пояснення: серйозність — це технічний вплив помилки (технічно низька друкарська помилка), пріоритет — це те, наскільки терміново її потрібно виправити (високий, оскільки це елемент репутації, який бачить кожен відвідувач). Вони не завжди йдуть в одному напрямку; Цей приклад — ситуація низького рівня серйозності з високим пріоритетом.

9. Яка найточніша інтерпретація набору тестів із покриттям лінії 90%?

  • A) Це показує, що рядки виконуються, але не доводить, що вони поводяться правильно; ✔ високе покриття може викликати помилкову впевненість
  • B) Переконливо доводить, що 90% програмного забезпечення не містить помилок
  • C) Це остаточний показник відмінної якості тесту.
  • D) Вказує на те, що більше немає необхідності писати додаткові тести

Пояснення: покриття рядка вказує на те, що було виконано лише рядки; Це не доводить, що він дає правильні результати. Навіть за допомогою непереконливих тестів можна досягти 90% покриття. Scope — це карта «ніколи не шукав», а не гарантія «все було перевірено»; фактичний захист вимірюється тестуванням на мутації.

10. Як у тестуванні на основі оцінки ризику розраховується ризик функції для спрямування обмежених зусиль тестування?

  • А) Тільки за кількістю рядків коду
  • B) Помноживши ймовірність відмови та ефект, який виникне, коли він поламається ✔
  • C) Тільки в тому порядку, в якому функція була розроблена
  • D) Пріоритет лише функції, для якої найлегше писати тести

Пояснення: у тестуванні на основі ризику ризик оцінюється як ймовірність = ймовірність (імовірність поломки) × вплив (пошкодження у разі поломки). Домени з високою вірогідністю та високим впливом (оплата, автентифікація) заслуговують на найінтенсивніше тестування, тоді як домени з низьким × низьким тестуванням проходять легке тестування.

11. Який основний ризик додавання повторної спроби до тесту, який іноді проходить, а іноді зазнає невдачі (крихкий/нестабільний), навіть якщо код не змінився?

  • А) Скорочення часу виконання тесту
  • B) Зменшує відсоток покриття
  • C) Приховування справжньої помилки паралелізму або першопричини та придушення симптому ✔
  • Г) Зміна назви тесту

Пояснення. Повторна спроба — це діагностичний інструмент, а не лікування. Нерішучість часто походить від фактичного расового стану або залежності; Змусити тест «пройти» за допомогою повторної спроби приховує цю реальну помилку та може спричинити серйозні проблеми в прямому ефірі. Спочатку слід знайти першопричину.

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

  • А) Шляхом вимірювання швидкості бігу тестів
  • B) Підрахувавши, скільки рядків коду було написано
  • C) Виконуючи тести в різному порядку
  • D) Навмисно створюючи невеликі розриви в коді та вимірюючи, чи вловлюють їх тести ✔

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

13. Якого основного обмеження слід дотримуватися під час тестування безпеки (наприклад, тести авторизації/IDOR)?

  • A) Це слід робити лише на власному продукті, у межах письмового дозволу та визначеного обсягу з метою захисту ✔
  • B) Його можна вільно застосовувати до будь-якої системи інтересів
  • C) Його можна випробувати на живих системах ділових партнерів без дозволу
  • D) Будь-які виявлені вразливості слід негайно оприлюднити.

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

14. Які повноваження ніколи не слід надавати штучному інтелекту в конвеєрі CI/CD?

  • A) Узагальнення журналів невдалих тестів
  • Б) Повноваження автоматично «пройти» невдалий (червоний) тест або пофарбувати його в зелений колір ✔
  • C) Пропозиція проекту тестового коду
  • D) Конвеєрне складання файлу YAML

Опис: штучний інтелект може створювати структуру тестового коду, конвеєр YAML і підсумок журналу в CI/CD; проте ніколи не слід надавати можливість автоматично «пройти/виправити» невдалий тест. Це перешкоджає меті тестування та автоматично приховує помилки. Фарбування тесту в зелений колір має бути свідомим і обґрунтованим рішенням людини.