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

  • Объект

  • Юзабилититестирование программного


    Скачать 0.61 Mb.
    НазваниеЮзабилититестирование программного
    Дата16.09.2022
    Размер0.61 Mb.
    Формат файлаdocx
    Имя файлаMejennaya_TPO.docx
    ТипДокументы
    #679821
    страница2 из 10
    1   2   3   4   5   6   7   8   9   10


    4
    Введение



    Настоящее пособие направлено на получение студентами теоретических знаний и практических навыков по современным технологиям тестирования про- граммного обеспечения и включает основные разделы знаний, необходимые для специалистов по обеспечению качества программных продуктов:

    • классификация видов тестирования;

    • планирование тестирования;

    • разработка и тестирование требований к программному обеспечению;

    • разработка тестов;

    • поиск и описание дефектов;

    • оценка качества и документирование результатов тестирования.

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

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

    Авторы выражают особую благодарность компании A1QA ЗАО «Техноло- гии качества» и лично Надежде Кныш, компании «EPAM Systems» и лично Свято- славу Куликову за обучающие материалы и консультативную помощь.




    Лабораторная работа №1

    Виды тестирования. Планирование тестирования



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

    1. Изучить теоретические сведения.

    2. Выполнить практическое задание по лабораторной работе.

    3. Оформить отчет и ответить на контрольные вопросы.


    Теоретическиесведения

    Тестирование (Testing) – процесс анализа программного средства и сопут- ствующей документации с целью выявления дефектов и повышения качества про- дукта [1].

    Конечной целью тестирования является предоставление пользователю каче- ственного программного обеспечения (ПО) [2].

    Качество (Quality) – степень, с которой компонент, система или процесс соот- ветствует зафиксированным требованиям и/или ожиданиям и нуждам пользовате- ля или заказчика [3].

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

    Процесс тестирования как процесс поиска дефектов сводится к следующей последовательности действий:

    1. Узнаем ожидаемый результат.

    2. Узнаем фактический результат.

    3. Сравниваем ожидаемый и фактический результаты.

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

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

    Тестирование можно классифицировать по очень большому количеству при- знаков. Далее приведен обобщенный список видов тестирования по различным основаниям.


    5

      1. Виды тестирования в зависимости от объекта тестирования: функциональ- ные, пограничные, нефункциональные (рисунок 1.1).





    Рисунок 1.1 – Классификация видов тестирования в зависимости от объекта Рассмотрим функциональные виды тестирования.

    Функциональное тестирование (Functional Testing) – тестирование, основан- ное на сравнительном анализе спецификации и функциональности компонента или системы.

    Тестирование безопасности (Safety Testing) тестирование программного продукта с целью определить его способность при использовании оговоренным образом оставаться в рамках приемлемого риска причинения вреда здоровью, биз- несу, программам, собственности или окружающей среде.

    6

    Тестирование защищенности (Security Testing) – тестирование с целью оце- нить защищенность программного продукта от внешних воздействий (от проник- новений). На практике зачастую под термином тестирование безопасности пони- мают в том числе и тестирование защищенности.

    Рассмотрим пограничные виды тестирования.

    Тестирование совместимости (Compatibility Testing) проверка работоспо- собности приложения в различных средах (браузеры и их версии, операционные системы, их типы, версии и разрядность). Виды тестирования совместимости: кроссбраузерное тестирование (различные браузеры или версии браузеров), крос- сплатформенное тестирование (различные операционные системы или версии операционных систем).

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

    Тестирование требований (Requirements Testing) – проверка требований на соответствие основным атрибутам качества.

    Тестирование прототипа (Prototype Testing) – метод выявления структурных, логических ошибок и ошибок проектирования на ранней стадии развития продук- та до начала фактической разработки.

    Тестирование пользовательского интерфейса (GUI Testing) – тестирование, выполняемое путем взаимодействия с системой через графический интерфейс пользователя (правописание выводимой информации; расположение и выравнива- ние элементов GUI; соответствие названий форм/элементов GUI их назначению; унификация стиля, цвета, шрифта; окна сообщений; изменение размеров окна, по- ведение курсора и горячие клавиши).

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

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

    Тестирование интернационализации (Internationalization Testing) – тестирова- ние адаптации продукта к языковым и культурным особенностям целого ряда ре- гионов, в которых потенциально может использоваться продукт.

    Тестирование локализации (Localization Testing) – тестирование адаптации продукта к языковым и культурным особенностям конкретного региона, отлично- го от того, в котором разрабатывался продукт.
    7

    Тестирование производительности (Performance Testing) – процесс тестиро- вания с целью определения производительности программного продукта. В рам- ках тестирования производительности выделяют нагрузочное тестирование, объ- емное тестирование, тестирование стабильности и надежности, стрессовое тести- рование.

    Нагрузочное тестирование (Performance and Load Testing) – вид тестирования производительности, проводимый с целью оценки поведения компонента или си- стемы при возрастающей нагрузке, например количестве параллельных пользова- телей и/или операций, а также определения, какую нагрузку может выдержать компонент или система.

    Объемное тестирование (Volume Testing) – позволяет получить оценку произ- водительности при увеличении объемов данных в базе данных приложения.

    Тестирование стабильности и надежности (Stability/Reliability Testing) – поз- воляет проверять работоспособность приложения при длительном (многочасовом) тестировании со средним уровнем нагрузки.

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

    Тестирование на отказ и восстановление (Failover and Recovery Testing) – те- стирование при помощи эмуляции отказов системы или реально вызываемых от- казов в управляемом окружении.

    Тестирование установки (Installability Testing) и лицензирования – процесс тестирования установки программного продукта. Включает формальный тест про- граммы установки приложения (проверка пользовательского интерфейса, навига- ции, удобства использования, соответствия общепринятым стандартам оформле- ния); функциональный тест программы установки; тестирование механизма ли- цензирования и функций защиты от пиратства; проверку стабильности приложе- ния после установки.

      1. Виды тестирования в зависимости от знания кода: белый ящик, серый ящик, черный ящик.

    Белый ящик (White Box Testing) – тестирование, основанное на анализе внут- ренней структуры компонентов или системы (у тестировщика есть доступ к внут- ренней структуре и коду приложения).

    Черный ящик (Black Box Testing) – тестирование системы без знания внут- ренней структуры и компонентов системы (у тестировщика нет доступа к внут- ренней структуре и коду приложения либо в процессе тестирования он не обраща- ется к ним).

    8

    Серый ящик (Grey Box Testing) – комбинация методов белого и черного ящи- ка, состоящая в том, что у тестировщика есть доступ только к некоторой части внутренней структуры и кода приложения.

      1. Виды тестирования в зависимости от степени автоматизации: ручное, ав- томатизированное тестирование.

    Ручное тестирование – такое тестирование, в котором тест-кейсы выполняют- ся тестировщиком вручную без использования средств автоматизации.

    Автоматизированное тестирование (Automated Testing) – набор техник, под- ходов и инструментальных средств, позволяющий исключить человека из выпол- нения некоторых задач в процессе тестирования. Тест-кейсы частично или полно- стью выполняет специальное инструментальное средство.

      1. Виды тестирования в зависимости от степени изолированности тестируе- мых компонентов: модульное, интеграционное, системное тестирование.

    Модульное тестирование (Unit/Component Testing) тестируются отдельные части (модули) системы.

    Интеграционное тестирование (Integration Testing) тестируется взаимодей- ствие между отдельными модулями.

    Системное тестирование (System Testing) тестируется работоспособность системы в целом.

      1. Виды тестирования в зависимости от подготовленности: интуитивное те- стирование, исследовательское тестирование, тестирование по документации.

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

    Исследовательское тестирование – метод проектирования тестовых сценариев во время выполнения этих сценариев.

    Тестирование по документации тестирование по подготовленным тестовым сценариям, руководству по осуществлению тестов.

      1. Виды тестирования в зависимости от места и времени проведения тестиро- вания: приемочное тестирование, альфа-тестирование, бета-тестирование.

    Приемочное тестирование (User Acceptance Testing, UAT) – формальное те- стирование по отношению к потребностям, требованиям и бизнес-процессам пользователя, проводимое с целью определения соответствия системы критериям приемки и предоставления возможности пользователям, заказчикам или иным ав- торизованным лицам решать, принимать систему или нет.

    Альфа-тестирование (Alpha Testing) моделируемое или действительное функциональное тестирование, выполняется в организации, разрабатывающей продукт, но не проектной командой (это может быть независимая команда тести- ровщиков, потенциальные пользователи, заказчики). Альфа-тестирование часто применяется к коробочному программному обеспечению в качестве внутреннего приемочного тестирования.
    9

    Бета-тестирование (Beta Testing) – эксплуатационное тестирование потенци- альными или существующими клиентами/заказчиками на внешней стороне (в сре- де, где продукт будет использоваться), никак не связанными с разработчиками, с целью определения, действительно ли компонент или система удовлетворяет тре- бованиям клиента/заказчика и вписывается в бизнес-процессы. Бета-тестирование часто проводится как форма внешнего приемочного тестирования готового про- граммного обеспечения для того, чтобы получить отзывы рынка.

      1. Виды тестирования в зависимости от глубины тестового покрытия: Smoke, MAT, AT.

    Тестовое покрытие – одна из метрик оценки качества тестирования, пред- ставляющая из себя плотность покрытия тестами требований либо исполняемого кода.

    Smoke Test поверхностное тестирование для определения пригодности сборки для дальнейшего тестирования, должно покрывать базовые функции про- граммного обеспечения; уровень качества: Acceptable/Unacceptable.

    Minimal Acceptance Test (MAT, Positive Test) – тестирование системы или ее части только на корректных данных/сценариях; уровень качества: High/Medium/Low.

    Acceptance Test (AT) – полное тестирование системы или ее части как на кор- ректных (Positive Test), так и на некорректных данных/сценариях (Negative Test); уровень качества: High/Medium/Low. Тест на этом уровне покрывает все возмож- ные сценарии тестирования: проверку работоспособности модулей при вводе кор- ректных значений; проверку при вводе некорректных значений; использование форматов данных, отличных от тех, которые указаны в требованиях; проверку ис- ключительных ситуаций, сообщений об ошибках; тестирование на различных комбинациях входных параметров; проверку всех классов эквивалентности; те- стирование граничных значений интервалов; сценарии, не предусмотренные спе- цификацией и т. д.

      1. Виды тестирования в зависимости от тестовых активностей: NFT, RT, DV. Данная классификация тестирования иначе называется видами тестирования в за- висимости от ширины тестового покрытия.

    Тестирование новых функциональностей (New Feature Test, NFT) – опреде- ление качества поставленной на тестирование новой функциональности, которая ранее не тестировалась. Данный тип тестирования включает в себя: проведение полного теста (АТ) непосредственно новой функциональности; тестирование но- вой функциональности на соответствие документации; проверку всевозможных взаимодействий ранее реализованной функциональности с новыми модулями и функциями.

    10

    Регрессионное тестирование (Regression Testing, RT) проводится с целью оценки качества ранее реализованной функциональности. Включает в себя про- верку стабильности ранее реализованной функциональности после внесения изме- нений, например добавления новой функциональности, исправление дефектов, оп- тимизация кода, разворачивание приложения на новом окружении. Регрессионное тестирование выполняется на уровнях MAT, AT.

    Валидация дефектов (Defect Validation, DV) – проверка результатов исправ- ления дефектов; может включать элементы регрессионного тестирования; уровень проверки не определяется.

    Процесс тестирования программного продукта включает следующие этапы:

    1. Планирование тестирования.

    2. Разработка рабочей тестовой документации (тестов).

    3. Исполнение тестирования.

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

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

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

    Для всех программных продуктов выполняют следующие типы тестов и их композиции.

    Для первой поставки программного обеспечения рекомендуется проводить Smoke + NFTAT готовой функциональности: поверхностное тестирование (Smoke Test) выполняется для определения пригодности сборки для дальнейшего тестиро- вания; полное тестирование системы или ее части как на корректных, так и на не- корректных данных/сценариях (Acceptance Test, AT) позволяет обнаружить де- фекты и внести запись о них в багтрэкинговую систему.

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

    11

    Если не была добавлена новая функциональность, то DV + RTMAT. То есть выполняется проверка исправления дефектов программистом (Defect Validation, DV), а также проверка работоспособности остальной функциональности после ис- правления дефектов на позитивных сценариях (Minimal Acceptance Test, MAT).

    Если была добавлена новая функциональность, то Smoke + DV + NFTAT + RTMAT. В частности, выполняется поверхностное тестиро- вание (Smoke Test), проверка исправления дефектов программистом (Defect Vali- dation, DV), тестирование новых функциональностей (New Feature Testing, NFT), проверка старых функциональностей, т. е. регрессионное тестирование (Regression Test).

    Если была добавлена новая функциональность, то возможен также вариант DV + NFTAT + RTMAT, т. е. без выполнения Smoke Test.

    Таким образом, для второй и последующих поставок обобщенная схема ком- позиции тестов выглядит следующим образом:

    Smoke + DV + (NFTAT) + RTMAT.

    В зависимости от типа и специфики приложения (web, desktop, mobile) вы- полняют специализированные тесты (например, кроссбраузерное или кроссплат- форменное тестирование, тестирование локализации и интернационализации и др.).
    Практическоезадание:

      1. Выбрать объект реального мира (например, карандаш, стол, чашка, клавиа- тура, сумка и др.) с целью последующей разработки тестовых проверок для него.

      2. Разработать различные проверки в соответствии с классификацией видов тестирования для выбранного объекта реального мира. Результаты внести в таб- лицу 1.1.

      3. Разработать композицию тестов для первой поставки программного обес- печения (build 1), состоящей из трех модулей (модуль 1, модуль 2, модуль 3).

      4. Разработать композицию тестов для второй поставки программного обес- печения (build 2): исправлены заведенные дефекты, доставлена новая функцио- нальность – модуль 4.

      5. Разработать композицию тестов для третьей поставки программного обес- печения (build 3): заказчик решил расширять рынки сбыта и просит осуществить поддержку программного обеспечения на английском языке.

      6. Разработать композицию тестов для четвертой поставки программного обеспечения (build 4): заказчик хочет убедиться, что программное обеспечение выдержит нагрузку в 2000 пользователей.

      7. Оформить отчет и защитить лабораторную работу.


    12

    Таблица 1.1 Тестовые проверки для различных видов тестирования

    Объект тестирования: указать

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

    Краткое определение вида тестирования

    Тестовые проверки

    Functional Testing







    Safety Testing







    Security Testing







    Compatibility Testing







    GUI Testing







    Usability Testing







    Accessibility Testing







    Internationalization Testing







    Performance Testing







    Stress Testing







    Negative Testing







    Black Box Testing







    Automated Testing







    Unit/Component Testing







    Integration Testing








    Содержаниеотчета:

    1. Цель работы.

    2. Разработанные проверки выбранного объекта реального мира для различ- ных видов тестирования.

    3. Тестовые активности для сформулированных задач.

    4. Выводы по работе.


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

    1. Что такое тестирование?

    2. Что такое качество программного обеспечения?

    3. Что такое дефект?

    4. Назовите три условия обнаружения дефекта.

    5. Какие существуют виды тестирования в зависимости от объекта тестиро- вания? Дайте характеристику каждому.

    6. Какие существуют виды функционального тестирования? Дайте характе- ристику каждому.

    7. Какие существуют виды нефункционального тестирования? Дайте харак- теристику каждому.

    8. Какие существуют виды тестирования в зависимости от глубины покры- тия? Дайте характеристику каждому.



    13


    1. 14
      Какие существуют тестовые активности? Дайте характеристику каждому.

    2. Какие существуют виды тестирования в зависимости от знания кода? Дайте характеристику каждому.

    3. Какие существуют виды тестирования в зависимости от степени автома- тизации? Дайте характеристику каждому.

    4. Какие существуют виды тестирования в зависимости от изолированности компонентов? Дайте характеристику каждому.

    5. Какие существуют виды тестирования в зависимости от подготовленно- сти? Дайте характеристику каждому.

    6. Какие существуют виды тестирования в зависимости от места и времени проведения? Дайте характеристику каждому.

    7. Какие этапы составляют процесс тестирования?

    8. Какая композиция тестов выполняется для первой поставки программного продукта?

    9. Какая композиция тестов выполняется для последующих поставок про- граммного продукта?





    1   2   3   4   5   6   7   8   9   10


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