Тестирование софта


         

Тестирование софта

Очень часто при разработке программного обеспечения приходится сталкиваться с одной из двух проблем. Либо качество разработанного продукта много ниже самых минимальных разумных требований, либо затраты на тестирование превосходят все разумные пределы. К сожалению, бывает и так, что обе проблемы существуют одновременно. И денег на тестирование истрачено много, а качества достичь так и не удалось.
Увы, для большинства фирм низкое качество выпускаемого ПО — верный путь если не к полному исчезновению фирмы, то, по крайней мере, к потере клиентов и существенным финансовым потерям.
Кому нужно не оттестированное ПО, которое может подвести в любой самый неподходящий момент!
Одной из причин такой ситуации является объективная сложность процесса тестирования ПО. Ведь под словом Тестирование может скрываться множество самых различных действий, направленных на решение множества разнообразных задач. Тут и запуск и исполнение программы с целью проверки отсутствия ошибок, и оценка производительности, и контроль наличия и полноты документации и даже качества принятых проектных решений.

Автоматизация процесса тестирования IBM Rational
Руководители и разработчики начинают понимать важность процесса тестирования, для повышения качества программных систем. Становится очевидным, что чем позже начать тестировать программную систему, тем выше риски, тем менее надежной она может получиться. Нам приятно осознавать, что тестирование из прикладного процесса с невысоким приоритетом переходит в разряд особо важных процессов, чей жизненный цикл начинается параллельно с разработкой программных систем.

Что такое тестирование
Тестируемость
Жизненный цикл продукта и Тестирование
Типовой цикл тестирования
Тестирование и сценарии использования.
Тестирование и сценарии использования. - 2
Типы тестирования
Метрики тестирования и качества
Стратегия тестирования
Типы тестов

Инструментальные средства поддержки процесса тестирования
Программные продукты будут описаны в порядке применения в проектах. Сначала рассмотрим средства тестирования для разработчиков (Quantify, Purify, PureCoverage). Данные средства неразрывно связаны с языком реализации и со средой разработки. Примеры, приведенные в книги ориентированы на язык программирования С++ и частично на С#. В связи с тем, что на момент написания была доступна только бета-версия Visual Stu-dio .NET, то мы в основном ориентировались на версию 6.0, лишь изредка демонстрируя возможности новой среды.

Организация тестирования
Организация тестирования - 2
Организация тестирования - 3
Quantify, Purify и PureCoverage
Введение
Запуск приложений
Run Summary
Run Summary - 2
Дерево вызовов Call Graph
Список вызовов функций Function List

Дополнительное обеспечение корректности тестового набора
Тестирование работы программы в различных ситуациях остается одним из самых широко используемых способов демонстрации ее корректности, особенно для достаточно сложного приложения. Но все существующие методики создания тестов, обеспечивающие их полноту в соответствии с некоторыми естественными критериями, требуют весьма значительных трудозатрат.

Проверки, добавляемые автоматически
Контроль корректности наложенных ограничений
Контроль корректности наложенных ограничений - 2
Оптимизация разработки тестов
Приведение типов и наследование
Приведение типов и наследование - 2
Удобство и функциональность интерфейса
Удобство и функциональность интерфейса - 2
Разбиение на группы и порядок выполнения работ
Достоинства и недостатки подхода

Максимизация числа различных подслов
ри тестировании систем, поведение которых определяется не только последним обращением к ним, а и предшествующей историей работы, т.е. зависит от внутреннего состояния системы, необходимо строить тесты в виде последовательностей обращений, чтобы покрыть возникающие разнообразные ситуации. Если о системе известно немного, например, только список обращений, которые можно делать, построить ее тест в полном смысле этого слова нельзя, поскольку частью теста всегда является проверка правильности работы системы в ответ на тестовые обращения.

Формулировка задачи
Максимизация числа различных подслов
Максимизация числа различных подслов - 2
Слова де Бройна
Слова де Бройна - 2
Слова де Бройна - 3
Продолжение слов де Бройна
Продолжение слов де Бройна - 2
Покрывающие последовательности
Покрывающие последовательности - 2

