58 lines
3.2 KiB
Markdown
58 lines
3.2 KiB
Markdown
# План тестирования: загрузка функций из архива (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/
|