IT-инфраструктура для бизнеса и творчества

Арсенал современного тестировщика

Меня зовут Андрей Морозов, компания Firecode. У нас более более 20 тестировщиков, которые работают над проектами российских корпораций и делают этот мир чуточку лучше.

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

Предисловие

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

Чек-листы

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

В помощь вам придет сервис - https://teamsuccess.io/UX , на котором представлены готовые чек-листы. Также есть неплохие тесты, которые разбиты на категории. Многая информация представлена на английском, но переводчик легко вам поможет.

Скриншоты и видео-захват

Почти всегда, при баг-тесте, надо прикладывать визуальное описание бага, в большинстве случаев достаточно сделать скрин экрана, но бывают случаи, когда необходимо снять видео проблемы. В случае со скринами тестировщику надо иметь возможность быстро и удобно работать со скриншотом, а также иметь возможность добавить на скриншот свои комментарии. Многие тестировщики пользуются стандартными средствами, например, в Windows — это инструмент “Ножницы”. Это простой, но удобный инструмент, он удобен, когда нужно вставить скрин методом копирования, без сохранения в файл. Если вам нужно сделать скриншот с загрузкой в облако, то отлично подойдет Techsmith или Getgreenshot. В случае с видео мы используем Monosnap — это отличный и удобный помощник в повседневной работе.

Данные для тестирования

В основе любого тестирования лежат данные, с помощью которых необходимо проверять работу функционала системы. Чтобы данные были “живыми” и разнородными рекомендуем использовать готовые массивы данных, которые можно легко применять для тестирования:

Мы используем:

Генератор изображений http://placeimg.com/

Генератор ИНН, ОГРН, КПП, СНИЛС http://mellarius.ru/random-inn

Генераторы временных почтовых ящиков https://temp-mail.org/ru/

Генератор личности https://www.fakenamegenerator.com/advanced.php

Генераторы текста и строк https://online-generators.ru/text

Также есть специализированные сервисы, для профессионального генерирования тестовых данных:

Профессиональные сервисы обладают более богатым функционалам, например генерированием SQL-запросов, а также созданием скриптов для тестирования XSS. Отдельного внимания заслуживает сервис bugmagnet, который работает как плагин Chrome и Firefox, который может быстро вставлять нужную информацию в поля форм и т.п.

Валидаторы HTML+CSS

Для классической проверки HTML+CSS используют валидатор стандарта W3, его все знают, и он отлично работает. Сервис дает подробные рекомендации по исправлению ошибок и оптимизации кода. На основе этих стандартов работают поисковые роботы Google, но не все рекомендации W3 так сильно важны. Поэтому всегда думайте о качестве своего приложения, если требуемые изменения повлияют на работоспособность и функциональность приложения, то не стоит их выполнять.

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

Эмуляторы

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

На любом компьютере наших тестировщиков установлены все последние версии браузеров, а для тестирования более старых браузеров мы используем эмуляторы. В случае, если надо протестировать сайт в разных версиях IE мы используем виртуальные машины Mircosoft, которые позволяют поднимать любые версии IE. Для работы с другими браузерами пользуемся сервисом Saucelabs, где можно выбрать любую версию браузера и провести тестирование. В случае тестирования на мобильных устройствах нам на помощь приходит сервис Browserstack. Также мы используем очень популярный сервис Xamarin Test Cloud, это профессиональный сервис, который поддерживает более 2500 устройств на Android и iOS. На данном сервисе очень богатый функционал связанный с тестированием, а именно: создание скринов, удаленная отладка и т.п. Сервис отлично подходит для тестирования кросс-платформенных приложений.

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

Часто бывает, что нам необходимо выполнить тестирование на Xcode, для этого у наших тестировщиков есть отдельные машины на macOS, так как ни один эмулятор на Windows не может нормально работать.

Тестирование безопасности

Вообще это отдельная большая тема, и полноценно тестировать безопасность могут только специалисты по безопасности, но базовые вещи вполне может проверять грамотный тестировщик. Для этого он должен хорошо владеть SQL, XSS, REST, разбираться в протоколах и API.

Для работы с XSS есть плагин Firefox, который можно использовать для проверки безопасности. Для тестирования на инъекции SQL можно использовать сканер Pentest а также Ptsecurity. В большинстве случаев такие сервисы платные, но безопасность это очень важная вещь.

Также есть очень мощный плагин для Chrome, с его помощью можно изменять HTML, cookies, работать с JS и изображениями, для этого не надо лезть в настройки браузера, а делать всё быстро в интерактивном виде

