Файл: Обеспечения Базовый курс (3е издание) Версия книги 2 от 17. 04. 2023.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 07.11.2023
Просмотров: 856
Скачиваний: 31
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
Логика создания эффективных проверок
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 155/301
Можем ли мы как-то ускорить выполнение этих проверок (ведь их много)?
Можем. И у нас даже есть два взаимодополняющих инструмента:
• дальнейшая классификация по важности;
• автоматизация тестирования.
Сначала поделим таблицу на две — чуть более важное и чуть менее важное.
В «чуть более важное» попадает:
Таблица 2.4.e — Форматы, кодировки и размеры файлов
Форматы входных файлов
TXT
HTML
MD
Кодировки входных фай- лов
WIN1251 100 КБ
50 МБ
10
МБ
CP866 10 МБ
100 КБ
50 МБ
KOI8R
50 МБ
10 МБ
100 КБ
Подготовим 18 файлов — 9 исходных + 9 сконвертированных (в любом тек-
стовом редакторе с функцией конвертации кодировок), чтобы в дальнейшем
сравнивать работу нашего приложения с эталоном.
Для «чуть менее важного» осталось:
• Файл размером 0 байт (объективно для него не важна такая характеристика, как «кодировка»). Подготовим один файл размером 0 байт.
• Файл размером 50 МБ + 1 Б (для него тоже не важна кодировка). Подготовим
один файл размером 52’428’801 байт.
• Любой недопустимый формат: o
По расширению (файл с расширением, отличным от .txt, .html, .md).
Берём любой произвольный файл, например картинку (размер от 1
до 50 МБ, расширение .jpg). o
По внутреннему содержанию (например, .jpg переименовали в .txt). Ко-
пии файла из предыдущего пункта даём расширение .txt.
• Повреждения в допустимом формате. Вычёркиваем. Вообще. Даже крайне
сложные дорогие редакторы далеко не всегда способны восстановить по-
вреждённые файлы своих форматов, наше же приложение — это просто
миниатюрная утилита конвертации кодировок, и не стоит ждать от неё
возможностей профессионального инструментального средства восста-
новления данных.
Что мы получили в итоге? Нам нужно подготовить следующие 22 файла (по- скольку у файлов всё равно есть имена, усилим этот набор тестовых данных, пред- ставив в именах файлов символы латиницы, кириллицы и спецсимволы).
Логика создания эффективных проверок
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 156/301
Таблица 2.4.f — Итоговый набор файлов для тестирования приложения
1 ... 18 19 20 21 22 23 24 25 ... 38
№
Имя
Кодировка
Размер
1
«Мелкий» файл в WIN1251.txt
WIN1251 100
КБ
2
«Средний» файл в CP866.txt
CP866 10
МБ
3
«Крупный» файл в KOI8R.txt
KOI8R
50
МБ
4
«Крупный» файл в win-1251.html
WIN1251 50
МБ
5
«Мелкий» файл в cp-866.html
CP866 100
КБ
6
«Средний» файл в koi8-r.html
KOI8R
10
МБ
7
«Средний» файл в WIN_1251.md
WIN1251 10
МБ
8
«Крупный» файл в CP_866.md
CP866 50
МБ
9
«Мелкий» файл в KOI8_R.md
KOI8R
100
КБ
10
«Мелкий» эталон WIN1251.txt
UTF8 100
КБ
11
«Средний» эталон CP866.txt
UTF8 10
МБ
12
«Крупный» эталон KOI8R.txt
UTF8 50
МБ
13
«Крупный» эталон в win-1251.html
UTF8 50
МБ
14
«Мелкий» эталон в cp-866.html
UTF8 100
КБ
15
«Средний» эталон в koi8-r.html
UTF8 10
МБ
16
«Средний» эталон в WIN_1251.md
UTF8 10
МБ
17
«Крупный» эталон в CP_866.md
UTF8 50
МБ
18
«Мелкий» эталон в KOI8_R.md
UTF8 100
КБ
19
Пустой файл.md
-
0 Б
20
Слишком большой файл.txt
-
52’428’801 Б
21
Картинка.jpg
-
1
МБ
22
Картинка в виде TXT.txt
-
1 Имя
Кодировка
Размер
1
«Мелкий» файл в WIN1251.txt
WIN1251 100
КБ
2
«Средний» файл в CP866.txt
CP866 10
МБ
3
«Крупный» файл в KOI8R.txt
KOI8R
50
МБ
4
«Крупный» файл в win-1251.html
WIN1251 50
МБ
5
«Мелкий» файл в cp-866.html
CP866 100
КБ
6
«Средний» файл в koi8-r.html
KOI8R
10
МБ
7
«Средний» файл в WIN_1251.md
WIN1251 10
МБ
8
«Крупный» файл в CP_866.md
CP866 50
МБ
9
«Мелкий» файл в KOI8_R.md
KOI8R
100
КБ
10
«Мелкий» эталон WIN1251.txt
UTF8 100
КБ
11
«Средний» эталон CP866.txt
UTF8 10
МБ
12
«Крупный» эталон KOI8R.txt
UTF8 50
МБ
13
«Крупный» эталон в win-1251.html
UTF8 50
МБ
14
«Мелкий» эталон в cp-866.html
UTF8 100
КБ
15
«Средний» эталон в koi8-r.html
UTF8 10
МБ
16
«Средний» эталон в WIN_1251.md
UTF8 10
МБ
17
«Крупный» эталон в CP_866.md
UTF8 50
МБ
18
«Мелкий» эталон в KOI8_R.md
UTF8 100
КБ
19
Пустой файл.md
-
0 Б
20
Слишком большой файл.txt
-
52’428’801 Б
21
Картинка.jpg
-
МБ
И только что мы упомянули автоматизацию как способ ускорения выполне- ния тест-кейсов. В данном случае мы можем обойтись самыми тривиальными ко- мандными файлами. В приложении «Командные файлы для Windows и Linux, авто- матизирующие выполнение дымового тестирования»
{284}
приведены скрипты, пол- ностью автоматизирующие выполнение всего уровня дымового тестирования
{79}
над представленным выше набором из 22 файлов.
Задание 2.4.f: доработайте представленные в приложении
{284}
командные файлы так, чтобы их выполнение заодно проверяло работу тестируемого приложения с пробелами, кириллическими символами и спецсимволами в путях к входному каталогу, выходному каталогу и файлу журнала. Опти- мизируйте получившиеся командные файлы так, чтобы избежать много- кратного дублирования кода.
Если снова вернуться к чек-листу, то оказывается, что мы уже подготовили проверки для всего уровня дымового тестирования
{79}
и части уровня тестирования критического пути
{80}
Продолжим оптимизацию. Большинство проверок не представляет особой сложности, и мы разберёмся с ними по ходу дела, но есть в чек-листе пункт, вызы- вающий особую тревогу: производительность.
Тестирование и оптимизация производительности
{91}
— это отдельный вид тестирования со своими достаточно непростыми правилами и подходами
, к тому же разделяющийся на несколько подвидов. Нужно ли оно нам в нашем приложе- нии? Заказчик в
АК-1.1
определил минимальную производительность приложения как способность обрабатывать входные данные со скоростью не менее 5 МБ/сек.
Грубые эксперименты на указанном в
АК-1.1
оборудовании показывают, что даже куда более сложные операции (например, архивирование видеофайла с макси- мальной степенью сжатия) выполняются быстрее (пусть и ненамного). Вывод? Вы-
Логика создания эффективных проверок
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 157/301 чёркиваем. Вероятность встретить здесь проблему ничтожно мала, а соответству- ющее тестирование требует ощутимых затрат сил и времени, а также наличия со- ответствующих специалистов.
Вернёмся к чек-листу:
• Конфигурирование и запуск: o
С верными параметрами:
▪
Значения SOURCE_DIR, DESTINATION_DIR, LOG_FILE_NAME указаны и содержат пробелы и кириллические символы (повто- рить для форматов путей в Windows и *nix файловых системах, обратить внимание на имена логических дисков и разделители имён каталогов (“/” и “\”)). (Уже учтено при автоматизации про-
верки работы приложения с 22 файлами.)
▪
Значение LOG_FILE_NAME не указано. (Объединить с про-
веркой ведения самого файла журнала.) o
Без параметров. o
С недостаточным количеством параметров. o
С неверными параметрами:
▪
Недопустимый путь SOURCE_DIR.
▪
Недопустимый путь DESTINATION_DIR.
▪
Недопустимое имя LOG_FILE_NAME.
▪ DESTINATION_DIR находится внутри SOURCE_DIR.
▪
Значения DESTINATION_DIR и SOURCE_DIR совпадают.
• Обработка файлов: o
Разные форматы, кодировки и размеры. (Уже сделано.) o
Недоступные входные файлы:
▪
Нет прав доступа.
▪
Файл открыт и заблокирован.
▪
Файл с атрибутом «только для чтения».
• Остановка: o
Закрытием окна консоли. (Вычёркиваем. Не настолько важная про-
верка, а если и будут проблемы — технология PHP не позволит
их решить.)
• Журнал работы приложения: o
Автоматическое создание (при отсутствии журнала), имя журнала ука- зано явно. o
Продолжение (дополнение журнала) при повторных запусках, имя жур- нала не указано.
• Производительность: o
Элементарный тест с грубой оценкой. (Ранее решили, что наше при-
ложение явно уложится в весьма демократичные требования за-
казчика.)
Перепишем компактно то, что у нас осталось от уровня тестирования крити- ческого пути
{80}
. Внимание! Это — НЕ тест-кейс! Это всего лишь ещё одна форма записи чек-листа, более удобная на данном этапе.
Логика создания эффективных проверок
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 158/301
Таблица 2.4.g — Чек-лист для уровня критического пути
Суть проверки
Ожидаемая реакция
Запуск без параметров.
Отображение инструкции к использованию.
Запуск с недостаточным количеством парамет- ров.
Отображение инструкции к использованию и указание имён недостающих параметров.
Запуск с неверными значениями параметров: o
Недопустимый путь SOURCE_DIR. o
Недопустимый путь DESTINATION_DIR. o
Недопустимое имя LOG_FILE_NAME. o DESTINATION_DIR находится внутри
SOURCE_DIR. o
Значения DESTINATION_DIR и
SOURCE_DIR совпадают.
Отображение инструкции к использованию и указание имени неверного параметра, значе- ния неверного параметра и пояснения сути проблемы.
Недоступные входные файлы: o
Нет прав доступа. o
Файл открыт и заблокирован. o
Файл с атрибутом «только для чтения».
Отображение сообщения в консоль и файл журнала, дальнейшее игнорирование недо- ступных файлов.
Журнал работы приложения: o
Автоматическое создание (при отсутствии журнала), имя журнала указано явно. o
Продолжение (дополнение журнала) при повторных запусках, имя журнала не ука- зано.
Создание или продолжение ведения файла журнала по указанному или вычисленному пути.
Наконец, у нас остался уровень расширенного тестирования
{81}
И сейчас мы сделаем то, чего по всем классическим книгам учат не делать, — мы откажемся от всего этого набора проверок целиком.
• Конфигурирование и запуск: o
Значения SOURCE_DIR, DESTINATION_DIR, LOG_FILE_NAME:
▪
В разных стилях (Windows-пути + *nix-пути) — одно в одном стиле, другое — в другом.
▪
С использованием UNC-имён.
▪ LOG_FILE_NAME внутри SOURCE_DIR.
▪ LOG_FILE_NAME внутри DESTINATION_DIR. o
Размер LOG_FILE_NAME на момент запуска:
▪ 2
–4 ГБ.
▪ 4+
ГБ. o
Запуск двух и более копий приложения с:
▪
Одинаковыми параметрами SOURCE_DIR, DESTINATION_DIR,
LOG_FILE_NAME.
▪
Одинаковыми SOURCE_DIR и LOG_FILE_NAME, но разными
DESTINATION_DIR.
▪
Одинаковыми DESTINATION_DIR и LOG_FILE_NAME, но раз- ными SOURCE_DIR.
• Обработка файлов: o
Файл верного формата, в котором текст представлен в двух и более поддерживаемых кодировках одновременно. o
Размер входного файла:
▪ 2
–4 ГБ.
▪ 4+
ГБ.
Да, мы сейчас действительно повысили риск пропустить какой-то дефект. Но
— дефект, вероятность возникновения которого мала в силу малой вероятности возникновения описанных в этих проверках ситуаций. При этом по самым скромным
Логика создания эффективных проверок
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 159/301 прикидкам мы на треть сократили общее количество проверок, которые нам нужно будет выполнять, а значит — высвободили силы и время для более тщательной проработки типичных каждодневных сценариев использования
{146}
приложения.
Весь оптимизированный чек-лист (он же — и черновик для плана выполнения проверок) теперь выглядит так:
1)
Подготовить файлы (см. таблицу 2.4.f).
2)
Для «дымового теста» использовать командные файлы (см. приложение «Ко- мандные файлы для Windows и Linux, автоматизирующие выполнение дымо- вого тестирования»
{284}
).
3)
Для основных проверок использовать файлы из пункта 1 и следующие идеи
(
таблица 2.4.h).
Таблица 2.4.h — Основные проверки для приложения «Конвертер файлов»
Суть проверки
Ожидаемая реакция
Запуск без параметров.
Отображение инструкции к использованию.
Запуск с недостаточным количеством парамет- ров.
Отображение инструкции к использованию и указание имён недостающих параметров.
Запуск с неверными значениями параметров: o
Недопустимый путь SOURCE_DIR. o
Недопустимый путь DESTINATION_DIR. o
Недопустимое имя LOG_FILE_NAME. o DESTINATION_DIR находится внутри
SOURCE_DIR. o
Значения DESTINATION_DIR и
SOURCE_DIR совпадают.
Отображение инструкции к использованию и указание имени неверного параметра, значе- ния неверного параметра и пояснения сути проблемы.
Недоступные входные файлы: o
Нет прав доступа. o
Файл открыт и заблокирован. o
Файл с атрибутом «только для чтения».
Отображение сообщения в консоль и файл журнала, дальнейшее игнорирование недо- ступных файлов.
Журнал работы приложения: o
Автоматическое создание (при отсутствии журнала), имя журнала указано явно. o
Продолжение (дополнение журнала) при по- вторных запусках, имя журнала не указано.
Создание или продолжение ведения файла журнала по указанному или вычисленному пути.
4)
В случае наличия времени использовать первоначальную редакцию чек-ли- ста для уровня расширенного тестирования
{81}
как основу для выполнения ис- следовательского тестирования
{85}
И почти всё. Остаётся только ещё раз подчеркнуть, что представленная ло- гика выбора проверок не претендует на то, чтобы считаться единственно верной, но она явно позволяет сэкономить огромное количество усилий, при этом практи- чески не снизив качество тестирования наиболее востребованной заказчиком функ- циональности приложения.
Задание 2.4.g: подумайте, какие проверки из таблицы 2.4.h можно авто- матизировать с помощью командных файлов. Напишите такие командные файлы.