Классификация «Ящик», уровни и назначения Артефакты тестирования Профессии тестировщика и QA Автоматизированное тестирование Тестирование через GUI и тестирование кода XP, TDD Болезни и best practices Практика 2/95
С 2004 занимаюсь корпоративным программным обеспечением Работал разработчиком, тимлидом и техлидом В 2008 пришел в CUSTIS Сейчас руководитель группы в отделе технологического развития 4/95
изменил мир в лучшую сторону Том ДеМарко 20/95 Не очень конкретно? Качество – отдельная большая тема. Как минимум, можно говорить о качестве с точки зрения пользователя (удовлетворение потребностей), с философской точки зрения (достижение некоего идеала), с точки зрения производства продукта
(Maintainability) Стоимость внесения изменений (в т. ч. исправления дефектов) Наблюдаемость системы Эффективность (Efficiency) Производительность Удобство использования Функциональность Некоторые из этих аспектов помогают обеспечивать тестирование 21/95
подтверждения (верификация и валидация) того, что ПО: отвечает предъявляемым требованиям удовлетворяет нуждам интересантов работает, как ожидается, или может быть сделано с заданными характеристиками 22/95
направлено на верификацию Проверка синтаксиса IDE Code review Статический анализ кода … Динамическое – может быть направлено на валидацию 28/95
структуры и логику работы тестируемого фрагмента. Необходим для: Локализации сложных ошибок Обеспечения требуемого покрытия кода Метод черного ящика подразумевает наличие информации только о требованиях к тестируемому фрагменту (например, входных и выходных данных) 29/95
тестирование Системное тестирование Приемочное тестирование Модульное тестирование Дизайн системы Архитектура Тестирование и интеграция Детализация проекта Время 34/95
– это процесс формирования и поддержания требуемых характеристик качества ПО по мере его создания и сопровождения. QA захватывает все стороны создания ПО: сбор требований, проектирование, тестирование, интеграцию и т. д. Тестировщик ≠ QA-инженер 49/95
Бывают выделенные тестировщики В CUSTIS на трех разработчиков приходится один инженер, который занимается: аналитикой тестированием внедрением и поддержкой 51/95
тестируется) Сложность Требования к квалификации Тоже требуется отладка Дорого в поддержке – кодовая база вырастает вдвое Надежность Повторяемость Повторное использование Контроль регрессии Разные конфигурации Скорость Возможность одновременного запуска на разных машинах Рефакторинг безопаснее 54/95
для некорректных входных данных Пишите тест как на положительные, так и на отрицательные сценарии Запускайте тесты как можно чаще. Используйте Continuous integration Пишите тест до кода. Или пусть тест напишет хотя бы не автор тестируемого кода 63/95
ordered two drinks. Then they produced sandwiches from their briefcases and started to eat. The owner became quite concerned and marched over and told them, “You cannot eat your own sandwiches in here!” The testers looked at each other, shrugged their shoulders and then exchanged sandwiches. 66/95
испытания на прочность авиационных стекол. Прибор представлял собой пистолет, выстреливающий «ножку Буша» в лобовое стекло с крейсерской скоростью самолета. Если стекло не трескалось, считалось, что настоящее столкновение с живой птицей тоже пройдет успешно. Железнодорожники решили позаимствовать опыт при испытании лобового стекла локомотива. Но у них почему-то цыпленок не только пробил лобовое стекло, но повредил двигатель. Железнодорожники, естественно, побежали к авиаторам выяснять, все ли было сделано правильно. Ответ был прост: «Разморозьте курицу». 67/95
«Вы только что оказались на борту самолета и вдруг узнали, что ваша команда была ответственна за разработку ПО самолета. Кто из вас немедленно сойдет на землю?» Среди леса поднятых рук только один человек оставался спокоен. Он прокомментировал это так: «С нашей программой самолет вряд ли даже вырулит, не говоря уже о взлете». 68/95
сигнализацию в машину Перед любыми работами с электрикой аккумулятор отключается от бортовой сети Ключи от машины сервисмен бросил на сиденье Когда подключил аккумулятор, двери заблокировались, сигнализация сработала, ключ с брелоком – в салоне Как такое могло случиться? 90/95
в сервисе на ремонте Сигнализация была, как полагается, выключена Когда хозяин забирал машину, то по ошибке нажал кнопку брелока вместо скрытой красной кнопки в салоне Сигнализация сработала Как такое могло случиться? 92/95
Но они – простые, легко читаются, легко поддерживаются Нужно писать тесты как для корректных, так и для некорректных входных данных Нужно писать тесты не только для «прямых» случаев Тесты полно описывают (специфицируют) поведение тестируемого класса 94/95