За последние 5 лет механизмы обеспечения качества ПО путем автоматизированного тестирования революционно изменились. Исторически сложившийся подход к автоматизации, так называемые, UI Record & Play инструменты, «по верхам» решил задачу обеспечения качества в требуемые сроки и за относительно разумные деньги. Разрабатывая («записывая») и запуская («воспроизводя») тесты («действия конечного пользователя») мы получали единообразное, повторяемое и относительно недорогое автоматизированное тестирование приложений. Более того, ни серьезные инженерные навыки, ни глубокое знание промышленного программирования не требовались для данного подхода. Хотя, для эффективного использования этих сложных инструментов, безусловно, необходимы специализированные знания вкупе с богатым опытом промышленного применения.
К сожалению, сегодня эти подходы зачастую являются либо экономически несостоятельными, либо технически неосуществимыми. Это, в первую очередь, объясняется экспоненциальным взрывообразным ростом UI-разнообразия. За последнее время появилось ну очень большое количество оконных библиотек – даже для такого, казалось бы, стандартного типа приложений, как десктопное. А если брать WEB и уж тем более мобильные платформы, то здесь существует целый спектр принципиально отличных друг от друга UI-компонентов. Таким образом, из-за многообразия интерфейса пользователя разработка одного инструмента, способного работать с любыми типами UI, либо физически невозможна, либо его использование является чрезвычайно трудоёмким, технически сложным и, соответственно, экономически невыгодным.
Не меньшую роль в «отмирании» топовых инструментов автоматизации «вчерашнего дня» играет и, так называемая, «усталость» системы. Добавление разнообразных новых функций к исторически сложившемуся «программному монстру» – очень непростая инженерная задача. В результате, у подобного приложения будет либо «заоблачная» цена, либо слишком долгое время выпуска новых фич, либо недостаточно высокое качество. На практике у топовых инструментов «вчерашнего дня» наблюдаются все перечисленные недостатки. Именно поэтому, новые QA Automation инструменты должны быть более мощными и гибкими по сравнению с решениями вчерашнего дня, концептуально отличными от «вчерашних» решений.
QA Automation Engineer сегодня совмещает в себе качества и умения разработчика, тестировщика и DevOps специалиста.
На сегодняшний день разработка собственных вспомогательных «инструментов» автоматизации является обычной практикой для QA Automation специалиста. В наше время автоматизатор должен знать два-три языка программирования, а также уметь применять десятки библиотек и инструментов для задач автоматизации тестирования.
Существует множество подходов к обеспечению должного качества ПО. В ISsoft для решения большинства QA задач мы придерживаемся именно «гибридного» подхода. Так, автоматизация особенно эффективна при регрессионном тестировании, а также при проверках, содержащих большой объем E2E сценариев и данных. Тем не менее, ручное тестирование по-прежнему актуально и необходимо, ведь, заменить человека на все 100% физически невозможно — особенно в QA областях, которые тесно связаны с особенностями домена и требованиями в целом. Наш опыт подсказывает: тесное сотрудничество специалистов по ручному и автоматизированному тестированию с другими участниками проекта на всех этапах разработки ПО, т.е. «гибридный» подход – это оптимальное решение.
Наши разработчики следуют высоким стандартам обеспечения качества ПО:
- Формулируют и стараются исполнять «от и до» специфические для языка (технологического стэка) стандарты кодирования, адаптированные под нужды конкретного проекта;
- Внедряют и следуют процедуре code review, используя целый ряд специализированных решений;
- Покрывают код UnitTest-ами в широком смысле этого слова;
- Эффективно сотрудничают с QA-специалистами; в том числе, принимают участие в автоматизированном тестировании ПО.
Для обеспечения по-настоящему высокого качества создан автономный QA-отдел, с независимым подотделом автоматизированного тестирования. В ISsoft трудится около 40 специалистов-автоматизаторов и более 100 спецов по ручному тестированию, многие из которых являются «универсальными солдатами» — и ручными тестировщиками, и автоматизаторами, и DevOps инженерами в одном флаконе… Для обеспечения сверхвысокого качества в требуемые сроки и в рамках предоставленного бюджета необходимо эффективное сотрудничество всех IT-специалистов, что и обеспечивается Process, Group и Project менеджерами. Так, из нашего опыта «гибридный подход» к обеспечению качества ПО – действительно оптимальный.
Антон Семенченко, QA Automation Department Manager