Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Исследовательское тестирован. ЛЕКЦИЯ 5. Методы предотвращения угроз надежности




Исследовательское тестирован

Чем больше функций и улучшений добавляется в ваш код, тем больше возрастает потребность в тестировании, поскольку на каждом этапе вам необходимо убеждаться, что система работает корректно. Также это понадобится каждый раз, когда вы исправляете баг, поскольку было бы не лишним убедиться, что он не вернется снова после нескольких релизов. Автоматизация – это ключ к тому, чтобы это стало возможным; написание тестов рано   или   поздно   станет   частью   вашей   практики   разработчика.

 

Вопрос заключается в том, надо ли вообще в таком случае проводить ручное тестирование? Короткий ответ – да, и оно должно быть сфокусировано на том, что называется «исследовательское тестирование» (exploratory testing), которое помогает выявить                               неочевидные                                                              ошибки.


Сессия исследовательского тестирования не должна превышать двух часов и должна иметь четко ограниченную область действия, чтобы помочь тестировщикам сосредоточиться на определенной области программного обеспечения. После информирования всех тестировщиков о границах проведения тестирования, на их усмотрения остаются действия, которые они будут предпринимать, чтобы проверить, как поведет себя система. Такое тестирование является дорогостоящим по своей природе, но очень полезно для выявления проблем с пользовательским интерфейсом или проверки работоспособности сложных рабочих процессов для пользователей. Такое тестирование важно проводить всякий раз, когда в приложение добавляется кардинально новая функция, чтобы понять, как она поведет себя в пограничных условиях.

 

Контрольные вопросы:

1. Чем отличается тестирование: ручное и автоматизированное?

2. Назовите отличия различных типы тестов?

3. Как автоматизировать тесты?

 

 

ЛЕКЦИЯ 5

Методы предотвращения угроз надежности

План.

1. Контрольный опрос

2. Автоматизация программирования

3. Введение избыточности

4. Типовые структуры данных

Большая трудоемкость и стоимость создания ПО систем управления заставляет уделять особое внимание обеспечению его надежной работы. Высокая стоимость ПО во многом обусловлена его низкой надежностью. Следует иметь в виду, что в настоящее время не разработаны методы проектирования программ с гарантированным отсутствием ошибок. Это объясняется рядом причин, и в том числе тем, что программное обеспечение значительно сложнее аппаратуры; характеризуется большей, чем аппаратура, зависимостью от применения; состоит из примитивных составляющих — машинных кодов, из которых синтезируются огромные программные структуры.

Однако накопленный опыт позволяет сформулировать принципы и метода проектирования программ, обеспечивающих их надежную, устойчивую работу, основные из которых показаны на рис. 5. 4. 1.

По образному выражению Ф. П. Брукса «программа — это сообщение, передаваемое человеком машине». Чтобы сделать это сообщение «понятным бессловесной машине», требуется предельная формализация как описания алгоритмов, так и программ.

1. Формализация позволяет в существенной степени исключить, а при наличии ошибок — облегчить их выявление и локализацию.

2. Мощным  средством  повышения  надежности  у  ПО  САПР является автоматизация программирования, заключающаяся в использовании ЭВМ для составления машинных программ, т. е. программ, выполненных на языке ЭВМ по исходной программе, составленной на языке высокого уровня.

Системы автоматизированного программирования обеспечивают повышение производительности и облегчение труда программистов. Эти системы применяют для программирования языки высокого уровня, более близкие к естественному языку специалистов, и тем самым освобождают программиста от необходимости составлять программу на языке машинных команд. У нас в стране создан ряд систем автоматизированного программирования для ЭВМ. Эти системы обеспечивают


автоматизацию создания программ и документов с минимальным расходом ручного труда как при основных, так и при вспомогательных работах, в том числе: . трансляцию текстов программ в машинные коды с семантическим и синтаксическим контролем, автономную отладку программ, диалоговое общение программистов со средствами автоматизации, выпуск эксплуатационных и технологических документов, а также их корректировку.

 


Рис. 5. 4. 1. Классификация методов обеспечения надежной работы программного обеспечения

Эффективным методом повышения надежности ПО является введение избыточности, включающей программную, информационную и временную избыточность.

3. Программная избыточность применяет в комплексах ПО несколько вариантов программ, различающихся алгоритмами решения задачи или программной реализации одного и того же алгоритма.

3.  1.  Временная  избыточность использует часть производительности ЭВМ для контроля исполнения программ и восстановления вычислительного процесса. Как следствие при проектировании ПО необходимо предусматривать резерв производительности ЭВМ, обычно резерв составляет 5-10%.

3. 2. Информационная избыточность заключается в резервировании (дублировании) исходных и промежуточных данных, что обеспечивает как обнаружение искажения данных, так и устранение ошибок.

4. Структурное программирование позволяет облегчить проектирование и повысить надежность сложных программных комплексов. Структурное программирование развилось на основе технологии процедурного и модульного программирования, а также блочно-иерархического подхода; представляет собой технологию программирования, построенную на совокупности определенных принципов и правил, среди которых прежде всего можно выделить модульность структуры, иерархию модулей, нисходящее проектирование.

5. Структурирование данных позволяет уменьшить сложность комплекса программ и снизить вероятность появления ошибок из-за их неправильного использования. Совокупность данных можно разделить на два иерархических уровня: простые переменные и массивы. Простые переменные представляют собой минимальный компонент данных, имеющий имя и описание. Массивы образуются из нескольких


простых переменных по определенным правилам объединения и имеют собственное имя, описание и структуру.

С целью упорядочения создан ряд типовых структур данных, применение которых зависит от назначения и метода использования переменных. Структура массивов определяется на основе компромисса между объемом памяти для хранения массива и затратами производительности ЭВМ, необходимыми для выборочного поиска и обращения к данным в массиве. Так, простые структуры массивов экономны по затратам производительности ЭВМ для взаимодействия с данными, но требуют большого объема памяти. Для повышения надежности ПО целесообразно использовать простейшие структуры массивов данных,

Следует иметь в виду, что, как правило, устранение ошибок, обнаруженных в ПО, приводит к внесению новых ошибок, трудно обнаруживаемых, так как их последствия не проявляются на тестах. При проведении корректировок в комплексах программ необходим дополнительный анализ возможных последствий внесенных изменений. Любая корректировка ПО может быть сведена к трем типовым операциям: исключение части или всей подпрограммы; вставка компонентов или новой целой подпрограммы на имеющееся свободное место; замена части или всей подпрограммы в пределах освобождающегося свободного места или с расширением программы и использованием дополнительной памяти.

 

Контрольные вопросы:

1. Что тактое автоматизация программирования?

2. Что тактое введение избыточности?

3. Что тактое типовые структуры данных?

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...