Построение абстрактной модели
Компиляторы - это основной инструмент при создании программного обеспечения, поэтому их надежность особенно важна. Наряду с другими методами верификации и валидации для компиляторов, тестирование попрежнему остается важным элементом в семье этих методов. Необходимость автоматизации тестирования компиляторов также представляется очевидной, поскольку реальные объемы добротных наборов тестов и сложность анализа результатов весьма велики.

Построение абстрактной модели
Построение абстрактной модели - 2
Построение абстрактной модели - 3
Задача проверки сохранения семантики программы
Создание генератора тестов
Запуск тестов
Практическое применение подхода
Области применимости подхода
Близкие работы
Заключение

Генетические алгоритмы
При разработке и сопровождении программного обеспечения, значительная часть усилий тратится на поиск и устранение ошибок. Самым распространённым методом поиска ошибок является тестирование, то есть процесс выполнения программ с целью обнаружения ошибок. Здесь слово программа понимается в широком смысле, как любая запись алгоритма. В частности, программами являются отдельные процедуры, функции, классы и т.д.

Генетические алгоритмы
Критерии полноты тестового покрытия
Метрики тестового покрытия
Генетический алгоритм генерации тестов
Простейший алгоритм
Целенаправленный поиск
Оценочные функции
Покрытие операторов исходного кода
Покрытие ветвей потока управления
Покрытие путей потока управления

Проблемы организации тестовых наборов
Современное программное обеспечение (ПО) очень сложно, и сложность его постоянно возрастает. Это вызвано естественным стремлением человечества к развитию, к решению новых, все более сложных задач и, соответственно, постоянно возрастающими требованиями к функциональности и удобству используемых на практике программных систем. Поэтому рост сложности практически значимого ПО стоит рассматривать не как проблему, нечто нежелательное, а как объективный фактор, один из вызовов, стоящих перед способностями человека к познанию законов окружающей действительности и умению использовать их

Проблемы организации тестовых наборов
Проблемы организации тестовых наборов - 2
Проблемы организации тестовых наборов - 3
Проблемы организации тестовых наборов - 4
Проблемы организации тестовых наборов - 5
Техники организации тестовых наборов
Квалификаторы
Конфигурационные параметры
Конфигурационные параметры - 2
Модульность

Представление тестовых данных
Одной из наиболее распространенных задач, возникающей при тестировании сложных программных систем, является генерация тестовых данных сложной структуры. Такие задачи характерны для тестирования систем, использующих интернет-протоколы, XML-технологии, SQL-интерфейсы баз данных; интерпретаторов и трансляторов языков программирования, спецификаций, командных языков, а также многих других видов программных систем.

Представление тестовых данных
Предварительные сведения и понятия
Идея метода
Идея метода - 2
Способ описания ограничений
Итераторы
Итераторы - 2
Схема генерации
Использование абстрактных моделей
Заключение

Функциональное тестирование Web-приложений на основе технологии UniTesK
В данной статье Web-приложениями мы будем называть любые приложения, предоставляющие Web-интерфейс. В настоящее время такие приложения получают все большее распространение: системы управления предприятиями и драйверы сетевых принтеров, интернет-магазины и коммутаторы связи – это только небольшая часть приложений, обладающих Web интерфейсом. В отличие от обычного графического пользовательского интерфейса Web-интерфейс отображается не самим приложением, а стандартизированным посредником – Web-браузером. Web-браузер берет на себя все взаимодействие с пользователем и обращается к Web-приложению только в случае необходимости. Описание пользовательского интерфейса предоставляется браузеру в стандартном представлении, в роли которого обычно выступает HTML

Подходы к функциональному тестированию Web
Подходы к функциональному тестированию Web - 2
Подходы к функциональному тестированию Web - 3
Технология UniTesK
Технология UniTesK - 2
Технология UniTesK - 3
Технология UniTesK - 4
Применение UniTesK для Web-приложений
Моделирование поведения на уровне HTTP
Моделирование на уровне Web-браузера

