Введение в тестирование программного обеспечения

Содержание

Слайд 2

Слайд 3

Стоимость этапов жизненного цикла ПО

Стоимость этапов жизненного цикла ПО

Слайд 4

Тестирование НЕ является: разработкой анализом управлением техписательством

Тестирование НЕ является:

разработкой

анализом

управлением

техписательством

Слайд 5

Тестирование - это Тестирование – это процесс, позволяющий убедиться в том,

Тестирование - это

Тестирование – это процесс, позволяющий убедиться в том, что

программа выполняет свое назначение.

Тестирование ПО – это процесс выполнения программы с целью обнаружения ошибок (Гленфорд Майерс,
компьютерный инженер и ученый, работал в Институте исследования систем компании IBM. Соучредитель и бывший исполнительный директор корпорации RadiSys.
Автор «Искусство тестирования программ»).

Тестирование — это процесс поиска ошибок. Хороший набор тестов позволит найти больше ошибок, чем плохой, и ошибки эти будут более серьезными (Сэм Канер, автор «Тестирование программного обеспечения»).

Слайд 6

Тестирование – это проверка соответствия между реальным поведением программы и ее

Тестирование – это проверка соответствия между реальным поведением программы и ее

ожидаемым поведением на конечном наборе тестов, выбранным определенным образом (SWEBOK (
The Guide to the Software Engineering Body of Knowledge
by IEEE - Institute of Electrical and Electronics Engineers)).

