Методы и стандарты тестирования программного обеспечения
НАЦИОНАЛЬНЫЙ
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
Факультет инновационных технологий (ФИТ)
Кафедра информационного
обеспечения инновационной
Методы и стандарты тестирования программного обеспечения
Реферат по дисциплине «Программная инженерия»
Выполнила студентка группы 18101 _____________А.А.Серикова «_____» ______________ 2013 г.
Принял заведующий кафедрой ИОИД ______________С.Л.Миньков «_____» ______________ 2013 г.
|
Томск 2013
ВВЕДЕНИЕ 3
1. ПОНЯТИЕ ТЕСТИРОВАНИЯ И ОТЛАДКИ (ПО) 5
1.1. ПРИНЦИПЫ ТЕСТИРОВАНИЯ И ОТЛАДКИ ПО 5
1.2. ЭТАПЫ ТЕСТИРОВАНИЯ ПО 5
1.3. ЦЕЛИ И ЗАДАЧИ ТЕСТИРОВАНИЯ ПО 7
2. МЕТОД ТЕСТИРОВАНИЯ И ОТЛАДКИ ПО 9
2.1. МЕТОДЫ ТЕСТИРОВАНИЯ ЧЕРНОГО И БЛОГО ЯЩИКА 9
2.2. МЕТОДЫ ОТЛАДКИ ПО 10
3. СТАНДАРТЫ ТЕСТИРОВАНИЯ ПО 13
3.1. СТАНДАРТ ГОСТ Р 12119-2000 «ИТ. ПАКЕТЫ ПРОГРАММ. ТРЕБОВАНИЯ К КАЧЕСТВУ И ТЕСТИРОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИ» 13
3.2. СТАНДАРТ ГОСТ Р ИСО/МЭК 12207-2012 «ИТ. ПРОЦЕССЫ ЖИЗНЕННОГО ЦИКЛА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ» 14
ЗАКЛЮЧЕНИЕ 15
СПИСОК ЛИТЕРАТУРЫ 15
ВВЕДЕНИЕ
История тестирования программного обеспечения отражает эволюцию разработки самого программного обеспечения. В течение длительного времени разработка программного обеспечения уделяла основное внимание крупномасштабным научным программам, а также программам министерства обороны, связанным с системами корпоративных баз данных, которые проектировались на базе универсальной ЭВМ или миникомпьютера. Тестовые сценарии записывались на бумагу. С их помощью проверялись целевые потоки управления, вычисления сложных алгоритмов и манипулирование данными. Окончательный набор тестовых процедур мог эффективно протестировать всю систему полностью. Тестирование обычно начиналось лишь после завершения плана-графика проекта и выполнялось тем же персоналом.
Появление персональных компьютеров способствовало стандартизации этой отрасли, поскольку приложения стали изначально создаваться для работы с общей операционной системой. Внедрение персональных компьютеров открыло новую эру и привело к быстрому и бурному росту коммерческих разработок. Коммерческие приложения жестко боролись за первенство и выживание.
Причиной многих несчастий разработчиков
являются программные ошибки, из-за
которых на их многострадальные головы
сваливаются и давно
Долгое время ошибки рассматривали как простые неприятности. Ничто не может быть дальше от истины. Всем программистам известны компании, которые закрылись только потому, что выпускали программные продукты, совершенно непригодные к использованию из-за обилия ошибок. В связи со всеобщей компьютеризацией, все шире и шире захватывающей такие важные области, как управление системами жизнеобеспечения, медицинские приборы и сверхдорогую компьютерную аппаратуру, над ошибками больше нельзя просто посмеиваться или рассматривать их как нечто имеющее значение только на этапах разработки.
На отладку в среднем
ПОНЯТИЕ ТЕСТИРОВАНИЯ И ОТЛАДКИ (ПО)
ПРИНЦИПЫ ТЕСТИРОВАНИЯ И ОТЛАДКИ ПО
Основным параметром качества программы
является надёжность. Надёжность определяется
как вероятность его работы без
отказов в течении
Тестовая деятельность, связанная с анализом результатов разработки программного обеспечения, называется статическим тестированием (static testing). Статическое тестирование предусматривает проверку программных кодов, сквозной контроль и проверку программы без запуска па машине, т.е. проверку за столом (desk checks). В отличие от этого, тестовая деятельность, предусматривающая эксплуатацию программного продукта, носит название динамического тестирования (dynamic testing). Статическое и динамическое тестирование дополняют друг друга, и каждый из этих типов тестирования реализует собственный подход к выявлению ошибок.
Отладка - это процесс выявления источников отказов, т.е. ошибок, и внесение в программу соответствующих исправлений.
ЭТАПЫ ТЕСТИРОВАНИЯ ПО
Первое действие в планировании
испытаний предусматривает
Если для поддержки различных
видов тестовой деятельности используется
автоматизация, стратегия автоматизации
должна рассматриваться как составная
часть общей стратегии
Существуют следующие подходы к формулированию стратегии тестирования:
1. Определить объемы тестовых работ путем анализа документов, содержащих требования к программному продукту (технические условия), чтобы выяснить, что нужно тестировать. Рассмотреть виды тестирования, которые не следуют непосредственно из документов с требованиями, такие как тестирование возможности установки и наращивания возможностей программного продукта, удобство и простота обслуживания продукта, а также способности к взаимодействию с другими видами аппаратных средств из среды заказчика.
2. Определить подход к тестированию за счет выбора статических и динамических тестов, связанных с каждой стадией разработки. Здесь потребуется включить описания всех рабочих продуктов, которые должна подготовить тестовая группа.
3. Определить критерии входа и выхода для каждой стадии тестирования, равно как и все точки контроля качества, для чего потребуется участие специалистов по тестированию.
4. Определить стратегию автоматизации в случае, если планируется использование автоматизации какого-либо вида тестовой деятельности. Автоматизация требует проведения независимых параллельных работ, которые должны тщательно планироваться и выполняться только в тех случаях, когда это не приводит к снижению эффективности.
Поскольку подвергнуть тестированию абсолютно все невозможно, важность выбора того, что нужно протестировать, сомнений не вызывает. Если допустить "перебор" в тестировании, т.е., если тестовое покрытие будет избыточным, то для отладки программного продукта потребуется значительное время, что поставит под угрозу срок сдачи проекта. Если тестирование окажется недостаточным (точнее, недостаточным будет тестовое покрытие), то увеличится риск пропуска того или иного дефекта, устранение которого будет стоить очень дорого, особенно после сдачи программного продукта в эксплуатацию. Отыскать нужный баланс между этими двумя крайностями поможет опыт и способ измерения успешности тестирования.
Эффективная автоматизация требует
специальной подготовки персонала,
разработки, отладки и верификации,
как и любой другой проект разработки
программного обеспечения. Бесплановая
и плохо выполненная
ЦЕЛИ И ЗАДАЧИ ТЕСТИРОВАНИЯ ПО
Цели тестирования:
- Повысить вероятность того, что приложение, предназначенное для тестирования, будет работать правильно при любых обстоятельствах.
- Повысить вероятность того, что приложение, предназначенное для тестирования, будет соответствовать всем описанным требованиям.
- Провести полное тестирование приложения за короткий срок.
Задачи тестирования:
- Проверить, что система работает в соответствии с определенными временами отклика клиента и сервера.
- Проверить, что наиболее критические последовательности действий с системой конечного пользователя выполняются верно.
- Проверить работу пользовательских интерфейсов
- Проверить, что изменения в базах данных не оказывают неблагоприятного влияния на существующие программные модули.
- При проектировании тестов свести к минимуму переработку тестов при возможных изменениях приложения.
- Использовать инструменты автоматизированного тестирования там, где это целесообразно.
- Проводить тестирование таким образом, чтобы не только обнаруживать, но и предупреждать дефекты.
- При проектировании автоматизированных тестов использовать стандарты разработки таким образом, чтобы создать многократно используемые и сопровождаемые скрипты.
МЕТОД ТЕСТИРОВАНИЯ И ОТЛАДКИ ПО
МЕТОДЫ ТЕСТИРОВАНИЯ ЧЕРНОГО И БЛОГО ЯЩИКА
В терминологии профессионалов
тестирования, фразы «тестирование
белого ящика» и «тестирование чёрного
ящика» относятся к тому, имеет
ли разработчик тестов доступ к исходному
коду тестируемого ПО, или же тестирование
выполняется через
При тестировании белого ящика (англ. white-box testing, также говорят-прозрачного ящика), разработчик теста имеет доступ к исходному коду программ и может писать код, который связан с библиотеками тестируемого ПО. Это типично для юнит-тестирования (англ. unit testing), при котором тестируются только отдельные части системы. Оно обеспечивает то, что компоненты конструкции работоспособны и устойчивы, до определённой степени. При тестировании белого ящика используются метрики покрытие кода или мутационное тестирование.
При тестировании черного ящика, тестировщик имеет доступ к ПО только через те же интерфейсы, что и заказчик или пользователь, либо через внешние интерфейсы, позволяющие другому компьютеру либо другому процессу подключиться к системе для тестирования. Например, тестирующий модуль может виртуально нажимать клавиши или кнопки мыши в тестируемой программе с помощью механизма взаимодействия процессов, с уверенностью в том, все ли идёт правильно, что эти события вызывают тот же отклик, что и реальные нажатия клавиш, и кнопок мыши. Как правило, тестирование черного ящика ведётся с использованием спецификаций или иных документов, описывающих требования к системе. Как правило, в данном виде тестирования критерий покрытия складывается из покрытия структуры входных данных, покрытия требований и покрытия модели (в тестировании на основе моделей).
При тестировании серого ящика разработчик теста имеет доступ к исходному коду, но при непосредственном выполнении тестов доступ к коду, как правило, не требуется.
Если «альфа-»
и «бета-тестирование»
Бета-тестирование
в целом ограничено техникой чёрного
ящика (хотя постоянная часть тестировщиков
обычно продолжает тестирование белого
ящика параллельно бета-
МЕТОДЫ ОТЛАДКИ ПО
Отладка программы так или иначе
принимает рассмотрение и логическое
решение доступной информации о
ошибках. Большая часть ошибок может
быть узнана к косвенным знакам посредством
тщательного анализа текстов
программ и результатов тестирования,
не получая дополнительной информации.
Таким образом используйте
- Ручное тестирование;
- Прологи;
- Снижения;
- Обратная трассировка.
- Метод ручного тестирования.
Это - самый простой и естественный метод данной группы. В обнаружении ошибок необходимо выполнить протестированную программу вручную, используя коммутируемый тест, работой, с которой была узнана ошибка. Метод очень эффективен, но не применим для больших программ, программ с трудными расчетами и когда ошибка соединяется с неправильным представлением компании-производителя телевизионных программ о производительности некоторых операций. Данный метод часто использует в качестве компонента других методов устранения неисправностей.
- Метод пролога.
Метод основан на тщательном анализе симптомов Ошибки, которую можно показать как неправильные результаты расчетов или как сообщение об ошибке. Если компьютер просто "зависает", фрагмент дисплея Ошибки вычисляют, происхождение последних полученных результатов и движений потребителя. Информация, полученная таким образом, организует и осторожно учится, просматривая адекватный фрагмент программы. В результате этих гипотез усовершенствования движений о погрешностях, каждая из которых проверяют. Если гипотеза - истина, детализируйте информацию о Ошибки, по-другому - совершенствуют другую гипотезу.
- Метод снижения.
На методе снижения в начинающемся наборе формы причин, которые могли вызвать данный дисплей Ошибки. Затем анализ причин, что противоречит доступным данным, отщепляет. Если все причины отщепляются, необходимо выполнить дополнительное тестирование исследуемого фрагмента. Иначе самая вероятная попытка гипотезы доказать. Если гипотеза объясняет полученные знаки Ошибки, ошибка находится, по-другому - проверяют следующую причину.
- Метод обратной трассировки.
Для малых программ эффективно приложение метода обратной трассировки. Начните с точки вывода неправильного результата. Для этой точки находится в работе гипотеза о значениях основных переменных, которые могли привести к получению доступного результата. Далее, происхождение этой гипотезы, сделайте предложения о значениях переменных в предыдущей точке. Процесс продолжается, все же не узнавайте причину Ошибки.
СТАНДАРТЫ ТЕСТИРОВАНИЯ ПО
СТАНДАРТ ГОСТ Р 12119-2000 «ИТ. ПАКЕТЫ ПРОГРАММ. ТРЕБОВАНИЯ К КАЧЕСТВУ И ТЕСТИРОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИ»
Настоящий стандарт применяется для пакетов программ. Например, для текстовых процессоров, электронных таблиц, программ баз данных, графических пакетов, программ, реализующих технические и научные функции, и для сервисных программ (утилит).
Стандарт устанавливает:
- требования к пакетам программ (требования к их качеству);
- инструкции по испытанию
пакета программ на
Стандарт предназначен только для пакетов программ, являющихся объектами продажи и поставки. Стандарт не связан с процессом их производства (включая соответствующие работы и промежуточные продукты, например технические задания). Область применения настоящего стандарта не охватывает систему качества поставщика
Примечание - Для некоторых программных средств необходимы дополнительные требования, например для программных средств, критичных по безопасности.
Пользователями настоящего стандарта являются:
a) поставщики, когда они:
1) определяют требования к пакету программ;
2) проектируют формат для описания продуктов;
3) оценивают собственные продукты;
4) выпускают декларации о соответствии (Руководство ИСО/МЭК 22 [1]);
5) обращаются за сертификатами или знаками соответствия (Руководство ИСО/МЭК 23 [2]);
b) органы по сертификации, которые хотят применять схему сертификации третьей стороной (международные, региональные или национальные) (Руководство ИСО/МЭК 16 [3], Руководство ИСО/МЭК 28 [4] и Руководство ИСО/МЭК 44 [5]);
c) испытательные лаборатории,
которые желают соблюдать
d) аккредитующие органы,
проводящие аккредитацию
СТАНДАРТ ГОСТ Р ИСО/МЭК 12207-2012 «ИТ. ПРОЦЕССЫ ЖИЗНЕННОГО ЦИКЛА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ»
Один из базовых стандартов в области ИТ – стандарт ISO/IEC 12207:2008 Systems and Software Engineering – Software Life Cycle Processes. Его российский аналог, ГОСТ Р ИСО/МЭК 12207:2010 «Системная и программная инженерия. Процессы жизненного цикла программных средств», введен в действие весной 2012 года.
Данный Международный Стандарт предлагает общую структуру, с хорошо определенной терминологией, процессов жизненного цикла программного обеспечения, которая предназначена для использования в индустрии программного обеспечения. Эта структура содержит процессы, услуги и задачи, которые должны быть применены во время приобретения системы, содержащей программное обеспечение, непосредственно программного продукта и программных услуг, во время поставки, разработки, применения и сопровождения программных продуктов. Программное обеспечение включает в себя, в том числе, программную часть микропрограммного обеспечения.
Данный Международный Стандарт также включает в себя процесс, который может быть применен для определения, управления и улучшения жизненного цикла программного обеспечения.
Термины и определения относящиеся к тестированию, выбранные из стандарта ИСО/МЭК 12207-2010
В настоящем стандарте применены следующие термины с соответствующими определениями:
4.33 квалификационное тестирование (qualification testing): Тестирование, проводимое разработчиком и санкционированное приобретающей стороной (при необходимости) с целью демонстрации того, что программный продукт удовлетворяет спецификациям и готов для применения в заданном окружении или интеграции с системой, для которой он предназначен
4.51 тестовое покрытие (test coverage): Степень, с которой данный тест проверяет требования для системы или программного продукта
4.52 тестируемость (testability): Степень, с которой объективный и физически реализуемый тест может быть спроектирован для определения того, что требование выполняется.
Технические процессы
Технические процессы используются для определения требований к системе, преобразования требований в полезный продукт, для разрешения постоянного копирования продукта (где это необходимо), применения продукта, обеспечения требуемых услуг, поддержания обеспечения этих услуг и изъятия продукта из обращения,
если он не используется при оказании услуги.
Технические процессы состоят из следующих процессов:
a) определение требований
правообладателей (специальный случай
процесса определения
b) анализ системных требований (специальный случай процесса анализа требований);
c) проектирование архитектуры
системы (специальный случай
d) процесс реализации (специальный
случай процесса реализации
e) процесс комплексирования
системы (специальный случай
f) процесс квалификационного
тестирования системы (процесс,
g) процесс инсталляции
программных средств (процесс,
который способствует
h) процесс поддержки
приемки программных средств
(процесс, который
i) процесс функционирования
программных средств (
j) процесс сопровождения
программных средств (
k) процесс изъятия
из обращения программных
В общем случае технические процессы,
представленные в настоящем стандарте,
ориентированы на программные средства
специальными случаями или вкладами в
результаты технических процессов, представленных
в [18]. Большинство из них схожи с процессами
реализации программных средств, но сохраняют
важные различия, например, анализ системных
требований и анализ требований к программным
средствам начинаются с разных исходных
позиций и имеют разные предназначения.
Далее представлены несколько пунктов выбранные из стандарта:
6.1.1.3.1.2 Приобретающая
сторона должна определять и
анализировать системные
6.1.1.3.6.1 Приобретающей стороне
следует приготовиться к
6.1.1.3.6.2 Приобретающая сторона должна провести приемочный осмотр и приемочное тестирование поставляемого программного продукта или услуги и должна принять их от поставщика, если все условия приемки удовлетворены. Процедуру приемки следует согласовать с 6.1.1.3.1.9.
6.1.2.3.4.10 Поставщик
должен взаимодействовать с
6.1.2.3.4.13 Поставщик должен проводить неформальные
встречи или участвовать в них, анализе
условий приемки, приемочном тестировании,
совместных ревизиях и аудитах вместе
с приобретающей стороной, как определено
в контракте и планах проекта. Совместные
ревизии должны проводиться в соответствии
с 7.2.6, аудиторские проверки - 7.2.7.
6.1.2.3.4.15 Поставщик должен
сделать доступными для
В результате успешного осуществления анализа системных требований:
a) устанавливается определенная
совокупность системных
b) выполняются соответствующие
технические приемы
c) системные требования анализируются на корректность и тестируемость;
d) осмысливается воздействие системных требований на среду применения;
e) требования расставляются по приоритетам, утверждаются и обновляются;
f) устанавливается
g) оцениваются изменения базовой линии по стоимости, графикам работ и воздействию технических решений;
h) системные требования
доводятся до сведения всех
участвующих сторон и
6.4.2.3.2.1 Системные требования должны оцениваться на основе перечисленных ниже критериев:
a) прослеживаемость потребностей по приобретению;
b) согласованность с потребностями по приобретению;
c) тестируемость;
d) осуществимость архитектурного проекта системы;
e) осуществимость
6.4.5.3.2 Готовность к тестированию. Данный
вид деятельности состоит из решения следующих
задач:
6.4.5.3.2.1 Для каждого квалификационного
требования системы должны

- Методы и стиль управления
- Методы и стиль управления
- Методы и стиль управления
- Методы и стратегии ценообразования
- Методы исчисления валового внутреннего продукта (ВВП)
- Методы исчисления налога
- Методы и тактики ведения деловых переговоров
- Методы исследования ЦНС
- Методы исследования электорального поведения
- Методы исследования электрической активности различных органов
- Методы исследования электрической активности различных органов
- Методы исследования электрической активности различных органов
- Методы исследования эмоций
- Методы исслендования рынков