3.2 KiB
3.2 KiB
План тестирования: загрузка функций из архива (Fission Console)
Дата: 2026-05-04
Цели
- Проверить корректность загрузки функций из архива для всех поддерживаемых языков (Python, Node.js, Ruby, PHP)
- Проверить работу линтера, валидацию entrypoint, соответствие языка, структуру архива
- Проверить обработку ошибок, edge-cases, граничные размеры
Категории тестов
1. Валидные случаи
- Python: demo.py с def main(), entrypoint demo.main
- Node.js: demo.js с module.exports = main, entrypoint demo.main
- Ruby: demo.rb с def main, entrypoint demo.main
- PHP: demo.php с function main, entrypoint demo.main
- Архив с несколькими файлами (несколько языков, только один выбран)
- Архив с подпапками (файл demo.py внутри src/)
- Entrypoint с нестандартным именем (myfunc.py, entrypoint myfunc.main)
2. Ошибочные случаи
- Нет файла с нужным именем (entrypoint demo.main, а demo.py отсутствует)
- Нет функции с нужным именем (demo.py есть, но нет def main)
- Язык выбран Python, а в архиве только .js
- Язык выбран Node.js, а в архиве только .py
- Entrypoint пустой
- Entrypoint без точки ("main")
- Архив пустой
- Архив > 100 KB
- Суммарный размер файлов > 100 KB (zip bomb)
- Файл с синтаксической ошибкой (Python, JS, Ruby, PHP)
3. Пограничные случаи
- demo.py ровно 100 KB
- Архив с demo.py и demo.js, язык Python, entrypoint demo.main
- Архив с demo.py и demo.js, язык Node.js, entrypoint demo.main
- demo.py с def main(event, context)
- demo.py с def main() и def main2()
- demo.py с def main : (без скобок)
- demo.py с декоратором @fission_entry
- demo.py с не-ASCII именем функции
4. UI/UX
- Проверка сообщений линтера (ошибки, предупреждения, OK)
- Проверка отображения имени архива, entrypoint, языка
- Проверка что после ошибки можно загрузить исправленный архив
Автоматизация
- Тесты реализовать на Go (backend), Python (pytest), JS (playwright) — по необходимости
- Для каждого теста: архив, ожидаемый результат, шаги UI/REST, ожидаемое сообщение
Ход выполнения
- Подготовить тестовые архивы
- Реализовать автотесты (минимум: backend REST, опционально UI)
- Зафиксировать результаты в doc/reports/