Тестирование авто: купить, продать и обменять машину

Содержание

Как (авто)тестировать Монстра / Хабр

Здравствуй, уважаемый читатель.

Сфера IT в банках весьма обширна. И, думаю, сообщество банковских IT-шников представлено на Хабре достаточно широко. В этой статье затронем тему тестирования специфического банковского ПО. Из-за некоторой закрытости такого рода организаций информации о происходящем внутри просачивается довольно мало. Давайте приоткроем завесу тайны.

Итак, позвольте представиться. Меня зовут Алексей, и я алк… тестирую АБС ЦФТ-Банк.


Что за Монстр

ЦФТ-Банк – автоматизированная банковская система (АБС) разработки ООО «Центр
финансовых технологий». Это ядро IT-экосистемы Банка. И, де-факто, ЦФТ-Банк – стандарт АБС среди российских банков.

В АБС ведется баланс по всем счетам; учитываются все клиентские договоры, счета, операции; производится прием и отправка межбанковских переводов. Все средства, привлеченные и выданные Банком, учитываются здесь.

Наша АБС сейчас – это:


  • 20. 000 таблиц с прикладными данными в СУБД Oracle.
  • 30.000 различных пользовательских операций. (Здесь же нужно учитывать всевозможные вариативные цепочки операций, зависящие от конкретного кейса).
  • 19.000 активных зарегистрированных пользователей.
  • 35 TB данных в СУБД. (Подготовка копий БД для тестовых стендов – тема для отдельного разговора).

Тестируй меня полностью

Монстр – живой. Круглосуточно. Круглогодично. Все возможные праздничные дни и новогодние каникулы – на вес золота. Это время, когда можно вкатывать большие изменения, импортировать новые филиалы, проводить регламентные работы.

Кроме таких больших обновлений есть и еженедельные релизы, ведь Банк должен постоянно улучшать свои продукты. А сколько «веселья» добавила работа во время активности всем известного вируса… эти срочные «ковидные» поставки будут долго сниться нашим разработчикам и тестировщикам.

Важно понимать, что у системы достаточно высокая связанность – по данным, управлению, содержимому. Зачастую очень сложно или даже невозможно предугадать степень влияния, казалось бы, минорного изменения на различные процессы в АБС.

В связи с этим все изменения проходят многоступенчатое тестирование – модульное, функциональное, интеграционное. И его финальная часть – регрессионное. О нем и поговорим.


А можно всех посмотреть?

Ввиду ограниченности ресурсов, как серверных, так и человеческих, на еженедельных релизах приходится проводить строгий «кастинг» тест-кейсов. Тест-менеджеры отобрали и согласовали список из 1.500 тест-кейсов. Один кейс занимает от 5 минут у опытного тестировщика. А иногда требуется и повторный прогон.

И тут, определенно, нужна автоматизация.

Но – система весьма специфичная и закрытая, и готовых открытых инструментов для ее тестирования просто нет.


У вас роботы не той системы

Различных подходов к автоматизации тестирования ЦФТ-Банк достаточное количество.

Но, все «не без греха».


  • В некоторых банках пытаются реализовать UI-тестирование. Проблема в том, что тут нативный desktop-клиент, совершенно не дружественный к автоматизаторам.

Например, науке известны случаи применения TestComplete. Но для этого приходится много костылить и использовать недокументированные фичи приложения. В итоге такие тесты получаются медленными и хрупкими.


  • Отдельные компании-интеграторы предлагают свои варианты. Здесь разброс от применения HP UFT до полностью самостоятельных разработок. Некоторые динамичные компании даже научились неплохо тестировать UI. Но тут свои сложности с пересаживанием на иглу другого поставщика (если понимаете, о чем я).
  • Есть даже решение от самого вендора системы. Но Монстр породил Монстра – этот инструмент весьма ресурсоемкий и чрезмерно требовательный к ресурсам для обработки результатов тестирования.

Мы пойдем своим путем

После проведения исследований и пользуясь преимуществом знания внутреннего устройства системы, решили есть Монстра по частям и использовать при этом подходящие инструменты:


  • Есть в системе функционал, вся реализация которого зашита в отдельных процедурах Oracle. Никакой логики на клиенте, только кнопка «Запуск». Будем вызывать процедуры напрямую!
  • Есть проверка продуктовых настроек – не изменило ли очередное обновление данные в таблицах, которые не должны меняться. Выполняем select и сверяем с эталонным результатом!
  • Есть use case с запуском нескольких операций подряд. Будем эмулировать запросы клиента! Тут нам помогает трехуровневая архитектура – между нативным десктопом и СУБД есть http сервер приложений. Немного наблюдательности и становится возможным отправлять запросы по http, идентичные клиентскому приложению.