Свои тесты

Мы уже подошли к самой интересной теме, это написание своих тестов. Первым делом составляем план тестирования в виде roadmap, далее можно подключать сервисы Leantesting, HP QC, MS Test Manager, Test Rail, с помощью этих сервисов можно проходить тесты или следить за результатами прохождения.

Для создания красивых карт тестирования мы используем сервис https://coggle.it, с помощью него можно быстро делать понятные и функциональные карты тестирования. Классы эквивалентности, границы и прочие сущности можно выделять отдельными блоками на карте.

Тестирование API

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

SoapUI - это консольный тестировщик, с помощью которого легко протестировать API REST и SOAP, а также Web-сервисы. Существуют как платные версии, так и бесплатные.

Postman - отличный инструмент для тестирования API, может работать как расширение Google Chrome. Стоимость использования $12 в месяц. Это один из самых популярных инструментов, его хороший аналог- Insomnia REST Client. Поэтому кому надоел Postman, может попробовать Insomnia REST Client.

Katalon Studio - это бесплатный инструмент автоматизированного тестирования UI, API. Katalon поддерживает запросы SOAP и RESTful с различными типами команд.

Redmine, Jira для тестирования

Redmine и Jira являются самыми популярными системами для управления тестированием. Для правильного организация тестирования необходим тюнинг этих систем, мы используем следующие инструменты:

- для Readmine мы используем - плагин;

- для Jira мы используем - плагин

Существуют и другие причины, которые делают процесс тестирования более эффективным, так что не забывайте смотреть новые плагины для Redmine и Jira.

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

