Вимоги до тестування
Кожна зміна в поведінці системи має містити тести, які підтверджують її правильність і забезпечують можливість налагодження.
Мінімальні очікувані показники
Для більшості завдань, пов’язаних із розробкою нових функцій, додайте або оновіть тести, які охоплюють:
- Правильність побудови конвеєра (очікувані фрагменти/формат рядка).
- Аналіз/перевірка поведінки (узгодження параметрів і випадки невдалої перевірки).
- Поведінка під час виконання (
run), зокрема, шляхи обробки даних (push/pull) та завершення роботи, якщо це необхідно. - Якість діагностики (корисність
PipelineReportдля аналізу сценаріїв виникнення помилок).
Необхідні типи тестів залежно від змін.
Новий вузол або група вузлів.
- Перев ірки на рівні окремих модулів для детермінованого генерування фрагментів.
- Перевірка/аналіз охоплення для обмежень або припущень щодо зв’язків.
- Необхідно передбачити щонайменше один сценарій інтеграції, який підтверджує працездатність вузла в реалістичному ланцюгу.
Зміни в організації процесів у середовищі виконання/конвеєрі.
- Тест для перевірки успішного сценарію з метою підтвердження очікуваної поведінки.
- Тест на випадок помилки, що перевіряє перевищення встановленого часу, відсутність плагіна або недійсні умови для графа.
- Перевірки безпеки під час завершення роботи/життєвого циклу, коли змінюється обробка стану.
Зміни в сигнатурі публічного API
- Додайте або оновіть інформацію про покриття коду під час компіляції, щоб перевірити зміни у відкритих заголовках/способах їх використання.
- Для нерозривних розширень перевірте, чи існуючий код, що їх використовує, все ще компілюється.
- Для затверджених змін, що порушують зворотну сумісність, додайте тести/приклади, орієнтовані на міграцію, які підтверджують правильність заміни шляху API.
Зміни в прив’язці для Python (python/, pyneat)
- Додайте/оновіть покриття тестами
pytestу рамкахpython/tests. - Описуйте контракти взаємодії (шляхи NumPy/PyTorch DLPack, поведінка при копіюванні та створенні нульової копії).
- Додайте щонайменше один імпортний/функціональний тест для перевірки встановленого пакета або встановленого в режимі редагування.
Зміни в системах діагностики або моніторингу
- Додано/змінено тести для полів звіту.
- Безпечна поведінка в умовах одночасного доступу під час оновлення даних з потоків, що обробляють дані в режимі реального часу.
Політика щодо регресії та детермінізму.
- Виправлення помилок повинні містити регресійне тестування.
- Віддавайте перевагу тестам, які перевіряють детерміноване формування імен і стабільне створення конвеєра.
- Якщо вихідні дані мають бути навмисно недетермінованими, задокументуйте причину та обмежте перевірки стабільними інваріантами.
Пропустіть політику.
- Розглядайте шляхи обходу як винятки, а не як звичайний потік керування.
- Суворі тести (за замовчуванням) повинні завершуватися з помилкою, якщо їх неможливо виконати через відсутність необхідного середовища виконання, інструментів або допоміжних компонентів.
- Лише тести, які чітко позначено як
long, можуть використовувати семантику пропуску (return 77) і їх слід запускати у щотижневому циклі. - Нові додані тести не повинні містити
skip_test(...)у чітко визначених шляхах.