История тестирования программного обеспечения

Опубликовано: 22 Февраля, 2023

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

Важность тестирования программного обеспечения

Неполное или пропущенное тестирование программного обеспечения привело к таким бедствиям, как сердечные ошибки, крушение Airbus A400M и т. д.

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

Жук с кровотечением сердца

Ошибка Heartbleed была ошибкой безопасности в криптографической библиотеке OpenSSL, которая является широко используемой реализацией протокола TLS. Об этом было объявлено 7 апреля 2014 года.

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

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

История тестирования программного обеспечения

  • Начало 1950 г.: Ученому-компьютерщику Тому Килберну приписывают написание первой части программного обеспечения 21 июня 1948 г. в Манчестерском университете в Англии. Он выполнял математические вычисления, используя инструкции машинного кода.
  • 1950: В этом году был введен тест Тьюринга, который проверяет интеллект машин.
  • 1957: В то время отладка считалась методом тестирования программного обеспечения. В 1957 году Чарльз Л. Бейкер (корпорация RAND) в своем обзоре книги Дэна МакКракена «Программирование цифровых компьютеров» проводит различие между тестированием программ и отладкой. Теперь разработчики начинают тестировать свое программное обеспечение в реальных сценариях. Это дало импульс тестированию обеспечения качества программного обеспечения, которое является важной частью SDLC, т.е. жизненного цикла разработки программного обеспечения.
  • 1958: В этом году специально для тестирования Джеральдом М. Вайнбергом формируется первая команда.
  • 1961: В книгу Джеральда Вайнберга и Герберта Лидса «Основы компьютерного программирования» была введена отдельная глава о тестировании программного обеспечения.
  • 1968: Тестирование программного обеспечения упоминается в отчете НАТО.
  • 1970: В 1970 году Уинстон Ройс и Уинстон описали модель водопада в статье «Управление разработкой больших программных систем», представленной IEEE WESCON.
  • 1971: Ричард Липтон предложил концепцию мутации. Мутационное тестирование — это тип тестирования программного обеспечения, при котором определенные операторы исходного кода изменяются/мутируют, чтобы проверить, могут ли тестовые примеры найти ошибки в исходном коде.
  • 1973: Представлен метод причинно-следственных диаграмм.
  • 1978: Функциональное тестирование было представлено Уильямом Хауденом.
  • 1979: В то время основное внимание уделялось взлому кода и поиску некоторых ошибок. Вот почему ее называют эпохой разрушения. Термин «тестирование на сбои» появился в эту эпоху, что означает тестирование кода таким образом, чтобы он ломался.
  • 1983: Первая версия стандарта IEEE 829 для документации по тестированию программного обеспечения была опубликована в 1983 году. Теперь в центре внимания тестировщиков — проверка качества программного обеспечения. Проверяют ПО до тех пор, пока ошибок в коде примерно не будет.
  • 1985: AutoTester выпускает Autotester, первый коммерческий инструмент тестирования для ПК.
  • 1986: Дэвид Гелперин и Уильям Хетцель основали компанию по разработке качества программного обеспечения.
  • 1988-2000: Тестирование вышло на качественно новый уровень, что привело к дальнейшему развитию методологий и мощных инструментов управления процессом тестирования.
  • 2004: Разработан Selenium, инструмент для тестирования веб-приложений.
  • 2005: SoapUI был выпущен в сентябре месяце и стал довольно популярным.
  • 2008: Основана компания по тестированию программного обеспечения Altom, также в этом году запущена служба тестирования Applause.
  • Настоящее: Сейчас существуют разные виды тестирования ПО, которые проверяют разные аспекты ПО в разных сценариях. Искусственный интеллект также используется для тестирования программного обеспечения на основе поведения конечных пользователей. Теперь тестировщики выполняют различные типы тестирования, такие как модульное тестирование, интеграционное тестирование, приемочное тестирование, тестирование производительности и т. д.

Прохождение всех этих тестов делает программное обеспечение неуязвимым. Сейчас существуют различные среды тестирования, которые могут автоматизировать эти тесты и облегчить жизнь тестировщика. Некоторыми примерами этих сред являются PHPUnit, Mocha и RSpec, которые используют языки программирования PHP, JavaScript и Ruby соответственно.

График Тестирование программного обеспечения Эра
1950 г. Был введен тест Тьюринга. Эра, ориентированная на отладку (начало 1950-х). Это была фаза начала 1950-х, когда не было различий между тестированием и отладкой. Не было концепции тестировщиков, разработчики писали коды, а когда сталкивались с ошибкой, отлаживали проблемы.
1958 г. Первую группу тестирования сформировал Джеральд М. Вайнберг. Эпоха, ориентированная на демонстрацию (1957–1978 гг.). В эту эпоху тестирование проводилось как отдельный вид деятельности при разработке программного обеспечения. Было четкое различие между отладкой и тестированием программного обеспечения. Основная цель на этом этапе заключалась в том, чтобы убедиться, что требования к программному обеспечению удовлетворены, а программное обеспечение соответствует ожиданиям заказчика.
1961 г. Тестирование было введено специально в книге Джеральда Вайнберга и Герберта Лидса.
1968 г. НАТО упомянуло тестирование программного обеспечения в отчете.
1970 г. Уинстон Ройс упомянул модель водопада в статье.
1971 г. Ричард Липтон предложил концепцию мутации.
1973 г. Внедрена методика построения графика причинно-следственной связи.
1978 г. Функциональное тестирование было введено Уильямом Хауденом.
1979 г. Гленфорд Дж. Майерс ввел разделение отладки и тестирования в 1979 году. Эпоха, ориентированная на разрушение (1979–1982): на этом этапе основное внимание уделяется взлому кода и обнаружению необнаруженных ошибок. Подход, ориентированный на уничтожение, потерпел неудачу, поскольку программное обеспечение никогда не будет выпущено, поскольку обнаружение одной ошибки и ее исправление также могут привести к другой ошибке.
1985 г. Первым инструментом тестирования стал AutoTester. Эпоха, ориентированная на оценку (1983–1987): основное внимание здесь уделяется оценке и измерению качества программного обеспечения. Тестировщики тестируют программное обеспечение до приемлемой точки, пока не достигнут точки, при которой количество обнаруженных ошибок не уменьшилось.
1986 г. Инженерия качества программного обеспечения была основана Дэвидом Гелперином и Уильямом Хетцелем.
2000 г. Внедрена поведенческая разработка и разработка через тестирование. Эпоха, ориентированная на профилактику (1988–2000 гг.): основное внимание уделяется проведению тестов, чтобы показать, что программное обеспечение соответствует его спецификации. Код здесь делится на тестируемый и нетестируемый, где в тестируемом коде было меньше ошибок, чем в не тестируемом коде.
2004 г. Разработан инструмент для тестирования Selenium. Текущая эра ориентирована на использование инструментов ИИ, инструментов кросс-браузерного тестирования и т. д.
2005 г. Вышел SoapUI.
2008 г. Найден сервис тестирования Applause.
Подарок Тестирование под управлением ИИ.