Similar presentations:
Тестирование программного обеспечения. История и основные понятия
1.
Тема 1«История предметной области, основные
понятия и термины»
2.
3. 60-е годы.
60-е годы – «исчерпывающеетестирование»
20 вложенных операторов if =>
1’048’576 ветвей выполнения
4. 70…80-е годы.
70-е годы – «поиск дефектов»Почему?
80-е годы – «предупреждение
дефектов»
Какие методы
предупреждения дефектов
Вы знаете?
5.
60-е годы –«программа
работает»
VS
70-е годы –
«программа
НЕ работает»
6.
80-е годы –«предупреждение
дефектов»
7.
80-е годы –«предупреждение
дефектов»
8.
90-е годы –«обеспечение
качества»
9.
0-е годы –«тотальное
обеспечение
качества»
10.
Современныйэтап – «гибкие
методологии,
тесная
интеграция с
разработкой,
автоматизация»
11.
Классические методологии и модели разработкиПО: водопадная, итерационная...
12. Каскадный процесс
http://msdn.microsoft.com/ru-ru/library/ee909663.aspx13.
Agile Manifesto разработан и принят 11-13 февраля 2001года на лыжном курорте The Lodge at Snowbird в горах Юты.
Манифест подписали представители следующих
методологий:
• Extreme programming
• Scrum
• DSDM
• Adaptive Software Development
• Crystal Clear
• Feature-Driven Development
• Pragmatic Programming.
14.
Идеи:• Личности и их взаимодействия важнее, чем процессы и инструменты;
• Работающее программное обеспечение важнее, чем полная документация;
• Сотрудничество с заказчиком важнее, чем контрактные обязательства;
• Реакция на изменения важнее, чем следование плану.
Принципы:
• удовлетворение клиента за счёт ранней и бесперебойной поставки ценного
ПО;
• приветствие изменений требований, даже в конце разработки;
• частая поставка рабочего ПО (каждый месяц или неделю или ещё чаще);
• тесное, ежедневное общение заказчик <-> разработчики;
• проектом занимаются мотивированные личности, которые обеспечены
нужными условиями работы, поддержкой и доверием;
• рекомендуемый метод передачи информации — личный разговор;
• работающее ПО — лучший измеритель прогресса;
• спонсоры, разработчики и пользователи должны иметь возможность
поддерживать постоянный темп на неопределенный срок;
• постоянное внимание на улучшение технического мастерства и удобный
дизайн;
• простота — искусство НЕ делать лишней работы;
• лучшие технические требования, дизайн и архитектура получаются у
самоорганизованной команды;
• постоянная адаптация к изменяющимся обстоятельствам.
15.
Гибкие методологии и модели разработки ПО:Agile, Scrum... и множество других.
16.
17.
Тестирование приобрелоособую важность в силу
нескольких причин…
Каких?
18.
Бизнес:«пользователи
склонны пользоваться
качественными
продуктами (даже
если они дороже)»
19.
Пользователи:«лучше не
рисковать личными
данными, деньгами
и т.п.»
20.
21.
Все: «мы не хотим рисковать»22.
Наконец, тестирование – это…• относительно новая;
• стремительно развивающаяся;
• интересная;
• находящаяся на границе многих смежных
дисциплин;
… область информационных технологий.
23. Brainstorming Как вы думате, что делает тестировщик?
24. Чем занимается тестировщик?
Контроль качестваОбеспечение качества («профилактика» и
«здоровый образ жизни»)
Качество продукта, и в частности тестирование, влияют на
конечный результат – удовлетворенность заказчика.
25.
Фактически, «тестированиеПО» – это «диагностика» и
«помощь в лечении»
программного средства как
такового и всего проекта в
целом.
26. Brainstorming Как вы думаете, а что хороший тестировщик должен знать?
27.
Знание иностранных языков.Технические навыки:
• Программирование: C/C++/C#, Java, PHP,
Object Pascal, Visual Basic, JavaScript, HTML,
.NET.
• Администрирование СУБД: Oracle, MS SQL,
MySQL.
• Администрирование ОС: Windows, Sun Solaris,
HP-UX, Free-BSD, Linux.
• Сетевое администрирование: TCP/IP, IPX/SPX,
NetBIOS.
• Автоматизированное тестирование: Silk*,
Rational*, Mercury Interactive *, JUnit,
HTTP/HTML-Unit.
28.
Тестировщику приходитсявыполнять ответственную
работу и много общаться.
29. Brainstorming А какими психологическими навыками и особенностями должен обладать тестировщик?
30.
Психологические навыки иособенности тестировщика
таковы:
• Повышенная ответственность.
• Хорошие коммуникативные навыки.
• Способность ясно, быстро, чётко выражать
свои мысли.
• Исполнительность.
• Терпение, усидчивость, внимательность к
деталям, наблюдательность.
• Гибкое мышление, хорошая способность к
обучению.
• Хорошее абстрактное и аналитическое
мышление.
• Способность ставить нестандартные
эксперименты.
• Склонность к исследовательской
деятельности.
31.
Тестировщик – полноправныйучастник проекта, но…
32.
33.
34.
Поговорим отерминологии
35.
Тестирование программногообеспечения (software testing) – процесс
анализа программного средства и
сопутствующей документации с целью
выявления дефектов и повышения
качества продукта.
36.
Дефект (баг, глюк; defect, bug) –любое несоответствие
фактического и ожидаемого
результата (согласно требованиям
или здравому смыслу).
А что мы сразу же легко
определяем как дефект в
любой программе, даже
никогда не видев
требований к ней?
37.
Ожидаемый результат(expected result) – такое
поведение программного
средства, которое мы
ожидаем в ответ на наши
действия.
38.
Чек-лист (check-list) –набор идей тестов.
Почему мы не сразу
приступаем к разработке
тестов?
Приведите пример чеклиста из Вашей жизни
39.
Тест-кейс (test case) – наборвходных данных, условий
выполнения и ожидаемых
результатов, разработанный
с целью проверки того или
иного свойства или
поведения программного
средства.
40.
Тестовый сценарий, тест-сьют(test scenario, test-suite) – набор
тест-кейсов, собранных в группу
(последовательность) для
достижения некоторой цели.
41.
Тест-план (test plan) – частьпроектной документации,
описывающая и
регламентирующая процесс
тестирования.
42. Определение теста и тестового набора
Билд («сборка») (build) –промежуточная версия
программного средства
(финальный билд часто
называют релизом (release)).
43.
Качество (quality)• Качество (quality) – показатель степени
соответствия продукта его
требованиям.
Как мы в повседневной жизни
определяем, что какая-то вещь, какая-то
работа и т.д. могут быть названы
«качественными», например – обувь?
44. Качество (quality)
Качество продукта определяетсякачеством процесса его
разработки
• Некоторые рассуждения о качестве:
– Если заказчик доволен продуктом –
продукт качественный.
– Если продукт соответствует требованиям
– продукт качественный.
– У качественного продукта всегда есть
преимущества и нет серьёзных
недостатков
Заказчик должен быть отсатисфачен!
45. Качество продукта определяется качеством процесса его разработки
Как посчитать?Как они называются?
• Оговорить критерии
• Выяснить, какие показатели будут
критичны Заказчику или Компании
Выпуск хорошего продукта это цель не только
тестировщика, а всех вместе взятых!
46. Как посчитать?
Метрики качества (quality metrics)• Метрика качества (quality metric) –
числовое значение некоторого
показателя качества.
Может определяться расчётным
способом или по некоторой формуле.
Сделайте мне удобный
интерфейс …
47. Метрики качества (quality metrics)
Варианты метрик• Покрытие требований тестами – не менее 80%
• Плотность покрытия – не менее 3
• Закрыто 100% известных критических дефектов, 90%
дефектов средней критичности, 50% остальных дефектов.
• Общий показатель прохождения тестов – не менее
некоторого значения:
X = (Passed/Executed)*100%
48. Варианты метрик
Есть вопросы? Давайте обсудим!49. Есть вопросы? Давайте обсудим!
Составляющиекачества
50.
Функциональныевозможности
51.
Функциональнаяпригодность
52.
Правильность(корректность)
53.
Способность квзаимодействию
54.
Защищённость55.
Надёжность56.
Эффективность57.
Практичность(применимость)
58.
Сопровождаемость59.
Мобильность60.
Основная сложностьтестирования программ – это...
61.
Основная сложностьтестирования программ – это...
невозможность всё предусмотреть
в силу концептуальности ПО
62. Основная сложность тестирования программ – это...
Семь шагов к успеху63.
Что мы можем тестировать64.
Программы при ихнепосредственном запуске и
исполнении (software)
65.
Код программ без запуска иисполнения (code)
66.
Прототип программного продукта(product prototype)
• Что может служить прототипом:
– Исследование имеющегося у заказчика
продукта, который следует улучшить.
– Исследование продуктов конкурентов.
А что еще может служить прототипом?
(подсказка: особенно в Agile разработке)
67. Прототип программного продукта (product prototype)
Проектную документацию (projectdocumentation):
Требования к программному продукту (product
requirements).
Функциональные спецификации к программному
продукту (functional specifications).
Архитектуру (architecture) и дизайн (design).
План проекта (project plan) и тестовый план (test
plan).
Тестовые случаи и сценарии (test cases, test
scenarios).
68.
Сопроводительную документацию (идокументацию для пользователей):
Интерактивную помощь (on-line help).
Руководства по установке (Installation
guide) и использованию программного
продукта (user manual).
69.
Итого, что мы узнали сегодня?70.
Есть вопросы? Давайте обсудим!71. Итого, что мы узнали сегодня?
Роман Савин«Тестирование .com или
пособие по жестокому
обращению с багами в
интернет-стартапах»
Рекс Блэк
«Ключевые процессы
тестирования»