При этом мы исключили из тестирования само клиентское приложение. Но считаем это допустимым ввиду его редких и несущественных изменений. Зато в плюсах – высокая скорость работы тестов и их стабильность.

Остается добавить динамическое вычисление некоторых параметров в запросах, подготовку данных для тестов, анализ результатов работы вызываемых операций… Здесь становится критичным знание внутренностей Монстра – в каких полях каких таблиц отслеживать результат.


Монстр любит разнообразие

Применение такого диверсифицированного подхода к автоматизации тест-кейсов существенно упрощает автоматизацию и позволяет увеличивать долю автоматизированных тестов в регрессе.
На данный момент мы достигли показателя в 30% автоматизации критичных кейсов. И теперь наращиваем темп.

Заметным плюсом отказа от автоматизации через GUI стала скорость работы автотестов. Имеющийся набор из 491 теста проходит в среднем за 32 минуты. Для сравнения, ручной проход этих тест-кейсов занимал суммарно 34 часа.

Стабильность тоже на высоте. Проблемы возникают зачастую из-за отсутствия нужных тестовых данных на тестовом стенде. Подготовка данных для сквозных сценариев – отдельная, не тривиальная задача, над которой мы только начали работать.

Впереди еще много вызовов от Монстра, главное – найти подходящий инструмент для каждой задачи.

Будет интересно, если вы поделитесь своим опытом тестирования ЦФТ-Банк.
Твой ход, @другойбанк

Тест автомобилей на скорости в 200 км/ч, на что способны современные авто?

200 км/ч, кто больше?

Для одних автомобилей 200 км/ч считается пределом, другие пролетят его мимоходом и даже не заметят. Давайте вместе посмотрим и убедимся, насколько приспособлены современные автомобили к передвижению со скоростью 200 км/ч. Удобно ли лететь быстрее стрижа в современном автомобиле, и какие всевозможные неудобства поджидают автомобилистов при этой скорости.

 

Раньше все было по-другому, а именно, чтобы разогнаться до скорости 200 км/ч – это было чем-то сверх необычным, словно преодолеваешь звуковой барьер! Мало каким из автомобилей это удавалось. А кому в этом плане все же повезло заполучить подобный автомобиль, особого комфорта в нем не ощущали, только и знай, что следи постоянно за поведением авто на дороге, а то чего доброго можно и улететь с нее. Мда.., в 90-е годы понервничать приходилось серьёзно и не мало, потные ладони на руле, сосредоточенный взгляд, постоянное чувство опасности. А сейчас также, или все изменилось? Давайте вместе разбираться.

 

Тестирование было проведено командой немецкого автомобильного журнала AutoBild.

 

200 км/ч не предел. Границы преодолены.

Сегодня конечно все по-другому. По крайней мере, если вопрос рассматривать с технической точки зрения. В настоящее время автомобили нового поколения, т.е. как минимум из Европы или Америки мощностью более 140 л.с. и с правильной аэродинамикой (седаны, кабриолеты, купе, универсалы) способны превзойти эту магическую цифру. Несколько десятков секунд напряженного разгона и вот уже стрелка спидометра лежит за отметкой в 200 км/ч. Да что там 200 км, даже маленький хэтч Opel Corsa OPC сегодня может летать со скоростью 230 км/ч. Более того, даже автобусы типа VW T6 2.0 TDI по паспорту обладают максималкой более чем в 203 км/ч, где шум завывающего за окном ветра никому не будет досаждать.

 

Но все эти показатели так и остаются на бумаге даже в том плане, что многие автомобили способны на излете сил преодолевать магический барьер, но… А что дальше? Смогут ли они долго двигаться в таком режиме не сводя с ума своих пассажиров? Ведь физику не изменишь и существуют аэродинамические ограничения. Сопротивление воздуха в конце-то концов увеличивается значительно и в разы. А вот физиология самого человека не всегда способна выдержать такие гонки, тем-более если автомобиль не обладает достаточной или великолепной управляемостью. Факторов влияющих на комфорт водителя и пассажиров множество. Это, как мы уже выше сказали, то же сопротивление воздуха и возможности самой тормозной системы автомобиля, та же курсовая устойчивость и отзывчивость самого водителя.., и т.д. и т.п.

 

Не стоит забывать конечно и о том, что летящий со скоростью 200 км/ч автомобиль за 1 секунду преодолевает расстояние в 55 метров. А это уже не шутки!

 

И так после всего сказанного расстановка сил ясна. Отсюда следует вывод, что не каждый водитель в том или ином автомобиле может справиться с поставленной задачей.

 

В этой истории нас интересует такая тема, -что происходит с автомобилями при скорости 200 км/ч. и на сколько может современная техника выдержать эту скорость? А также, -как чувствует себя водитель в тот самый момент? И последнее, что немаловажно, -сколько топлива сожжется при таких заездах?

 

