Автор: доктор Vu Nguyen, преподаватель, директор Инженерной службы KMS Technology
Перевод: Колесникова Виктория, инженер-тестировщик компании Bercut, Telegram: t.me/lifeoftesting
Определяющий фактор для успешного применения автоматизации тестирования программного обеспечения - выбор и использование правильного набора средств автоматизации тестирования. Это сложная задача, особенно для тех, кто раньше не сталкивался с автоматизацией тестирования, поскольку на рынке существует очень много инструментов, каждый из которых имеет разные сильные и слабые стороны. Нет инструмента, который бы соответствовал всем требованиям автоматизированного тестирования. Это затрудняет поиск подходящего решения. Узнайте, как правильно выбрать средство автоматизации для вашего проекта из приведенного ниже подробного сравнения Katalon Studio с другими популярными инструментами для автоматизации тестирования на рынке.
В Твиттере широко обсуждалось, кто должен отвечать за создание кода автотестов. Судя по тому, что я читал, люди разбились на два лагеря:
Группа, выступающая за то, что разработчики должны отвечать за создание большей части (если не всего целиком) кода автоматизации. Их основной аргумент в том, что разработчики лучше знают, как программировать, больше знают о структуре кода и его внутренней кухне, и поэтому лучше всего разбираются, как подцепить к нему код автотестов (в отличие от слепых попыток сделать это через пользовательский интерфейс).
Группа, ратующая за то, что тест-автоматизация требует отдельных, занимающихся только этим, инженеров-автоматизаторов, особенно для тестов выше юнит-уровня. Аргументируют это они тем, что для создания и поддержки хороших автотестов нужны специфические навыки, простирающиеся дальше навыков разработки.
В конце позапрошлого года я опубликовал статью, посвященную примерно этой же тематике. Перечитывая ее, я все еще согласен с собственным же мнением (что, безусловно, хорошо). Но пока я размышлял об этом, читал об этом и обсуждал этот вопрос с другими, я выявил несколько тонких (и не только) нюансов – а это тема для отдельной статьи.
Тест-автоматизация очень много для меня значит. Я выбрал эту специальность из множества доступных в поле разработки ПО. Когда я вижу, что она неверно применяется, или когда люди просто не понимают, что это такое – меня это бесит. У меня много вопросов к плохим процессам автоматизации, и сейчас вы узнаете об этом все!
Говорить «Это просто тест-сценарии»
Автоматизация тестирования – это не просто набор тест-сценариев. Это целый арсенал технологий, требующий дизайна, интеграции, и опыта. Разработка тест-автоматизации – это отдельная область. Когда вы говорите, что это всего лишь набор тест-сценариев – вы унижаете и оскорбляете ее. Это обесценивает те усилия, которых требует автоматизация, ведет к плохому масштабированию работы и отношениям «они против нас» между разработкой и QA.
Код тестов должен разрабатываться согласно таким же высоким стандартам, как и код продукта, но про это зачастую забывают. Это серьезно меня беспокоит, и стоит значительных временных и финансовых затрат благодаря своим последствиям. У меня много вопросов к плохому коду автотестов, и сейчас вы узнаете про это все!
Копипаста
Дупликация кода – это его рак. Особенно он свирепствует в тест-автоматизации, потому что шаги тестов зачастую повторяются. Но это не причина дублировать код! Используйте лучшие практики при создании кода, или готовьтесь к тому, что я забракую ваш код на код-ревью!
Жесткое кодирование конфигурационных данных
Автотесты должны быть способны запускаться в любом окружении без проблем. Не кодируйте намертво ссылки, логины, пароли и другие специфичные для конфигурации штуки! Считывайте их как ввод или файлы конфигурации. Нет ничего более раздражающего, чем переключить окружения и обнаружить – сюрприз! – что тесты не запускаются, хотя все значения в нем верны.
Хотите качественно подготовить продукт к релизу? В данной статье команда компании A1QA расскажет, как при грамотном планировании автоматизация тестирования поможет значительно сократить количество ручных проверок, ускорить процесс выхода на рынок и увеличить прибыль в меньший промежуток времени.
Нередко внедрение автоматизации начинается с поиска профессиональной команды, которая подбирает инструменты, разрабатывает решение. Это шаг верный, но не он должен быть первым.
С самого начала нужно решить, для чего же стоит внедрять автоматизацию и в каком объеме.
Грамотно разработанная стратегия позволит вам прочувствовать все преимущества автоматизации тестирования, а именно:
Получение более быстрых результатов тестирования;
Эффективное распределение ресурсов, направленных на тестирование;
Оптимизация затрат на обеспечение качества продукта и тестирование;
Безошибочное тестирование: качественный тест не допустит ошибки, которую может допустить человек;
Возможность более тесной интеграции тестирования с существующими процессами разработки продукта.
НА КАКИЕ ФАКТОРЫ ОБРАТИТЬ ВНИМАНИЕ ПРИ ПРИНЯТИИ РЕШЕНИЯ О ВНЕДРЕНИИ АВТОМАТИЗАЦИИ?
В докладе автор расскажет, как был организован запуск автоматических тестов (appium/javascript) в gitlab CI для нативного Android приложения на каждый Merge Request. Опишет, как можно встроить автотесты в существующий процесс сборки, как правильно настроить запуск тестов в docker image (тесты бегут в TestObject облаке), как произошла интеграция с клаудом и какие результаты это принесло. Tech stack: Gitlab CI, kubernetes, android, appium, javascript, testobject.
Привет! Меня зовут Артём, и я занимаюсь автоматизацией тестирования. Антипаттерны в разработке — довольно популярная тема. Но ведь в тестировании тоже есть свои "плохие советы", и они довольно забавно пересекаются с разработкой. Недавно мне на глаза попалась ироничная статья про антипаттерны в тестировании. Вашему вниманию!
Мы стараемся как можно скорее доказать, что неправы, потому что только таким образом можем развиваться. Ричард Фейнман
Есть много способов усложнить жизнь командам автоматизации тестирования. Если вы разработчик или системный архитектор, и недолюбливаете кого-то из тестировщиков, то эта статья — для вас. Вы найдете в ней сокровенное знание, вдохновившись которым, вы научитесь делать интерфейс любого приложения практически непригодным для тестирования.
Ну, а если вы добрая душа и уважительно относитесь к чужому труду, то можете рассматривать эту статью как набор антипаттернов.
В докладе говорится о новых возможностях Open Source фреймворка JDI для Автоматизации UI Тестирования и не только на языках Java, C# .Net и Python. Архитектор проекта расскажет «всю правду» о своем детище, а Вы можете послушать, сделать выводы и, возможно, использовать это решение для Вашего следующего проекта.
Бывали ли вы в доме маляра, требующем покраски, или в доме плотника, в котором не закончена отделка? Видели ли вы машину механика, которая прямо-таки требует починки? Почему, с вашей точки зрения, это происходит? Возможно, они слишком заняты работой, оплачивающей их счета? Или просто не хотят тратить время на то, что они и так целый день делают на работе, еще и дома? Как бы там ни было, кажется, что зачастую мы не применяем навыки, в которых мы достигли совершенства, к вещам, находящимся под нашим собственным контролем.
То же самое происходит и с тестировщиками. Мы классно находим баги, и все равно жалуемся. Мы жалуемся, что в нашей автоматизацией куча проблем. Мы отлично находим проблемы для других людей, но забываем применять этот навык, чтобы найти проблемы в своих собственных тестах. Наши тесты сломаны, и с этим надо что-то делать. Их надо тестировать!
Почему мы доверяем нашу жизнь машинам? Как известно, человек – существо ленивое. Если кто-то может постирать, раскопать, подумать (?) за нас, то мы с легкостью вверяем ему наши обязанности и переключаемся на более интересные вещи (прокрастинация в социальных сетях не считается ).
Но есть еще один немаловажный аспект: автоматизация любого процесса – это увеличение производительности. Профит правильно заавтоматизированного процесса улетает в космос. Возможности современных машин поражают воображение. Следовательно, не воспользоваться в тестировании благами автоматизации, наверное, было бы самой большой ошибкой в сфере разработки программного обеспечения.