Несмотря на все перечисленные плюсы, у ручного тестирования есть один большой минус, и имя ему «человеческий фактор». Тестировщик может пропустить ошибку из-за невнимательности, отсутствия опыта или банальной усталости. И тогда нам на помощь приходят машины!
Автоматизированное тестирование. В данном случае новый софт тестируется с помощью специальных программ — автотестов. Естественно, такие тестирующие программы должны быть кем-то написаны. Но однажды созданные автотесты можно использовать неограниченное количество раз, что значительно удешевляет и ускоряет тестинг.
Неоспоримый плюс автоматизированного тестирования заключается в отсутствии человеческого фактора типа усталости или невнимательности. А кроме того, автотесты помогают понять, как будет работать софт в ситуациях, которые сложно воспроизвести вручную, например при высокой нагрузке на сайт.
Казалось бы, есть только что написанная программа, есть программа-тестировщик: напустите их друг на друга — и получите результат. Человеческое участие больше не нужно! Однако без специалистов в данном случае также не обойтись. Причем эксперт по автоматизированному тестированию должен знать и уметь больше, чем ручной тестировщик.
Для работы авто-QA необходимо знать один, а лучше несколько языков программирования: чаще всего это Java и Python. Также они часто используют в своей работе такие инструменты, как PyTest или Selenium для написания тестировочных кодов. И по мере профессионального развития, как правило, становятся разработчиками. А начинают как раз с ручного.
Типы тестирований. Существует огромное разнообразие тестов, которые мы не будем рассматривать детально (мы же не собираемся учиться на тестировщиков — по крайней мере, по этой книге). Упомяну только основные виды тестирования, чтобы вы понимали, насколько масштабна эта сфера деятельности.
●
●
●
●
●
Если вы планируете заниматься наймом тестировщиков, вам также надо знать, какие есть способы тестирования, и свободно оперировать следующими терминами:
●
●
●
Общаясь с тестировщиком, мы всегда спрашиваем, занимался он ручным или автоматизированным тестированием, какие виды тестирования осуществлял, с помощью чего делал автотесты, писал ли скрипты самостоятельно. Если да, то на каком языке программирования.
Глава 12
DevOps и системное администрирование
О том, кто такие системные администраторы, мы уже говорили. Если кратко, то системный администратор берет на себя функции, связанные с поддержкой и эксплуатацией IT-инфраструктуры в компании. Набор обязанностей системного администратора, как правило, зависит от того, какое оснащение есть в компании: пара компьютеров с принтером или сервера и сложные коммуникационные системы.
В современных условиях активно развивается новая философия сервисной деятельности в IT, и называется она DevOps. Что это значит?
Еще в начале 2000-х было принято четко разграничивать специальности, связанные с разработкой и эксплуатацией ПО. То есть были программисты, создававшие софт, и системные администраторы, которые отвечали за то, чтобы этот софт корректно работал на серверах.
По мере того как начали внедряться гибкие технологии разработки (Agile), от системных администраторов стала требоваться более активная обратная связь. Таким образом, стало развиваться более тесное сотрудничество Developer (разработчиков) и Operation (службы эксплуатации).
В 2005 году компания Yahoo! приобрела интернет-сообщество фотографов Flickr, и им понадобилось переместить данные и сервисы из Канады в США. Для этого нужно было разработать новое ПО.