четверг, 24 августа 2023 г.

5 мин

Основы обеспечения качества


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


Что такое BDD и TDD?


В мире разработки программного обеспечения вы часто слышите термины BDD и TDD. BDD - это разработка, управляемая поведением, а TDD - разработка, управляемая тестированием. TDD рекомендует писать тесты перед началом разработки функции. Так что при первом запуске тест явно не проходит. После того, как функция разработана, тест запускается снова, и на этот раз он должен пройти. Следовательно, кодовая база будет иметь высокий уровень тестового покрытия, что является хорошей практикой разработки программного обеспечения. Как видите, TDD - это подход к тестированию, ориентированный на разработчиков, и он используется для написания модульных тестов.
BDD, с другой стороны, описывает функцию или функциональность на понятном человеку языке под названием Gherkin, понятном для различных заинтересованных сторон, участвующих в проекте. На практике мы используем плагины IDE, чтобы иметь красиво отформатированные сценарии в Gherkin и запускаемые методы в Cucumber для Java или Behave для Python.


Основы QA


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

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

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


Web UI Тестирование


При тестировании веб-интерфейса вы, как тестировщик, пытаетесь убедиться, что элементы на веб-странице работают правильно, правильно размещены и выглядят так, как задумано. Чтобы проверить функциональность веб-элементов, вы обычно пытаетесь взаимодействовать с ними, например нажимать кнопку, выбирать параметр из раскрывающегося списка. И проверять, правильно ли они работают. Правильность размещения легко проверить визуальным осмотром страницы. Между тем, для правильного внешнего вида должны присутствовать определенные атрибуты CSS. Все описанные проверки могут быть выполнены вручную, хотя это может быть подвержено ошибкам и требует много времени, особенно если есть много страниц для тестирования. Альтернативой является автоматизация процесса тестирования путем написания тестов, которые могут запускаться периодически и выполнять упомянутые задачи. Возможно, самым популярным инструментом для автоматизированных тестов пользовательского интерфейса является Selenium, но в последние годы становится популярным и другой инструмент, называемый Cypress.


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


Практически все современные веб-приложения и мобильные приложения совершают какие-либо вызовы API на другие серверы в сети. Через запросы и ответы API приложение взаимодействует с серверными и сторонними службами для выполнения различных задач, таких как аутентификация пользователя, получение данных, отправка уведомлений и т. Д. Поэтому правильно работающие вызовы API имеют решающее значение для работоспособности приложения. Хотя вы можете проверить ответ на вызов API на стороне пользовательского интерфейса, попытавшись войти в систему или проверить данные, полученные от сторонней службы, быстрее проверить базовые вызовы напрямую. Вот когда вступает в игру тестирование API. Обычно используемые запросы API - это GET, POST, PUT и DELETE. Каждый вызов API состоит из конечной точки запроса, заголовка и тела. Содержимое тела обычно JSON или XML. Самым популярным инструментом тестирования API является Postman. Это позволяет нам делать все виды запросов API и наблюдать за ответами. Некоторые расширенные функции Postman включают среды, сценарии, коллекции, макеты серверов и многое другое. Помимо Postman, мы можем использовать специальные библиотеки языков программирования, такие как библиотека запросов Python, предназначенная для работы с API. Это дает нам большую гибкость и более глубокий охват автоматизационным тестированием.


Мобильное тестирование

Среди различных инструментов тестирования мобильных приложений Appium; Он не требует включения SDK или необходимости перекомпиляции. С приложениями для iOS, Android и Windows.
Его задача опирается на архитектуру клиент/сервер (клиент/серверная архитектура). Непосредственным преимуществом архитектуры клиент/сервер является то, что тесты можно писать на локальном компьютере.

Содержание