Test_basics_for_Sonja_and_Co_1.ppt
- Количество слайдов: 25
Testschool Тестирование ПО: введение. Основы. Санкт-Петербург, 08 октября 2011
Содержание лекции 1 Зачем нужно тестировать ПО? 2 Что следует понимать под качеством ПО? 3 5 Семь основных принципов тестирования Связи между спецификацией программного продукта и его функциональностями Процесс тестирования 6 Цели тестирования, тестовое покрытие, результат 4 7 Intern Maria Bykova / Основы тестирования: введение 2/8/2018 2
Зачем нужно тестировать программное обеспечение? Программное обеспечение обслуживает практически все сферы нашей жизни § Бизнес-приложения (например, банковские системы) § Интернес-сервисы (системы бронирования билетов, оплаты услуг и товаров) § Клиенты для доступа к интернет-сервисам (IP-телефония, электронная почта, веб-браузеры) § Программное обеспечение мобильных устройств (телефонов, навигаторов, электронных книг и т. п. ) Программы обновляются и становятся все сложнее § Прогресс в области ИТ позволяет использовать более новые, усовершенствованные технологии § Интернет-сайты предоставляют новые сервисы, адаптируют сайты для разных стран, чтобы завоевать больше клиентов § Новые услуги в области телекоммуникаций заставляют совершенствовать и существующее и создавать новое Intern Maria Bykova / Основы тестирования: введение 2/8/2018 3 программное обеспечение
Зачем нужно тестировать программное обеспечение? Программное обеспечение не всегда работает так, как задумано § § § Некорректная работа веб-сайтов «Зависание» мобильных телефонов, коммуникаторов и других устройств Некорректное завершение работы офисных программ Сбои в системах телекоммуникаций Утечка важной информации из-за пробелов в программных системах защиты (хакерский взлом ) Какие примеры вы можете привести? Intern Maria Bykova / Основы тестирования: введение 2/8/2018 4
Зачем нужно тестировать программное обеспечение? Некоторые ошибки в программах почти не приносят убытков § Небольшие временные неудобства § Отсутствие неприятных последствий Некоторые ошибки наносят вред имиджу компании § Новая система Check-in авиакомпании Lufthansa § Ошибки и ляпы в первоначальной версии сайта Российской Академии Наук Некоторые ошибки приносят миллионы убытков § Ariane 5 ($7 млрд) § American Airlines ($50 млн) Некоторые ошибки уносят человеческие жизни § Patriot Missile (28 жертв) Intern Maria Bykova / Основы тестирования: введение 2/8/2018 5
Что следует понимать под качеством ПО? Программное обеспечение, или ПО — совокупность программ системы обработки информации и программных документов необходимых для эксплуатации этих программ (ГОСТ 19781 -90). Качество ПО Качество программного обеспечения (Software Quality) - это совокупность характеристик программного обеспечения, относящихся к его способности удовлетворять установленные и предполагаемые потребности. [ISO 8402: 1994 Quality management and quality assurance] Intern Maria Bykova / Основы тестирования: введение 2/8/2018 6
Что следует понимать под качеством ПО? Характеристики качества ПО н аль н цио ь к Фун ост По рта ти вн о н ив т ек ть ф с Эф Надежност ь Удобство сопровождения Intern исп Удобс оль тво зов ани я Maria Bykova / Основы тестирования: введение 2/8/2018 7
Что следует понимать под качеством ПО? Функционально сть § § § Функциональн ая исправность Соответствие стандартам Функциональн ая совместимость Безопасность Точность Эффективнос ть § § Эффективност ь по времени Эффективност ь использования ресурсов Intern Надежность § § § Портативность Завершенност ь Восстанавлива е-мость Устойчивость к отказам § § § Удобство установки Заменяемость Совместимость Удобство использовани я § § § Удобство изучения Понятность Удобство и простота использования Maria Bykova / Основы тестирования: введение Удобство сопровожден ия § § Стабильность Анализируемо сть Контролеприг од-ность Изменяемость 2/8/2018 8
Что следует понимать под качеством ПО? § Функциональность (Functionality) определяется способностью ПО решать задачи, которые соответствуют зафиксированным и предполагаемым потребностям пользователя, при заданных условиях использования ПО. Т. е. эта характеристика отвечает за то, что ПО работает исправно и точно, функционально совместимо, соответствует стандартам отрасли и защищено от несанкционированного доступа. Надежность (Reliability) – способность ПО выполнять требуемые задачи в обозначенных условиях на протяжении заданного промежутка времени или указанное количество операций. Атрибуты данной характеристики – это завершенность и целостность всей системы, способность самостоятельно и корректно восстанавливаться после сбоев в работе, отказоустойчивость. § Удобство использования (Usability) – возможность легкого понимания, изучения, использования и привлекательности ПО для пользователя. § Intern Maria Bykova / Основы тестирования: введение 2/8/2018 9
Что следует понимать под качеством ПО? Эффективность (Efficiency) – способность ПО обеспечивать требуемый уровень производительности в соответствие с выделенными ресурсами, временем и другими обозначенными условиями. § Удобство сопровождения (Maintainability) – легкость, с которой ПО может анализироваться, тестироваться, изменяться для исправления дефектов, для реализации новых требований, для облегчения дальнейшего обслуживания и адаптироваться к именующемуся окружению. § Портативность (Portability) – характеризует ПО с точки зрения легкости его переноса из одного окружения (software/hardware) в другое. § Intern Maria Bykova / Основы тестирования: введение 2/8/2018 10
Семь основных принципов тестирования 1. Во время тестирования выявляются ошибки в программном обеспечении 2. Тестирование не может быть исчерпывающим 3. Чем раньше начинается фаза тестирования, тем лучше 4. Правило скопления ошибок ("Fehlercluster") 5. Повторение одинаковых тестов неэффективно 6. Тестирование разных программных продуктов требует разного подхода 7. Отсутствие ошибок не означает, что ПО на 100% является пригодным к использованию Intern Maria Bykova / Основы тестирования: введение 2/8/2018 11
Связи между спецификацией программного продукта и его функциональностями Функциональная спецификация ПО Функциональная спецификация в разработке программного обеспечения — это документ, описывающий требуемые характеристики системы (функциональность). Документация описывает необходимые для пользователя системы входные и выходные параметры. Спецификация программного обеспечения (синоним функциональной спецификации ПО) Спецификация программного обеспечения (англ. Software Requirements Specification, SRS) — законченное описание поведения программы, которую требуется разработать. Intern Maria Bykova / Основы тестирования: введение 2/8/2018 12
Связи между спецификацией программного продукта и его функциональностями § Спецификация включает ряд пользовательских сценариев (англ. use cases), которые описывают все варианты взаимодействия между пользователями и программным обеспечением. § Пользовательские сценарии являются средством представления функциональных требований. В дополнение к пользовательским сценариям, спецификация также содержит нефункциональные требования, которые налагают ограничения на дизайн или реализацию (такие как требования производительности, стандарты качества, или проектные ограничения). § В стандарте IEEE 830 содержится рекомендации к структуре и методам описания программных требований — «Recommended Practice for Software Requirements Specifications» . Intern Maria Bykova / Основы тестирования: введение 2/8/2018 13
Связи между спецификацией программного продукта и его функциональностями Пользовательский сценарий (англ. Use Case) Headline Сценарий использования или пользовательский сценарий (англ. Use Case) — в разработке программного обеспечения и системном проектировании это описание поведения системы, которым она отвечает на внешние запросы. § Пользовательский сценарий описывает, «кто» и «что» может сделать с рассматриваемой системой. § Каждый пользовательский сценарий сосредотачивается на описании того, как достигнуть цели или задачи. § Потребуется множество пользовательских сценариев, чтобы определить необходимый набор свойств новой системы или программы Intern Maria Bykova / Основы тестирования: введение 2/8/2018 14
Связи между спецификацией программного продукта и его функциональностями Пользовательский сценарий (Use Case) Headline должен: § Описывать, что именно система должна сделать, чтобы пользователь достиг своей цели. § Не затрагивать деталей реализации. § Иметь достаточный уровень детализации. § Не описывать пользовательские интерфейсы и экраны. Это делается во время дизайна пользовательского интерфейса. Intern Maria Bykova / Основы тестирования: введение 2/8/2018 15
Процесс тестирования Headline Спецификация помогает согласовать требования к программному продукту между заказчиком и исполнителем Функциональности программы реализуются разработчиками согласно требованиям и параметрам программного продукта, описанных в спецификации Тестовые сценарии часто создаются именно на основе требований к программному продукту, описанных в спецификации Intern Maria Bykova / Основы тестирования: введение 2/8/2018 16
Процесс тестирования Проведение теста Старт Завершение теста Анализ и тест дизайн Планирование и управление Окончани е Оценка критериев выхода и составление отчета вперед назад Intern Maria Bykova / Основы тестирования: введение 2/8/2018 17
Процесс тестирования Планировани е Управление Процесс тестирования Анализ и тест дизайн Проведение теста § § § § § Оценка критериев выхода, отчет § Завершение теста § Intern § § Определяется объем работы Определяются цели тестирования, стратегия теста Контроль прогресса при тестировании Отчеты, метрики, принятие решений в сложной ситуации Изучение спецификации, тестовых объектов Определение необходимых средств и ресурсов Проектирование тестов Выполнение тестовых сценариев Нахождение и документирование ошибок Фиксация результатов теста Оценка прогресса, качества тестирования, количества найденных ошибок Финальный тестовый отчет Передача результатов теста клиенту Обсуждение “Lessons learned” Maria Bykova / Основы тестирования: введение 2/8/2018 18
Цели тестирования, тестовое покрытие, результат Цели тестирования: § Определение соответствия разрабатываемого ПО ожиданиям и потребностям пользователя, требованиям к системе § Выявление отличий между реально существующими и требуемыми свойствами программного продукта § Выявление дефектов программного продукта § Проверки взаимодействия и правильности интеграции компонентов программного продукта Intern Maria Bykova / Основы тестирования: введение 2/8/2018 19
Цели тестирования, тестовое покрытие, результат Тестовое покрытие (coverage) – уровень, выражаемый в процентах, на который определенный элемент покрытия был проверен набором тестов Тестовое покрытие - это одна из метрик оценки качества тестирования, представляющая из себя плотность покрытия тестами требований либо исполняемого кода. § § Так как, согласно 2 му принципу тестирования, тестирование не может быть исчерпывающим, достичь 100% тестового покрытия невозможно § Чем выше требуемый уровень тестового покрытия, тем больше тестов будет выбрано, для проверки тестируемых требований или исполняемого кода § Для разработки набора тестов, обеспечивающего более-менее высокий уровень покрытия, можно использовать специальные инструменты либо техники тест дизайна. Intern Maria Bykova / Основы тестирования: введение 2/8/2018 20
Цели тестирования, тестовое покрытие, результат Существует 2 широко применяемых подхода к оценке и измерению тестового покрытия: Покрытие требований (Requirements Coverage) – оценка покрытия тестами функциональных и Покрытие кода (Code Coverage) - оценка покрытия исполняемого кода тестами, путем отслеживания непроверенных в процессе нефункциональных требований к продукту тестирования частей программного обеспечения. путемпостроения матриц трассировки (traceability Анализ покрытия кода основывается на полноте matrix). Метод покрытия требований проверки тестами разработанной части продукта сосредоточен на проверке соответствия набора (исходного кода). проводимых тестов требованиям к продукту. Intern Maria Bykova / Основы тестирования: введение
Цели тестирования, тестовое покрытие, результат Результат теста Результат (result) – Результат выполнения теста. В результат могут входить все виды информации, отчеты, отправляемые сообщения. Ожидаемый результат (expected result): Поведение компонента или системы при установленных условиях, которое определено спецификацией или другими источниками. Фактический результат (actual result): Наблюдаемое или генерируемое поведение компонента или системы во время тестирования. Intern Maria Bykova / Основы тестирования: введение 2/8/2018 22
Цели тестирования, тестовое покрытие, результат Результат (result) – Результат выполнения теста. В результат могут входить все виды информации, отчеты, отправляемые сообщения. Ожидаемый результат (expected result): Поведение компонента или системы при установленных условиях, которое определено спецификацией или другими источниками. Фактический результат (actual result): Наблюдаемое или генерируемое поведение компонента или системы во время тестирования. Intern Maria Bykova / Основы тестирования: введение 2/8/2018 23
Ваши вопросы Intern Maria Bykova / Основы тестирования: введение 2/8/2018 24
Спасибо за внимание! Санкт-Петербург, 08 октября 2011
Test_basics_for_Sonja_and_Co_1.ppt