В тестировании приняли участие десять автомобилей, от подержанного Mercedes-Benz модели C 180 с пробегом 420 тыс. км и вплоть до супер спортсмена, 580-ти сильного Porsche 911 Turbo S. Все они прошли замеры по уровню шума в салоне, потреблению топлива и по торможению со скорости.

 

Уровни измерений по всем автомобилям разнились. Для старичка Mercedes были сделаны некоторые поблажки, в упражнении на «торможение», для мощного американского пикапа Dodge Ram порог максимальной скорости был снижен до 195 км/ч (из соображений безопасности). У Mercedes-Benz V-Class возникли сложности в разгоне до 200 км/ч на тестовом 2.6 километровом полигоне. Главное, что расхождение в показателях разных автомобилей было в пределах погрешности и поэтому можно смело говорить об объективности проводившихся соревнований.

 

Дополнительные значения измерений: десять кандидатов должны были, как минимум, доказать возможность их ускорения в различных условиях. Погрешность спидометра была определена при помощи GPS технологий, также немаловажную роль в исследовании играли обороты двигателя при данной скорости. Помимо динамики с 0 до 200 км/ч было замерено время разгона, т.е. со 130 до 200 км/ч. Субъективно оценивалась шумность и прямолинейность движения.

 

В испытаниях на скоростях участвовали:

Abarth Spider

Audi Q5

BMW M550i

Dodge Ram

Lexus IS

Mercedes C-Class

Mercedes V-Class

Porsche 911 Turbo

VW Golf

VW Passat

 

Abarth Spider

Легкий, компактный и маневренный. Abarth Spider создан для того, чтобы быть быстрым и удобным в управлении на больших скоростях.

 

Да конечно, мощности для преодоления рубежа в 200 км/ч ему хватает и еще на скорости для водителя возникают непредвиденные неудобства.

 

Шумоизоляция у Spider Abarth сделана из рук вон плохо. Слышны серьезные завывания ветра и тот же шум покрышек. Прибавляем ко всему этому звук работающего на повышенных оборотах двигателя (меньшее из зол) и в конечном итоге получаем -86 дБ. Это много. Это примерно сопоставимо с громким криком или работой мотоцикла с глушителем.

 

Несмотря на легкий кузов при скорости 200 км Abarth сжигает топлива 17,7 литра на 100 км. Показатель незаоблачный, но и не малый.

На шестой передаче коленвал 1.4 литрового турбированного бензинового двигателя вращается со скоростью около 5.100 оборотов в минуту. Субъективно можно предположить, что двигателю очень непросто выдерживать такой темп езды и причем надо заметить, что 200 км/ч на спидометре это фактические 193 км/ч по GPS.

 

Audi Q5

 Передние двойные оконные стекла (многослойное стекло доступно за доп. плату в размере 150 евро) позволяют снизить уровень шума на скорости. Четырехцилиндровый двигатель 2.0 TFSI под капотом Audi Q5 неплохо изолирован и пробивается в салон незначительным звуковым сопровождением. Даже на скорости 200 км/ч проблем с досаждающими звуками на этом кроссовере не было, как и по аэродинамическим показателям.

 

Смотрите также: Самые мощные модели автомобильных брендов

 

Вместо 194 км/ч по спутнику шкала самого спидометра показывает скорость 200 км/ч.

Минусы: на высокой скорости рулевая колонка и педаль газа вибрируют, здесь сразу чувствуется, что скорость перешла за крейсерскую.

17,1 литра на 100 км -таков расход у Q5. Много это или мало? Для кроссовера это средний показатель, т. е. ближе к минимуму. В общем-то неплохо.

 

BMW M550i

Что такое 200 км/ч для BMW 5-Series? Да вообщем-то ничего особенного! Битурбированный мотор разгоняет двухтонный седан M550i менее чем за 15 секунд до выбранной скорости измерений.

 

Когда BMW пролетает мимо вас по левой полосе на восьмой передаче то знайте, в этот момент он расходует 16,9 литра на 100 км высокооктанового бензина. А спидометр и в том числе цифровой циферблат врут на целых 6 км.

Отличные показатели и по шумности в салоне, надоедливые аэродинамические шумы минимальны (главное, не забудьте закрыть окна), рокот шин почти не слышен.

Единственное «но» в машине, это рулевое управление, оно могло бы быть поотзывчивее на больших скоростях.

 

Dodge Ram

Большой и страшный поглотитель миль на шоссе.

 

Смотрите также: 12 самых быстрых пикапов современности

 

Этот здоровяк разгоняется до 195 км/ч шумно, но кажется очень легко. Почему не до 200? Действительно, с таким мощным большим мотором не составит ни какого труда перейти рубеж в 200 км, но… В Германии это запрещено законодательством и поэтому электронное ограничение установлено на скорости в 195 км/ч.