{ "author_name": "Андрей Морозов", "author_type": "self", "tags": [], "comments": 0, "likes": 5, "favorites": 18, "is_advertisement": false, "subsite_label": "dev", "id": 276981, "is_wide": true, "is_ugc": true, "date": "Tue, 03 Aug 2021 11:30:47 +0300", "is_special": false }
(function () { let cdnUrl = `https://specialsf378ef5-a.akamaihd.net/SelectelBranding/images/` let previousArticleNumber = null let currentArticleNumber = 0 let platform = 'Desktop' let articles = [ // { // name: 'camera', // url: `${cdnUrl}CameraCat`, // text: 'умную камеру для\u00A0наблюдения за\u00A0котиками', // link: '1', // num: 3 // }, { name: 'chill', url: `${cdnUrl}ChillCat`, text: 'трекер, который подскажет, когда пора отдохнуть', link: 'https://vc.ru/promo/288561-eye-tracker', num: 1 }, { name: 'cloud', url: `${cdnUrl}CloudCat`, text: 'котика: даёшь ему «пять», а\u00A0он делает бэкап в облако', link: 'https://vc.ru/dev/294799-maneki-neko', num: 2 } ] let buttonCycle = document.querySelector('.button--cycle') let buttonChoose = document.querySelector('.button--choose') let buttonMobile = document.querySelector('.button--mobile') let textField = document.querySelector('.selectel-footer-subtitle') let imageAgent = document.querySelector('.image--agent') let banner = document.querySelector('.selectel-footer') buttonCycle.addEventListener('click', cycleClick) buttonChoose.addEventListener('click', () => sendEvent(`Promo ${articles[currentArticleNumber].num} Left`, 'Click')) buttonMobile.addEventListener('click', () => sendEvent(`Promo ${articles[currentArticleNumber].num} Left`, 'Click')) let media = window.matchMedia("(max-width: 570px)") media.addEventListener('change', matchMedia) function matchMedia() { if (media.matches) { platform = 'Mobile' } else { platform = 'Desktop' } update() } matchMedia() function cycleClick(event) { sendEvent(`Promo ${articles[currentArticleNumber].num} Right`, 'Click') if (event) { event.preventDefault() event.stopPropagation() } window.open('https://vc.ru/tag/selectelDIY', '_blank') //cycle(event) } function cycle(event) { // incrementArticleNumber() textField.innerHTML = generatedText() imageAgent.src = articles[currentArticleNumber].url + platform + '.svg?3' imageAgent.setAttribute("class", "") imageAgent.classList.add('image--agent', articles[currentArticleNumber].name) banner.href = articles[currentArticleNumber].link } function update() { banner.href = articles[currentArticleNumber].link imageAgent.src = articles[currentArticleNumber].url + platform + '.svg' textField.innerHTML = generatedText() } function incrementArticleNumber() { previousArticleNumber = currentArticleNumber if (currentArticleNumber >= articles.length - 1) { currentArticleNumber = 0 } else { currentArticleNumber++ } } const sendEvent = (label, action = 'Click') => { const value = `SelectelDIY — loc: Footer — ${label} — ${action}`; if (window.dataLayer !== undefined) { window.dataLayer.push({ event: 'data_event', data_description: value, }); } }; function generatedText() { let defaultText if (platform === 'Desktop') { defaultText = `Мы тут собрали %text%. Хотите научим?` } else { defaultText = `Мы тут собрали %text%.` } return defaultText.replace('%text%', articles[currentArticleNumber].text) } function getRandom(min, max) { min = Math.ceil(min) max = Math.floor(max) return Math.floor(Math.random() * (max - min + 1)) + min } (function create() { currentArticleNumber = getRandom(0, articles.length - 1) cycle() let page = document.querySelector('.page--entry') if (page) { function insertAfter() { let parents = page.querySelectorAll('[data-id="7"]') let referenceNode = parents[0] referenceNode.parentNode.insertBefore(banner, referenceNode.nextSibling); loaded() } setTimeout(() => insertAfter(), 0) } }()) function loaded() { banner.classList.add('loaded') } loadImages([ `${cdnUrl}CameraCatDesktop.svg`, `${cdnUrl}ChillCatDesktop.svg`, `${cdnUrl}CloudCatDesktop.svg`, `${cdnUrl}CameraCatMobile.svg`, `${cdnUrl}ChillCatMobile.svg`, `${cdnUrl}CloudCatMobile.svg?3`, ]) function loadImages(urls) { return Promise.all(urls.map(function (url) { return new Promise(function (resolve) { var img = document.createElement('img'); img.onload = resolve; img.onerror = resolve; img.src = url; }); })); } }())
0
0 комментариев
Популярные
По порядку
Читать все 0 комментариев
Налоговый манифест креативных индустрий

В рамках «Недель российского бизнеса» прошел Форум по креативным индустриям и интеллектуальной собственности, на котором заместитель генерального директора «Газпром-медиа» Юлия Голубева сформулировала, при каких условиях может развиваться креативное предпринимательство в России.

Кошелек скажет спасибо: зачем банки заводят подкасты, а люди их слушают

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

Apple запустила в продажу салфетку для протирки дисплея за 1990 рублей Статьи редакции

На презентации её не показывали.

Запуск без денег и раскрутка через TikTok: как устроен магазин корейской косметики с выручкой 40 млн рублей за полгода Статьи редакции

Рассказывает Наталья Мичкаева, которая занялась продажей косметики, пока простаивал её канцелярский магазин.

Команда Hey Babes!
Вкратце: два MacBook с MagSafe, HDMI-портом и чёлкой, новые чипы M1 Pro и M1 Max, а также AirPods 3 — анонсы Apple Статьи редакции

Коротко о главных анонсах.

Произвол от Тинькофф Банка или инструкция о том, как заморозить свои деньги. Массовая блокировка счетов граждан по 115ФЗ

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

Apple обновила дизайн MacBook Pro: вернули магнитную зарядку и HDMI-слот, добавили «чёлку» Статьи редакции

Два размера экрана — 14,2 дюйма по цене от 189 990 рублей и 16,2 дюйма по цене от 234 990 рублей.

Скриншот vc.ru
Куда утекли кадры?

Как сообщает издание “Коммерсантъ”, российские ретейлеры столкнулись с проблемой острой нехватки фронт-персонала. Причиной тому стал ряд обстоятельств, в том числе, массовый отток трудовых мигрантов и переход кадров в рынок онлайн-торговли.

Разработчик беспилотных судов для изучения океана Saildrone привлёк $100 млн Статьи редакции

Надводные дроны Saildrone изучают состояние океана и составляют карты морского дна.

Saildrone
В Петербурге с 1 ноября введут QR-коды для посещения мероприятий Статьи редакции

С 15 ноября — для посещения бассейнов, театров и других, с 1 декабря — и для общепита.

Никто, кроме нас: TalkBank стал единственной российской компанией, вошедшей в глобальный рейтинг AIFinTech100

Глобальный рейтинг AIFinTech100 ежегодно публикует список самых инновационных поставщиков решений в сфере искусственного интеллекта и машинного обучения для решения проблем финансового сектора. Россию представляла финтех-платформа TalkBank — единственная российская компания, попавшая в список 100 самых технологичных компаний со всего мира.

null