Upload
alexander-solosh
View
3.942
Download
2
Embed Size (px)
DESCRIPTION
Процесс тестирования
Citation preview
Процесс тестирования
Тестирование ПО - процесс исследования программного обеспечения с целью получения информации о качестве продукта (wikipedia).
Качество - степень соответствия присущих характеристик требованиям (ISO 9001)
Требования ПО - совокупность утверждений относительно атрибутов, свойств или качеств программной системы, подлежащей реализации (wikipedia).
Тестирование как понятие
Внутреннее качество ПО.◦ Точка зрения разработчиков
Внешнее качество ПО ◦ Точка зрения руководства◦ Аттестации ПО на соответствие требованиям
Для двух точек зрения — внешнего качества и внутреннего качества — в рамках ISO 9126 предложена модель качества, состоящая из 6 факторов и 27 атрибутов.
Тестирование как понятие Качество
Тестирование как понятие Качество
Качество ПО c т.з. пользователя (ISO 9126 )◦ Эффективность
◦ Продуктивность
◦ Безопасность
◦ Удовлетворение пользователей
Тестирование как понятие Качество
Виды требований по уровням◦ Бизнес-требования◦ Пользовательские требования◦ Функциональные требования
Виды требований по характеру◦ Функциональный характер◦ Нефункциональный характер
Тестирование как понятие Требования
Источники требований◦ Стандарты (HTML, CSS, XML, URL, пр.)◦ Федеральное и муниципальное отраслевое
законодательство (конституция, законы, распоряжения)
◦ Нормативное обеспечение организации (регламенты, положения, уставы, приказы)
◦ Представления и ожидания потребителей и пользователей системы
◦ Конкурирующие программные продукты
Тестирование как понятие Требования
Методы выявления требований◦ Общение с заказчиком◦ Общение с авторами продукта◦ Анализ стандартов, нормативной документации◦ Анализ выявленных проблем в багтрекере
Проверка требований на проверяемость◦ Проверяемые◦ Непроверяемые
Документирование требований◦ Удобство понимания для специалистов разного
уровня подготовки
Тестирование как понятие Требования
Тестирование как понятиеВерификация и валидация
Верификация проверяет соответствие между: ◦ нормами стандартов ◦ описанием требований (техническим заданием) к ПО ◦ проектными решениями ◦ исходным кодом ◦ пользовательской документацией
и функционированием самого ПО
Валидация проверяет соответствие любых создаваемых или используемых в ходе разработки и сопровождения ПО артефактов нуждам и потребностям пользователей и заказчиков этого ПО
Верификация отвечает на вопрос "Делаем ли мы продукт правильно?", а валидация — на вопрос"Делаем ли мы правильный продукт?" /B. Boehm/
Тестирование как понятие
Тестирование как процессНачало
Тестовая спецификация◦ Начальные условия◦ Сценарий выполнения◦ Ожидаемый результат◦ Взаимозависимости ◦ Требования
Отчет о тестировании◦ Тестовая процедура ◦ Тестовая спецификация ◦ Описание ошибки ◦ Оценка серьезности
Тест план◦ Тестируемые
требования ◦ Не тестируемые
требования◦ Стратегия
тестирования◦ Типы тестирования◦ Ресурсы◦ Этапы тестирования◦ Критерии тестирования
Тестовая процедура◦ Набор тестов◦ Критерий оценки
результатов
Тестирование как процесс Документация
Стратегия
◦ Незначительные изменения в интерфейсе
◦ Новая функциональность
◦ Плановое тестирование функциональности
◦ Тестирование изменений
Тестирование как процесс Документация
GUI
Критерии тестирования
◦ Критерии начала
Готовность функционала или его части
Готовность тестовой среды.
Наличие документации для новой функциональности
(требования, тест-спецификация).
◦ Критерии окончания
Все тесты успешны
Производительность не упала
Безопасность в пределах допустимого
Тестирование как процесс Документация
Тестовая спецификация - описание теста (т.e. данных, разработанных для проверки отдельной программы или верификация соответствия на определенное требование)◦ Начальные условия◦ Сценарий выполнения◦ Ожидаемый результат◦ Взаимозависимости ◦ Требования
Тестовая процедура - последовательность взаимосвязанных тестовых спецификаций
для достижения цели определенного типа тестирования.
Тестирование как процесс Документация
Функциональное
Нефункциональное
Тестирование, связанное с изменениями.
Тестирование как процесс Типы тестирования
Функциональное тестирование◦ Системное
◦ Тестирование цикличных бизнесс-процессов
◦ Тестирование безопасности
Тестирование как процесс Типы тестирования
Нефункциональное тестирование
◦ Нагрузочное тестирование
◦ Стресс-тестирование
◦ Тестирование загрузки
Тестирование как процесс Типы тестирования
Тестирование, связанное с изменениями.
◦ Санитарное тестирование
◦ Дымовое тестирование
Тестирование как процесс Типы тестирования
Тестовое Покрытие - это одна из метрик оценки качества тестирования, представляющая из себя плотность покрытия тестами требований либо исполняемого кода.
◦ Покрытие тестами кода
◦ Покрытие тестами требований
Тестирование как процессПокрытие
Покрытие тестами кода
Расчет тестового покрытия относительно исполняемого кода программного обеспечения проводится по формуле:
где:Tcov - тестовое покрытиеLtc - кол-во строк кода, покрытых тестамиLcode - общее кол-во строк кода.
Метод оценки покрытия кода не выявит нереализованные требования, так как работает не с конечным продуктом, а с существующим исходным кодом
Тестирование как процессПокрытие
Tcov = (Ltc/Lcode) * 100%
Покрытие тестами требований◦ Расчет тестового покрытия относительно требований проводится
по формуле:
где:Tcov - тестовое покрытиеLcov - количество требований, проверяемых тест кейсамиLtotal - общее количество требований
Метод покрытия требований может оставить непроверенными некоторые участки кода, потому что не учитывает конечную реализацию.
Тестирование как процессПокрытие
Tcov = (Lcov/Ltotal) * 100%
Контроль качества на всех этапах реализации функционала
Тестирование как процессЧто должно получиться
Инфраструктурные инструменты◦ Testlink◦ Mantis◦ Planner (Web2Project, Wiki)◦ Wiki◦ Система контроля версий
Инструменты для работы◦ Jmeter (нагрузка)
Сценарии для автоматизации. ◦ Selenium (IDE, RC, Grid, пр.)
Автоматизация функционального тестирования◦ Bromine (требуется исследование)◦ Hudson (требуется исследование)
Тестирование как процессИнструменты
Система управления тест-кейсами и требованиями.◦ Устанавливает связь требований с тестами◦ Устанавливает зависимости между
требованиями◦ Поддерживает версионность требований и
тестов◦ Фиксирует результаты выполнения тестов◦ Формирует отчеты по результатам прогонов за
любой период и по любому билду (выкатке)◦ Имеется интерфейс для BTS Mantis.
Тестирование как процессTestlink
Спасибо за внимание!