«Ваши попытки должны были сначала потерпеть неудачу, чтобы вы были готовы ухватиться за спасательный круг, который был вам брошен».
?.
Херригель «Дзен и искусство стрельбы из лука» Вы ручной тестер? Нет времени на автоматизацию тестирования? То, что необходимо протестировать, нельзя автоматизировать? Вы уже достигли вершины, но хотите увидеть чужое путешествие? Тогда прошу под катом! Я начал свою карьеру тестировщика в небольшой компании, занимающейся тестированием программного обеспечения для самолетов.
Было только автоматизированное тестирование, все процессы уже были выстроены, в целом — не очень сложная работа.
Они показали мне основы написания кода на Visual Basic, показали, как запускать тесты, и отправили в долгое путешествие.
Потом мои студенческие годы закончились, мне захотелось более интересной работы, и я перешёл в другую компанию простым ручным тестировщиком.
Здесь нужно сделать небольшое отступление — в небольших кампаниях/отделах тестировщик иногда выполняет целый букет задач, не связанных напрямую с тестированием.
Например, развертывание тестовой среды, ведение нескольких веток продуктов в системе контроля версий, поддержка выпущенных продуктов и т. д. Я оказался именно в такой ситуации.
Поначалу все было хорошо — мы делали свой первый проект, я все делал вручную, и у меня еще было много свободного времени.
Но постепенно проектов становилось все больше, программисты постоянно исправляли ошибки, выкатывать сборки приходилось чуть ли не каждый час.
В какой-то момент я заметил, что на реальное тестирование трачу только 40% своего времени.
Остальное время занято какой-то левой деятельностью.
Тогда я понял первое простое правило :
1. Если вы тестировщик, то можно и нужно автоматизировать не только тестирование
Тогда я составил простую таблицу в Excel и отметил все задачи, на которые тратилось время.И я нашел то, на что тратилось больше всего времени - банальное выкладывание билдов (обновление файлов, экзешников и т.п.
).
Вечером дома я покопался в Яндексе и нашел как убрать эту активность в 0. Посмотрел синтаксис билдов на нашем билд сервере, и сделал автоматическую раскладку всего этого добра.
После этого я связал запуск сборки с отметкой в исходном коде, и радовался жизни — у меня снова появилось свободное время! Тогда я понял второе простое правило :
2. Автоматизируйте то, что принесет вам максимальную выгоду во времени
Постепенно проекты разрастались, и появились системы, расположенные на нескольких серверах.И, о ужас, на серверах не заработали конфиги разработчиков! Но по какой-то причине(!) программисты не захотели их редактировать.
Я снова начал возиться со сборочной машиной и обнаружил, что конфиги можно легко менять на этапе сборки.
Тогда я понял третье простое правило :
3. Полностью изучить работу сборочной машины
Примерно в это же время в моем распоряжении появилась первая виртуальная ферма на Hyper-V. Через пару месяцев я уже не мог представить, как жил раньше.
Поднять испытательные стенды оказалось так легко и просто! Отсюда четвертое простое правило :
4. Поднимаем сервер виртуализации
На тот момент компания очень сильно разрослась, и вдруг выяснилось, что для того, чтобы просто создать аккаунт в домене, нужно написать админам заявку с обоснованием и подтверждением.Мы терпели это какое-то время, а потом я сделал свой тестовый домен.
Через месяц я понял, что нужен не только сервер виртуализации.
Отсюда пятое простое правило :
5. Наконец создайте свой собственный тестовый домен
Когда я поднял тестовый домен, обнаружил на сервере забавную штуку — Power Shell. Как оказалось, без интерфейса можно многое сделать — создать пользователей, настроить IIS, составить правила в фаерволе, установить службы и т. д. Кроме того, я узнал, что делать это можно не только на своей машине! А если какую-то задачу на удаленной машине нужно выполнить более трех раз, я всегда пишу скрипт — экономия времени огромная.
В целом, шестое простое правило :
6. Понимание PowerShell/cmd/bash
В какой-то момент я понял, что еще до того, как начал автоматизировать тестирование, я автоматизировал все остальное! Тогда я взялся делать свой первый огромный (как мне тогда казалось) проект по автоматизированному тестированию одной огромной чудовищной бизнес-функции.Я делал это долго, мучительно, но все же сделал.
Но костылей, неявных зависимостей, хардкода и прочего добра было так много, что как-то поддержать это творение воспаленного ума оказалось невозможно.
Именно тогда я понял, почему эти умные программисты допускают столько ошибок.
Но это была не последняя созданная мной чудовищная система — их было гораздо больше.
В общем, самое главное седьмое правило :
7. Хотите автоматизировать? Учиться Верно программа! Читайте книги по архитектуре программного обеспечения.
Вот тут-то и проявила себя цитата, включенная в эпиграф.
Только завершив несколько ужасных проектов, сломав немало зубов, поддерживая свои творения, я начал понимать, что пишут в своих книгах эти умники.
Только тотальная нехватка времени и тупость копирования файлов из одного места в другое подтолкнули меня на путь автоматизации.
Только после полноценного вхождения в команду разработчиков я начал писать относительно нормальный код. И тогда я вмешался.
И следующие несколько книг в моем плане чтения посвящены программированию.
Более того, я не стану программистом, это не мое.
Ну, я уже стал тестировщиком программирования.
И самое главное, не нужно бояться автоматизации.
Это не всегда огромный объем работы, способный принести в будущем мифическую прибыль.
Осмотреться! Можно ли что-нибудь сделать с помощью мыши? С вероятностью 95% это можно заскриптовать.
Это пятнадцатый раз, когда вы выполняете ручные операции? Это означает, что они должны были быть написаны еще вчера.
И еще одно пожелание.
Я сам этому научился, обучайте своих коллег — видите, интереснее работать с людьми, которые делают красивые, сложные проекты, чем носить грязный свитер и страдать от своей работы.
Желаю вам интересных багов, хороших проектов и дружных коллег-программистов! Теги: #тестирование #тестирование ИТ-систем
-
Как Sfp, Sfp+ И Xfp Делают Нашу Жизнь Проще
19 Oct, 24 -
Бесконтактный Тачпад
19 Oct, 24 -
Что Такое Mycentria?
19 Oct, 24