Эссе на тему «Можно ли научить обезьяну тестировать ПО» Это довольно распространённая шутка в сфере IT. Разработчики любят подшучивать над тестировщиками, а некоторые из них даже гневно возмущаются, считая тестирование бесполезным занятием, с которым справятся даже грудные дети и обезьяны (зачем же им платить столько же). Сейчас я попытаюсь выяснить так это или нет. Для начала скажем, что тестирование бывает разным. И по каждому из типов хочется поговорить отдельно, хотя бы по нескольким. Начнем наш разговор с тестирования интерфейсов. Тут невольно вспоминается технология тестирования monkey testing, которая подразумевает случайное «жмаканье» по клавиатуре, мышке, сенсорному экрану или другому элементу управления интерфейсом. Тут с разработчиками-завистниками не поспорить, такому тестированию обезьяну даже и учить не надо, ибо они основоположники этого метода. Порой даже таким способом можно выудить ошибки, до которых не каждый человек смог бы дойти сам. Способ интересный и на него любят ссылаться. Что же касается тестов интерфейса в целом, то это имитирование поведения реального пользователя. Этот процесс кажется очень скучным и монотонным, а в средствах массовой информации тестировщики рассматриваются как рабочие у конвейера программной индустрии. Если к этому всему прибавить то, что тестировщики постоянно указывают на ошибки разработчиков, то можно понять негодование программистов. Но на самом деле этот взгляд на специалистов тестирования очень поверхностный и тестирование это не такая скучная и простая задача. Во первых, в тестировании приходится решать много новых и интересных задач ежедневно. Приведем цитату из Майкла Болтона об этом: «В тестировании нами движет стремление к поиску новой информации. Тестирование — это процесс исследования, открытия, изучения нового и обучения. Когда мы настраиваем, запускаем и изучаем программный продукт, чтобы дать ему оценку или чтобы обнаружить какую-то неожиданную проблему, мы тестируем. Мы тестируем, пытаясь очертить границы и возможности продукта и дизайна. Мы тестируем, когда нами движет стремление ответить на вопросы, на которые нет ответа или на те вопросы, которые даже не были еще заданы.» Ну а во вторых, тестирование является очень сложным мастерством, овладеть которым среднему человеку не под силу, куда там обезьяне. Вот что говорит Патрик Коупленд из Google о необходимых качествах тестировщика: «Это особый склад ума и особая страсть. На 100 проведенных мной собеседованиях для тестировщиков я прежде всего обращал внимание на: 1) наличие особой способности к поиску проблем и 2) страсть к тестированию, присутствующую в человеке наряду с этой способностью. Другими словами тестировщики любят свою работу и делают ее хорошо. Они отмечают, что при тестировании приходится решать проблемы, равные, а иногда даже и превосходящие по сложности те, что приходится решать при программировании. Тот, кто является тестировщиком от Бога и правильно относится к работе, никогда не останется без дела. Такие люди — на вес золота.» Тестирование это не просто поиск ошибок, в отличие от разработчиков, тестировщики не работают лишь с определённым функционалом, они эксперты все системы, они несут ответственность за систему и понимают её значимость, эффективность и влияние окружения. Поэтому не стоит обесценивать их труд. И если для тестирования интерфейсов все может показаться не таким очевидным по нашей теме, то с другими видами тестирования сомнений о полезности и важности тестировщика в команде не возникает. К примеру, автоматизированное тестирование, которое обычно применяется для автоматизации процесса регрессионного тестирования. Такого типа специалистов вполне можно назвать и разработчиками. А негативное, нагрузочное, тестирование безопасности и другие требуют выхода за рамки мышления «как обычный пользователь» и наличия таких качеств как креативность, инициативность, дальновидность, изворотливость и так далее. Если вы найдете обезьянку с такими качествами, дайте знать. В наши дни менеджеры проектов начали понимать важность следить за качеством разработки и тестирования. Любая уважающая себя контора держит у себя отдел управления качеством QA. В университетах появляются курсы для тестировщиков, крупные компании устраивают школы для начинающих специалистов тестирования. И все это несомненно приносит свои плоды, и я думаю, что это лишь вопрос времени, когда тестировщики и разработчики начнут жить в мире и согласии.