Pull to refresh

Comments 30

А можно спрятать часть текста под «читать дальше»?
Спасибо.
UFO just landed and posted this here
В догонку: Можно также еще и шрифт обычный, а не жирный. Читать не особо комфортно ;)
Прошу извинить коллегу, которая в первый раз запостила статью на хабре и еще не довела оформительские навыки до совершенства.
Прошу прощения, исправлюсь
Автоматизация программного обеспечения требует дополнительных инвестиций, хотя позволяет повысить качество продукта. По сути, автоматизация начинает приносить пользу только на продуктах, разработка и сопровождение которых достаточно длительны.
Длительных, да. А ещё обязательно достаточно стабильных. Я сейчас участвую на одном проекте, который разрабатывается уже более полутора лет, срок для окупаемости автотестов предостаточный. Но каждую неделю проводится обработка пожеланий пользователей, которая вызывает серьёзные изменения в продукте. В итоге автотесты с третьей космической скоростью устаревают, в продукте нет ничего старше 2-х месяцев.

Весь НОВЫЙ функционал нужно тестировать вручную. Потому что при тестировании такого функционала 50% затрат уходит на анализ «как правильно» и «как тестировать», а 40% — на регистрацию дефектов. Автотесты позволяют сэкономить 10% на тыкание на кнопочки, но этого недостаточно.

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

Это — не мифы. Конечно, автоматизированное тестирование не заменит живых разработчиков. Но эти три фразы безусловно истинны в большинстве случаев.
s/живых разработчиков/живых тестеров/
Да все ок. Тестеры тоже разработчики, хотя, конечно, не программисты.
А чем отличается программист от разработчика?
programmer can be used to refer to a software developer
В моем понятии у софта есть разработчики(те, кто его делает) и пользователи. Просто понятие разработчик более широкое, чем программист. Я тестировщик и я вношу посильный вклад в разработку ПО.

Поэтому ваш вопрос для меня звучит как «чем отличается каменщик от строителя».
Подпишусь под каждым словом. Просто на личном опыте.
Но не тестировщики улучшают качество программного обеспечения.

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

Но в целом — коллега, целую руку :)
Да сделайте уже хабракат, наконец-то! Раздражает. Сколько раз листаю — разражает.
Хочу добавить в список мифов: слышала такой миф от программистов, что тестировщики ищут баги только путем нажимания всех кнопок подряд, даже не задумываясь о входных и выходных параметрах.

Monkey testing – это неотъемлемая часть проверок. Вы отдадите продукт пользователю, который, поверьте, будет тоже нажимать на все кнопки не задумываясь о входных и выходных данных. Задача разработчиков – сделать так, чтобы пользователь не мог навредить самому себе и чтобы ответ приложения был всегда корректным. Если я могу нажать на все кнопки и приложение выдает непонятную ошибку, разве это нормально? Конечно же, не стоит ограничиваться лишь обезьяним тестированием, и в будущем стоит его автоматизировать, но сейчас, подумайте, если кнопка не работает – то я не смогу завершить свой самый сложный и самый продуманный сценарий. Так почему бы не убедиться в готовности приложения, проводя вначале сессию обезьяньего тестирования?

автоматизация позволяет сократить расходы;


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

автоматизация решает проблему с нехваткой ресурсов;


Ресурсов или кадров?
Если ресурсов, то да, автоматизация тестирования не заменит мне винт на 500 Гб.
Если кадров — то каких именно? Если вам нужен человек, который перегоняет данные из ворда в ексель, то я бы мог попробывать написать для этого скрипт.

чем больше автотестов, тем лучше;

Два теста лучше чем один, три теста лучше чем два, двадцать тестов лучше чем девятнадцать.
Вы — несогласны?
После какого числа это станет мифом.

> Два теста лучше чем один, три теста лучше чем два, двадцать тестов лучше чем девятнадцать.
Вы — несогласны?

