65 lines
4.7 KiB
Typst
65 lines
4.7 KiB
Typst
== План тестирования
|
||
|
||
=== Цели и задачи испытаний
|
||
|
||
Основная цель — подтвердить корректность криптографического ядра, доменной логики синхронизации и сценариев UI. Были поставлены следующие задачи:
|
||
|
||
+ проверить `Encryptor` и проверку ключа для строк, байтов и потоков;
|
||
+ убедиться в корректном маппинге исключений в коды ошибок;
|
||
+ протестировать движок синхронизации (`StorageSyncEngine`, журнал, блокировки);
|
||
+ проверить оркестратор фоновых задач;
|
||
+ выполнить smoke-тесты навигации, deep link и 2FA/TOTP;
|
||
+ зафиксировать результаты ручных сценариев vault, OAuth и экрана задач.
|
||
|
||
=== Объект и уровни тестирования
|
||
|
||
#import "../common.typ": pz-table
|
||
|
||
#pz-table(
|
||
[Объекты и уровни тестирования Wallenc],
|
||
4,
|
||
table.header([Уровень], [Объект], [Инструмент], [Критерий успеха]),
|
||
[Unit], [Классы domain, usecases, ui, task-runtime, domain-vault], [JUnit 4, JVM], [Все тесты модуля успешны],
|
||
[Инструм.], [Room, Compose UI, OAuth], [AndroidJUnit, эмулятор], [Нет падений на целевом API],
|
||
[Ручной], [Сборка app, пользовательские цепочки], [Чек-лист], [Сценарии T-1…T-12 пройдены],
|
||
[Регресс.], [Синхронизация, шифрование], [Повтор unit + выборочный ручной], [Нет блокирующих дефектов],
|
||
) <tbl-test-levels>
|
||
|
||
=== Матрица тестовых сценариев
|
||
|
||
#pz-table(
|
||
[Матрица тестовых сценариев],
|
||
5,
|
||
table.header([ID], [Сценарий], [Тип], [Авто], [Ожидаемый результат]),
|
||
[T-1], [Проверка ключа шифрования], [Unit], [Да], [`Encryptor.checkKey` true/false],
|
||
[T-2], [Шифрование/дешифрование строки и байтов], [Unit], [Да], [Симметрия данных],
|
||
[T-3], [Потоковое шифрование файла], [Unit], [Да], [Данные после decrypt равны исходным],
|
||
[T-4], [Синхронизация группы хранилищ], [Unit], [Да], [Копирование, удаление, trash, блокировки],
|
||
[T-5], [2FA TOTP генерация], [Unit], [Да], [Совпадение с эталоном Java OTP],
|
||
[T-6], [Маппинг ошибок сети/диска], [Unit], [Да], [Типизированные `WallencException`],
|
||
[T-7], [CRUD storage в LocalVault], [Ручной], [Нет], [Список обновлён (прил. В, рис. 5)],
|
||
[T-8], [Включение шифрования storage], [Ручной], [Нет], [Статус «зашифровано» (прил. В, рис. 6)],
|
||
[T-9], [Открытие/закрытие storage], [Ручной], [Нет], [Доступ только с ключом (прил. В, рис. 7)],
|
||
[T-10], [OAuth Яндекс], [Ручной / IT], [Частично], [Токен в Room (прил. В, рис. 10)],
|
||
[T-11], [Экран задач и уведомления], [Ручной], [Частично], [Прогресс и завершение (прил. В, рис. 12–13)],
|
||
[T-12], [Compose: секреты и 2FA], [IT], [Да], [Отображение без падений (прил. В, рис. 33–34)],
|
||
) <tbl-testplan>
|
||
|
||
=== Критерии начала и окончания
|
||
|
||
*Начало:* собраны модули проекта; выполняется `./gradlew test`; для инструментальных тестов доступен эмулятор API 26+.
|
||
|
||
*Окончание:* все 68 unit-тестов в `src/test` завершились успешно; инструментальные тесты пройдены на эмуляторе; ручной чек-лист T-7…T-12 выполнен; критические дефекты отсутствуют.
|
||
|
||
=== Среда и инструменты
|
||
|
||
#pz-table(
|
||
[Тестовая среда],
|
||
2,
|
||
table.header([Параметр], [Значение]),
|
||
[ОС разработки], [GNU/Linux, Android Studio],
|
||
[JDK], [OpenJDK 17 / 21],
|
||
[Сборка], [`./gradlew test`, `./gradlew connectedDebugAndroidTest`],
|
||
[Устройство], [Эмулятор Pixel 6 API 34; физическое устройство для OAuth],
|
||
) <tbl-test-env>
|