Автоматическая генерация позитивных
Компилятор является инструментом, требования к надежности которого чрезвычайно высоки. И это неудивительно, ведь от правильности работы компилятора зависит правильность работы всех скомпилированных им программ. Из-за сложности входных данных и преобразований задача тестирования компиляторов является весьма трудоемкой и непростой. Поэтому вопрос автоматизации всех фаз тестирования (создания тестов, их прогона, оценки полученных результатов) стоит здесь особенно остро.

Предварительные сведения
Предварительные сведения - 2
Предварительные сведения - 3
Позитивные и негативные тесты для анализатора
Позитивные и негативные тесты для анализатора - 2
Критерии покрытия
Критерии покрытия - 2
Критерии покрытия - 3

Три цвета
Заглушку следует писать так, чтобы тест не выполнялся - это поможет удостовериться, что тест правильно реагирует на ошибку. Другая, более важная задача "красной" фазы состоит в том, чтобы в процессе написания теста определить сигнатуры тестируемых методов, порядок их вызова и другие особенности работы с ними. Как правило, имеет смысл начинать тестирование метода с наиболее общей, дефолтной ситуации, которая в нашем случае заключается в том, что в метод подаются числа, выходящие за пределы заданного диапазона

Три цвета
Три цвета - 2
Три цвета - 3
Три цвета - 4
Пять причин
Пять причин - 2
Практические рекомендации
Практические рекомендации - 2
Практические рекомендации - 3
Практические рекомендации - 4

Тестирование на основе моделей
Индустрия программного обеспечения постоянно пытается решить вопрос качества, но насколько значимы ее успехи, на данный момент сказать довольно сложно. В статье идет речь о новом поколении инструментов тестирования, которые призваны повысить качество программ. Однако инструменты, даже автоматические, не в состоянии помочь, если их используют неправильно. Поэтому обсуждение инструментов предваряет изложение общих положений «правильного» тестирования.

Подходы к улучшению качества программ
Подходы к улучшению качества программ - 2
Подходы к улучшению качества программ - 3
Подходы к улучшению качества программ - 4
Три составляющие тестирования — экскурс в теорию
Инструменты тестирования — реальная практика
Инструменты тестирования — реальная практика - 2
Чем могут помочь модели
Чем могут помочь модели - 2
Инструменты тестирования на основе моделей

Процесс разработки тестового сценария
При тестировании на основе моделей широко распространенным подходом к генерации тестовых данных является представление системы в виде конечного автомата и генерация тестовой последовательности на основе его обхода. Авторы, использующие конечные автоматы для тестирования, отмечают, что это позволяет повысить качество тестирования, улучшить сопровождаемость тестов. В работе отмечается, что использование конечных автоматов дает возможность получать последовательности, которые было бы сложно получить при применении других подходов. В отличие от ручного тестирования и тестирования с автоматизированным прогоном тестов, при использовании автоматов тестовая последовательность строится автоматически.

Процесс разработки тестового сценария
Процесс разработки тестового сценария - 2
Процесс разработки тестового сценария - 3
Процесс разработки тестового сценария - 4
Процесс разработки тестового сценария - 5
Процесс разработки тестового сценария - 6
Понятие паттерна
Понятие паттерна - 2
Описание паттернов
Краткое описание

Что такое PDL
PDL (Portable Dynamic Loader) - это легкая, простая и портабельная библиотека, предназначенная для создания и использования динамически загружаемых объектов классов.

Для чего же нужна динамическая загрузка классов
Создание динамически загружаемого класса
Создание динамически загружаемого класса - 2
Создание динамически загружаемого класса - 3
Динамически загружаемые классы
Динамически загружаемые классы - 2
Ложка дёгтя
Благодарности

Методы обеспечения переносимости ПО
Проблема переносимости приложений между различными программно-аппаратными платформами ненамного моложе собственно компьютерных программ. Еще в конце шестидесятых годов озабоченность некоторых сотрудников ATT Labs проблемой переносимости ОС UNIX на новые аппаратные платформы привела к созданию языка Си. Темпы развития компьютерной индустрии таковы, что проблемы сорокалетней давности кажутся достаточно простыми и решаемыми, по сравнению с тем, что мы имеем сегодня. Стремительное развитие связанных с компьютерами отраслей приводит к постоянному появлению новых программно-аппаратных платформ, информационных систем, и т.п., в то время как устаревшие комплексы уходят в небытие.