Тестирование представляет собой процесс, который ставит своей целью признать точность, полноту, безопасность и качество разрабатываемого программного обеспечения (http://www.expertsoft.com.ua/scs/).

Тестирование — это наблюдение за функционированием ПО в специфических условиях с целью определения степени соответствия ПО требованиям к нему (ISO (International Organization for Standardization))

Слайд 7

Тестирование — одна из дисциплин RUP (Rational Unified Process - an

Тестирование — одна из дисциплин RUP (Rational Unified Process - an

iterative software development process). Она ориентирована в первую очередь на оценку качества с помощью следующих методов:
поиск и документирование дефектов качества;
общие рекомендации относительно качества;
проверка выполнения основных предположений и требований на конкретных примерах;
проверка, что продукт функционирует так, как было запроектировано;
проверка, что требования выполнены соответствующим образом.
Слайд 8

Тестирование программного средства (ПС) - это процесс выполнения программ на некотором

Тестирование программного средства (ПС) - это процесс выполнения программ на некотором

наборе данных, для которого заранее известен результат применения или известны правила поведения этих программ. Указанный набор данных называется тестовым или просто тестом. Тестирование программ является одной из составных частей более общего понятия - «отладка программ». Под отладкой понимается процесс, позволяющий получить программу, функционирующую с требующимися характеристиками в заданной области изменения входных данных.
Процесс отладки включает:
действия, направленные на выявление ошибок (тестирование);
диагностику и локализацию ошибок (определение характера ошибок и их местонахождение);
 внесение исправлений в программу с целью устранения ошибок.
Из трех перечисленных видов работ самым трудоемким и дорогим является тестирование, затраты на которое приближаются к 45 % общих затрат на разработку ПС.
Слайд 9

Главная деятельность тестировщика Предоставление отрицательной обратной связи QA (Quality Assurance) -

Главная деятельность тестировщика

Предоставление отрицательной обратной связи

QA (Quality Assurance) - Обеспечение качества

________________________________________

QC

(Quality Control) – Контроль качества
Слайд 10

Тест (Test) Это специальная, искусственно созданная ситуация, выбранная определенным образом, и

Тест (Test)

Это специальная, искусственно созданная ситуация, выбранная определенным образом,
и описание того,

какие наблюдения за работой программы нужно сделать
для проверки ее соответствия некоторому требованию.

Тестовый случай (Test Case)

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

Слайд 11

Ошибка (Mistake) Возникает в результате деятельности людей, связанной с разработкой программного

Ошибка (Mistake)
Возникает в результате деятельности людей, связанной с разработкой программного обеспечения
Ошибка

в требованиях, ошибка в дизайне, ошибка в коде
Дефект (Defect)
Несоответствие поведения программы требованиям или ожидаемому поведению или несоответствие документации требованиям
Отказ (Error)
Проявление дефекта в ходе эксплуатации программы
Аварийный отказ – невозможность продолжать эксплуатацию программы

Ошибка-Дефект-Отказ

Слайд 12

Верификация vs Валидация Верификация (Verification) процесс оценки системы или её компонентов

Верификация vs Валидация

Верификация (Verification)
процесс оценки системы или её компонентов с

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

Валидация – мы сделали то, что надо Верификация – мы сделали это правильно

Валидация – мы сделали то, что надо
Верификация – мы сделали это

правильно
Слайд 14

Цели и задачи тестирования Предоставить информацию Руководителю проекта Разработчику Заказчику Что:

Цели и задачи тестирования

Предоставить информацию
Руководителю проекта
Разработчику
Заказчику
Что:
Обнаруженные несоответствия и рекомендации к их

исправлению
Рекомендации к усовершенствованию
Как:
Средства управления тестированием
Отчеты (E-mail)
Встречи
Слайд 15

Задачи тестировщика Определение миссии тестирования Проверка подхода к тестированию Проверка стабильности

Задачи тестировщика

Определение миссии тестирования
Проверка подхода к тестированию
Проверка стабильности выпуска
Тестирование и оценка
Достижение

приемлемого результата миссии
Совершенствование методов и средств тестирования
Слайд 16

Планирование тестов определение требований к тестам; оценка рисков; выбор стратегии тестирования;

Планирование тестов

определение требований к тестам;
оценка рисков;
выбор стратегии тестирования;
определение ресурсов;
создание расписания/последовательностей;
разработка Плана

тестирования;
определение критериев завершения и успешности тестирования.
Слайд 17

Дизайн и разработка тестов анализ объёма работ; определение тестовых случаев ->

Дизайн и разработка тестов

анализ объёма работ;
определение тестовых случаев -> Дизайн;
обзор и

оценка тестового покрытия;
определение тесто-критичной функциональности в Дизайне и Модели реализации;
запись тест-кейсов или программирование тестовых скриптов;
создание/подготовка внешних наборов данных;
Слайд 18

Выполнение тестов выполнение тестов; оценка выполнения тестов; восстановление после сбойных тестов;

Выполнение тестов

выполнение тестов;
оценка выполнения тестов;
восстановление после сбойных тестов;
проверка результатов;
исследование неожиданных результатов;
запись

ошибок;
Слайд 19

Оценка тестов анализ дефектов; оценка критериев завершения и успешности тестирования.

Оценка тестов

анализ дефектов;
оценка критериев завершения и успешности тестирования.

Слайд 20

Участники процесса тестирования Менеджер проекта – обеспечение ресурсами, координация работ Разработчик,

Участники процесса тестирования

Менеджер проекта – обеспечение ресурсами, координация работ
Разработчик, технический писатель

– исправление найденных ошибок
Архитектор – обеспечение целостности проекта в процессе исправления ошибок
Интегратор (Релиз менеджер) – контроль и выпуск версий ПО
Аналитик – установка приоритетов, связанных с необходимостью и сложностью исправления найденных дефектов
Тестировщик – несет ответственность за процесс тестирования в целом
Слайд 21

Роли участников группы тестирования Руководитель группы тестирования (Test manager) – представляет

Роли участников группы тестирования

Руководитель группы тестирования (Test manager) – представляет ключевую

роль тестировщика в рабочей группе, несет ответственность за организацию процесса тестирования в проекте, планирование и контроль действий по тестированию.
Тестировщик-аналитик (Test analyst) – несет ответственность за формирование тестовых спецификаций, и анализ итогов тестирования.
Разработчик тестов (Test developer) – несет ответственность за разработку автоматизированных тестов, предусмотренных в плане тестирования, установку и сопровождение инфраструктуры тестирования, создание стенда для проведения тестирования в соответствии с планом тестирования.
Исполнитель тестов (Test operator/ Engineer) - несет ответственность за фактическое исполнение тестов и документирование выявленных дефектов.
Слайд 22

Циклы тестирования Полный цикл тестирования обычно совпадает с итерацией разработки или

Циклы тестирования

Полный цикл тестирования обычно совпадает с итерацией разработки или соответствует ее

определенной части.
Частный цикл тестирования, как правило, проводится для конкретной сборки объекта тестирования (системы, подсистемы или отдельного компонента).
Слайд 23

Программы, как объекты тестирования, имеют ряд особенностей, которые отличают процесс их

Программы, как объекты тестирования, имеют ряд особенностей, которые отличают процесс их

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

Существуют несколько эмпирических правил проведения тестирования программ, обобщающих опыт тестировщиков. 1.

Существуют несколько эмпирических правил проведения тестирования программ, обобщающих опыт тестировщиков.


1. Процесс тестирования более эффективен, если проводится не автором программы.
2. Необходимой частью тестового набора данных должно быть описание предполагаемых значений результатов тестовых прогонов. Тестовый набор данных должен включать в себя два компонента: описание входных данных, описание точного и корректного результата, соответствующего набору входных данных. Этот принцип сложно, а в некоторых случаях и невозможно реализовать на практике.
3. Необходимо изучить результаты каждого теста. Из практики следует, что значительная часть обнаруженных ошибок могла быть выявлена в результате первых тестовых прогонов, но они были пропущены вследствие недостаточно тщательного анализа их результатов.