Я — не согласен. Точнее так. Существуют проекты и системы разработки для которых два теста лучше, чем один. Но существуют и другие. Не знаю точно, как там дела у вирусологов, но допускаю мысль, что тест сканирующего приложения у них всего один — с разными наборами данных для сканирования.
1 Data Driven тест кейс, запущенный с разными данными – это 10 тест кейсов
Самый страшный миф на моей памяти: Разработчики и издатели прислушиваются к тестировщикам.
Очень часто также путают: Quality Assurance, Quality Control, Quality Check (в принципе все это процедулы входящие в процесс контроля качества, но частенько нам дают грызть готовый продукт, добавляя «Через неделю релиз — поищите косяки.» И ладно если ты один и тестишь калькулятор, а если это клиент-серверное приложение управления контентом и вас 15 человек?).
Хотелось бы чтобы это было реальностью, но это миф: Тестирование продукта начинается на этапе проектирования и продолжается в течении всего его жизненного цикла.
Чем то разаработка и тестирование напоминает Мытье слона. Его нельзя помыть всего целиком и чистенько, пока одно ухо помоем — второе уже чемто заляпалось :) Можно конечно окатить целиком штормовым тестированием, но тогда дотошный клиент найдет какуюто дрянь по всей поверхности слона… а целиком в кислоте не вымочить — умрет ведь :)
Вот такой вот сумбурный текст. За статью громадное спасибо. Вдруг вернусь к истокам.
А никто не заметил, что это на самом деле универсальные мифы? Можно применить к любой профессии, так же как «тебя недооценивают на работе. а ждет тебя, милок, дальняя дорога и казенный дом». Вот, например,

(disclaimer: это НЕ наезд на тестировщиков и не оспаривание мифов, а только замечания об общности их формулировок)

Миф первый: уборка помещений — это скучно.

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

Миф второй: уборка — это просто.

Часто говорят также, что уборка не может быть ТАК сложна, так как обычные
люди постоянно убирают в своих квартирах…

Миф третий: уборщицы всего лишь подбирают мусор.

Уборщицы действительно занимаются подбиранием мусора, но это далеко не единственная цель их деятельности…

Миф четвертый: машины заменят уборщиц, и они станут ненужными.

С развитием компьютерных технологий все более распространенным становится мнение, согласно которому уборка помещений людьми скоро вообще исчезнет…

Миф пятый: уборщицы не ладят с офисными сотрудниками.

Вполне понятно, почему этот миф так распространен… Не все знают, что многие уборщицы являются бывшими офисными сотрудниками…


А теперь можете перечитать статью, и она заиграет перед вами новыми красками…
+1.

Обобщение сыграло злейшую штуку.

Плюс системности в рассуждениях переводимого автора нет.
Факт первый: тестирование — это скучно.
Не всё конечно, но примерно 3/4 всех тестеров это мануальщики тестирующие UI и его работу. Остальных да, эти факты не касаются.

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

Факт третий: тестировщики всего лишь ищут ошибки.
Ответственность это к лидам и прочим манагерам. На больших продуктах у тестера ровно столько же влияния на дизайн решения, сколько у анонимуса в интернете. 99% времени тестировщики ищут ошибки.
Ещё покину один «миф»: я пишу на haskell и мне не приходится тестировать мой код, всё и так работает.
Это полумиф. Безусловно, если Haskell-программа скомилилась, — значит, работает. Но она может работать не правильно. Ошибки логики там тоже можно допустить… Хотя сам дизайн языка и программ отсекает львиную долю ошибок, возможных в императивных языках. Так что тестировать все же придется, — на то есть GHCI и QuickCheck. Опять же, от регрессий язык полностью страхует…

Вы-то, конечно же, это знаете, но чтобы другие чего про Haskell не думали.

Кстати, в Лаборатории Касперского есть должность SDET — Software Design Engineer in Test. В моем отделе два SDET'а занимаются очень интересными и любопытными вещами (Load Testing, Performance Testing, другие автоматические тесты...). У них есть куча инженерной работы. Есть и инструменты красивые. И графики там тоже рисуются очень-очень. :) В общем, работа — интересная и не простая.
> язык полностью страхует…
НЕ страхует.
Честно говоря статья мне и в оригинале не понравилась. В целом ниочем. Плюс выдранные из контекста высказывания тех или иных товарищей. По-моему такие мифы и придумывают авторы таких статей.

Почитайте лучше упомянутого в статье Виттейкера,
цикл 7 plagues of Software Testing, перевод jnechaeva
И the future of software testing, коллективный перевод
Sign up to leave a comment.