Примеры из современности
Примеры из современности - 2
Переиспользование бинарных файлов
Переиспользование исходного кода
Переиспользование исходного кода - 2
Использование интерпретируемого кода
Использование эмуляторов ABI
Виртуализация
Виртуализация - 2
Использование Web-технологий

Классификация задач и ролей в тестировании, основанная на методологии RUP
Вокруг ролей и задач, связанных с тестированием и обеспечением качества, сложилось несколько противоположных идейных течений, которые усердно культивируются носителями этих идей. Точки зрения во многом противоположны, во многом противоречивы. Тестирование видится с одной стороны каким-то полумеханическим процессом, который не требует особенной квалификации: тестировщика видят эдаким «кликальщиком», который просто гоняет приложение, ждёт пока оно «упадёт», потом радостно сообщает об ошибке и продолжает в том же духе.

Классификация задач и ролей в тестировании
Аналогии
Деятельность/Задачи тестирования (Testing Activities)
Роли в тестировании (roles)

QT: интерфейс, и не только
Если вы связаны с программированием, то наверняка уже встречали сочетание Qt. Многие (0,1%) из вас даже использовали Qt в своих разработках, пусть даже как следствие инсталляции Borland Kylix. В общем, самое время посмотреть на Qt, что называется, "в упор, двумя глазами"… Этот продукт на слуху у всех разработчиков, которые программируют для Linux. И не только у них — например, самый модный и удобный многоплатформенный клиент для сетей AIM/ICQ (точнее, ICQ/AIM), sim, написанный питерцем Володей Шутовым, создан именно с использованием Qt.

Идея
Кю-тэшное семейство, обзор
Инсталл
Библиотека, learning curve
Как оно работает
Как оно работает - 2
Интеграция
Аллилуя, то есть Славься!

Обзор протокола Mobile IPv6
Функциональность Mobile IPv6 нацелена на поддержку целого ряда устройств, в частности, персональных компьютеров, ноутбуков, карманных компьютеров, мобильных телефонов, маршрутизаторов и точек доступа для беспроводных сетей. Очевидно, в перспективе ожидается появление большого количества реализаций Mobile IPv6 от различных производителей.

Обзор протокола Mobile IPv6
Обзор протокола Mobile IPv- 2
Обзор протокола Mobile IPv- 3
Обзор протокола Mobile IPv- 4
Обзор протокола Mobile IPv- 5
Инструмент CTesK
Инструмент CTesK - 2
Инструмент CTesK - 3
Инструмент CTesK - 4
Инструмент CTesK - 5

База данных стандарта LSB
Для написания программы, соответствующей какому-либо стандарту, разработчику необходимо изучить текст этого стандарта. Большинство стандартов попадают к пользователям в виде электронных документов либо напечатанных книг, и объем их достаточно велик. Однако во многих случаях процесс разработки упростится, если некоторые сведения из стандарта будут доступны в какой-то другой форме, более формальной, чем текст, и не требующей изучения человеком. Например, для гарантии того, что в программе будут использоваться только описанные стандартом функции, специфицированные в заданных заголовочных файлах, полезно иметь такие файлы, содержащие описания только стандартных функций.

База данных стандарта LSB
Информация об объектах, описанных в LSB
Информация об объектах, описанных в LSB - 2
Информация об архитектурах
Генерация текста стандарта
Генерация зависящих от стандарта объектов
Библиотеки-"заглушки" и заголовочные файлы
Элементарные тесты
Элементарные тесты - 2
Планы по развитию инфраструктуры LSB

Использование формальных методов для обеспечения соблюдения программных стандартов
Экономическое и социальное развитие общества требует для своей поддержки все более сложное программное обеспечение (ПО). Масштабность современных программных систем приводит к тому, что такие системы строятся из многих компонентов, разрабатываемых в разных организациях огромным количеством людей. Для построения работоспособных систем на основе такого подхода необходимо уметь решать задачи обеспечения совместимости между различными их компонентами и их надежности в целом

