Телефон: +7 (383)-202-16-86

Статья опубликована в рамках: II Международной научно-практической конференции «Вопросы технических и физико-математических наук в свете современных исследований» (Россия, г. Новосибирск, 23 апреля 2018 г.)

Наука: Информационные технологии

Секция: Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей

Скачать книгу(-и): Сборник статей конференции

Библиографическое описание:
Шивкова Е.Г. ПОЧЕМУ ТЕСТИРОВАНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ВАЖНО // Вопросы технических и физико-математических наук в свете современных исследований: сб. ст. по матер. II междунар. науч.-практ. конф. № 2(2). – Новосибирск: СибАК, 2018. – С. 5-8.
Проголосовать за статью
Дипломы участников
У данной статьи нет
дипломов

ПОЧЕМУ ТЕСТИРОВАНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ВАЖНО

Шивкова Екатерина Григорьевна

студент, кафедра Экономическая информатика ИЭФ РУТ (МИИТ),

РФ, г. Москва

АННОТАЦИЯ

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

 

Ключевые слова: тестирование, программное обеспечение.

 

В чем цель тестирования программного обеспечения? Определения, с которыми часто можно столкнуться, — это «свести к минимуму недостатки» или «своевременно выявлять дефекты». Это определения, ориентированные на разработчиков, и разработчики склонны пере­давать эти определения не разработчикам. Но что, если мы разработчики определили тестирование программного обеспечения как «сделать программное обеспечение простым, эффективным и без стресса для людей, разрабатывающих, продающих, поддерживающих и покупающих программное обеспечение?». Разработчики стараются минимизировать дефекты и уловить их как можно раньше, но тестирование програм­много обеспечения — это гораздо больше. Речь идет о внешнем фокусе и обслуживании внутренних и внешних клиентов.

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

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

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

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

Со стороны разработчика, который присоединяется к команде, которая не тестирует программное обеспечение или несерьезно тестирует «критические части» программного обеспечения. Как долго это будет до того, как можно будет услышать: «Это работает у меня» или «Это сломано» или замечено постоянно растущее отставание? Не очень долго. Еще хуже, каждый день, когда разработчик приходит на работу, ему будут напоминать о неэффективном процессе разработки. Ничто не является более деморализующим, чем работа с дефектным программным обеспечением.

Эффективные тесты программного обеспечения

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

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

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

Семантическое тестирование

Семантическое тестирование — это убеждение, что тестирование программного обеспечения не является особенным. Тестирование веб-приложения в компании X аналогично тестированию веб-приложения в компании Y. Программное обеспечение может отличаться по форме, функциям и среде, в которой оно развертывается, но как в основном тестируется программное обеспечение одинаково. Это убеждение верно, проверяете ли вы библиотеку, SaaS, клиент/сервер RPC, облачный сервис, мобильное приложение, встроенное программное обеспечение или программное обеспечение AI.

Semantic Testing применяет системное мышление к тестированию программного обеспечения для разработки спецификации, которая пред­писывает привычки и методы эффективного тестирования программного обеспечения. В основе семантического тестирования лежит концепция, согласно которой все тестовые примеры можно разделить на пять категорий тестирования с конкретной целью, целями, стратегиями и тактикой. Эти концепции описаны далее на веб-сайте спецификации семантического тестирования.

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

 

Список литературы:

  1. Рекс Блэк. «Ключевые процессы тестирования – планирование, подготовка, проведение, совершенствование». Издательство Лори. 544 с. 2011.
  2. Савин Р. «Тестирование Дот Ком, или Пособие по жестокому обращению с багами в интернет-стартапах». Издательство Дело. 312 с. 2007.
  3. Куликов С. «Тестирование программного обеспечения. Базовый курс.» - [Электронный ресурс]. URL: http://svyatoslav.biz/software_testing_book.
  4. Semantic Testing - [Электронный ресурс]. URL: https://semantictesting.org.
Проголосовать за статью
Дипломы участников
У данной статьи нет
дипломов

Оставить комментарий