К дипломному проекту icon

К дипломному проекту


Загрузка...
страницы: 1   2   3   4   5   6   7   8   9   10
вернуться в начало
скачать
^

4.3Методы обеспечения надежности программных средств


В современных автоматизированных технологиях создания и развития сложных ПС с позиции обеспечения их необходимой и заданной надежности можно выделить методы и средства, позволяющие:

  • создавать программные модули и функциональные компоненты высокого, гарантированного качества;

  • предотвращать дефекты проектирования за счет эффективных технологий и средств автоматизации обеспечения всего жизненного цикла комплексов программ и баз данных;

  • обнаруживать и устранять различные дефекты и ошибки проектирования, разработки и сопровождения программ путем систематического тестирования на всех этапах жизненного цикла ПС;

  • удостоверять достигнутое качество и надежность функционирования ПС в процессе их испытаний и сертификации перед передачей в регулярную эксплуатацию;

  • оперативно выявлять последствия дефектов программ и данных и восстанавливать нормальное, надежное функционирование комплексов программ.

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

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

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

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

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

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


^

Глава 5.Виды тестирования программного продукта


В зависимости от преследуемых целей виды тестирования можно условно разделить на следующие типы [4]:

  1. Функциональные

  2. Нефункциональные

  3. Связанные с изменениями
^

5.1Функциональные виды тестирования


Функциональные тесты базируются на функциях и особенностях, а также взаимодействии с другими системами, и могут быть представлены на всех уровнях тестирования: компонентном или модульном (Component/Unit testing), интеграционном (Integration testing), системном (System testing) и приемочном (Acceptance testing). Функциональные виды тестирования рассматривают внешнее поведение системы. Далее перечислены одни из самых распространенных видов функциональных тестов:

  • Функциональное тестирование (Functional testing)

  • Тестирование безопасности (Security and Access Control Testing)

  • Тестирование взаимодействия (Interoperability Testing)

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

Конфиденциальность - это сокрытие определенных ресурсов или информации. Под конфиденциальностью можно понимать ограничение доступа к ресурсу некоторой категории пользователей, или другими словами, при каких условиях пользователь авторизован получить доступ к данному ресурсу.

Существует два основных критерия при определении понятия целостности:

  • Доверие. Ожидается, что ресурс будет изменен только соответствующим способом определенной группой пользователей.

  • Повреждение и восстановление. В случае, когда данные повреждаются или неправильно меняются авторизованным или не авторизованным пользователем, вы должны определить насколько важной является процедура восстановления данных.

Доступность представляет собой требования о том, что ресурсы должны быть доступны авторизованному пользователю, внутреннему объекту или устройству. Как правило, чем более критичен ресурс, тем выше уровень доступности должен быть.

Тестирование взаимодействия (Interoperability Testing) – это функциональное тестирование, проверяющее способность приложения взаимодействовать с одним и более компонентами или системами и включающее в себя тестирование совместимости (compatibility testing) и интеграционное тестирование (integration testing).

Программное обеспечение с хорошими характеристиками взаимодействия может быть легко интегрировано с другими системами, не требуя каких-либо серьезных модификаций. В этом случае, количество изменений и время, требуемое на их выполнение, могут быть использованы для измерения возможности взаимодействия.
^

5.2Нефункциональные виды тестирования


Нефункциональное тестирование описывает тесты, необходимые для определения характеристик программного обеспечения, которые могут быть измерены различными величинами. В целом, это тестирование того, "Как" система работает. Далее перечислены основные виды нефункциональных тестов:

  • Все виды тестирования производительности:

  • нагрузочное тестирование (Performance and Load Testing)

  • стрессовое тестирование (Stress Testing)

  • тестирование стабильности или надежности (Stability / Reliability Testing)

  • объемное тестирование (Volume Testing)

  • Тестирование установки (Installation testing)

  • Тестирование удобства пользования (Usability Testing)

  • Тестирование на отказ и восстановление (Failover and Recovery Testing)

  • Конфигурационное тестирование (Configuration Testing)

Тестирование установки направленно на проверку успешной инсталляции и настройки, а также обновления или удаления программного обеспечения.

В настоящий момент наиболее распространена установка ПО при помощи инсталляторов (специальных программ, которые сами по себе так же требуют надлежащего тестирования).

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

В распределенных системах, где приложение разворачивается на уже работающем окружении, простого набора инструкций может быть мало. Для этого, зачастую, пишется план установки (Deployment Plan), включающий не только шаги по инсталляции приложения, но и шаги отката (roll-back) к предыдущей версии, в случае неудачи. Сам по себе план установки также должен пройти процедуру тестирования для избежания проблем при выдаче в реальную эксплуатацию. Особенно это актуально, если установка выполняется на системы, где каждая минута простоя - это потеря репутации и большого количества средств, например: банки, финансовые компании или даже баннерные сети. Поэтому тестирование установки можно назвать одной из важнейших задач по обеспечению качества программного обеспечения.

Именно такой комплексный подход с написанием планов, пошаговой проверкой установки и отката инсталляции, полноправно можно назвать тестированием установки

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

Тестирование удобства пользования дает оценку уровня удобства использования приложения по следующим пунктам:

  • производительность, эффективность (efficiency) - сколько времени и шагов понадобится пользователю для завершения основных задач приложения, например, размещение новости, регистрации, покупка и т.д.? (меньше - лучше)

  • правильность (accuracy) - сколько ошибок сделал пользователь во время работы с приложением? (меньше - лучше)

  • активизация в памяти (recall) – как много пользователь помнит о работе приложения после приостановки работы с ним на длительный период времени? (повторное выполнение операций после перерыва должно проходить быстрее чем у нового пользователя)

  • эмоциональная реакция (emotional response) – как пользователь себя чувствует после завершения задачи - растерян, испытал стресс? Порекомендует ли пользователь систему своим друзьям? (положительная реакция - лучше)

Тестирование на отказ и восстановление – это тестирование того, насколько хорошо приложеие может восстанавливаться после падения (ошибки в прилжении, зависания), аппаратной проблемы и дургих похожих случаев. При этом тестировании приложение умышленно выводится из строя различными путями для проверки правильности восстановления.

Примеры тестиования восстановления:

  1. Во время работы приложения компьютер внезапно перезагружается. После перезагрузки проверяется правильность и целостность данных приложения.

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

  3. Перезапустить системы, в то время как интернет-обозреватель имеет некоторое количество активных сессий. После перезагрузки проверить, что обозреватель в состоянии восстановить их все.

Конфигурационное тестирование это разновидность тестирования производительности, при котором вместо тестирования с позиции нагрузки, тестируются эффекты изменения конфигурации приложения на производительность и поведение.




оставить комментарий
страница7/10
Дата05.11.2011
Размер0,93 Mb.
ТипДиплом, Образовательные материалы
Добавить документ в свой блог или на сайт

страницы: 1   2   3   4   5   6   7   8   9   10
отлично
  1
Ваша оценка:
Разместите кнопку на своём сайте или блоге:
rudocs.exdat.com

Загрузка...
База данных защищена авторским правом ©exdat 2000-2017
При копировании материала укажите ссылку
обратиться к администрации
Анализ
Справочники
Сценарии
Рефераты
Курсовые работы
Авторефераты
Программы
Методички
Документы
Понятия

опубликовать
Загрузка...
Документы

наверх