Формализация стандартов
Формализация стандартов - 2
Формализация стандартов - 3
Формализация стандартов - 4
Разработка тестов на соответствие стандарту
Разработка тестов на соответствие стандарту - 2
Разработка тестов на соответствие стандарту - 3
Применения описанного подхода
Применения описанного подхода - 2
Другие подходы к построению тестов

Инженерный калькулятор
Руководителям групп тестирования и ведущим тестировщикам часто приходится разрабатывать кроме необходимой рабочей документации и артефактов, документы более высокого уровня, описывающие общие подходы к тестированию системы и развитие процесса тестирования в проекте. Об одном из таких документов-артефактов и пойдёт речь ниже.

Терминология
Определение
Практика
Инженерный калькулятор
Стратегия тестирования в действии
Распределённая система
Объём задач
Зависимости от артефактов проекта

TET (Test Environment Toolkit)
Хорошо известно, что проверить корректность работы любой серьезной программной системы во всех ситуациях, которые могут встретиться в ходе ее реальной эксплуатации, невозможно. Поэтому тестирование программного обеспечения неизбежно связано с поиском компромисса между тщательностью проверок и ограничениями на имеющиеся ресурсы.

TET (Test Environment Toolkit)
TET (Test Environment Toolkit) - 2
Автоматизация разработки TET-совместимых тестов
Достоинства и недостатки существующих решений
Общие сведения.
Процесс разработки тестов с помощью системы T
Анализ документации и разбиение на группы
Разметка требований в документации
Создание шаблона T-файла
Разработка тестов в T-формате

Парное тестирование — возьмём от ХР лучшее
Работа в паре присуща экстремальному программированию, собственно видя как работают в паре наши ХР-шники (я говорю о ХР-team компании в которой я работаю на данный момент) я и решил опробовать этот подход со своими коллегами по отделу. Наблюдая практическое применение ХР при решении разноплановых задач и ту лёгкость в управлении ресурсами которую даёт ХР-команде применения основ методологии ХР, я решил взять некоторые аспекты для работы команды тестирования.

Парное тестирование — возьмём от ХР лучшее
Зачем нам парное тестирование?
Как на практике?
Поставим эксперимент.
Как построили работу?
Первые результаты.
На чём экономим?
Психологический эффект.

Сравнение эффективности обходчиков UniTESK
Одним из наиболее успешных примеров применения подхода тестирования на основе моделей является технология UniTESK [,], разработанная в Институте Системного Программирования РАН. В рамках этой технологии математические модели используются для решения основных задач тестирования: оценки корректности поведения целевой системы, генерации тестовых данных, тестовых последовательностей и оценки качества тестирования.

Сфера тестирования на основе спецификаций
Как эффективность влияет на тестирование
Как эффективность влияет на тестирование - 2
Как эффективность влияет на тестирование - 3
Краткое описание обходчиков UniTESK
Сравнение эффективности обходчиков UniTESK
Зависимость работы от порядка сценарных функций
Обход дерева
Обход полного графа и его модификаций
Обход полного графа и его модификаций - 2

Стратегия модульного тестирования
Ключевой фактор при оценке перспективности любого метода — стоимость проекта. Дополнительная работа по созданию тестов, их кодированию и проверке результатов вносит существенный вклад в общую стоимость проекта. И то, что продукт окажется более качественным не всегда перевешивает то, что он будет существенно дороже.

Стратегия модульного тестирования
Стратегия модульного тестирования - 2
Планирование тестов
Распределение обязанностей

Подход UniTesK к разработке тестов: достижения и перспективы
Несмотря на активное развитие методов построения тестов на основе формальных спецификаций или формальных моделей в академическом сообществе, лишь немногие из них оказываются применимыми в индустрии производства ПО. Основная проблема здесь в том, что индустрии нужны не отдельные методы, а технологии, т.е. инструментально поддержанные системы методов для решения наборов связанных задач, относящихся к выделенному аспекту разработки ПО.

