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

Содержание

Слайд 2


…В отличие от прикладного программного обеспечения, системное не решает конкретные прикладные задачи, а

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

Cистемное ПО

Слайд 3

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

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

Cистемное ПО на заказ

Слайд 4

Нету кнопок и формочек.
Некуда вводить некорректные данные.
Сложная предметная область.
«Нелинейная» архитектура.
Баг может проявляться

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

Почему сложнее для тестирования?

Слайд 5


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

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

Слайд 6

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

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

Cистемное ПО / Прикладное ПО

Слайд 7


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

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

Слайд 8

Не ошибки в реализации «бизнес-логики», а ошибки интеграции
Некорректные ожидания о работе сторонних

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

Какие дефекты типичны?

Слайд 9


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

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

Слайд 10

Количество переходит в качество. Тестовые наборы из одного проекта могут быть использованы

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

Какие преимущества:

Слайд 11

Прикладное ПО: корректное поведение - в результате анализа требований и дизайна тестовых

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

Калугин Александр

Как тестировать?

Слайд 12

Прикладное ПО: Функциональное тестирование сложной бизнес-логики. Внутреннее состояние системы – недоступно, черный

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

Калугин Александр

Как тестировать?

Слайд 13

Прикладное ПО: Для клиент- серверных систем -- нестандартные протоколы выше транспортного уровня. Клиентские

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

Калугин Александр

Как тестировать?

Слайд 14

Сравнение с аналогами в полусвободном сессионном тестировании.
Функциональное тестирование часто тривиально.
Автоматизация достается практически

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

Cистемное ПО / Прикладное ПО

Слайд 15

Разработать набор тестовых скриптов для корректности ввода-вывода (создание/удаление/перемещение файлов)
Для каждой операции сделать

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

Калугин Александр

Пример. NAS-клиент. Стратегия

Имя файла: «Простота»-тестирования-небольшого-системного-ПО.pptx
Количество просмотров: 115
Количество скачиваний: 0