Способы применения нейронок: тестировщик 😨
Многие вещи в программировании начинаются и заканчиваются с тестов:
- Хочешь исправить баг: сперва напиши тесты на ожидаемое поведение
- Закончил задачу? Напиши тесты!
Написание тестов — довольно рутинная работа. Особенно неприятно, если основной код уже написан, а теперь, оказывается, нужно потратить примерно столько же времени, чтобы убедиться, что он работает (и, зачастую, тесты конечно находят баги, что полезно 🐞)
Если не доверяешь нейронке написание основного кода, попробуй отдать ей написание тестов
Написание тестов относительно легко формализовать: есть правила, паттерны, структура, ожидаемое поведение. И доверить нейросети такую работу не так страшно. В худшем случае тест будет красным или работать вхолостую
Кстати, ещё интересный вариант — попросить нейросеть проверить уже написанные тесты 🔍
🟢Зелёный тест ещё не означает хороший тест 🔴
Можно написать тест с такой запутанной подготовкой, что он фактически проверяет сам себя. Или ничего не проверяет вовсе. Или проверяет не то, что нужно. Или проверяет слишком много и ломается от каждого изменения 💔
Особенно это неприятно со сложными интеграционными тестами: они могут выполняться долго, а пользы при этом не давать почти никакой 0️⃣
Здесь #ИИшница тоже может помочь. Она способна быстро пройтись по коду, проследить взаимосвязи и ветвления, понять, что реально происходит во время теста, и найти несостыковки между тестом и тем, что он якобы должен проверять
Ещё более интересный вариант: реальное тестирование функционала
Юнит-тесты могут проверить лишь определённую логику в вакууме. Интеграционные тесты могут проверить, как взаимодействую между собой по одному экземпляру сервисов в идеальных условиях
Воссоздавать вручную условия для более достоверного тестирования довольно сложно: нужно поднять необходимую инфраструктуру, нужное количество реплик основного и связанных сервисов, наполнить БД данными. Вручную такое будешь делать чуть ли не дольше, чем выполнять само тестирование.
Ну и, кстати, воспроизвести сложные тест-кейсы вручную тоже будет довольно сложно и долго
В общем, моя рекомендация, конечно же, доверить это всё нейросети 🧠
Всё необходимое можно поднять в контейнерах, что выглядит довольно безопасно для твоего компа, а тест-кейсы нейросеть воспроизведёт через запросы к поднятым сервисам
Можно ещё и попросить её придумать какие-нибудь интересные неочевидные случаи для проверки. Ты можешь удивиться, на что способны сервисы в состоянии гонки за БД при обрыве связи с брокером 🇷🇺
Если не хочешь нагружать свой комп, и у тебя есть хороший тестовый стенд, можно попросить нейронку сделать всё на нём. Она будет отправлять запросы с твоего компа, как будто это делаешь ты. Ну и опять же, тестовые стенды не так страшно сломать. В крайнем случае, вы все вместе поймёте, где было слабое место в инфраструктуре🧠
⚠️Конечно, важно, чтобы на тестовом стенде не оказалось каких-нибудь чересчур чувствительных данных: персданных пользователей, кредов от прод-сервисов, и прочего, что нейронке не стоит читать лишний раз 🔓
В общем, ещё одна вполне практичная сфера применения нейросетей в разработке — это тестирование на всех уровнях:
написать тесты, проверить тесты, протестировать изменения⚡️
Post #525
92

- 🔥 4
- ❤ 1