Основные принципы UniTesK
Основные принципы UniTesK - 2
Основные принципы UniTesK - 3
Основные принципы UniTesK - 4
Универсальная архитектура теста
Универсальная архитектура теста - 2
Универсальная архитектура теста - 3
Универсальная архитектура теста - 4
Процесс построения тестов по UniTesK
Описание функциональных требований

Стандартизация Грид
Реализации ГС начали появляться с 1995 года, когда появился инфраструктурный программный пакет GlobusToolkit, ныне являющийся де-факто стандартом ГС. Он был выпущен организацией GlobusAlliance ? крупнейшим международным консорциумом в области Грид. В 1997 году был начат европейский проект по созданию программного пакета для ГС, приведший к созданию ИПО UNICORE. В 2004 году под эгидой проекта EGEE (EnablingGridsforE-sciencE) был выпущен пакет gLite. С появлением большого числа несовместимых между собой реализаций ИПО Грид необходимость унификации и стандартизации стала актуальной, и началась активная работа над созданием стандартов Грид.

Вопросы тестирования реализаций Грид
Технология автоматизированного тестирования
Стандарты OGSA и WSRF. Ограничение области
Требования к реализациям ИПО Грид
Требования к реализациям ИПО Грид - 2
Разработка формальной спецификации
Разработка формальной спецификации - 2
Разработка формальной спецификации - 3
Разработка медиатора
Разработка тестового сценария

Краткий обзор технологии UniTesK
Известно, что слабым звеном в технологической цепочке проектирования сложного аппаратного обеспечения является функциональная верификация. Согласно Бергерону (Janiсk Bergeron) функциональная верификация занимает около 70% общего объема трудозатрат, число инженеров, занимающихся верификацией, примерно вдвое превосходит число проектировщиков, а размер исходного кода тестов (testbenches) достигает 80% общего размера кода проекта.

Краткий обзор технологии UniTesK
Архитектура тестовой системы UniTesK
Инструмент разработки тестов CTesK
Особенности моделей аппаратного обеспечения
Особенности моделей аппаратного обеспечения - 2
Модели аппаратного обеспечения и UniTesK
Модели аппаратного обеспечения и UniTesK - 2
Модели аппаратного обеспечения и UniTesK - 3
Модели аппаратного обеспечения и UniTesK - 4
Пример счетчика

Классификация тестируемых систем в соответствии с конфигурацией потоков управления
В связи с возрастанием размера и сложности программного обеспечения (ПО), которое требуется для удовлетворения потребностей пользователей и поддержки стабильного развития современного общества, задача автоматизации тестирования становится одной из ключевых в разработке качественного ПО. Одним из перспективных подходов к решению этой задачи является UniTesK - технология автоматизированного функционального тестирования на основе формальных методов, разработанная в Институте системного программирования РАН

Определение
Следствия из определений:
Пассивные последовательные системы
Пассивные параллельные системы
Тестирование с отложенными реакциями
Полуконтролируемое тестирование
Два потока управления
Система с отложенными реакциями
Система с отложенными реакциями - 2
Полуконтролируемое тестирование

Методика автоматизированной проверки
Данное исследование было проведено в рамках проекта OLVER (Open Linux VERification) [], задачей которого была разработка тестового набора, позволяющего выполнять автоматическую проверку дистрибутивов операционной системы Linux на соответствие стандарту LSB (Linux Standard Base). Тестовый сценарий заключается в вызове всех функций из тестируемой подсистемы с заданным набором параметров и проверке возвращаемых значений.

Постановка задачи
Генерируемый SeC-код
Генерируемый SeC-код - 2
Генерируемый SeC-код - 3
Конфигурационные константы.
Проверка
Проверка - 2
Пересечение требований
Трёхзначная логика
Оформление непроверяемых требований

Верификация компиляторов - систематический подход
Языки высокого уровня являются основным средством разработки программных систем. Спецификация языка высокого уровня задаёт класс текстов, принадлежащих этому языку, и определяет семантику исполнения программ, написанных на этом языке. Задача перевода текстов с языка высокого уровня в представление, выполнимое на вычислительной системе, решается комплексами программ, которые по традиции называют компиляторами.

