Библиотека тестировщика | QA, тестирование, quality assurance, manual testing, autotesting, ручное тестирование, автотесты
8.77K subscribers
1.23K photos
153 videos
23 files
2.58K links
Все самое полезное для тестировщика в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/12538d6f

Работать у нас: https://job.proglib.io/

Для обратной связи: @proglibrary_feeedback_bot
Download Telegram
Что позволяет автоматизировать функциональное и регрессионное тестирование приложений?
Anonymous Quiz
2%
Flask
79%
Selenium
5%
QTP
15%
QA-программирование
4👍2
🛠️📃 Интеграция Jenkins и генерация отчетов с использованием Selenium 4

Selenium используется для тестирования и автоматизации веб-приложений. Мы можем запускать наши тесты с помощью инструментов CI/CD, таких как Jenkins.

Почему требуется интеграция с Jenkins?

Автоматизация тестирования помогает выявлять постоянные дефекты, ошибки и баги на как можно более ранней стадии. Чем раньше будет обнаружена проблема, тем дешевле ее устранить.
Благодаря интеграции CI / CD можно запускать тесты после каждой сборки или через определенный промежуток времени, что поможет выявить любые проблемы.
Всегда быстрее вручную протестировать сервис или запустить регрессию, поскольку все будет запускаться автоматически без человеческого фактора.
Таким образом, мы можем видеть, проходят ли какие-либо тесты с ошибкой или нет. В случае сбоя они могут быть легко исправлены.

Требования:

Jenkins
JDK
Maven
Selenium project

Подробнее читайте тут

#гайд
👍234🔥2
Продолжаем формат поста: «Вопросы-ответы для собеса».

Cookie and Cash (отличия)
Файлы cookie – это файлы, создаваемые веб-сайтами, которые вы посещаете. Они делают работу в Интернете проще и удобнее.
В cash-памяти сохраняется определенная информация с веб-страниц (например, изображения), чтобы в следующий раз они открывались быстрее.

Тестирование в режиме ингогнито
Режим "инкогнито" доступен в Chrome, Firefox, Edge, Safari, и Internet Explorer. Он дает возможность открыть одноразовую сессию браузера, которая теряет свои настройки и временные файлы после закрытия. Такой режим идеален для тестирования ситуаций, для которых хранение информации не так уж важно. Имейте в виду, что все инкогнито-окна одного браузера делят между собой одну и ту же сессию. К примеру, временные файлы делятся между активными окнами браузера, открытыми в режиме инкогнито.

Протоколы
IP — Internet Protocol. Главная задача IP — маршрутизация датаграмм, то есть речь идет об определении пути следования данных по узлам сети. Он ненадежен — не подтверждает доставку пакетов получателю, как и не контролирует целостность данных. Передача данных происходит без установки соединения.
TCP/IP — Transmission Control Protocol/Internet Protocol. Обеспечивает и контролирует передачу данных и следит за надежностью и целостностью. IP отвечает за маршрутизацию. Протокол TCP нередко используется другими, более комплексными протоколами.
UDP — User Datagram Protocol. Обеспечивает передачу данных, не создавая предварительного соединения между ними. Считается недостаточно надежным, т. к. пакеты могут не только не дойти, но и продублироваться либо прийти не по порядку.
Но есть и преимущество: скорость доставки данных. Именно поэтому в приложениях, особо чувствительных к сетевым задержкам, нередко применяют UDP.
FTP — File Transfer Protocol. Служит для передачи файлов. Он и сегодня используется при организации удаленного доступа к хостингам. Надежен, гарантирует передачу данных, функционирует по принципу клиент-серверной архитектуры. Для работы с файловой системой сервера пользователь проходит аутентификацию (анонимный вариант тоже возможен), после чего получает доступ.
DNS. Представляет собой не только систему доменных имён (Domain Name System), но и протокол, без которого данная система работать бы не смогла. Протокол дает возможность клиентским компьютерам запрашивать у DNS-сервера IP-адрес какого-нибудь сайта, плюс он помогает осуществлять обмен БД между серверами DNS.
HTTP — HyperText Transfer Protocol. Поначалу это был протокол передачи HTML-документов. Сейчас он задействуется в целях передачи произвольных данных в сети. Считается протоколом клиент-серверного взаимодействия без сохранения промежуточного состояния. В качестве клиента обычно выступает web-браузер, хотя это может быть и поисковый робот. При обмене информацией протокол HTTP чаще всего использует TCP/IP.
Протокол HTTP имеет расширение HTTPS, поддерживающее шифрование. В нем данные уже передаются поверх криптографического протокола TLS.
NTP — Network Time Protocol. Протокол NTP служит для синхронизации локальных часов устройства со временем в глобальной/локальной сети. NTP задействует алгоритм Марзулло, в результате чего выбирается наиболее точный источник времени. А еще NTP работает поверх UDP, что позволяет ему достигать максимальной скорости передачи данных.
SSH — Secure SHell. Обеспечивает удаленное управление ОС с применением TCP. В SSH шифруют весь трафик, при этом сохраняется возможность выбора алгоритма шифрования. Это необходимо для передачи паролей и прочей важной информации.