В утилитарном салоне на удивление неожиданно тихо. Восьмиступенчатая КПП хорошо справляется со своей задачей, т.е. не позволяет двигателю выходить на высокие обороты.

 

Сам спидометр, если можно так сказать, честный индикатор, имеет погрешность всего в 2 км.

Но вот расход топлива ужасен. Старый добрый американец любит покушать —35 литров на 100 километров!

 

Lexus IS

Lexus IS 300h -это маленькая, красивая премиальная японская классика.

 

Спидометр при скорости 200 км привирает на 8 км/час.

 

Гибридно- электрический привод отлично справляется со своей задачей, все благодаря изобилию крутящего момента, даже при скорости 160 км/ч динамика разгона вполне оправдывает цену на автомобиль.

Устойчивость на скорости находится на высоте, траектория движения седаном выдерживается неплохо.

Но вот что странно, гибридная схема не спасает автомобиль от высокого расхода топлива,  20 литров на 100 километров, это как-то не серьезно.

 

Mercedes C-Class

Старичок на полигоне! Повидавший виды Mercedes C180 все еще может устанавливать рекорды, несмотря на свой пробег в 420. 000 км и на недостаточную цепкость тормозов за время службы.

 

Экзамен на потребление горючего пройден Мерседесом 2008 года на отлично. 16,2 литра на 100 км. Показатель для седана девятилетней давности при скорости 200 км/ч достойный. При этом не радо забывать, что бортовой компьютер автомобиля «скрывает» три литра расхода топлива, а сам спидометр в итоге «съедает» на 100 км те же 5 км/час.

Автомобиль за время пробега не перегрелся, шумность его была субъективно невысокой.

 

Mercedes V-Class

Полигон со взлетной полосой в 2.6 км оказался недостаточным для того, чтобы разогнать мини-вэн до требуемой скорости. Mercedes V 250d сам по себе относительно нетороплив.

 

По шоссе он показал расход топлива в 21,5 литра на 100 км, т. е. дизельного топлива. Спидометр при этом демонстрирует довольно точные данные, всего лишь 3 км/ч погрешности.

И что сразу ощущается по сравнению с другими конкурентами, так это то,- в мини-вэне достаточно шумно, особенно неприятный звук происходит от самих наружных зеркал.

Так же логично, что при слабом боковом ветре мини-вэн ведет себя не так устойчиво и чувствует на дороге не очень уверенно, как-бы этого хотелось.

 

Porsche 911 Turbo

Самый спортивный автомобиль из представленой десятки — Porsche 911 Turbo, с его 580 л.с., который может разогнаться до 200 км/ч. за 9.2 секунды. Для сравнения,- другому спортивному автомобилю участвовавшему в этом тесте (Spider Abarth) потребовалось почти на 30 секунд больше времени, чтобы разогнаться до той-же самой скорости в 200 км.

 

Хорош Porsche не только при разгоне, но и при торможении. Этот спорткар филигранно умеет управляться с собой на высокой скорости.

Но вот что удивительно, двигатель машины работает почему-то очень громко, а рулевое управление слегка и своеобразно передает эту обратную связь с колесами назад, что ощущается водителем.

 

Впрочем по расходу топлива можно сказать, что купе достаточно экономное, расходует 18,3 литра на 100 км  при низких 3. 200 об/мин. на последней передаче. Погрешность спидометра составляет 6 км/час.

 

VW Golf

За рулем VW Golf TSI с 1.5 литровым двигателем можно чувствовать себя уверенно.

 

Главной особенностью модели является ее экологичность, которая не изменяет самому кредо Golfа и на высоких скоростях. Уровень оксидов азота выбрасываемых в атмосферу не велик и на скорости в 200 км/ч.

Четырехцилиндровый двигатель сжигает приемлемые 14,6 литров на 100 километров пути.

И хотя разгон до тестовой скорости занимает около 48 секунд (почти вечно) все равно все показатели его управляемости находятся в норме, само торможение происходит очень сносно, а погрешность спидометра составляет 7 км/час. Шумность не превышена.

 

VW Passat

Меньшего расхода бензина, чем у автомобиля Volkswagen Passat в этом тесте не было. На 100 километров Passat 2.0 TDI DSG при скорости 200 км/ч потребляет всего 12,0 литров, что на удивдение мало. Так же к большому плюсу можно отнести то, что он на такой высокой скорости работает довольно-таки тихо.

Двигатель при 3.250 оборотах на шестой передаче не привносит в естественный фон ни какого шелеста колес, ни приглушенного шум ветра за самим окном, одним словом никаких неприятных посторонних звуков не ощущается.

 

