Программное обеспечение встроенных систем. Общие требования к разработке и документированию | страница 41
— выбраны вещественные и целые переменные из недопустимых классов эквивалентности;
— проверена инициализация системы для недопустимых условий;
— определены режимы с возможными ошибками для поступающих данных, особенно для сложных цифровых последовательностей данных из внешней системы;
— разработаны тестовые наборы для циклов, когда счетчик цикла — вычисляемое значение, чтобы попытаться получить значения счетчика цикла, выходящие из диапазона допустимых значений, и таким образом показать устойчивость кода, связанного с циклом;
— разработаны тестовые наборы для проверки механизмов защиты от арифметического переполнения для функций, зависящих от времени, типа фильтров и задержек;
— разработаны тестовые наборы, чтобы проверить переходы в состояния, которые невозможны в соответствии с требованиями к ПО.
8.4.3 Методы тестирования, основанные на требованиях
Тестирование, основанное на требованиях, является основным методом для тестирования любого уровня: тестирования интеграции ЭКПО/ЭКА, тестирования интеграции ЭКПО и модульного тестирования. За исключением тестирования интеграции ЭКПО/ЭКА, эти методы не требуют специальной среды тестирования или специальной стратегии. Рекомендации для выполнения тестирования, основанного на требованиях, следующие:
а) тестирование, основанное на требованиях, интеграции ЭКПО/ЭКА: данный метод тестирования должен быть сконцентрирован на источниках ошибок, связанных с выполнением ПО в среде объектного вычислителя, и на функционировании на верхнем уровне. Цель тестирования интеграции ЭКПО/ЭКА — гарантировать, что ПО в объектной среде функционирует в соответствии с требованиями верхнего уровня. Типичные ошибки, выявляемые этим методом тестирования, следующие:
1) неправильная обработка прерываний;
2) отказы, связанные с требованиями по времени выполнения;
3) некорректная реакция ПО на переходные процессы в аппаратуре или аппаратные отказы, например упорядочение начальных действий, сбой при загрузке входных данных и нестабильность питания;
4) проблемы конкуренции для шин данных и других ресурсов;
5) неспособность встроенных тестов обнаруживать некоторые виды отказов;
6) ошибки в интерфейсах аппаратных/программных средств;
7) некорректное поведение циклов обратной связи;
8) некорректная работа аппаратуры, управляющей памятью, или другой аппаратуры, работающей под управлением ПО;
9) переполнение стека;
10) неправильное функционирование механизмов, поддерживающих корректность и совместимость ПО, загружаемого в условиях эксплуатации;