Подходы к тестированию в программной инженерии::Журнал СА 01-02.2019
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Наука и технологии
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Дата-центры  

Дата-центры: есть ли опасность утечки данных?

Российские компании уже несколько лет испытывают дефицит вычислительных мощностей. Рост числа проектов,

 Читать далее...

Событие  

В банке рассола ждет сисадмина с полей фрактал-кукумбер

Читайте впечатления о слете ДСА 2024, рассказанные волонтером и участником слета

 Читать далее...

Организация бесперебойной работы  

Бесперебойная работа ИТ-инфраструктуры в режиме 24/7 Как обеспечить ее в нынешних условиях?

Год назад ИТ-компания «Крок» провела исследование «Ключевые тренды сервисного рынка 2023». Результаты

 Читать далее...

Книжная полка  

Читайте и познавайте мир технологий!

Издательство «БХВ» продолжает радовать выпуском интересных и полезных, к тому же прекрасно

 Читать далее...

СУБД PostgreSQL  

СУБД Postgres Pro

Сертификация по новым требованиям ФСТЭК и роль администратора без доступа к данным

 Читать далее...

Критическая инфраструктура  

КИИ для оператора связи. Готовы ли компании к повышению уровня кибербезопасности?

Похоже, что провайдеры и операторы связи начали забывать о требованиях законодательства

 Читать далее...

Архитектура ПО  

Архитектурные метрики. Качество архитектуры и способность системы к эволюционированию

Обычно соответствие программного продукта требованиям мы проверяем через скоуп вполне себе понятных

 Читать далее...

Как хорошо вы это знаете  

Что вам известно о разработках компании ARinteg?

Компания ARinteg (ООО «АРинтег») – системный интегратор на российском рынке ИБ –

 Читать далее...

Графические редакторы  

Рисование абстрактных гор в стиле Paper Cut

Векторный графический редактор Inkscape – яркий представитель той прослойки open source, с

 Читать далее...

День сисадмина  

Учите матчасть! Или как стать системным администратором

Лето – время не только отпусков, но и хорошая возможность определиться с профессией

 Читать далее...

День сисадмина  

Живой айтишник – это всегда движение. Остановка смерти подобна

Наши авторы рассказывают о своем опыте и дают советы начинающим системным администраторам.

 Читать далее...

Виртуализация  

Рынок решений для виртуализации

По данным «Обзора российского рынка инфраструктурного ПО и перспектив его развития», сделанного

 Читать далее...

Книжная полка  

Как стать креативным и востребованным

Издательский дом «Питер» предлагает новинки компьютерной литературы, а также книги по бизнесу

 Читать далее...

Книжная полка  

От создания сайтов до разработки и реализации API

В издательстве «БХВ» недавно вышли книги, которые будут интересны системным администраторам, создателям

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 6224
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 6930
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 4212
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 3004
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 3805
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 3818
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 6314
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 3166
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 3459
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 7275
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 10644
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 12363
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 13998
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 9122
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 7077
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 5386
Комментарии: 3
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 4613
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 3426
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 3153
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 3399
Комментарии: 0
Рецензия на книгу «MongoDB в действии»

 Читать далее...

02.12.2013г.
Просмотров: 3024
Комментарии: 0
Не думай о минутах свысока

 Читать далее...

Друзья сайта  

 Подходы к тестированию в программной инженерии

Архив номеров / 2019 / Выпуск №01-02 (194-195) / Подходы к тестированию в программной инженерии

Рубрика: Наука и технологии /  Раздел для научных публикаций

Без фото Селиванов П.А., Кучер М.Ю., Белов Ю.С., Калужский филиал федерального государственного бюджетного образовательного учреждения высшего образования «Московский государственный технический университет имени Н.Э. Баумана (национальный исследовательский университет)», Калуга, fn1-kf@mail.ru

Подходы к тестированию
в программной инженерии

В статье содержится информация о важности тестирования приложений во время разработки программного обеспечения. Оно нужно для того, чтобы находить ошибки и улучшать ПО, и проводится для снижения рисков, так как поиск и устранение проблем происходит заранее. Здесь же будут рассмотрены два качества ошибки, которые влияют на оценку приложения его пользователем. Также в статье описываются некоторые методы тестирования, такие как тестирование «белого» и «черного ящика», их недостатки и преимущества, а также автоматизированное регрессионное тестирование. Далее будет описан процесс тестирования, состоящий из четырех шагов: разработки плана тестирования, разработки тестов, создания и выполнения тестов и регистрации результатов. Каждый этап содержит объяснения. Затем разобран вопрос о тестировании в agile-командах, то есть о том, насколько оно для них важно и как должно быть осуществлено в данном методе организации разработки. В конце будет рассказано о приложении Postman, которое используется для запуска тестов к API, а именно о том, какие в нем существуют типы переменных, принципах работы и преимуществах

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

