'

«Простота» тестирования небольшого системного ПО

Понравилась презентация – покажи это...





Слайд 0

«Простота» тестирования небольшого системного ПО Калугин Александр, PhD, PMP Mercury Development Project Director


Слайд 1

…В отличие от прикладного программного обеспечения, системное не решает конкретные прикладные задачи, а лишь обеспечивает работу других программ, управляет аппаратными ресурсами вычислительной системы и т.д… © Wikipedia 2 Cистемное ПО


Слайд 2

«Прибанбас». Небольшой компонент большого прикладного комплекса. Реализация одного или нескольких уровней стека сетевых протоколов. Клиентские/серверные компоненты комплексов использующих стандартные коммуникационные протоколы 3 Cистемное ПО на заказ


Слайд 3

Нету кнопок и формочек. Некуда вводить некорректные данные. Сложная предметная область. «Нелинейная» архитектура. Баг может проявляться на третьи сутки. То, что оно генерирует корректные данные здесь и сейчас, – ничего не значит. Спецификация – в виде стандарта – «слишком много буквов»… 4 Почему сложнее для тестирования?


Слайд 4

5 Не всё так плохо...


Слайд 5

Мало нового кода Непосредственные пользователи – сервисы ОС. Стандартизованная логика Большое значение нефункциональных требований Сложная оптимизированная архитектура Много нового кода Непосредственные пользователи – люди Нестандартная логика Нефункциональные требования – на втором плане Относительно стандартная архитектура 6 Cистемное ПО / Прикладное ПО


Слайд 6

7 Просто нужен другой подход!


Слайд 7

Не ошибки в реализации «бизнес-логики», а ошибки интеграции Некорректные ожидания о работе сторонних компонентов и сервисов ОС Неправильная интерпретация стандарта Ошибки сложной архитектуры (нефункциональные) Недостаточная наработка на отказ 8 Какие дефекты типичны?


Слайд 8

9 Тип дефекта не специфичен для продукта, продукты «менее разнообразны»


Слайд 9

Количество переходит в качество. Тестовые наборы из одного проекта могут быть использованы в другом. Можно подсмотреть, как играют мастера, сравнить с аналогичными продуктами, референтной реализацией Невизуальное представление данных – проще тестировать автоматически. 10 Какие преимущества:


Слайд 10

Прикладное ПО: корректное поведение - в результате анализа требований и дизайна тестовых наборов. Системное ПО: есть референтная реализация корректного поведения аналогичным ПО. Метод №1. Сравнительное свободное тестирование Вместо анализа поведения системы на корректность и некорректность – можно сравнить с существующим аналогом. При требованиях совместимости с несколькими окружениями – тестировать параллельно в различных окружениях. Калугин Александр 11 Как тестировать?


Слайд 11

Прикладное ПО: Функциональное тестирование сложной бизнес-логики. Внутреннее состояние системы – недоступно, черный ящик. Системное ПО: Нефункциональное тестирование интеграции. Сервисы ОС поддаются конфигурированию и администрированию – серый ящик. Метод №2. Автоматизированные тесты Вместо ввода тестовых данных и креш-тестов – скриптами менять состояние системного окружения. Для анализа отклика системы – не требуется специальных методов: можно анализировать (включая полуавтоматический анализ состояние сервисов используя средства анализа: vmstat, tcpdump, etc. Калугин Александр 12 Как тестировать?


Слайд 12

Прикладное ПО: Для клиент- серверных систем -- нестандартные протоколы выше транспортного уровня. Клиентские и серверные компоненты – уникальны Системное ПО: Используются стандартизованные протоколы, зачастую с рекомендованной реализацией Метод №3. Кросс-Тестирование Вместо верификации конкретной реализации протокола – проверка совместимости работающих компонентов и поиск различий Независимая проверка клиентских и серверных компонент перекрестно с использованием референтной реализации. Калугин Александр 13 Как тестировать?


Слайд 13

Сравнение с аналогами в полусвободном сессионном тестировании. Функциональное тестирование часто тривиально. Автоматизация достается практически бесплатно Возможно тестирование отдельных частей/компонентов Необходимо тестирование наработки на отказ. Регрессионный набор – автоматически. Анализ спецификации и дизайн тестов. Функциональное тестирование – центральное место Автоматизация – требует специальных усилий и фреймворков Тестирование отдельных компонентов требует специальных усилий Наработка на отказ обычно не требуется. Регрессионный набор - специально 14 Cистемное ПО / Прикладное ПО


Слайд 14

Разработать набор тестовых скриптов для корректности ввода-вывода (создание/удаление/перемещение файлов) Для каждой операции сделать дамп сетевого обмена между клиентом и сервером, используя стороннюю реализацию клиента. Запустить скрипт и сравнить дамп для тестируемой реализации Запустить скрипт в цикл – для наработки на отказ. Для тестирования совместимости (например, с антивирусом) – установить антивирус и повторить тест. Калугин Александр 15 Пример. NAS-клиент. Стратегия


Слайд 15

Спасибо за внимание! Ваши вопросы? Калугин Александр alex.kalouguine@gmail.com http://pmarcor.com/ 16


×

HTML:





Ссылка: