Главная страница
Навигация по странице:

  • 1.3.1 Тестирование программного обеспечения

  • 1.3.2 Место и цель этапа тестирования программного обеспечения

  • 1.3.3 Виды тестирования

  • 13.4 Передовые технологии в тестировании (автоматизация тестирования)

  • 1.3.5. Вопросы для самоконтроля

  • Основы стандартизации ПОИТ ч4. Руководство для студентов специальности i40 01 01 Программное обеспечение информационных технологий


    Скачать 460 Kb.
    НазваниеРуководство для студентов специальности i40 01 01 Программное обеспечение информационных технологий
    Дата01.07.2022
    Размер460 Kb.
    Формат файлаdoc
    Имя файлаОсновы стандартизации ПОИТ ч4.doc
    ТипРуководство
    #621950
    страница4 из 5
    1   2   3   4   5

    1.3 Тестирование программного обеспечения



    1.3.1 Тестирование программного обеспечения




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

    Создание и поддержка банка тестов – сложная задача и требует высокой квалификации сотрудников отдела тестирования. За все надо платить, но качество конечного продукта того стоит. Тестирование – это дорогостоящий и трудоемкий процесс, поэтому зарубежными компаниями ведутся разработки в области автоматизации тестирования. Попытки применения автоматизации тестирования связаны с тем, что в принципе невозможно полностью протестировать программный продукт, соответственно специализированные пакеты приближают «покрытие» тестами программы к 100%. На рынке специальных сред для тестирования программного обеспечения можно отметить разработки ведущих в этой области фирм: Rational (Visual Test, Rational Robot, Team Test и др.), Mercury Interactive (WinRunner), Segue Software (QA Partner).

    Сегодня можно и нужно говорить о программном обеспечении как о промышленном продукте, соответственно о создании ПО – как о производстве. Существует множество стандартов поддержки жизненного цикла программного обеспечения. Разработано множество стандартов и методик поддержки стадий ЖЦ ПО, например стандарты ISO 9000 и ISO 9001, разработанные Международной организацией по стандартизации (ISO).


    1.3.2 Место и цель этапа тестирования программного обеспечения




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

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

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

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

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

    2 Законодательно закрепленные принципы работают и активно используются в правоприминительной практике. Особенно это относится к защите авторских прав.

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

    4 Возросли требования заказчика к качеству программного обеспечения. Данный момент связан с правовой базой (законы о защите прав потребителей), жесткой конкуренцией на рынке.

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

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

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

    Если процесс тестирования становится бесконечным, а полное тестирование невозможно, то чем же определяется принятие решения о выпуске в свет исследуемой версии программного продукта? Основными критериями завершенности тестирования является отсутствие критичных ошибок, каждая из которых может сделать абсолютно невозможной реализацию декларированной в системе прикладной функциональности (решение принимается по результатам функционального тестирования). Кроме того, при принятии решения учитывается общее количество зарегистрированных, но неисправленных ошибок. Компания–разработчик обычно заранее выбирает по каждому программному продукту общее количество ошибок (лимит), с которым уже нельзя выпускать программный продукт.

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

    Тестирование программного обеспечения имеет тесную связь с качеством программного обеспечения.

    Внутреннее и внешнее качество программного обеспечения

    Современные идеологи проблем качества разделяют понятие «качество» на внешнее (external) и внутреннее (internal). Внешнее качество программного обеспечения – его способность удовлетворить потребность конечного пользователя. Именно на это и направлен процесс тестирования программного обеспечения – обнаружение ошибок и несоответствий, т.е. в процессе тестирования выявляются те моменты (ошибки, неправильная реализация или отсутствие функциональных возможностей), которые не удовлетворили бы конечного пользователя. Тестирование программного обеспечения обеспечивает контроль качества продукта, поставляемого конечным пользователям.

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


    1.3.3 Виды тестирования




    Наиболее важные виды тестирования программных средств перечислены ниже.

    1 Функциональное – тестирование возможностей системы, ее реакция на те или иные ситуации. Обычно результат тестирования (реакция системы) сравнивается с постановкой задачи, при несоответствии фиксируется ошибка.

    2 Регрессионное – проверка полноты реализуемых функций системы по сравнению с предыдущей версией программного продукта.

    3 Нагрузочное – тестирование работы системы на пиковую на грузку, при этом делается вывод о производительности системы. Например, выясняется среднее время ввода одного документа (если программное обеспечение предназначено для хранения и обработки документов). Условием для нагрузочного тестирования является выполнение испытаний на одной и той же конфигурации системы. Если тестируется производительность на 2-х разных СУБД, то конфигурация системы должна быть идентичной (тот же сервер, те же рабочие станции), в испытаниях меняются лишь СУБД. На основе нагрузочного тестирования выдвигаются требования к аппаратной части и программной части системы (операционная система, СУБД).

    4 Контроль после исправления (обратная связь). Этот вид тестирования подразумевает под собой проверку уже исправленных ошибок.

    5 Стрессовое тестирование – проверка реакции системы на вне штатные ситуации. Примером может служить проверка системы на восстановление работоспособности после отключения питания на сервере базы данных.

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


    13.4 Передовые технологии в тестировании (автоматизация тестирования)




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

    Создание и поддержка банка тестов сложная задача, требующая высокой квалификации сотрудников отдела тестирования. Автоматизация тестирования связана с тем, что в принципе невозможно полностью протестировать программный продукт, соответственно специализированные пакеты приближают «покрытие» тестами программы к 100%. На рынке специальных сред для тестирования программного обеспечения можно отметить разработки ведущих в этой области фирм: Rational (Visual Test, Rational Robot, Team Test и др.), Mercury Interactive (WinRunner), Segue Software (QA Partner). Такое ПО весьма специфично и имеет достаточно высокую цену – порядка нескольких десятков тысяч долларов. Пакеты тестирования можно разделить по поддерживаемой стратегии тестирования на пакеты, поддерживающие стратегию «белого ящика» и на поддерживающие стратегию «черного ящика».

    Пакеты, реализующие стратегию «белого ящика», позволяют: записывать, а потом воспроизводить последовательность пользовательского ввода (нажатие клавиатуры, движения «мышью»); распознавать объекты и их свойства (окна Windows, текст в окне и пр.); запоминать копию экрана; сравнивать состояние программы относительно предыдущего тестового прогона; производить математические вычисления на основе данных из тестируемой программы; замерять выполнение одной и той же последовательности действий в различных условиях; эмулировать выполнение программы несколькими пользователями одновременно; записывать подробный протокол выполнения автоматического теста; другие функции.

    Пакеты, реализующие стратегию «черного ящика», позволяют: отслеживать выполнение того или иного фрагмента кода программы; подсчитывать количество выполнения того или иного фрагмента кода программы; вычислять время выполнения участка кода (важно при пересмотрах кода и его оптимизации); подсчитывать общее «покрытие» программы; автоматически контролировать значение переменных и выдавать ошибку или предупреждение, если значения не совпадают с теми, которые ожидаются; на основе данных, полученных от пакета автоматизации тестирования, возможно выполнять расчеты о надежности программного обеспечения; получать различные статистические данные о программе.

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

    1.3.5. Вопросы для самоконтроля




    1. Объективные причины усиления внимания к процессу тестирования

    2. Основные критерии завершенности тестирования

    3. Внешнее качество программного обеспечения

    4. Внутреннее качество программного обеспечения

    5. Назовите наиболее важные виды тестировании ПС

    6. Краткая характеристика функционального, регрессионного, нагрузочного, стрессового и адаптационного тестирований, а также контроля после исправления.

    7. Преимущества автоматических средств тестирования

    8. Как систематизируются автоматические средства тестирования

    9. Функциональность автоматических средств тестирования, реализующих стратегию «белого ящика»

    10. Функциональность автоматических средств тестирования, реализующих стратегию «черного ящика»

    11. Задачи тестора при использовании средств автоматизации.


    1   2   3   4   5


    написать администратору сайта