Критерии полноты тестирования
Регламентирующие документы. Анализ требований
Моделирование
Извлечение тестов
Тестирование
Тестирование анализаторов контекстных условий
Методы тестирования
Регламентирующие документы. Анализ требований
Моделирование
Извлечение тестов

Автоматическая генерация тестов
Для решения задачи тестирования программ с программным интерфейсом (API – Application Program Interface: вызовы методов или процедур, пересылки сообщений) известны подходы – методы и инструменты – хорошо зарекомендовавшие себя в индустрии создания программного обеспечения. Основа этих подходов следующая: создается формальная спецификация программы, и по этой спецификации генерируются как сами тесты, так и тестовые оракулы – программы, проверяющие правильность поведения тестируемой программы.

Описание подхода
Описание подхода - 2
Диаграмма состояний
Диаграмма состояний - 2
Диаграмма состояний - 3
Генератор тестов
Генератор тестов - 2
Тестовый набор
Прогонщик тестов
Анализ и отображение результатов

Тестирование трансляторов
Развитие компьютерной индустрии и информационных технологий привело к тому, что во все большем числе областей бизнеса обработка документов производится автоматически с помощью компьютеров. Чтобы быть пригодными для компьютерной обработки, данные оформляются в виде формального текста, т.е. текста на некотором формальном языке.

Предварительные сведения
Построение оракула для генератора кода
Построение оракула для генератора кода - 2
Пример
Пример - 2
Пример - 3
Близкие работы
Заключение
Литература
Приложение A. UML-диаграммы моделей

Модель приложения
Графический интерфейс пользователя (ГИП) давно и прочно занял доминирующее положение среди способов взаимодействия с прикладными программами (приложениями) общего назначения. Взаимодействие пользователей с офисными и корпоративными приложениями в подавляющем большинстве случаев заключается в совершении некоторых последовательностей действий с графическим интерфейсом. Поэтому для обеспечения качества современных программных продуктов важной задачей является проверка корректности внешнего поведения приложений при взаимодействии пользователя с ГИП

Модель приложения
Тестовые проверки
Критерии тестового покрытия
Критерии тестового покрытия - 2
Оптимизация тестового набора
Алгоритм построения тестового набора
Алгоритм построения тестового набора - 2
Алгоритм построения тестового набора - 3
Оптимизация и балансировка тестового набора
Генерация готового к исполнению тестового набора

Обзор технологии AVM
В условиях постоянного изменения требований и непрерывной доработки проектов огромное значение приобретают такие характеристики технологии, как возможность повторного использования тестов и возможность создания тестов, устойчивых к изменениям реализации. Существующие подходы к построению тестовых систем, такие как AVM (Advanced Verification Methodology), URM (Universal Reuse Methodology), OVM (Open Verification Methodology) и UniTESK (Unified TEsting and Specification tool Kit), в той или иной степени решают обозначенные задачи, но многообразие существующих подходов усложняет взаимодействие между разными группами разработчиков.

Основные понятия
Обзор технологии AVM
Основные принципы AVM
Архитектура тестовой системы AVM
Архитектура тестовой системы AVM - 2
Обзор технологии OVM
Основные принципы OVM
Архитектура тестовой системы OVM
Обзор технологии UniTESK
Основные принципы UniTESK

Краткий обзор технологии тестирования UniTESK
Программной инженерии, претендующей на точность и методичность инженерной дисциплины, также приходится иметь дело с неполной информацией. В проектах по разработке программного обеспечения неопределенность возникает на самых ранних фазах. Размытый и туманный характер носят требования к программной системе, которые приходится многократно уточнять, дополнять и согласовывать. После доработок требования используются на следующей фазе, на которой, как правило, имеют дело с более низким уровнем абстракции, поэтому требования вновь кажутся неполными, их снова приходится дорабатывать.