По опыту вождения можно сказать следующее, что Passat является идеальным автомобилем для долгих поездок, прямо настоящим пожирателем километров.

Погрешность спидометра у него также присутствует, но в разумных пределах.

 

И так уточним, насколько современные автомобили приспособлены ездить со скоростью 200 км/ч? Вывод: отлично приспособлены! Но Passat — вне конкуренции.

Автоматическое тестирование программного обеспечения для непрерывной доставки

Узнайте о различиях между автоматическим и ручным тестированием программного обеспечения и узнайте, как спланировать решение для автоматизированного тестирования для вашей команды.

Макс Рекопф

Соавтор

Автоматизированное тестирование — это применение программных средств для автоматизации управляемого человеком ручного процесса проверки и проверки программного продукта. Большинство современных программных проектов Agile и DevOps теперь включают автоматизированное тестирование с самого начала. Однако, чтобы в полной мере оценить ценность автоматизированного тестирования, нужно понять, какой была жизнь до того, как оно получило широкое распространение.

В те времена, когда ручное тестирование было нормой, в компаниях-разработчиках программного обеспечения было обычной практикой нанимать группу контроля качества на полный рабочий день. Эта команда разработает набор «планов тестирования» или пошаговых контрольных списков, которые подтверждают, что функция программного проекта ведет себя так, как ожидалось. Затем команда QA вручную выполняла эти контрольные списки каждый раз, когда в проект программного обеспечения добавлялось новое обновление или изменение, а затем возвращала результаты планов тестирования группе инженеров для проверки и дальнейшей разработки для решения проблем.

Этот процесс был медленным, дорогим и подверженным ошибкам. Автоматизированное тестирование значительно повышает эффективность работы команды и рентабельность инвестиций групп обеспечения качества.

Автоматизированное тестирование возлагает ответственность на команду инженеров. Планы тестирования разрабатываются вместе с обычной разработкой функций дорожной карты, а затем автоматически выполняются с помощью инструментов непрерывной интеграции программного обеспечения. Автоматизированное тестирование способствует сокращению размера группы контроля качества и позволяет группе контроля качества сосредоточиться на более важных функциях.

См. Решение

Строительство и эксплуатацию программного обеспечения с открытыми DevOps

Связанный материал

Автоматизированные тестирование для DevOps

Непрерывная доставка (CD). клиенты. Автоматизированное тестирование имеет решающее значение для достижения этой цели. Невозможно автоматизировать доставку пользователям, если в процессе доставки есть ручной и трудоемкий этап.

CD является частью более крупного конвейера развертывания. CD является преемником непрерывной интеграции (CI) и также зависит от нее. CI несет полную ответственность за запуск автоматических тестов на предмет любых новых изменений кода и проверку того, что эти изменения не нарушают установленные функции и не вносят новых ошибок. CD запускается, как только шаг непрерывной интеграции проходит автоматический план тестирования.

Эта взаимосвязь между автоматическим тестированием, CI и CD дает много преимуществ для высокоскоростных разработчиков программного обеспечения. Автоматизированное тестирование обеспечивает качество на каждом этапе разработки, гарантируя, что новые коммиты не приводят к ошибкам, поэтому программное обеспечение всегда остается готовым к развертыванию.

Какие тесты программного обеспечения следует автоматизировать в первую очередь?

1.

Сквозные тесты

Вероятно, наиболее полезными для реализации являются сквозные (E2E) тесты. E2E-тесты имитируют работу пользователя на уровне всего стека программного продукта. Планы тестирования E2E обычно охватывают истории на уровне пользователя, такие как: «пользователь может войти в систему», «пользователь может внести депозит», «пользователь может изменить настройки электронной почты». Эти тесты очень ценны для реализации, поскольку они дают уверенность в том, что реальные пользователи работают без ошибок, даже когда новые коммиты выдвигаются.

Инструменты E2E-тестирования фиксируют и воспроизводят действия пользователя, поэтому планы E2E-тестирования затем становятся записями ключевых потоков взаимодействия с пользователем. Если в программном продукте отсутствует какое-либо автоматизированное тестирование, он получит наибольшую ценность, внедрив E2E-тестирование наиболее важных бизнес-процессов. Тесты E2E могут быть дорогими, чтобы зафиксировать и записать последовательность действий пользователей. Если программный продукт не делает быстрых ежедневных выпусков, может быть более экономичным, чтобы человеческая команда вручную выполняла планы тестирования E2E.

2. Модульные тесты

Как следует из названия, модульные тесты охватывают отдельные блоки кода. Единицы кода лучше всего измеряются в определениях функций. Модульный тест будет охватывать отдельную функцию. Модульные тесты будут утверждать, что ожидаемый ввод функции соответствует ожидаемому выводу. Код, который содержит чувствительные вычисления (так как он может относиться к финансам, здравоохранению или аэрокосмической отрасли), лучше всего покрывается модульными тестами. Модульные тесты недороги, их можно быстро реализовать и они обеспечивают высокую отдачу от инвестиций.

