Lecture05 (Лекции в ПДФ)
Описание файла
Файл "Lecture05" внутри архива находится в папке "Лекции в ПДФ". PDF-файл из архива "Лекции в ПДФ", который расположен в категории "". Всё это находится в предмете "тестирование на основе моделей" из 9 семестр (1 семестр магистратуры), которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст из PDF
Тестирование на основе моделейВ. В. КуляминЛекция 5. Комбинаторные методы построения тестовКомбинаторные методы построения тестов основаны на разделении каждого тестовоговоздействия на ряд элементов и построении тестов как всевозможных комбинацийполученных элементов, объединяемых по определенным правилам.Комбинаторные методы дают более высокую полноту покрытия, чем вероятностные, ипри этом требуют ненамного больше ресурсов. Кроме того, они хорошо автоматизируются.Однако, с помощью комбинаторных методов трудно найти ошибки в очень специфическихситуациях, требующих учета многих факторов, а трудозатраты на их применение при учетевозрастающего числа факторов растут гораздо быстрее.Одним из примеров комбинаторных методов является тестирование по разбиениям накатегории (category partition testing).
В рамках этого подхода для построения тестоввыполняются следующие действия.•Выделяется набор операций тестируемой системы, обращения к которым должныпроизводиться в тестах.•Для каждой тестируемой операции анализируются требования к ней и на основеэтого анализа выделяются, дополнительно к ее параметрам, некоторые факторы(внешние условия или свойства внутреннего состояния системы), от которых можетзависеть ее поведение.•Возможные значения каждого параметра операции или фактора, влияющего на ееповедения, классифицируются — разбиваются на конечное множество категорий.Категории выделяются таким образом, чтобы изменение значения параметра илифактора в рамках одной категории слабо изменяло требования к работе операции.•Определяются зависимости между полученными категориями, взаимосвязи междузначениями различных параметров и факторов, а также недопустимые комбинацииих значений.•Тестовые ситуации строятся как возможные комбинации категорий значенийпараметров и факторов.
Для каждой такой комбинации определяютсясоответствующие конкретные значения параметров и способ достижениясоответствующих значений факторов (тестовые последовательности и изменениявнешних условий).Достаточно сильно похож на эту технику и метод построения тестов на оcнове дереваклассификации (classification tree method). Он используется при наличии большогоколичества факторов, влияющих на поведение тестируемой системы.Сначала выделяется набор наиболее заметных факторов, влияние которых на поведениетестируемой системы достаточно сильно.
Такие факторы называются в рамках этого методааспектами. Для каждого из этих факторов пытаются определить разбиение его возможныхзначений на группы, в рамках которых требования к поведению системы меняются слабо.При этом могут быть выявлены другие факторы, чье влияние на систему становитсясущественным, если один из базовых аспектов зафиксирован.Базовые аспекты образуют вершины дерева классификации, непосредственно связанные сего корнем. Их классы и вторичные аспекты привязываются к базовым аспектам, и т.д., покавсе существенные факторы не будут найдены и классифицированы.После построения дерева классификации необходимо определить зависимости междувыделенными классами значений аспектов.ГололедПогодные условияДождьНормальныеГрунтГравийАсфальтМалоНормаТормозная жидкостьПедаль тормозаНажата до отказаОтпущенаНажатаНажата до отказаПедаль газаНажатаОтпущенаДорожное покрытиеТесты строятся как возможные комбинации классов значений аспектов, соответствующихлистовым вершинам дерева.Например, при тестировании встроенного программного обеспечения управленияавтомобилем, возможна следующая классификация ситуаций.1234Тестовые ситуацииРисунок 1.
Пример использования дерева классификаций.Тестирование на основе грамматикДругой часто применяемой комбинаторной техникой создания тестов являетсясинтаксическое тестирование или тестирование на основе грамматик. Оно используется втех случаях, когда структуру множества возможных воздействий на тестируемую системуможно описать при помощи формальной грамматики.Проще всего эту возможность заметить там, где действительно существуют некоторыйспециальный язык — например, в системах, работающих с языками программирования,языками запросов (SQL и др.), языками для описания структуры документов (XML, HTML ипр.) или с регулярными выражениями. Однако с помощью формальных грамматик можноописывать и структуру пользовательского интерфейса. Наиболее наглядный пример это —структура опций утилит в операционных системах типа UNIX. Чуть менее привычноиспользование грамматик для описания графических интерфейсов пользователя (GUI).Рассмотрим для этого простой пример интерфейса поиска фраз и ключевых слов встандарте POSIX.
Этот интерфейс реализован при помощи разделения окна браузера на триобласти: основной текст, индекс и форма поиска. Форма поиска может иметь два вида,которые представлены на рисунках ниже.Эта форма в начальном состоянии показана на Рис. 2, при выборе ссылки Word Search еевид меняется на изображенный на Рис. 3.Рисунок 2.
Форма поиска — основной вид.Рисунок 3. Форма поиска ключевых слов.Все действия пользователя в рамках этой формы поиска можно описать при помощиследующей грамматики.Chapter ::= Frontmatter | BaseDefinitions | SystemInterfaces | ShellAndUtilities | RationaleOrganization ::= Alphabetical | TopicMainOption ::= Chapter | OrganizationSection :: = All | XSH | XCU | XBD | XRATMainIndexAction ::= (MainOption)* (<Phrase> Search)* | WordSearchAction ReturnToMainIndexWordSearchAction ::= MainIndexAction WordSearch | WordSearchAction (SubstringMatching)?Section <Keywords> SubmitQuery<Keywords> ::= <Word> | <Keywords> "or" <Word> | <Keywords> "and" <Word><Phrase> ::= (<Word>)*В приведенном описании нажатия на кнопки, ссылки или включение/выключениефлажков на форме выделены таким шрифтом, как BaseDefinitions или Search.
<Keywords>,<Word> и <Phrase> — это различные виды фраз, которые можно ввести в поля ввода формы.При построении тестов на основе формальных грамматик рассматриваются тестовыеситуации, соответствующие различным вариантам построения предложений в этойграмматике. Похожие наборы вариантов рассматриваются и при определении метриктестового покрытия на основе грамматик (см.
Лекцию 3).Каждая альтернатива дает столько вариантов, сколько в ней участвует. Опциональныйэлемент дает два варианта — его присутствие и его отсутствие. Список может даватьнесколько разных наборов вариантов — можно рассматривать только пустые и непустыесписки, а можно рассматривать списки длины 0, 1, 2 и все остальные.Например, возможные варианты раскрытия правила X ::= (A)? (B | C) D (E)*, можноперечислить так.ABD CDE ACDEEВыше перечислены предложения, которые покрывают только каждую из имеющихсяальтернатив.
Ниже — варианты раскрытия этого же правила, покрывающие все сочетаниявариантов раскрытия отдельных альтернатив.BD BDE BDEE ABD ABDE ABDEECD CDE CDEE ACD ACDE ACDEEЗаметим, что здесь возникает много размерностей пространства вариантов, посколькумногие альтернативы могут выбираться независимо от остальных. Поэтому возможныразные стратегии сочетания вариантов — просто раскрыть каждую альтернативу всемивозможными способами, не обращая внимания на их сочетания, перебрать все парысочетаний возможных раскрытий соседних альтернатив, перебрать все сочетания возможныхраскрытий альтернатив в каждом правиле и пр.Покрывающие наборыПокрывающие наборы дают инструмент для систематического перебора различныхкомбинаций значений параметров или факторов.Рассмотрим сначала небольшой пример.
Предположим, мы тестируем одну операцию, наработу которой может оказать влияние несколько факторов. Примером может быть печатьWeb-станицы из браузера Интернет, в качестве существенных факторов для которой могутвыступать объем печатаемого документа, наличие или отсутствие цветных картинок, размербумаги, производитель используемого принтера, разновидность используемого браузера,операционная система, которой мы при этом пользуемся.Чтобы применить комбинирование значений этих факторов, для каждого фактора должноиметься лишь небольшое число различимых значений.
Предположим, что, поразмыслив, мывыбрали следующие значения.ОбъемНаличие цветныхрисунковРазмербумагиПроизводительпринтера1 страницаНет цветных рисунковA42 страницыЕсть цветные рисункиA57 страницБраузерОперационнаясистемаHPInternet ExplorerWindows MeEpsonMozilla FirefoxWindows 2000B5CanonOperaWindows XPLetterXeroxLinux SUSE 10.0Envelop C5Linux RHEL 4.0Таблица 1.
Значения параметров для тестирования печати Web-страницы.Если теперь попробовать составить все возможные комбинации значений факторов,получится 3⋅2⋅5⋅4⋅3⋅5 = 1800 тестов. Это не чересчур много, но ясно, что выполнение их всехпотребует значительных затрат.Однако можно существенно сократить эти затраты, если учесть, что подавляющеебольшинство ошибок в таких ситуациях (до 70%) связано с определенными комбинациямивсего лишь двух факторов, то есть, если тесты будут содержать все возможные комбинациипар значений факторов, большая часть ошибок будет ими выявлена.Принятие такого подхода позволяет выполнить лишь небольшое количество тестов,таких, что в них задействованы все пары значений различных факторов. В данном примереодин из возможных минимальных наборов тестов представлен в Таблице 2.Показанный набор минимален, поскольку для использования всех сочетаний размеровбумаги и операционных систем необходимо не менее 25 тестов.Можно пойти еще дальше и попробовать составить тестовый набор так, чтобы он попрежнему оставался небольшим, но содержал уже все различные тройки значений факторов.При этом потребуется не менее 100 = 5⋅5⋅4 тестов, что все же существенно меньше, чем 1800(такой набор из 100 тестов действительно существует).123456789101112131 страница1 страница1 страница1 страница1 страница1 страница1 страница2 страницы2 страницы2 страницы2 страницы2 страницы2 страницыНет цветных рисунковНет цветных рисунковНет цветных рисунковНет цветных рисунковЕсть цветные рисункиЕсть цветные рисункиЕсть цветные рисункиНет цветных рисунковНет цветных рисунковНет цветных рисунковЕсть цветные рисункиЕсть цветные рисункиЕсть цветные рисункиA4A4A5Envelop C5B5LetterEnvelop C5A5LetterEnvelop C5A4A5B5HPHPEpsonCanonEpsonHPXeroxXeroxCanonHPXeroxHPXeroxInternet ExplorerOperaInternet ExplorerInternet ExplorerOperaMozilla FirefoxOperaMozilla FirefoxOperaMozilla FirefoxOperaOperaOperaLinux RHEL 4.0Windows MeWindows 2000Linux RHEL 4.0Windows XPWindows 2000Linux SUSE 10.0Linux RHEL 4.0Linux SUSE 10.0Windows XPWindows XPLinux SUSE 10.0Windows 20001415161718192021222324252 страницы7 страниц7 страниц7 страниц7 страниц7 страниц7 страниц7 страниц7 страниц7 страниц7 страниц7 страницЕсть цветные рисункиНет цветных рисунковНет цветных рисунковНет цветных рисунковНет цветных рисунковНет цветных рисунковНет цветных рисунковЕсть цветные рисункиЕсть цветные рисункиЕсть цветные рисункиЕсть цветные рисункиЕсть цветные рисункиEnvelop C5A4A5B5B5LetterLetterA4A5B5LetterEnvelop C5EpsonCanonXeroxHPCanonHPXeroxEpsonCanonEpsonEpsonEpsonInternet ExplorerInternet ExplorerOperaInternet ExplorerMozilla FirefoxInternet ExplorerInternet ExplorerMozilla FirefoxOperaOperaOperaInternet ExplorerWindows MeWindows 2000Windows MeLinux SUSE 10.0Windows MeLinux RHEL 4.0Windows XPLinux SUSE 10.0Windows XPLinux RHEL 4.0Windows MeWindows 2000Таблица 2.