Еще до 80-х годов тестирование проводилось или для программного обеспечения структур министерства обороны, или для значимых крупных компаний в области технологий.
Если говорить о самом понятии тестирования программного обеспечения, которое мы знаем сейчас, то переход в данную форму произошел около 10 лет назад, когда на рынке появилось много разнообразных программ, стремительно стали развиваться соцсети и дополнительные к ним компоненты. Сегодня модно создавать сайты компаний, чтоб клиенты могли сразу ознакамливаться с полным перечнем продукции. И, создавая их, кто-то должен следить за качеством работы. Давайте детально разберемся, тестировщик - что это за профессия?
Сегодня
тестировщик - это специалист, который анализирует программное обеспечение на предмет соответствия его техническому заданию, установленным заказчиком, и проверяет на наличие багов в работе. В крупных компаниях существуют целые отделы тестирования ПО, которые коммуницируют с аналитиками, разработчиками, менеджерами проекта.
Основная
цель тестирования - обеспечение качества продукта и предотвращение появления дефектов в дальнейшем.
Критерии качества продукта:
- Maintainability (мобильность) - доступность к установки на разные платформы, т.е. разработка: веб-версия, мобильная версия, разрешение экрана для разных девайсов.
- Efficiency (эффективность) - качественная работоспособность и экономные затраты ресурсов продукта.
- Portability (адаптивность) - связан с первым пунктом - адаптивность к разным интерфейсам: сайту ПК, мобильной версии сайта, мобильному приложению. Продукт должен гармонично выглядеть на разных платформах и быть связанным между ними.
- Reliability (надежность) - стойкость к разным ошибкам работы ПО. Как часто нам говорят системные администраторы компаний - "перезапусти программу и она заработает", то это должна быть рабочая схема для надежности продукта.
- Functionality (функциональность) - четкость работы разных функций и их необходимость. Иногда некоторые функции в приложениях имеют место быть лишними и бесполезными.
- Usability (удобство) - степень удобства и простота использования.
Процесс обеспечения качества включает в себя:
- Анализ создаваемого ПО и детальная проверка исходного технического задания от заказчика. В создаваемом продукте желаемые функции не должны противоречить друг другу - это также под контролем тестировщика.
- Разработка тестовых сценариев. Поскольку тестирование - это взгляд на программное обеспечение со стороны пользователя - необходимо составить сценарии, в которых будут указаны исходные данные и желаемый результат. К примеру: у Вас есть окно входа в систему и логический переход в аккаунт.
- Составление тест-кейсов. Под этим понятием подразумевают действия пользователя для достижения результата. По примеру выше: для входа в ваш аккаунт необходимо корректно ввести данные пользователя. Тестировщик проверяет как правильно внесенные данные пользователя, так и неверные. Каждый прописанный тест-кейс документируется для фиксации возможных ошибок (если одно из полей неверно, или же если два из полей неверных и т.д. - это все отдельные тест-кейсы).
- Создание среды тестирования. Для этого на сервере забирают определенные ячейки памяти и создают имитацию версии приложения, в которой проводят тестирование.
- Проведение тестирования.
- Анализ прогонов автотестов/тест-кейсов, написание баг-репортов и отчетов, документаций.
Каждому тестировщику необходимо иметь аналитический склад ума для возможности качественно анализировать все данные, уметь структурировано составлять отчетности, обладать усидчивостью и внимательностью. Это важные soft-skills для хорошей и качественной работы.
Заповедь тестировщика - "
не бывает идеального продукта, бывают плохо протестированные". Помимо основных развитых качеств, будет хорошим дополнением обладать критическим мышлением, что способствует мыслить скептически и сомневаться даже в логических цепочках действий пользователя. В таком случае тестировщик ищет как доказательства, так и опровержения правильной работоспособности того или иного функционала программы. Наряду с критическим мышлением плюсом будет обладание любознательностью и желанием всегда обучатся, поскольку технологии непрерывно развиваются и появляются все больше и больше новых знаний.
Есть несколько типов команд в компаниях, в которых можно получить работу: - Outsource (команда целостно работает удаленно на проекте заказчика с внешнего рынка);
- Outstaff (смесь команд разных компаний на одном проекте, т.е. Вы можете даже самостоятельно представлять компанию на проекте заказчика);
- Product (непосредственно компания производит продукт, т.е. является самостоятельно своим заказчиком).
Основные направления в тестировании делятся на два типа:
manual QA engineer (специалист, который пишет тест-кейсы и вручную тестирует продукт по ним) и
QA automation (специалист, который пишет код для автоматизации процесса тестирования). Во втором случае необходимо будет знать язык программирования и уметь кодить по прописанным ранее тест-кейсам. Автоматизатор - это программист, который тестирует продукт.
Нет определенной иерархии ступеней с которых необходимо начинать свой путь в сфере IT. Вы можете начать как с мануального тестирования, так и с автоматизатора. Средний период обучения в обоих случаях занимает три месяца. И востребованность на рынке обеих профессий сегодня находится на равных.
Да, мануальное тестирование будет немного легче в получении знаний. Вам нет необходимости изучать язык программирования, если на начальном этапе это составляет трудность в восприятии объема информации. При получении должности мануального тестировщика и набравшись опыта, Вы запросто сможете выучить определенный язык программирования и перейти в автоматизацию.
Но, значительный плюс того, что Вы начнете сразу с автоматизации - старт заработной платы на уровне разработчика, и аналогичные денежные шаги роста по карьерной лестнице. Как правило, первоначально автоматизатор может рассчитывать на оплату труда в размере 1000$, мануальщик - на 600-700$. Средняя заработная плата мануального тестировщика на должности Middle составляет 2000$, для должности Senior - 3400$. Для автоматизатора цифры будут интереснее: Middle - 2500$, Senior - 4000$. Есть также зависимость заработной платы от типа языка программирования, которым владеет
QA automation. C#/.NET и Java являются наиболее оплачиваемыми языками.
У многих может возникнуть вопрос
"нужен ли английский язык тестировщику?". Однозначно, наличие знаний будет для Вас огромным преимуществом. Тестировщики более высокого уровня участвуют в митингах и общаются с клиентами. Но на начальном этапе Вам будет достаточно знать терминологию тестирования и обладать базовыми знаниями иностранного языка, которым можно научиться всего за несколько месяцев.
2021 год стал пиком востребовательности и показал резкий скачек заинтересованности в сфере IT-услуг. По прогнозам аналитиков в этом году также мог быть рост и на сегодняшний момент ситуация практически стабилизировалась. Если говорить только об профессии тестирования, то всего 17% среди всех сотрудников потеряли работу. При этом это были в 98% случаев интерны, только окончившие образовательные курсы и получившие первое место работы. Эта статистика доказывает, что сфера IT оказалось самой стабильной при чрезвычайной ситуации в стране.
Правильный выбор - выбрать карьеру в IT. Еще более верный выбор - скорость, легкость, эффективность. Не стоит терять время на высшее образование, изучение сложных технологий и наук. Через три месяца вы можете начать работать на европейские и американские компании, получать доход в долларах. Эффективность
курсов тестирования доказана тысячами учеников. Теперь и вы знаете что это за профессия тестировщик. Пришло время действовать!