Тестирование программных средств Сафронов Сергей, 2009 год Оглавление Определение тестирования Что такое качество ПО Критерии качества ПО История «бага» Требования к тестировщику Мифы о 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 Требования к тестировщику (подборка из описания вакансий) Деструктивное мышление Умение точно описывать конфигурацию системы Умение четко документировать результаты Способность (психологическая) приносить плохие вести Стрессоустойчивость Гибкость мышления Способность одновременно видеть и всю картину, и детали Экспертные знания в различных областях (помимо тестирования) Умение программировать Умение быстро обучаться и осваивать новые программы и инструменты Терпение QA, QC и тестер Тестер • Выполнение тестов Quality control • Контроль качества Quality assurance • Предупреждение ошибок Мифы о QA-инженере Менее квалифицированная работа, чем разработчик Стартовая позиция прежде чем приступать к программированию Работа скучная, рутинная. У программиста более творческая и интересная