18+
реклама
18+
Бургер менюБургер меню

Виктор Захаров – Тестирование программного обеспечения. Основы (страница 5)

18

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

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

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

Пример тривиального дефекта. Есть библиотека[7] стороннего программиста, в которой прописано: если хочешь получить картинку с природой, то запроси картинку, передав библиотеке слово «природа», картинку с небом – «небо», и так далее. Разрабатывая программу сложения чисел мы решили, что будет замечательно, если интерфейс (фон) программы сделать не одноцветным, а использовать какое-либо изображение, к примеру – изображение неба. Мы это реализовали. Теперь, когда мы запускаем программу, она подключается к библиотеке стороннего программиста и запрашивает у неё картинку неба, передавая библиотеке слово «небо». Однако библиотека возвращает картинку с природой, и мы видим оформление программы с фоном природы. Это явная ошибка в сторонней библиотеке, а не нашей программы. Но так как наша программа использует в своей работе эту стороннюю библиотеку, мы заводим дефект для нашего программиста, чтобы он исправил дефект, связанный с внешним оформлением нашей программы.

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

Кроме критичности у дефектов есть приоритет. В процессе разработки программы специалисты по тестированию находят множество дефектов и каждому присваивают критичность. Через определённое время набирается несколько десятков дефектов, которые необходимо устранять с помощью правки программного кода программистом. Он готов устранять дефекты, однако не может одновременно исправлять все. В этот момент ответственные специалисты собираются для определения порядка исправления дефектов. То есть занимаются приоритизацией[8]. Она помогает определить, какие дефекты нужно устранить в первую очередь. Когда специалисты приоритизируют дефекты, они присваивают им определённый приоритет.

Приоритет – степень важности, присваиваемая объекту, которая указывает на очерёдность устранения дефекта или очерёдность выполнения задачи.

Обратите внимание: приоритет есть не только у дефектов, но и у задач[9] (заявок на изменение). Приоритеты у дефектов сообщают нам, в какой очерёдности необходимо устранять дефекты. Приоритеты у задач сообщают, в какой очерёдности необходимо выполнять задачи. Ещё важный момент: в отличие от критичности, приоритет есть и у дефектов, и у задач. Критичность же есть только у дефектов.

У приоритета существует три уровня:

– высокий;

– средний;

– низкий.

В ряде компаний могут вводить дополнительные уровни.

Высокий – требуется устранить или выполнить в первую очередь.

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

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

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

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

Зачем нужны оба атрибута? Допустим, есть программа, и в ней нашли два дефекта.

Дефект № 1 – не работает функциональность формирования годового отчёта для бухгалтера, которым он должен будет воспользоваться в начале следующего года. Дефект по критичности «блокирующий».

Дефект № 2 – на главной странице сайта есть логотип, в котором имеется опечатка, буквы «к» и «ё» заменили на «т» и «е», и название компании «Клён» читается как «Тлен». Дефект по критичности «тривиальный».

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

Приоритеты постоянно пересматриваются, так как они зависят от многих факторов. К примеру, если наступит начало года и отчётный период, а дефект № 1 не позволяет бухгалтерам создавать и отправлять отчёты, то приоритеты у дефектов будут изменены. Дефект № 1 получит высокий приоритет на устранение, а дефект № 2 – средний.

Что такое тестирование

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

В современном мире программы являются неотъемлемой частью нашей жизни. Они применяются во многих сферах: программы для бизнеса; персональные приложения и игры; программы и микропрограммы в технике (например, телевизоры, стиральные машины). В своей повседневности вы постоянно сталкиваетесь с программами определённого рода.

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

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

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

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

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

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

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

Данное определение даёт полное понимание, что из себя представляет тестирование программного обеспечения. И ничего сверх того, что сказано в определении, не добавить.

Цели тестирования

Мы уже знаем и понимает, что такое тестирование, кто его проводит и что тестируется. Но с какой целью всё это осуществляется? Чтобы ответить на этот вопрос, необходимо рассмотреть цели тестирования программного обеспечения.

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

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

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