Краткий обзор технологии тестирования UniTESK
Архитектура тестовой системы UniTESK
Полнота функциональных требований
Требования взаимодействия с системой
Требования взаимодействия с системой - 2
Требования правильности поведения системы
Неполнота информации в тестировании
Спецификация в условиях неполной информации
Неопределенные значения и уточняемые типы
Неопределенные значения и уточняемые типы - 2

Функции IPv выбранные для тестирования
В статье представлен опыт разработки тестового набора для реализации протокола IPv6 на Windows 2000. Тестовый набор предназначался для проверки соответствия реализации протокола IPv6 спецификациям IPv6. Проект по разработке тестового набора проходил при поддержке исследовательского гранта Microsoft Research.

Отправка и получение пакетов.
ICMPv6
Neighbor Discovery
MSR IPv6
Разбиение MSR IPvна подсистемы
Особенности тестирования MSR IPv6
Введение в UniTesK
Оракулы и спецификации
Тестовые сценарии
Медиаторы

Mодели аппаратного обеспечения
Чтобы убедиться, что аппаратура работает правильно, то есть реализует именно те функции, которые от нее ожидают пользователи, на практике используют функциональное тестирование. Требования, предъявляемые к качеству тестирования аппаратного обеспечения, очень высоки. Это связано не только с тем, что аппаратура лежит в основе всех информационных и управляющих вычислительных систем, в том числе достаточно критичных к сбоям и ошибкам. Большое влияние на формирование высоких требований оказывают также экономические факторы.

Особенности моделей аппаратного обеспечения
Особенности моделей аппаратного обеспечения - 2
Организация модулей аппаратного обеспечения
Организация модулей аппаратного обеспечения - 2
Спецификация и проверка требований
Требования к модулям аппаратного обеспечения
Спецификация требований
Проверка требований
Технология тестирования UniTESK
Архитектура тестовой системы UniTESK

Об одном методе сокращения набора тестов
Традиционный подход к решению задачи сокращения набора тестов заключается в "отсеивании" тестов из первоначального набора таким образом, чтобы сохранялся уровень его адекватности в терминах некоторого выбранного критерия адекватности, и основывается на использовании статического анализа и/или инструментирования исходного текста программного обеспечения (ПО). При таком подходе решение задачи, как правило, состоит из трех основных этапов

Существующие решения
Описание метода
Системные вызовы как характеристика поведения
Модель поведения программы на тесте
Метод сокращения набора тестов
Метод сокращения набора тестов - 2
Метод сокращения набора тестов
Тестовые программы и тестовые наборы
Проведение эксперимента и результаты
Результаты эксперимента

Разработка критериев анализа систем автоматизации тестирования
Статья затрагивает вопросы классификации средств тестирования и предлагает систему анализа, основанную на оценке качественных характеристик инструментария и сопутствующих условий внедрения и использования. Рассмотрен широкий спектр критериев: от набора функционала, который реализован в инструменте, до оценки уровня зрелости самой компании производителя и службы поддержки.

Поддерживаемые процессы тестирования.
Поддерживаемые типы тестов.
Поддерживаемые технологии.
Поддерживаемые технологии. - 2
Поддерживаемые технологии. - 3
Интеграция с системами разработки.
Техническая и документальная поддержка
Документальная поддержка.
Техническая поддержка.
Обучение и сертификация персонала


SQLсервер в Linux -самостоятельное освоение пакета
Операционная система QNX 4. Архитектура системы
Что такое Linux?
Основы Slackware Linux. Официальный учебник
Linux HOWTO
Linux для пользователя
Основы работы в ОС Linux
Как стать активным сторонником Linux
Linux mini-HOWTO
Руководство администратора Linux по безопасности
Ядро Linux в комментариях
Самоучитель по Linux Red Hat 7.1
Настройка и работа в Linux
С++ для начинающих
Литтон Джози - Верь В Меня
Ремонт и восстановление жестких дисков
F.A.Q. по ремонту и обслуживанию
Unigraphics. Справочник по проектированию деталей из листового металла
Литвиновы Анна И Сергей - Ледяное Сердце Не Болит
Ливадный Андрей - Естественный Отбор