3. Интеграционные тесты

Часто единица кода делает внешний вызов сторонней службе. Тестируемая основная кодовая база не будет иметь доступа к коду этой сторонней утилиты. Интеграционные тесты имеют дело с имитацией этих сторонних зависимостей и подтверждением того, что код, взаимодействующий с ними, ведет себя так, как ожидалось.

Интеграционные тесты похожи на модульные тесты в том, как они написаны, и в их инструментах. Интеграционные тесты могут быть недорогой альтернативой E2E-тестам, однако окупаемость инвестиций спорна, когда комбинация модульных тестов и E2E уже используется.

4. Тесты производительности

При использовании в контексте разработки программного обеспечения «производительность» используется для описания скорости и отклика, с которыми реагирует программный проект. Вот некоторые примеры показателей производительности: «время загрузки страницы», «время до первого рендеринга», «время отклика результатов поиска». Тесты производительности создают измерения и утверждения для этих примеров. Автоматические тесты производительности будут запускать тестовые примеры по этим показателям, а затем предупреждать команду о любых регрессиях или потерях скорости.

Какие тесты программного обеспечения следует выполнять вручную?

Можно утверждать, что любые тесты, которые можно автоматизировать, должны быть автоматизированы. Это огромный выигрыш в производительности и стоимости человеческого времени. С учетом сказанного, бывают случаи, когда окупаемость разработки автоматизированного набора тестов не стоит того по сравнению с выполнением ручного теста.

1. Исследовательское тестирование

Автоматические тесты составляются по сценарию и выполняют последовательность шагов для проверки поведения. Исследовательское тестирование является более случайным и пробует незаписанные последовательности, чтобы найти ошибки или неожиданное поведение. Несмотря на то, что существуют программные инструменты для создания комплекта исследовательского тестирования программного обеспечения, они еще не полностью разработаны и не получили широкого распространения. Гораздо эффективнее назначить ручного тестировщика качества и использовать человеческий творческий потенциал для изучения того, как сломать программный продукт.

2. Визуальное регрессионное тестирование

Визуальная регрессия происходит, когда недостаток визуального дизайна появляется в пользовательском интерфейсе программного обеспечения. Это может быть неправильное расположение элементов пользовательского интерфейса, неправильный шрифт, неправильные цвета и многое другое. Как и в случае с исследовательским тестированием, существуют инструменты для написания автоматических тестов для обнаружения этих регрессий. Эти инструменты делают снимки экрана с различными состояниями программного продукта, а затем используют OCR для сравнения их с ожидаемыми результатами. Эти тесты дороги в разработке, а инструменты не получили широкого распространения. Может быть гораздо эффективнее, если человек взглянет на что-то и увидит, есть ли какие-либо проблемы со зрением.

3. Создание среды автоматизации тестирования для вашей команды DevOps

Не существует всеобъемлющего решения для автоматизированного тестирования. При планировании решения для автоматизированного тестирования для вашей команды необходимо учитывать несколько ключевых соображений.

4. Частота выпуска

Программные продукты, выпускаемые с фиксированными интервалами, например, ежемесячно или еженедельно, могут оказаться более подходящими для ручного тестирования. Программные продукты, которые выпускаются быстрее, выиграют от автоматизированного тестирования, поскольку CI и CD зависят от автоматизированного тестирования.

5. Доступные инструменты и экосистема

Каждый язык программирования имеет собственную экосистему дополнительных инструментов и утилит. Каждый тип шаблона автоматизированного тестирования имеет свой собственный набор инструментов, которые могут быть доступны или недоступны в конкретной экосистеме языков программирования. Успешная реализация шаблона автоматизированного тестирования потребует пересечения языковой и инструментальной поддержки.

6. Соответствие продукта рынку и зрелость кодовой базы

Если ваша команда работает над созданием нового продукта, который еще не зарекомендовал себя целевой аудиторией или бизнес-моделью, возможно, нет смысла инвестировать в автоматизированные тесты. Автоматизированные тесты действуют как страховой механизм для ограничения непредвиденных регрессий кода. Если ваша команда движется с большой скоростью, необходимость обновлять и поддерживать автоматические тесты, когда код резко и быстро меняется, может быть крайне затратной. 0005

Сделайте автоматизированное тестирование частью конвейера CD

Автоматизированное тестирование является стандартной современной практикой разработки программного обеспечения. Лучшие команды и компании используют автоматизированные тесты. CI/CD зависит от автоматических тестов и имеет решающее значение для того, чтобы помочь лучшим командам поставлять надежное и надежное программное обеспечение своим клиентам.

