Порожні тести від ШІ
Дванадцять зелених тестів. Жоден не перевіряв випадок, через який стався витік.
Що таке Порожні тести від ШІ?
ШІ-помічник може писати тести, які проходять, але не перевіряють головного. Ви приймете дванадцять зелених тестів для ендпоінта лише для адміністраторів, побачите, як звичайний користувач читає через нього всі зарплати, і виявите, що кожен тест входив як адміністратор, а один перевіряв лише, що код статусу існує. Ви напишете негативний тест, якого бракувало, побачите, як він не проходить на випущеному коді, а потім виправите перевірку. Ви навчитеся читати тести від помічника й перевіряти випадок, у якому має бути відмова.
Що ви дізнаєтесь у Порожні тести від ШІ
- Розпізнавайте, що тести від помічника, які проходять, доводять лише написані випадки, а не пропущені
- Поясніть, чому покриття інструкцій показує, скільки інструкцій виконано, а не чи перевірено поведінку, тож навіть високий показник може оминати гілку, через яку стається витік
- Читайте тест і дивіться, під ким він входить і що насправді перевіряє, замість того щоб довіряти зеленому результату
- Пишіть негативний тест для правила контролю доступу й дивіться, як він не проходить на зламаному коді, перш ніж виправляти
- Перевіряйте виправлення авторизації: відхилений запит повертає 403, а негативний тест тепер проходить
Порожні тести від ШІ — Кроки навчання
-
Зарплати — лише для адміністраторів
Прохання керівниці — перше в черзі задач у Jotvane, трекері вашої команди. Новий ендпоінт зарплат треба закрити для всіх, крім адміністраторів, а тести вона хоче бачити до випуску в п'ятницю.
-
Відкрийте ендпоінт
У редакторі завантажено нову перевірку ролі, маршрут зарплат і порожній файл із тестами. requireRole — це middleware, яке ви написали сьогодні вранці: маршрут вказує потрібну роль, а перевірка має відсікати всіх інших.
-
Ваша щойно написана перевірка
Перевірка працює саме на маршруті зарплат. Відкрийте його, щоб побачити, де стоїть requireRole .
-
Попросіть тести
Відкрийте Claude і попросіть його написати тести для ендпоінта зарплат, як просила керівниця.
-
Дванадцять тестів, усі зелені
Claude читає маршрут і перевірку ролі, пише файл із тестами й доповідає: дванадцять тестів, усі проходять, покриття — 94%.
-
Прийміть тести
Прийняття додає до проєкту файл із тестами від Claude. Смуга ліворуч від рядків позначає кожен рядок фіолетовим як такий, що не пройшов рев'ю: його написав помічник, а людина ще не читала.
-
Зелено — отже, можна випускати
Запустіть тести. Якщо результат збігається зі звітом Claude, проходять дванадцять тестів, покриття — 94%, і ендпоінт здається достатньо покритим, щоб випустити його до п'ятниці.
-
Будь-хто може прочитати всі зарплати
Боб працює у Farrowlin зі звичайним обліковим записом: ролі адміністратора й особливого доступу в нього немає. Йому цікаво, що там у новому ендпоінті зарплат, тож він спрямовує на цей ендпоінт запит у «Тестері API» і надсилає власний токен сеансу, як зробив би будь-який користувач, що увійшов у систему.
-
У відділі кадрів помітили
Керівниця відділу кадрів створила задачу. Хтось без жодної ролі у зарплатній системі отримав через API весь список зарплат, і вона хоче знати, як ендпоінт це допустив.
-
Прочитайте, що перевіряють тести
Смуга авторства показує, хто написав тести і що їх ніхто не читав. Прочитайте їх тепер: під ким вони входять і що саме перевіряють. Потім позначте рядки Claude як такі, що пройшли рев'ю.
Охоплення стандартів безпеки
OWASP Top 10
- A06:2025 Insecure Design
- A01:2025 Broken Access Control
CWE
- CWE-862 Missing Authorization
CIS Controls
- CIS 16 Application Software Security
NIST CSF
- PR.AT-02 Individuals in specialized roles are provided with awareness and training so that they possess the knowledge and skills to perform relevant tasks with cybersecurity risks in mind
- PR.PS Platform Security