Тестирование программных средств

advertisement
Тестирование программных
средств
Оглавление







Требования к тестировщику
Мифы о QA-инженере
Классические модели жизненного
цикла ПО
Что такое качество ПО
Критерии качества ПО
История «бага»
Типы тестирования
Требования к тестировщику
(подборка из описания вакансий)











Деструктивное мышление
Умение точно описывать конфигурацию системы
Умение четко документировать результаты
Способность (психологическая) приносить плохие вести
Стрессоустойчивость
Гибкость мышления
Способность одновременно видеть и всю картину, и
детали
Экспертные знания в различных областях (помимо
тестирования)
Умение программировать
Умение быстро обучаться и осваивать новые программы
и инструменты
Терпение
Мифы о QA-инженере



Менее квалифицированная работа,
чем разработчик
Стартовая позиция прежде чем
приступать к программированию
Работа скучная, рутинная. У
программиста более творческая и
интересная
Классические модели
жизненнго цикла ПО



Каскадная модель
Каскадная модель с промежуточным
контролем
Спиральная модель
Основные этапы жизненного цикла

Спецификация требований
(Оценка реального объема проекта, его целей и задач)

Анализ
(исследование бизнес-процессов)

Проектирование
(формирование модели данных)




Реализация
Тестирование
Внедрение
Эксплуатация и техподдержка
Каскадная модель
Спецификация
требований
Анализ
Проектирование
Реализация
Тестирование
Внедрение
Эксплуатация
и техподдержка
Водопад с обратной связью

Спецификация
требований

Модель базируется на том, что
человек никогда не ошибается
Является идеалом, который, к
сожалению, недостижим
Анализ
Проектирование
Реализация
Тестирование
Внедрение
Эксплуатация
и техподдержка
Спираль
проектирование
реализация
тестирование
Анализ
Спецификация
требований
Внедрение и
эксплуатация
Что такое качество?
Термин неясен и неоднозначен, в связи с
тем, что:
 Слишком «широкий» термин существует множество аспектов
 Каждый понимает под «качеством» свое
 термин «качество» - частью нашего
повседневного общения, однако
общепринятое и профессиональное
использование сильно отличается
Популярный взгляд на качество


нематериальное и "неосязаемое" – о нем
можно спорить, его можно критиковать
и восхвалять, но взвесить и измерить
невозможно
качество неразрывно связанно с
роскошью и первым сортом – чем
больше наворотов, тем качественнее;
качество ограниченно определенным
классом дорогостоящих продуктов
Профессиональный подход к
качеству

Пригодность к использованию
Делает ли данный продукт то, в чем я
нуждаюсь, облегчает ли он мою работу, могу
ли я его использовать так, как мне удобно.

Соответствие специфицированным
и собранным требованиям
делает ли данный продукт все то, что указано
в требованиях.
Критерии качества

Понятность
Полнота
Краткость (отсутствие избыточности)
Портируемость
Согласованность (соответствие программы

Сопровождаемость (Насколько сложно изменить









документации)
программу для удовлетворения новых требований)
Тестируемость
Usability (Простота и удобство использования)
Надежность
Эффективность (использования ресурсов)
Безопасность
Тестирование программного
обеспечения
Определения:
- процесс, помогающий определить
корректность, полноту и качество
разработанного программного
обеспечения
Задача:
- Можно ли полностью
протестировать программный
продукт?
О происхождении «бага»
9 сентября 1945 - «First actual case of bug being
found» (с) Грейс Хоппер в журнале тестирования
MARK II
“It has been just so in all of my inventions. The
first step is an intuition, and comes with a burst,
then difficulties arise—this thing gives out and [it
is] then that «Bugs»—as such little faults and
difficulties are called—show themselves and
months of intense watching, study and labor are
requisite before commercial success or failure is
certainly reached.” © Томас Эдисон, 1878
Типы тестирования
По этапам жизненного цикла:




Юнит тестирование – тестирование базовых
функциональных элементов
Интеграционное тестирование –
тестирование сборки целостного решения из
отдельных компонентов
Системное тестирование – тестирование
программного продукта как единого целого
Приемо-сдаточные испытания – тестирование
совместно с заказчиком
• Альфа-тестирование
• Бета-тестирование
Типы тестирования
По доступности исходного кода



Тестирование черного ящика – исходный код не
доступен
Тестирование белого ящика – исходный код доступен
Тестирование серого ящика – нечто среднее
(тестирование идет со стороны GUI, но в случае проблем
не пренебрегают исследованием и исходного кода)
Относительно выполнения процесса тестирования


Ручное тестирование
Автоматизированное тестирование
Типы тестирования
Относительно направления тестирования






Юзабилити тестирование – удобство использования
Тестирование безопасности – защита данных
Тестирование производительности – работа на
пиковых нагрузках и с большими объемами данных
Стресс-тестирование – проверка на предмет
устойчивости к сбоям
Регрессионное тестирование – проверяется,
воспроизводятся или нет старые ошибки после новых
правок
Дымовое тестирование – тестирование нового релиза
на базовую работоспособность на минимальном наборе
тестов
Соотношение типов тестирования
Черный
ящик
Стеклянный
ящик
Юнит
тестирование
Интеграционное
тестирование
Системное
тестирование
Х
Х
Х
Х
Приемосдаточные
испытания
Х
Download