#обучалка
👍10🔥53🤔1
Это тестирование проводят, чтобы убедиться, что приложение отлично ведет себя на разных устройствах, на разных версиях операционной системы, с разным подключением к интернету. Что за вид тестирования?
Anonymous Quiz
9%
Тестирование масштабируемости
20%
Тестирование конфигурации
71%
Тестирование совместимости
🔥52
🤔 Очередной #дайджест по QA

📌 Обмен опытом в тестировании: от стартапа до энтерпрайза — для QA инженеров, интересующихся креативными методами автоматизации тестирования, метриками для продажи тестирования бизнес
📌 Модели разработки ПО — речь пойдет о самых популярных моделях разработки ПО: каскадная (водопадная, waterfall), итерационная (инкрементальная) и V-модели
📌 Исследовательские сценарии как метод раскрытия преступления — автор расскажет о новых исследовательских сценариях и поделится опытом их применения
📌 Топ-15 вопросов и ответов для интервью с QA Manager и Test Lead — заблаговременное обдумывание ваших ответов на возможные вопросы может повысить вашу уверенность в себе
📌 В кризис айтишники «накручивают» опыт в CV — какие последствия вас ждут после черной раскрутки профиля на HR-площадках
🥰3117🔥15👏8👍6
🔝 Приоритизация задач по методу MoSCoW: как за 5 минут научиться грамотно расставлять приоритеты

Читать статью

#туториал
5👍3
🧠💪 Осознанная автоматизация тестирования в геймдеве

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

Основные вопросы:

Нужна ли проекту автоматизация тестирования в целом и готов ли он для этого
Сколько ресурсов это может стоить в перспективе и чем может аукнуться
Важные мелочи, которые многие часто упускают из виду, когда принимают решения
Как со всем этим жить и что делать для развития и поддержки

Читать статью

#общиезнания
👍62
🦦🦦 Знакомство с Capybara

Фреймворк веб-автоматизации функциональных тестов, эмулирующих взаимодействие пользователя с приложением/сайтом. Представляет собой библиотеку для работы с web-based-драйвером. Применяется Domain Specific Language описания действий веб-драйвера. Capybara ищет релевантный элемент в DOM и выполняет действие — клик по кнопке, переход по ссылке и прочее.

Capybara основывается на идее, что в современном веб-приложении практически все происходит асинхронно.

Верификация наличия элемента или проверка какого-то условия — Capybara по умолчанию ожидает появления контента или перехода условия в состояние true. Таймауты можно настраивать.

Поддерживаемые веб-драйверы:

rack::test: (дефолтный)
selenium-webdriver
capybara-WebKit

Плюсы Cabybara

