13 инструментов для тестирования методом «чёрного ящика»

Инструменты для тестирования методом «чёрного ящика» (black box) сосредоточены на анализе входных и выходных данных программного обеспечения, его поведения и функциональности с точки зрения конечного пользователя. Они используются для различных типов тестирования, включая функциональное, системное и приёмочное, не требуя доступа к исходному коду.

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

Читать далее


Python QA: введение в Unit Tests

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

Читать далее


Анонс Asserts

Представляем вам Asserts — платформу для анализа и отслеживания метрик. Сканируя метрики вашего приложения в любой совместимой с Prometheus базе данных временных рядов (time-series database, TSDB), Asserts в реальном времени: 

  • создаёт карту архитектуры приложения и инфраструктуры, 
  • строит дашборды, 
  • отслеживает цели уровня обслуживания (service level objectives, SLOs) 
  • и запускает автоматические проверки (Assertions) для выявления изменений и потенциальных проблем. 

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

Читать далее


Тестирование без моков: язык паттернов. Часть 1

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

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

Читать далее


Тестирование без моков: язык паттернов. Часть 2

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

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

  • Инфраструктурные обёртки (Infrastructure Wrappers)
  • Узкие интеграционные тесты (Narrow Integration Tests)
  • «Параноидальная телеметрия» (Paranoic Telemetry)

Читать далее


Как использовать GitHub Copilot в IDE: советы, приёмы и лучшие практики

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

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

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

Читать далее


Тестирование баз данных

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

Читать далее


ViewModels в Android: «за» и «против»

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

Читать далее


Миграция критически важного трафика в больших масштабах без простоев: опыт Netflix

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

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

Читать далее


Знакомьтесь, SafeTest — новый подход к тестированию фронтенда

В этой статье мы поговорим о SafeTest — революционной библиотеке, которая предлагает свежий взгляд на сквозные (E2E) тесты для веб-приложений с пользовательским интерфейсом.

Читать далее


Тестирование рассылок: зачем проводить и что проверять в первую очередь

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

Под тестированием рассылок понимаются методы проверки писем перед их отправкой. Email-маркетологи чаще занимаются анализом контента и A/B-тестированием кампаний. Для разработчиков и тестировщиков, которые работают с сервисами, отправляющими транзакционные рассылки, email-тестирование включает в себя более широкий цикл действий — от анализа HTML до обеспечения доставки писем.

О чём расскажу в этой статье:

  • Важность тестирования рассылок
  • 4 болевые точки тестирования рассылок + обходные пути
  • Какие элементы тестируют в первую очередь

Читать далее


Как создать мультидокументный ридер и чат-бот с помощью LangChain и ChatGPT

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

Читать далее


Как инженеры GitHub используют GitHub Copilot: 4 способа

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

Совсем недавно я занимался разработкой новой фичи для чата GitHub Copilot. Моя задача заключалась в том, чтобы чат мог распознавать зависимости проекта пользователя — это позволило бы ему давать умные ответы на вопросы пользователя. Я мог просто перечислить зависимости проекта и считать задачу выполненной; но я знал, что для извлечения высококачественных ответов из этих больших языковых моделей нужно быть осторожным — чтобы не перегрузить промпт и не сбить модель с толку, передав ей слишком много контекста. Это вызывало необходимость в предварительной обработке списка зависимостей и выборе наиболее релевантных для включения в промпт.

На создание пригодных для машинной обработки форматов для самых известных фреймворков на разных языках программирования ушли бы дни. И в это время я обратился к Copilot.

Читать далее

Тестирование веб-сервисов, мобильных приложений и IT-систем: подборка статей из блога OTUS на Хабр