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

Серия статей про тестирование программного обеспечения. Часть 1: зачем нужно тестирование программного обеспечения.

Вернуться к главной странице Тестирование программного обеспечения.

Содержание

  1. Прихоть или необходимость
  2. Зачем нужно тестирование программного обеспечения
  3. Возможно ли писать программы без тестировщиков
  4. Роль тестировщика в процессе разработки программного обеспечения

Прихоть или необходимость?

Согласитесь, что никто в здравом уме не приходит к портному и не оплачивает заказ, не глядя на сшитую вещь. Да и сам портной, дорожа своей репутацией, снимет не одну мерку и пригласит клиента для подгонки изделия по фигуре. Это только один пример, но их в нашей жизни – множество.

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

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

Конечно, есть различия в степени риска, которые зависят как от уровня вероятности наступления последствий, так и от масштабов возможных негативных событий. Вернемся к нашему портному. Какова вероятность того, что он использует чужой кусок ткани для вашего костюма? Минимальная. А есть ли риск того, что он ошибется в выкройке, и костюм плохо сядет по вашей фигуре? Есть, и он очень велик. Но так ли серьезна эта проблема в масштабах одного ателье? Нет. А если ошибка в выкройке закралась на предприятии массового пошива? Здесь уже речь пойдет о многомиллионных убытках.

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

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

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

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

Такой вопрос может задать только человек, максимально далекий от IT-индустрии и даже общего понимания устройства современного мира. И все же ответим: тестирование ПО нужно всем. Если вы не живёте в джунглях Амазонки или в землянке посреди таежных лесов и не используете в качестве технических средств только палку и камень, то это нужно вам. Потому что операционные системы используются в телефонах, смартфонах, ноутбуках, в стационарных компьютерах, бортовых компьютерах, планшетах и даже в ставшем столь популярным оборудовании для “умного дома”.

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

Возможно ли писать программы без тестировщиков

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

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

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

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

Роль тестировщика в процессе разработки программного обеспечения

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

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

И, конечно, для того, чтобы стать высокооплачиваемым и востребованным специалистом, необходим креативный подход к работе, умение коммуницировать с людьми в любом коллективе, и обладать знаниями о современных тенденциях в области развития IT-технологий.

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

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

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

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

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

Читайте следующую статью серии "Тестирование программного обеспечения": что такое тестирование программного обеспечения.

0
Нет комментариев. Ваш будет первым!