Как правило, начинающие разработчики не видят важности в тестировании программ. Они не понимают, что это необходимо. Им это кажется ненужной и лишней тратой времени. Они говорят: «Зачем тестировать код, если он отлично работает».

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

Далее мы рассмотрим, как на клиентов влияет частота ошибок в работе приложения. Затем рассмотрим, насколько важна степень критичности этих ошибок [2]. Если в программном обеспечении существует редкая ошибка, которая приводит к зависанию на несущественное время, мало заметное пользователю, то она не имеет большого значения. Но если она происходит часто, то это не остается незамеченным и раздражает пользователя.

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

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

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

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

Существуют общеизвестные методы тестирования, о которых следует узнать первым делом, столкнувшись с понятием «тестирование». Далее приведены концепции, разделенные по принципу степени ознакомленности тестировщика с кодом.

Тестирование «Черный ящик» – это простое тестирование, как будто программа представляет собой «черный ящик» [3]. Это одна из самых распространенных форм и способ описать целую категорию. При этом тестировании важность имеют только входные и выходные данные. Не имеет значения, как именно обрабатываются входные данные, чтобы получить результат. О коде или о том, как он работает, ничего не известно, то есть для данного набора входных данных программное обеспечение должно генерировать уже известный тестировщику выходной результат. Большинство испытаний проводится именно таким образом, потому что они не предвзяты. Система либо работает, либо нет. Оно имеет определенные преимущества над другими видами тестирования. Например, упрощает тестирование, поскольку рассматриваются только вход и выход, тестировщику не требуется иметь технических навыков, тестирование с точки зрения пользователя и некоторые другие. Но имеет и недостатки, т.к. причины ошибок не видны, из-за чего бывают трудности при составлении тест-кейсов.

Тестирование «белого ящики» – это когда присутствует понимание некоторых внутренних компонентов системы и, возможно, имеется доступ к фактическому исходному коду, который используется для тестирования. Тестирование «белого ящика» противоположно тестированию «черного ящика [4]. При нем имеется некоторое представление о том, что происходит внутри программного обеспечения. Например, существует код, выполняющий сложные расчеты, и в нем есть часть кода, которая выполняется только при определенных условиях, значит, можно создавать тесты, которые будут учитывать выполнение этого условия. В тестировании «черного ящика» нет возможности узнать о существовании этого условия, поэтому есть вероятность, что какая-то часть кода не будет покрыта тестами или их будет очень много [5].

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

Автоматизированное тестирование – это такое тестирование, в котором выполнение теста и верификация результатов являются автоматизированными [6]. Таким образом, можно автоматизировать тестирование веб-приложения, запустив скрипты, которые открывают веб-страницу, вводят нужные данные, нажимают нужные кнопки, а затем проверяют результаты на странице. Также возможно автоматизировать тестирование API, написав сценарии, которые вызывают API с различными параметрами, а затем, проверив результаты, которые возвращаются. Все больше и больше тестов автоматизируются, потому что ручное выполнение сценариев утомительно, подвержено ошибкам и дорогостоящее, особенно в agile-среде, где один и тот же набор тестов может потребоваться запускать каждые две недели, чтобы убедиться, что ничего не сломалось.

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

В действительности мы только поверхностно осмотрели несколько типов тестирования. Существует множество других, включая:

  • Нагрузочное тестирование.
  • Приемочное тестирование.
  • Функциональное тестирование.
  • Исследовательское тестирование.
  • Тестирование производительности.
  • Тестирование восстановления.
  • Тестирование безопасности.
  • Стресс-тестирование.
  • Тестирование простоты и комфорта работы.
  • Тестирование доступности.

И это далеко не все виды тестирования.

Процесс тестирования

Организации имеют разные представления о том, как должно быть организовано тестирование и какой процесс следует соблюдать. Один из самых распространенных процессов представлен на рис.1. Так же существует множество формальных спецификаций, созданных различными организациями, которые охватывают «процесс тестирования» [7]. Идея здесь заключается не в том, чтобы описать идеальный процесс тестирования, а в том, чтобы дать представление о том, каков процесс тестирования в целом и что он влечет за собой. Рассмотрим, по каким шагам может быть организован процесс тестирования.

Рисунок 1. Процесс тестирования

Рисунок 1. Процесс тестирования

Шаг 1. Разработка плана тестирования

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

  • Как все будет проверено?
  • Какова наша стратегия тестирования?
  • Какие испытания мы будем проводить?
  • Какие функции мы будем тестировать?
  • Каков график работы?

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

Шаг 2. Разработка тестов

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

Шаг 3. Создание и выполнение тестов

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

Шаг 4. Регистрация результатов

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

Тестирование в agile-командах

Стандартный процесс тестирования, как правило, сталкивается с некоторыми проблемами в agile-командах, ведь именно в них новые функции реализуются каждые две недели или около того [8]. Многие команды пытаются либо строго следовать стандартным процессам тестирования, либо полностью отказываются от них. Хотя могли бы работать вместе с ними в жизненном цикле разработки программного обеспечения agile.

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