Open DevOps от Atlassian предоставляет открытую платформу цепочки инструментов, которая позволяет вам создавать конвейер разработки на основе компакт-дисков с помощью любимых инструментов. Узнайте, как Atlassian и сторонние инструменты могут интегрировать тестирование в ваш рабочий процесс, из наших руководств по тестированию DevOps.

Макс Рекопф

Как самопровозглашенная «кукла хаоса» я обращаюсь к agile-практикам и принципам бережливого производства, чтобы навести порядок в своей повседневной жизни. Мне очень приятно делиться этими уроками с другими через множество статей, выступлений и видео, которые я делаю для Atlassian 

Поделиться этой статьей

Следующая тема

Что такое автоматизация тестирования? Автоматизированное тестирование 101

Как известно большинству людей, работающих в индустрии программного обеспечения, между ручным и автоматизированным тестированием есть явные различия. Ручное тестирование требует физического времени и усилий, чтобы гарантировать, что программный код делает все, что должен. Кроме того, ручные тестировщики должны записывать свои выводы. Это включает в себя проверку файлов журналов, внешних служб и базы данных на наличие ошибок. Если вы знакомы с ручным тестированием, вы знаете, что этот процесс может занимать очень много времени и повторяться.

Фундаментальное различие между ручным и автоматизированным тестированием простое. При ручном тестировании человек несет ответственность за единоличное тестирование функциональности программного обеспечения так, как это сделал бы пользователь. Автоматическое тестирование выполняется с помощью инструмента автоматизации, поэтому больше времени можно потратить на более важные задачи, такие как исследовательские тесты, при автоматизации трудоемких тестов, таких как регрессионные тесты. Несмотря на то, что вам нужно тратить время на поддержку тестовых сценариев в целом, вы увеличите покрытие тестами и масштабируемость.

Преимущество ручного тестирования заключается в том, что оно позволяет человеческому разуму извлечь из теста информацию, которая в противном случае может быть упущена при автоматизации тестирования. Автоматизированное тестирование хорошо подходит для крупных проектов, проектов, требующих многократного тестирования одних и тех же областей, и проектов, которые уже прошли первоначальный процесс ручного тестирования. Подробнее о том, какие тесты следует автоматизировать, см. здесь.

Внедрение стратегии автоматизации тестирования

Переход к agile привел к тому, что многие команды приняли стратегию тестирования пирамиды. Стратегия пирамиды автоматизации тестирования требует автоматизации тестов на трех различных уровнях. Модульное тестирование представляет собой основу и самый большой процент этой пирамиды автоматизации тестирования. Далее идет сервисный уровень или тестирование API. И, наконец, тесты графического интерфейса находятся наверху. Пирамида выглядит примерно так:

Интегрированные решения для тестирования графического интерфейса и API, такие как TestComplete , могут упростить процесс внедрения пирамиды автоматизации тестирования, поскольку они гарантируют, что изменения, внесенные в тестовые примеры API, также автоматически отражаются на уровне графического интерфейса.

Кто должен заниматься автоматизацией тестирования?

Тестирование в этих коротких итерациях Agile часто требует подхода «сдвиг влево». Этот сдвиг в сторону гибкого процесса разработки означает, что тестирование начинается намного раньше в жизненном цикле приложения. В результате при таком подходе разработчики с сильными техническими знаниями все чаще несут ответственность за тестирование, и поэтому они часто работают вместе с тестировщиками над созданием сред автоматизации тестирования.

При оценке решения для тестирования важно иметь инструмент, отвечающий потребностям всех членов команды, которые будут участвовать в процессе тестирования. К ним относятся:

  • Ручные тестировщики: Запись и воспроизведение имеют решающее значение для ручных тестировщиков, особенно для тех, кто плохо знаком с автоматизацией. Возможность использовать один и тот же записанный сценарий с различными входными данными может пригодиться при выявлении и устранении проблем в различных средах.
  • Инженеры по автоматизации: Для инженеров по автоматизации может быть важна надежная поддержка языков сценариев, интеграция с системами CI и возможность легко масштабировать тесты.
  • Разработчики: Внедрение тестирования в процесс разработки требует возможности проводить тесты в IDE, таких как Eclipse и Visual Studio.

Распространенные заблуждения об автоматизации тестирования