Несложная настройка для Rails и Rack, все работает из коробки
Интуитивное API
Быстрое переключение бекенда из headless-режима в реальный браузер без внесения изменений в тесты
Мощная синхронизация — не нужно задавать вручную ожидание в асинхронных процессах
Встроенная поддержка Selenium

Подробнее тут

#гайд
24👍7
Митап по автоматизации тестирования

Пройдет 26 сентября в Нижнем Новгороде для тех, кто пишет и автоматизирует тесты на Python. Будут обсуждаться правила, которые помогут сделать тесты понятнее, поговорите, как поддерживать одновременно автотесты в коммерческой и open source-версии ПО, и как использовать Pytest Plugins.

Программа:

Понятные тесты. Одна из основных проблем тестирования в том, что люди относятся к тестам как к коду второго сорта. Часто используют CTRL+C CTRL+V для написания похожих тестов, не следят за переиспользованием кода, не подготавливают тестовую инфраструктуру проекта. В какой-то момент при любых изменениях проекта поддерживать тесты становится почти невозможно. Их комментируют, удаляют или перестают запускать.
Спикер покажет базовые правила, которые позволят сделать ваши тесты значительно понятнее и удобнее.

Архитектура автотестов для проекта с open source ядром. Вас ждет разбор нескольких решений: «в лоб» с ветвлением логики в тестах, использование keyword-driven testing и собственного фреймворка с плагинами. Спикер покажет плюсы и минусы каждого подхода.

Pytest plugins: расширяем функционал тестового фреймворка через плагины. Автор в работе использует pytest как core-часть тестового фреймворка. А если возникают интересные задачи, для которых не хватает базового функционала pytest, нас выручают плагины. Я расскажу, как и для чего мы их используем, зачем пишем собственные, а также как использовать одновременно не один, а несколько плагинов. Все это — на примере.

#мероприятие
👍91
Практическая автоматизация тестирования: Научитесь эффективно использовать Jasmine, RSpec и Cucumber для ваших TDD и BDD

Понимание автоматизации тестирования — жизненно важный навык для любого разработчика

Изучите принципы разработки, основанной на TDD и BDD. В книге рассматриваются Jasmine, RSpec и Cucumber, которые могут быть использованы в ваших сервисах.

Вы увидите, как использовать функции Jasmine для работы с приложением JavaScript. Вы узнаете, как использовать MiniTest и RSpec с Ruby и Rubymine. Так, вы будете использовать Cucumber для разработки своего программного обеспечения с использованием подхода BDD.

Скачать можно тут

#книги
👍53👏1
🔥🤓 Вот вам #дайджест фреймворков для автоматизации тестирования

🔹 Cucumber. Один из лучших фреймворков, использующий язык BDD (где под капотом все преобразуется в чистый код).
Поддерживает Ruby, Java и .NET
Не требует изучения сложных ЯП
Возможность повторного использования кода

🔹 EarlGrey. Фреймворк для тестирования нативных приложений iOS. Работает над UI с фреймворком XCUITest, а тесты принимает на Objective-C или Swift.
Автоматическое отслеживание изменений UI и сетевых запросов
Доступен из XCode
Дифференциальное сравнение скриншотов для проверки видимости компонентов UI

🔹 Sahi.
Минимальные требования к программированию
Стабильный, мощным и кроссплатформенный рекордер
Тесты могут выполняться параллельно на одной машине или распределяться между другими

🔹 RedwoodHQ. Создает интерфейс веб-сайта, позволяющий нескольким тестировщикам вместе запускать тесты. Можно писать тесты на Java, Groovy, Python и C # для тестирования веб-приложений с помощью Selenium, API или БД, используя их интегрированную веб-среду разработки с Git интеграцией.
Ключевые слова для быстрого создания и изменения тестов
Интегрированная среда разработки
Параллельные тесты и история предыдущих запусков

