Файл: Обеспечения Базовый курс (3е издание) Версия книги 2 от 17. 04. 2023.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 07.11.2023
Просмотров: 876
Скачиваний: 31
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
Техники тестирования требований
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 53/301
Рекомендуется для начала убедиться, что вы понимаете требование (в том числе прочесть соседние требования, задать вопросы коллегам и т.д.). Также можно пока отложить работу с данным конкретным требованием и вернуться к нему позднее — возможно, анализ других требований позволит вам лучше понять и это конкретное. Но если ничто не помогает — скорее всего, с требованием что-то не так.
Справедливости ради надо отметить, что на начальном этапе проработки требований такие случаи встречаются очень часто — требования сформированы очень поверхностно, расплывчато и явно нуждаются в доработке, т.е. здесь нет необходимости проводить сложный анализ, чтобы констатировать непроверяе- мость требования.
На стадии же, когда требования уже хорошо сформулированы и протестиро- ваны, вы можете продолжать использовать эту технику, совмещая разработку тест- кейсов и дополнительное тестирование требований.
Исследование поведения системы. Эта техника логически вытекает из предыдущей (продумывания тест-кейсов и чек-листов), но отличается тем, что здесь тестированию подвергается, как правило, не одно требование, а целый набор. Тестировщик мысленно моделирует процесс работы пользователя с систе- мой, созданной по тестируемым требованиям, и ищет неоднозначные или вовсе неописанные варианты поведения системы. Этот подход сложен, требует доста- точной квалификации тестировщика, но способен выявить нетривиальные недора- ботки, которые почти невозможно заметить, тестируя требования по отдельности.
Рисунки (графическое представление). Чтобы увидеть общую картину тре- бований целиком, очень удобно использовать рисунки, схемы, диаграммы, интел- лект-карты
109
и т.д. Графическое представление удобно одновременно своей наглядностью и краткостью (например, UML-схема базы данных, занимающая один экран, может быть описана несколькими десятками страниц текста). На рисунке очень легко заметить, что какие-то элементы «не стыкуются», что где-то чего-то не хватает и т.д. Если вы для графического представления требований будете исполь- зовать общепринятую нотацию (например, уже упомянутый UML), вы получите до- полнительные преимущества: вашу схему смогут без труда понимать и дорабаты- вать коллеги, а в итоге может получиться хорошее дополнение к текстовой форме представления требований.
Прототипирование. Можно сказать, что прототипирование часто является следствием создания графического представления и анализа поведения системы.
С использованием специальных инструментов можно очень быстро сделать наброски пользовательских интерфейсов, оценить применимость тех или иных ре- шений и даже создать не просто «прототип ради прототипа», а заготовку для даль- нейшей разработки, если окажется, что реализованное в прототипе (возможно, с небольшими доработками) устраивает заказчика.
109
«Mind map» [
http://en.wikipedia.org/wiki/Mind_map
]
Пример анализа и тестирования требований
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 54/301
2.2.7.
Пример анализа и тестирования требований
Поскольку наша задача состоит в том, чтобы сформировать понимание ло- гики анализа и тестирования требований, мы будем рассматривать предельно крат- кий и простой их набор.
Отличный подробный пример требований можно найти в приложениях к книге Карла Вигерса «Разработка требований к программному обеспече- нию» («Software Requirements (3rd Edition) (Developer Best Practices)», Karl
Wiegers, Joy Beatty).
Допустим, что у некоего клиента есть проблема: поступающие в огромном количестве его сотрудникам текстовые файлы приходят в разных кодировках, и со- трудники тратят много времени на перекодирование («ручной подбор кодировки»).
Соответственно, он хотел бы иметь инструмент, позволяющий автоматически при- водить кодировки всех текстовых файлов к некоей одной. Итак, на свет появляется проект с кодовым названием «Конвертер файлов».
Уровень бизнес-требований. Бизнес-требования (см. главу «Уровни и типы требований»
{39}
) изначально могут выглядеть так: «Необходим инструмент для ав- томатического приведения кодировок текстовых документов к одной».
Здесь мы можем задать множество вопросов. Для удобства приведём как сами вопросы, так и предполагаемые
ответы клиента
Задание 2.2.b: прежде чем читать приведённый ниже список вопросов, сформулируйте собственный.
• В каких форматах представлены текстовые документы (обычный текст,
HTML, MD
, что-то иное)?
(
Понятия не имею, я в этом не разбираюсь.)
• В каких кодировках приходят исходные документы?
(
В разных.)
• В какую кодировку нужно преобразовать документы?
(
В самую удобную и
универсальную.)
• На каких языках написан текст в документах?
(
Русский и английский.)
• Откуда и как поступают текстовые документы (по почте, с сайтов, по сети, как-то иначе)?
(
Это неважно. Поступают отовсюду, но мы их складываем
в одну папку на диске, нам так удобно.)
• Каков максимальный объём документа?
(
Пара десятков страниц.)
• Как часто появляются новые документы (например, сколько максимум доку- ментов может поступить за час)?
(200
–300 в час.)
• С помощью чего сотрудники просматривают документы?
(Notepad++.)
Даже таких вопросов и ответов достаточно, чтобы переформулировать биз- нес-требования следующим образом (обратите внимание, что многие вопросы были заданы на будущее и не привели к появлению в бизнес-требованиях лишней технической детализации).
Суть проекта: разработка инструмента, устраняющего проблему множе- ственности кодировок в текстовых документах, расположенных в локальном диско- вом хранилище.
Цели проекта:
• Исключение необходимости ручного подбора кодировок текстовых докумен- тов.
• Сокращение времени работы с текстовым документом на величину, необхо- димую для ручного подбора кодировки.
Пример анализа и тестирования требований
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 55/301
Метрики достижения целей:
• Полная автоматизация определения и преобразования кодировки текстового документа к заданной.
• Сокращение времени обработки текстового документа в среднем на 1–2 ми- нуты на документ за счёт устранения необходимости ручного подбора коди- ровки.
Риски:
• Высокая техническая сложность безошибочного определения исходной ко- дировки текстового документа.
Почему мы решили, что среднее время на подбор кодировки составляет 1–2 минуты? Мы провели наблюдение. Также мы помним ответы заказчика на вопросы об исходных форматах документов, исходных и конечной кодировках (заказчик честно сказал, что не знает ответа), а потому мы попросили его предоставить нам доступ к хранилищу документов и выяснили:
• Исходные форматы: plain text, HTML, MD.
• Исходные кодировки: CP1251, UTF8, CP866, KOI8R.
• Целевая кодировка: UTF8.
На данном этапе мы вполне можем решить, что стоит заняться детализацией требований на более низких уровнях, т.к. появившиеся там вопросы позволят нам вернуться к бизнес-требованиям и улучшить их, если в этом возникнет необходи- мость.
Уровень пользовательских требований. Пришло время заняться уровнем пользовательских требований (см. главу «Уровни и типы требований»
{39}
)
. Проект у нас несколько специфичный — результатами работы программного средства будет пользоваться большое количество людей, но само программное средство при этом они использовать не будут (оно будет просто выполнять свою работу «само по себе» — запущенное на сервере с хранилищем документов). Потому под пользова- телем здесь мы будем понимать человека, настраивающего работу приложения на сервере.
Для начала мы создадим небольшую диаграмму вариантов использования, представленную на рисунке 2.2.g (да, иногда её создают после текстового описа- ния требований, но иногда и
1 2 3 4 5 6 7 8 9 10 ... 38
до — нам сейчас удобнее сделать это сначала). В реальных проектах подобные схемы могут быть на несколько порядков более слож- ными и требующими подробной детализации каждого варианта использования. У нас же проект миниатюрный, потому схема получилась элементарной, и мы сразу переходим к описанию требований.
Внимание! Это — ПЛОХИЕ требования. И мы далее будем их улучшать.
Системные характеристики
• СХ-1: Приложение является консольным.
• СХ-2: Для работы приложение использует интерпретатор PHP.
• СХ-3: Приложение является кроссплатформенным.
Пользовательские требования
• Также см. диаграмму вариантов использования.
• ПТ-1: Запуск и остановка приложения. o
ПТ-1.1: Запуск приложения производится из консоли командой «PHP converter.php параметры».
Пример анализа и тестирования требований
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 56/301 o
ПТ-1.2: Остановка приложения производится выполнением команды
Ctrl+C.
• ПТ-2: Конфигурирование приложения. o
ПТ-2.1: Конфигурирование приложения сводится к указанию путей в файловой системе. o
ПТ-2.2: Целевой кодировкой является UTF8.
• ПТ-3: Просмотр журнала работы приложения. o
ПТ-3.1: В процессе работы приложение должно выводить журнал своей работы в консоль и лог-файл. o
ПТ-3.2: При первом запуске приложения лог-файл создаётся, а при по- следующих — дописывается.
Рисунок 2.2.g — Диаграмма вариантов использования
Бизнес-правила
• БП-1: Источник и приёмник файлов o
БП-1.1: Каталоги, являющиеся источником исходных и приёмником ко- нечных файлов не должны совпадать. o
БП-1.2: Каталог, являющийся приёмником конечных файлов, не может быть подкаталогом источника.
uc Primary Use Cases
Приложение
Конфигурирование
приложения
Администратор
Остальные функции реализуются иными средствами и не предоставляются разрабатываемым приложением
Запуск приложения
Остановка
приложения
Просмотр журнала
работы приложения
Пример анализа и тестирования требований
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 57/301
Атрибуты качества
• АК-1: Производительность o
АК-1.1: Приложение должно обеспечивать скорость обработки данных
5
МБ/сек.
• АК-2: Устойчивость к входным данным o
АК-2.1: Приложение должно обрабатывать входные файлы размером до 50 МБ включительно. o
АК-2.2: Если входной файл не является текстовым, приложение должно произвести обработку.
Как будет сказано в главе «Типичные ошибки при анализе и тестировании требований»
{63}
, не стоит изменять исходный формат файла и форматирование до- кумента, потому мы используем встроенные средства Word для отслеживания из- менений и добавления комментариев. Примерный вид результата показан на ри- сунке 2.2.h.
Рисунок 2.2.h — Использование средств Word для работы с требованиями
К сожалению, мы не можем в данном тексте применить эти средства (резуль- тат будет отображаться некорректно, т.к. вы сейчас, скорее всего, читаете этот текст не в виде DOCX-документа), а потому применим второй классический способ
— будем вписывать свои вопросы и комментарии прямо внутрь текста требований.
Проблемные места требований отмечены подчёркиванием
, наши вопросы отмечены
курсивом
, предполагаемые ответы заказчика (даже, если точнее, техни- ческого специалиста заказчика) —
жирным
. В процессе анализа текст требований примет вот такой вид.
Задание 2.2.c: проанализируйте предложенный набор требований с точки зрения свойств качественных требований
{44}
, сформулируйте свои во- просы заказчику, которые позволят улучшить этот набор требований.
Системные характеристики
• СХ-1: Приложение является консольным.
• СХ-2: Для работы приложение использует интерпретатор PHP
o
Какая минимальная версия интерпретатора PHP поддерживается
приложением?
(5.5.x)
o
Существует ли некая специфика настройки интерпретатора PHP
для корректной работы приложения?
(Наверное, должен работать
mbstring.)
Пример анализа и тестирования требований
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 58/301 o
Настаиваете ли вы на реализации приложения именно на PHP? Если
да, то почему.
(Да, только PHP. У нас есть сотрудник, который его
знает.)
o
Должна ли в руководстве пользователя быть описана процедура
установки и настройки интерпретатора PHP?
(Нет.)
• СХ-3: Приложение является кроссплатформенным o
Какие ОС должны поддерживаться?
(Любая, где работает PHP.)
o
В чём вообще цель кроссплатформенности?
(Мы ещё не знаем, на
чём будет работать сервер.)
Пользовательские требования
• Также см. диаграмму вариантов использования.
• ПТ-1: Запуск и остановка приложения. o
ПТ-1.1: Запуск приложения производится из консоли командой «
PHP
(возможно, здесь опечатка: должно быть php (в нижнем регистре))
(Да, OK.)
converter.php параметры
».
▪
Какие параметры передаются скрипту при запуске?
(Каталог
с исходными файлами, каталог с конечными файлами.)
▪
Какова реакция скрипта на:
• отсутствие параметров;
(Пишет хелп.)
• неверное количество параметров;
(Пишет хелп и пояс-
няет, что не так.)
• неверные значения каждого из параметров.
(Пишет
хелп и поясняет, что не так.)
o
ПТ-1.2: Остановка приложения производится выполнением команды
Ctrl+C
(предлагаем дополнить это выражение фразой «в окне кон-
соли, из которого было запущено приложение»)
(Да, OK.)
.
• ПТ-2: Конфигурирование приложения. o
ПТ-2.1: Конфигурирование приложения сводится к указанию путей в файловой системе
▪
Путей к чему?
(Каталог с исходными файлами, каталог с ко-
нечными файлами.)
o
ПТ-2.2:
Целевой кодировкой является UTF8
▪
Предполагается ли указание иной целевой кодировки, или
UTF8 используется в качестве целевой всегда?
(Только UTF8,
других не надо.)
• ПТ-3: Просмотр журнала работы приложения. o
ПТ-3.1: В процессе работы приложение должно выводить журнал своей работы в консоль и лог-файл
▪
Каков формат журнала?
(Дата-время, что и с чем делали, что
получилось. Гляньте в логе апача, там нормально напи-
сано.)
▪
Различаются ли форматы журнала для консоли и лог-файла?
(Нет.)
▪
Как определяется имя лог-файла?
(Третий параметр при за-
пуске. Если не указан — пусть будет converter.log рядом с
php-
скриптом.)
o
ПТ-3.2: При первом запуске приложения лог-файл создаётся, а при по- следующих — дописывается
▪
Как приложение различает свой первый и последующие за-
пуски?
(Никак.)