Чи замінить ChatGPT тестувальників, або Посібник для QA, як працювати з алгоритмом
Вітаю! Мене звати Артур Шевченко і сьогодні ми поговоримо про те, чи здатен Штучний Інтелект (ШІ), на прикладі ChatGPT, замінити справжнього вовчару тестування.
ChatGPT — чат-бот зі штучним інтелектом, розроблений лабораторією OpenAI. Являє собою велику статистичну модель мови, оптимізовану для ведення діалогів та налагоджену завдяки технікам навчання з учителем та навчання з підкріпленням. В основі прототипу лежить модель OpenAI GPT-3.5 — покращена версія GPT-3.
Є два способи, щоб зареєструватися. Перший: берете у когось з родичів/ друзів/ знайомих, що знаходяться за кордоном, телефонний номер. Реєструєте на нього ваш акаунт. На номер при реєстрації має прийти пароль підтвердження. Підказка: краще використовувати VPN тієї країни, з якої ви будете використовувати номер. Подальше використання чату можливе без VPN.
Другий спосіб: купити тимчасовий інтернет-номер з можливістю прийняття смс-ок. Ціна варіюється від 5 до 20 баксів на місяць. Але можуть бути великі затримки у відправленні і прийомі смс. Тому краще все ж «живий» номер.
Після реєстрації спробуймо дізнатися, чи машина розумніша за людину.
Це зображення, до речі, теж згенероване за допомогою ШІ
1. Генерація тестових сценаріїв
Тож, перша і одна з найчастіших задач для тестувальника — написання тест кейсів або чек-листів.
Пишемо до чату такий меседж:
🟢 write me a checklist for testing the login form
Що ж, базові перевірки він згенерував. Звичайно, ми не вказували валідаційних правил, тому він не розписав нам детальні перевірки, а просто написав validates correct credentials. Також бачимо декілька нефункціональних перевірок. В принципі, непогано.
Давайте тепер спробуємо дати йому більше деталей:
🟢 write me a checklist for testing the login form. email follows RFC 5322 standard. password should be at least 8 chars, including 1 upper letter, 1 number, and 1 special character. The maximum length of the password is 60 chars.
Вже цікавіше.
Тепер спробуємо написати деталізовані тест-кейси:
🟢 generate detailed Test Cases for the login form
За бажання, можна написати в чат фразу continue і він продовжить генерувати далі.
Як ми бачимо, ШІ сам додумує, які є кнопки на формі, як відбувається флоу логіна та які помилки відбуваються.
Тобто, щоб була відповідність нашим реальним бізнес-вимогам треба більше давати даних, деталей або редагувати згенеровані тести. Проте, я би більше орієнтувався на нього як на помічника саме до недеталізованих тестових сценаріїв.
Підемо далі. Наступна цікава штука, де він може бути корисним — генерація сценарії тестування нефункціональних вимог.
Наприклад:
🟢 write me a checklist for testing accessibility of the login page
Як на мене, вийшло доволі цікаво. Спеціалісти з аксесабіліті-тестування можуть зараз сказати, що сценаріїв дуже мало, деякі тести не розкривають повноти та інше. Але саме для базової перевірки — краще, ніж нічого взагалі. Плюс, можна розцінювати це як перший крок до аксесабіліті тестування.
Перевірмо, що там по перфомансу:
🟢 write me please checklist for performance testing of adding new user
Тут можна побачити, що змішались функціональні і нефункціональні перевірки. Як на мене, якісь дуже загальні фрази та сценарії. Тобто, вони майже марні. Якщо для функціональних перевірок воно ще було придатним і доволі деталізованим, то тут буде багато питань: а як це зробити, як моніторити, на що орієнтуватися і т.д.
Спускаємося на рівень нижче
Гляньмо, що там по API:
🟢 generate please test cases for adding new user with API. use java, testng, restassured
ШІ намагається тестувати API не зовсім як API. Тобто, він не надає перевірки статус кодів, хедерсів. Добре, що є згадка про HTTP-методи запиту. Про невалідний формат я би розширив тести — тут доволі поверхнева перевірка. Прикольно, що він додав сюди перевірки безпеки та перфомансу (але чи треба нам це — вже вирішуйте самі).
2. А що по автоматизації
Пропоную зануритись ще глибше і перейти до автоматизації:
🟢 generate please code for tests on java, testng, restassured for adding new user via API
Поки виглядає доволі сирим і відірваним від реальності.
Додамо трішки деталей:
🟢 write tests using java, testng, restassured, hamcrest, lombok, jackson for adding new user via API. create a DTO class for user. create a service class for sending requests.
Вже краще.
Так, воно все ще сире, нагадує код джуніора, але трішки підредагувати і деякі частини можна використовувати.
Тому, як на мене, поки що алгоритм і близько не стоїть, щоб замінити тестувальників — ні мануальних, ні тих, хто займається автоматизацією, але може трішки зекономити нам час. Проте треба бути дуже обережним і перевіряти, що він нагенерував.
3. Що ще вміє ChatGPT
Насправді, будь-що. Мені сподобався ще один спосіб використання ШІ для генерування лекцій:
🟢 generate me a lesson for students about generics in java
Перша ітерація доволі поверхнева і не дає повного уявлення про дженеріки (друга, третя і четверта, якщо чесно, також були поверхневими — далі я не став його допитувати).
Краще спробувати дещо інший підхід — згенерувати план уроку і по кожному пункту окремо спілкуватися с ШІ:
🟢 generate me a plan for a lesson for students about generics in java
І тут вже доволі змістовно. Я б додав ще інформації про wildcards, і тоді вже отримаємо гарну лекцію.
4. Повчимося?
Також мені сподобалась ідея підготовки до співбесід. Можна попросити ШІ нагенерувати загальних та конкретніших питань:
🟢 generate me please questions for interview at position Manual Mobile QA Engineer
Доволі загальні питання без якоїсь специфіки, але якщо додати трішки конкретики, то маємо доволі класні запитання
🟢 generate me please questions for interview about Strategy pattern
5. Висновки
Підсумуємо: до заміни людини ще далеко. Проте, ШІ може дуже сильно спростити нам життя: дозволить готуватися змістовніше до співбесід, забере деяку рутину з роботи та в цілому зменшить кількість нудних задач.
А користуватися чи ні — вирішувати вже вам.
Дякую за увагу. Також я веду канал про тестування, управління командою та взагалі про айтішку. Там багато цікавого, тому підписуйтесь, впевнений, щось корисне для себе знайдете.
Всім вдалого тестування!
53 коментарі
Додати коментар Підписатись на коментаріВідписатись від коментарів