🔹 Gauge. Опенсорсный инструмент для Mac, Windows, и Linux, разработанный создателями Selenium.
Создание динамической документации
Все тесты описываются в виде spec-файлов в формате markdown
Реализация step’ов возможна на ЯП: Java, C# , Ruby, JavaScript, Python и Go
27🤩15🔥4
Что является портативным фреймворком тестирования веб-приложений?
Anonymous Quiz
18%
QTP
9%
Kotlin
68%
Selenium
4%
Angular
3🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Откуда берутся тестировщики?
Все просто – судьба наделяет их всеми необходимыми скиллами ещё в детстве

#memes
😁162
🧑‍🎓🧑‍🎓 Продолжаем «Вопросы-ответы для собеса».

Методы http REST
GET используется для получения / чтения ресурса. Не стоит использовать GET для небезопасных операций над данными, при данном запросе они не должны быть модифицированы.

PUT обычно используется для обновления ресурса. Тело запроса при отправке PUT-запроса к существующему ресурсу URI должно содержать обновленные данные оригинального ресурса.

PATCH запрос используется для модификации ресурса — запрос должен содержать только изменяемые данные ресурса, а не все его данные. Это напоминает работу PUT, но в теле запроса содержится набор инструкций описывающих как должен быть изменён ресурс, расположенный на сервере, для формирования новой версии.

POST запрос наиболее часто используется для создания новых ресурсов. На практике он используется для создания вложенных ресурсов. Другими словами, при создании нового ресурса, POST запрос отправляется к родительскому ресурсу и, таким образом, сервис берет на себя ответственность на установление связи создаваемого ресурса с родительским ресурсом, назначение новому ресурсу ID и т.п.

DELETE используется для удаления ресурса, идентифицированного конкретным URI (ID).

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

8 техник тест-дизайна:
1. Эквивалентное разделение. Мы берем все возможные варианты ввода текста и разделяем их на валидные и невалидные.
2. Граничные значения. В этой технике мы работаем только с цифрами.
3. Таблица принятия решений. Нужно нарисовать таблицу, в которой мы будем использовать разные условия и ситуации.
4. Парное тестирование. Для техники «Парное тестирование» нужно открыть любой интернет-магазин и каталог товаров.
5. Диаграмма перехода состояний.
6. Диаграмма пользовательских ролей.
7. Угадывание ошибок. В этой технике нужны опытные ребята, которые могут придумать и вспомнить ситуации, в которых ПО «ломается».
8. Исследовательское тестирование. Применяется когда мы не знаем продукт, когда нам не нужна или у нас нет документации, когда нет времени

Принципы тестирования ПО

1. Тестирование демонстрирует наличие дефектов, а не их отсутствие
2. Исчерпывающее тестирование недостижимо
3. Раннее тестирование сохраняет время и деньги
4. Кластеризация дефектов
5. Парадокс пестицида
6. Тестирование зависит от контекста
7. Заблуждение об отсутствии ошибок

#обучалка
🎉1714👍10
Error, Defect, Fault, Bug и Failure — в чем разница

🐞 Bug — это если где-то в коде допущена ошибка, она провоцирует «поломку» кода, и приложение работает некорректно.

💇 Defect — это ситуация, при которой приложение не работает соответственно требованиям, то есть отличается ожидаемое и действительное поведение продукта.

🛑 Error — это ситуация, которая происходит когда разработчики неправильно понимают требования к продукту, и это приводит к багам.

😱 Fault случается когда приложение не может, например, из-за недостатка свободной памяти или места на диске.

💥 Failure. Сочетание дефектов, которые приводят к полному отказу приложения, обычно с потерей данных, в том числе критически важных.

Подробный разбор вас ждет здесь

#обучалка
🤩23👍94😁2🤔1
BugsBusters - митап для QA- специалистов, который пройдет онлайн 28 сентября, в 19:00.

Программа

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

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

Как понять, что тестов достаточно.
Как в отделе следят за покрытием тестами и как дорабатывается собственный сервис сбора статистики.

#мероприятие
👍62