Теперь, когда мы рассказали об автоматизации тестирования, о том, как она работает и кто должен участвовать, давайте подробнее рассмотрим некоторые распространенные заблуждения об автоматизации тестирования:

  1. Автоматизация даст вам больше свободного времени

    Ошибочное представление о том, что автоматизация тестирования даст вам больше свободного времени, одновременно верно и ложно. В ручном тестировании большая часть времени посвящена исследовательскому и функциональному тестированию, где вы вручную ищете ошибки. Как только этот процесс завершится, тестер должен снова и снова повторять одни и те же шаги. Благодаря автоматизированному тестированию это время значительно сокращается. Вместо этого работа автоматических тестировщиков тратится на кодирование тестов и повторное улучшение этих тестов по мере необходимости. Однако после завершения теста автоматизированное тестирование позволяет повторно использовать тесты, чтобы им не приходилось снова проходить весь этот процесс. Вместо этого время, затрачиваемое на повторяющиеся задачи, которые выполнял бы ручной тестировщик, тратится на более крупные и важные проблемы, связанные с программным обеспечением, которое вы разрабатываете.

  2. Стоимость автоматизированного тестирования слишком высока

    На первый взгляд инвестиции в автоматизированное тестирование могут показаться непомерно высокими, особенно если вы небольшая компания. Но анализ показал, что со временем автоматизированное тестирование окупается.

    Автоматизированное тестирование позволяет вам сосредоточиться на более важных вопросах, таких как потребности клиентов, функциональность и улучшения. Автоматизированное тестирование также снижает стоимость и потребность в многократном пересмотре кода, поэтому со временем инвестиции окупаются. Кроме того, каждый раз, когда исходный код модифицируется, тесты программного обеспечения могут повторяться. Повторение этих тестов вручную дорого и требует много времени, но автоматизированные тесты можно запускать снова и снова без дополнительных затрат. Дополнительный способ увидеть рентабельность вашего автоматизированного тестирования – это параллельное тестирование. Вместо того, чтобы запускать отдельные тесты один за другим, параллельное тестирование позволяет запускать несколько автоматических тестов одновременно. Это значительно сокращает время, затрачиваемое на выполнение автоматизированных тестов.

  3. Автоматическое тестирование лучше ручного

    Реальность такова, что нет «лучше» или «хуже» в дебатах между автоматическим и ручным управлением, есть просто «другое».

    Каждый подход имеет свои преимущества и недостатки. Ручное тестирование выполняется человеком, сидящим перед компьютером, тщательно просматривающим приложение с помощью SQL и анализа журнала, пробуя различные комбинации использования и ввода, сравнивая результаты с ожидаемым поведением и записывая результаты. Автоматизированное тестирование часто используется после разработки исходного программного обеспечения. Длительные тесты, которых часто избегают при ручном тестировании, можно запускать без участия пользователя. Их даже можно запускать на нескольких компьютерах с разными конфигурациями.

    В конце концов, как ручное, так и автоматизированное тестирование играют свою роль, особенно если разрабатываемое вами программное обеспечение слишком велико и слишком сложно, чтобы полагаться только на ручной подход.

  4. Автоматизированное тестирование препятствует взаимодействию с человеком

    Еще одно распространенное заблуждение об автоматизированном тестировании заключается в том, что оно подрывает взаимодействие с человеком.

    Честно говоря, автоматизированное тестирование является более четким и быстрым, чем то, что люди могли бы сделать, не страдая от многочисленных человеческих ошибок, поэтому это заблуждение понятно. Тем не менее, такие продукты, как TestComplete, разработаны для облегчения совместного подхода за счет включения функций, которые позволяют коллегам выполнять часть кода теста и комментировать сценарий.

    Это не заменяет личного общения, которое является необходимой частью разработки программного обеспечения. Вместо этого он усиливает этот аспект, предоставляя еще один канал для общения. Подумайте об этом так: электронная почта не заменила телефон; это был просто дополнительный инструмент, который можно было использовать для общения. То же самое относится и к таким инструментам, как TestComplete от SmartBear – они не столько заменяют личное общение, сколько помогают улучшить общение.

Начало работы с автоматизированным тестированием

Создание успешной стратегии автоматизированного тестирования является сложной задачей, и подход будет различаться в зависимости от команды. Ни одна команда не является полностью идентичной другой. В некоторых может быть больше ручных тестировщиков, чем инженеров по автоматизации, в то время как некоторые, возможно, сместились влево и зависят от разработчиков, которые сделают тяжелую работу. Бюджет, сроки, тип приложения и модель разработки — все это факторы, влияющие на то, как должна быть реализована стратегия автоматизированного тестирования.

Автоматическое тестирование с помощью TestComplete

С такими инструментами, как TestComplete, переход от ручного к автоматизированному тестированию не должен быть трудным. Позволяя вам видеть каждое действие, которое вы совершаете, либо при создании тестового кода, либо при администрировании тестов, ручные тестировщики могут точно видеть, где вносить коррективы во время обучения. После использования инструментов и методов автоматизированного тестирования ручное тестирование оказалось эффективным способом перепроверки программного обеспечения, чтобы убедиться, что не осталось неиспользованного камня.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *