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.

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

(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: 'https://vc.ru/selectel/306690', 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 комментариев
Спасти еду: экологичное ИТ-решение помогает ресторанам справляться с перепроизводством блюд

Каждый год в России выбрасывают около 17 млн тонн продуктов на 1,6 трлн рублей.

Что на самом деле приводит мир в движение: история инструментов бухгалтерского учёта

От засечек на палках до специальных программ

UNIVAC I.
«Зачем платить за обследование бизнеса?», «У вас, типа, консалтинг?» и другие вопросы к бизнес-спецназу Амивео

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

Лучшие стартапы в «Трибуне» с 18 по 24 октября 2021 года

Подборка лучших проектов по рейтингу подготовлена каналом @vchunt, где каждую неделю появляется топ-3 стартапа из «Трибуны». Подписывайтесь, чтобы поддержать русскоязычных фаундеров и не пропустить отличные продукты!

Этический кодекс ИИ и признание авторства на продукт, произведенный алгоритмом

26 октября участники форума «Этика искусственного интеллекта: начало доверия» подписали российский Кодекс этики искусственного интеллекта (ИИ). Документ по предложению президента России Владимира Путина подготовили Министерство экономического развития РФ, Аналитический центр при Правительстве РФ и Альянс в сфере искусственного интеллекта. Кодекс…

Многопотоковая обработка файлов

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

Газпромбанк и IT_One создали новую финтех-компанию

«ГПБ-ИТ1» станет одним из крупнейших центров по разработке цифровых и финансовых сервисов

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

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

«Альфа-банк» отключил части клиентов бесплатные push-уведомления о покупках Статьи редакции

Бесплатные push-уведомления останутся только для подтверждения операций.

Тренд на биометрическую идентификацию: как нейронные сети распознают наши лица

В октябре в московском метро заработала новая система безналичного расчета – FacePay. Как работают нейронные сети в процессе распознавания лиц рассказывает Руслан Гримов, руководитель ML-департамента Friflex.

«Там считают, если взял выходной — не любишь свою работу»: музыканты из Кирова зарабатывают в Китае $1500 в месяц Статьи редакции

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

null