Запросы к API при помощи приложения Postman

Postman – это легкое и быстрое дополнение к Chrome и приложение Windows, Linux, Mac, которое используется для запуска запросов к API. Запросы могут быть организованы в группы, а тесты могут быть созданы с проверками для определенных условий ответа. Благодаря своим функциям это очень хороший и удобный инструмент тестирования API. Можно создавать разные виды HTTP-запросов – GET, POST, PUT, PATCH и DELETE. К запросам можно добавить заголовки. Рассмотрим наиболее интересные функции: переменные, сценарий предварительного запроса, среды и тесты [10].

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

Postman позволяет пользователям писать коды на JavaScript, с помощью которых можно манипулировать данными, отправляемыми с запросом.

Если нужно переключиться между разными учетными данными или изменить какие-то переменные на время – это значит, что нужно использовать окружения. Путем переключения окружения и без изменения запроса можно отправлять различные параметры API.

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

После получения ответа Postman позволяет проверить результат. Это делается на вкладке «Тесты». В случае если ответ в JSON, его можно преобразовать в массив и работать с ним через индексы, точку или цикл.

Заключение

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

  1. Кудеяров Ю.А. Испытания (тестирование) программного обеспечения средств измерений [Электронный ресурс] : учебное пособие / Ю.А. Кудеяров. – Электрон. дан. – М.: АСМС, 2010. – 106 с. – Режим доступа: https://e.lanbook.com/book/69295. – Загл. с экрана.
  2. Барашко Е.Н., Морозов М.Д. Особенности современных средств разработки и тестирования программного обеспечения // В сборнике: Технические науки: проблемы и решения. Сборник статей по материалам V международной научно-практической конференции . 2017. – С. 44-48.
  3. Котляров В.П. Основы тестирования программного обеспечения [Электронный ресурс]: учебное пособие / В.П. Котляров. – Электрон. дан. – М.: 2016. – 248 с. – Режим доступа: https://e.lanbook.com/book/100352. – Загл. с экрана.
  4. Ушаков М. Тестирование приложений при разработке. Функциональное и модульное тестирование. // «Системный администратор», № 1-2, 2014 г. – С. 89-93.
  5. Learn [Электронный ресурс]. – Режим доступа: https://learn.org/articles/How_Does_a_Software_Testing_Engineer_Do.html. – Заглавие с экрана. – (Дата обращения: 16.10.2018).
  6. Лопатина К.И., Темникова Е.А. Ручное и автоматизированное тестирование программного обеспечения отличия и взаимозаменяемость. // «Вестник современных исследований», № 10-1 (13), 2017 г. – С. 75- 77.
  7. Старолетов С.М. Основы тестирования и верификации программного обеспечения [Электронный ресурс] : учебное пособие / С.М. Старолетов. – Электрон. дан. – СПб: Лань, 2018. – 344 с. – Режим доступа: https://e.lanbook.com/book/110939. – Загл. с экрана.
  8. Гибкая методология разработки программного обеспечения [Электронный ресурс] : учебное пособие. – Электрон. дан. – М.:, 2016. – 153 с. – Режим доступа: https://e.lanbook.com/book/100590. – Загл. с экрана.
  9. Сергеева А. Виртуальные машины в тестировании. На примере Alloy Navigator .// «Системный администратор», № 10, 2014 г. – С. 68-73.
  10. Васильева М.В., Ванюлин А.Н. Обзор систем автоматического тестирования программного обеспечения. // Cборник материалов Международной заочной научно-практической конференции (24 марта 2017 г.), 2017. – С. 42-46.

Ключевые слова: регрессионное тестирование, автоматизированное тестирование, agile-тестирование, тестирование API, Postman.


Approaches to testing in software engineering

Selivanov P.A., Kucher M.Yu., Belov Yu.S., Bauman Moscow State Technical University (Kaluga Branch) Kaluga, e-mail: fn1-kf@mail.ru

Abstract: This article provides information about the importance of application testing during software development. It is necessary in order to find errors and improve the software and is carried out to reduce risks, as the search and Troubleshooting occurs in advance. It will also consider two qualities of the error that affect the evaluation of the application by its user. The article also describes some testing methods, such as white box and black box testing, their advantages and disadvantages, as well as automated regression testing. The following process will describe the testing, which consists of 4 steps: test plan development, test development, test creation and execution, and results registration. Each stage will contain an explanation. Then the question of testing in agile teams is discussed, that is, how important it is for them and how it should be implemented in this method of development organization. At the end, we will talk about the Postman application, which is used to run tests to the API, what types of variables exist in it, how it works and the advantages of it.

Keywords: regression testing, automated testing, agile testing, API testing, Postman.


Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru