5 мифов о тестировании

image Недавно начала вести курсы по основам тестирования, и так получилось, что группа собралась из одних программистов. И какого же было мое удивление, когда люди, задействованные в разработке программного обеспечения, ничего не знают о тестировании. Умные ребята, продвинутые программисты, хорошо разбирающиеся в своей предметной области, ничего не знают о том, как тестировать ими же написанное программное обеспечение.
Несмотря на то, что тестрование существует уже давно, это еще молодое развивающееся направление, про которое зачастую мало что знают, за пределам отдела тестирования. И тогда я задумалась, почему люди идут работать тестировщиками, или наоборот не идут. Движут ли ими какие-то предубеждения и мифы. Как-то на глаза попалась статья Майка Брауна (Mike Brown) про 5 мифов в тестировании, переводом которой хочу с вами поделиться
:

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

Ознакомьтесь и скажите, согласны вы со мной или нет.

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

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

Миф второй: тестирование — это просто.
Часто говорят также, что тестирование программного обеспечения не может быть ТАК сложно, так как обычные пользователи постоянно находят ошибки в программах. На самом деле тестирование является очень сложным мастерством, овладеть которым среднему человеку не под силу. Вот что говорит Патрик Коупленд из Google о необходимых качествах тестировщика:

«Это особый склад ума и особая страсть. На 100 проведенных мной собеседованиях для тестировщиков я прежде всего обращал внимание на: 1) наличие особой способности к поиску проблем и 2) страсть к тестированию, присутствующую в человеке наряду с этой способностью. Другими словами тестировщики любят свою работу и делают ее хорошо. Они отмечают, что при тестировании приходится решать проблемы, равные, а иногда даже и превосходящие по сложности те, что приходится решать при программировании. Тот, кто является тестировщиком от Бога и правильно относится к работе, никогда на останется без дела. Такие люди — на вес золота. „

Миф третий: тестировщики всего лишь ищут ошибки.
Тестировщики действительно занимаются поиском ошибок, но это далеко не единственная цель их деятельности. Очень хорошо высказывается об этом мифе автор, опубликовавший на сайте freesoftwaretesting.info статью под именем Ankur:

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

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

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

Миф пятый: тестировщики не ладят с разработчиками.
Вполне понятно, почему этот миф так распространен. Об этом однажды написал гуру тестирования Джеймс Бах:

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

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

Хочу добавить в список мифов: слышала такой миф от программистов, что тестировщики ищут баги только путем нажимания всех кнопок подряд, даже не задумываясь о входных и выходных параметрах. Еще есть целый ряд мифов об автоматизации программного обеспечения, например:
  • автоматизация позволяет сократить расходы;
  • автоматизация решает проблему с нехваткой ресурсов;
  • чем больше автотестов, тем лучше;
Или самый распространенный миф о том, что тестирование улучшает качество программного продукта. Чтобы улучшать качество, нужно его создавать, а тестирование только проверяет качество. Да, конечно, тестировщики проверили качество программного обеспечения, нашли ошибки, показали отчет о тестировании, программисты исправили, качество повысилось. Но не тестировщики улучшают качество программного обеспечения.

Что касается меня, я шла в тестирование, движимая каким-то предчувствием, что в тестировании есть куда развиваться, в тестировании никогда не будешь стоять на месте. Вот это развитие меня привлекало и привлекает по сей день. Хотя, конечно, я думала, что тестирование — это легко.

А какие мифы о тестировании знаете вы?


PS. Большое спасибо за перевод моему коллеге AndreiYemelianov

© Habrahabr.ru