Тестирование. Что это такое, описание, виды тестирования

Определение

Тестирование — это проверка созданного программного продукта на соответствие заданным требованиям, и на отсутствие дефектов. 

Тестирование подразумевает запуск программы (или ее компонентов) при помощи ручных (или автоматизированных) программных средств тестирования; тестироваться могут и отдельные компоненты (или отдельные свойства) программы. 

Тестирование производится для поиска ошибок, случайных «пропусков» по невнимательности, либо направлено на соблюдение прописанных требований к софту.

Почему тестирование так важно?

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

А если бы тестирования не было?

Тестирование крайне важно, потому что баги в коде — это дорого, или даже бывает опасно. Баги могут создать колоссальные потери в деньгах, или даже человеческие жертвы, и история знает такие примеры.

  • В апреле 2015 финансовый терминал Bloomberg в Лондоне «упал» из-за бага в коде. Это затронуло 300 тысяч клиентов — трейдеров на финансовом рынке. Из-за этого бага британское правительство было вынуждено отложить размещение займа на 3 миллиарда фунтов.
  • Nissan отозвала более 1 миллиона автомашин, из-за программной ошибки в детекторах подушки безопасности. Сообщалось как минимум о двух тяжелых дорожных происшествиях, связанных с этим багом. 
  • Starbucks закрывала 60% кофеен в Штатах и Канаде, из-за масштабнейшего отказа платежных терминалов. В какой-то момент легендарная сеть отдавала кофе бесплатно, потому что не могла обработать покупки, а выгонять клиентов было не с руки.
  • Поставщики Amazon в один прекрасный день обнаружили, что их товары стОят 1 цент, из-за программной ошибки. Разумеется, были понесены потери. 
  • Уязвимость в Windows 10, позволяющая злоумышленнику выйти из “песочницы” через уязвимость в подсистеме win32k.
  • В 2015 истребитель F-35 пал жертвой бага, не позволяющего правильно определять цели.
  • Airbus A300 авиакомпании China Airlines потерпел крушение в апреле 1994; в этой катастрофе 264 жертвы
  • В 1985 году в Канаде рентгеновский аппарат Therac-25 вышел из строя из-за ошибки в программе. Пациенты получили смертельную дозу радиации, погибли 3 человека, и 3 стали инвалидами.
  • В апреле 1999 г. программная ошибка вызвала сбой во время запуска военного спутника стоимостью 1,2 миллиарда долларов. Это пока что самый дорогой баг в программе в истории человечества.
  • В мае 1996 г. ошибка в коде привела к списанию со счетов 823 клиентов американского банка сумм на 0,92 миллиарда долларов.

Какую пользу приносит тестирование?

  • Эффективность в денежных тратах. Самое важное преимущество. Тестирование позволяет сберечь деньги сейчас, и экономить постоянно. Если баги обнаружены вовремя, они будут исправлены и не принесут проблем.
  • Безопасность. Самый “чувствительный” нюанс тестирования. Люди хотят иметь надежные, проверенные программы. Поэтому устранение рисков и проблем до того как они возникнут.
  • Качество. Крайне важный нюанс. Тестирование гарантирует, что у клиентов будут только качественные программы.
  • Удовлетворение клиентов. Главнейшая цель любого продукта — удовлетворение клиентов. Тестирование интерфейса (UI/UX) гарантирует, что пользователи будут приятно удивлены удобством интерфейса.

Определение тестирования в Программной Инженерии

Как говорится в Стандарте Качества ANSI/IEEE 1059, Тестирование в программной инженерии является оценкой программного продукта — отвечает ли заданным правилам, или нет. Здесь подразумевается оценка функций программного продукта, проверка на отсутствие компонентов, на баги и ошибки, на безопасность, на надежность, и на производительность.

Главные принципы тестирования

Типы тестирования

Тестирование делится на следующие категории:

  • Функциональное тестирование
  • Нефункциональное тестирование (или Тестирование производительности)
  • Эксплуатационное тестирование (регрессионное, или в период сопровождения)
Типы тестирования
Категория тестированияТипы тестирования
Функциональное тестированиеUnit-тестирование (модульное)
Интеграционное тестирование
Smoke-тестирование
UAT (тестирование на приемлемость у пользователей)
Тестирование локализации
и т.п.
Нефункциональное тестированиеТестирование системы на Устойчивость
Производительность
Масштабируемость
и т.п.
Эксплуатационное тестированиеРегрессионное тестирование
Тестирование в период сопровождения

Этот список неполный, а вообще есть около 150 типов тестирования ПО, и их количество постоянно растет. Не всякий тип тестирования применим в каждом конкретном случае. Это зависит от природы и масштаба проекта.

Стратегии тестирования

Юнит-тестирование (модульное): это как бы «базовый» подход к тестированию: оно проходит отдельно по каждой части программы. Это помогает команде оценить пригодность программы.

Интеграционное тестирование: Команда сосредотачивается на собирании приложения в целое, и его дизайне. Цель: понять, правильно ли работают ли вместе все части программы.

Системное тестирование: приложение компилируется в целое, и затем тестируется как одно целое. Эта стратегия проверяет функциональность, безопасность, переносимость, и др.

Шпаргалка

  • Что такое тестирование? Это действия для проверки, соответствует ли реальное приложение заданным при его создании целям, и что в приложении нет явных дефектов.
  • Тестирование важно, потому что ошибки в программе могут дорого обойтись, или даже быть опасными.
  • Критерии тестирования: эффективность траты денег, безопасность, качество продукта и удовлетворение клиентов. 
  • Три главные категории тестирование: функциональное, нефункциональное, эксплуатационное.
  • Главные стратегии тестирования: юнит-тестирование, интеграционное тестирование, валидационное тестирование, и системное тестирование.

Какой была ваша первая зарплата в QA и как вы искали первую работу?

Мега обсуждение в нашем телеграм-канале о поиске первой работы. Обмен опытом и мнения.

Подписаться
Уведомить о
guest

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

Мы в Telegram

Наш официальный канал
Полезные материалы и тесты
Готовимся к собеседованию
Project- и Product-менеджмент

? Популярное

? Telegram-обсуждения

Наши подписчики обсуждают, как искали первую работу в QA. Некоторые ищут ее прямо сейчас.
Наши подписчики рассказывают о том, как не бояться задавать тупые вопросы и чувствовать себя уверенно в новой команде.
Обсуждаем, куда лучше податься - в менеджмент или по технической ветке?
Говорим о конфликтных ситуациях в команде и о том, как их избежать
$1100*
медианная зарплата в QA в июне 2023

*по результатам опроса QA-инженеров в нашем телеграм-канале

Собеседование

19%*
IT-специалистов переехало или приняло решение о переезде из России по состоянию на конец марта 2022

*по результатам опроса в нашем телеграм-канале

live

Обсуждают сейчас