Зачем нужно тестирование ПО и почему так важны тестировщики

Зачем нужно тестирование ПО и почему так важны тестировщики

Эксплойт

Итак, тестировщики, сотрудничая с разнообразными компаниями по всему миру, обнаружили довольно странную закономерность. Заказчики проектов, будь то многостраничный веб-сайт или небольшое приложение, очень часто интересуются: а зачем нам нужно тестирование? Разве нельзя написать все хорошо и сразу? Их можно понять. Тестирование стоит денег, а среднестатистическое представление о разработке ПО сводится к тому, что хороший программист пишет без багов. Если же написано с багами, то он не очень хороший программист. Может быть даже плохой.

Окей, с клиентами все понятно. Давайте обратимся к разработчикам. Вот ведь чье мнение действительно важно! Обратились и выяснили, что #руки_прочь_от_тестировщиков. Люди, страдающие от тестирования в первую очередь, выступили в поддержку людей, которые ежедневно добавляют им работы. И даже объяснили почему. Резюмируем.

  1. Психология. На полном серьезе. Представьте себе художника, критикующего собственную картину или режиссера, ругающего свой фильм. Каждый программист чуточку гордится своей работой. Он никогда в жизни не найдет в ней все уязвимости, потому что его задача - создавать и чинить. А задача тестировщика - ломать всеми доступными средствами. Смешно? Гораздо смешнее будет, когда пропущенный баг найдет пользователь, и его доверие к продукту окажется где-то в районе плинтуса.
  2. Дефекты и ошибки - это норма. Опять-таки, на полном серьезе. Разработка ПО довольно сильно отличается от изготовления деревянных болванок. И даже самый крутой-модный-продвинутый программист не может писать без ошибок. От слова совсем. А при внедрении нового функционала вероятность появления ошибок существенно возрастает. И вы хотите, чтобы человек, который не очень хорошо ищет баги (см. предыдущий пункт) занялся этим вместо выполнения своих прямых обязанностей? Может лучше ему допиливать функционал и готовить новые фичи, пока специально обученный тестировщик будет искать ошибки? Ведь он это делает быстрее и лучше.

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

  • Разработчики не могут писать без ошибок;
  • Разработчики не могут тестировать собственный продукт;
  • Проект без тестирования грозит обернуться провалом.

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

Разработка через тестирование

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

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

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

Этот подход помогает концентрироваться на конкретных задачах и сокращает объем написанного кода. При правильном применении разработка через тестирование экономит время программистов и деньги клиентов.

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

Вывод

Мы прекрасно отдаем отчет, что разъясняем банальные вещи. Но поскольку этот вопрос время от времени всплывает, хочется расставить точки над i. Итак, нужно ли тестирование ПО? Ответ однозначен: очень нужно. Тестирование позволяет:

  • Сэкономить время разработки продукта;
  • Сэкономить деньги заказчика;
  • Повысить качество выпускаемого продукта.

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

Справедливости ради, отметим, что проект проекту рознь. Если мы говорим о простеньком сайте-визитке, он, конечно, не нуждается в команде тестировщиков. Если же на повестке дня стоит разработка интернет-магазина, мобильного приложения, многоуровневая интеграция и т.д., без тестирования - никуда. Только по наклонной. Вниз:)


Report Page