freeCodeCamp/guide/russian/software-engineering/quality-assurance/index.md

81 lines
7.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
title: Quality Assurance
localeTitle: Гарантия качества
---
## Гарантия качества
Обеспечение качества (обычно называемое QA) - это средство, с помощью которого проверяется продукт в разработке, чтобы убедиться, что он работает так, как предполагается. Фактические методы, используемые в процессах QA, сильно различаются в зависимости от размера и характера продукта.
Для личного проекта вы, вероятно, просто испытаете, когда идете, и попросите других предоставить отзывы на соответствующих этапах. Напротив, банковское приложение должно иметь каждый аспект каждой функции, полностью проверенной и документированной, чтобы гарантировать ее функциональность и безопасность.
Независимо от того, насколько формальным или подробным является процесс QA, его цель - выявить ошибки, чтобы их можно было решить до выпуска продукта.
### методологии
#### проворный
В гибком подходе к развитию цель состоит в том, что каждый цикл работы («спринт») создает рабочее программное обеспечение, которое может быть добавлено и улучшено на итеративном уровне. Это делает QA процессом неотъемлемой частью цикла разработки. Проверяя программные компоненты на каждом этапе их производства, вы уменьшаете риск появления ошибок при выпуске.
### терминология
#### Тестирование автоматизации
Тестирование выполняется с помощью предварительно написанных сценариев, предназначенных для контроля выполнения тестов.
#### Черный ящик
Эти тесты не смотрят внутри тестируемой системы, но рассматривают ее как «закрытую» так же, как это испытывает ее конечный пользователь.
#### дефект
Любое отклонение от спецификации приложения; часто упоминается как «ошибка».
#### Экспериментальное тестирование
Неописанный подход к тестированию, основанный на уникальном творчестве тестировщика в попытке найти неизвестные ошибки и идентифицировать регрессии.
#### Интеграционное тестирование
Тестирование отдельных компонентов / модулей вместе для обеспечения надежного соединения и взаимодействия друг с другом.
#### Тестирование отрицательного пути
Сценарий тестирования, разработанный для создания состояния ошибки в функции / приложении и проверки того, что ошибка обрабатывается изящно. Примером этого является ввод ряда чисел в поле электронной почты в форме регистрации пользователя и проверка того, чтобы регистрация не принималась до тех пор, пока не будет предоставлен фактический адрес электронной почты.
#### Регрессионное тестирование
Тестирование сделано на новой сборке для обеспечения того, чтобы новая функциональность не случайно не нарушила ранее протестированные функциональные возможности.
#### Дымовые испытания
Минималистский подход к тестированию, предназначенный для обеспечения базовых функциональных возможностей, работает до проведения более глубокого тестирования. Обычно это происходит в начале процесса тестирования.
#### Прецедент
Указанные предварительные условия, этапы и ожидаемые результаты, на которые указывает тестер / инженер QA, чтобы определить, выполняет ли функция свою задачу, как ожидалось.
#### Белая коробка
Относится к испытаниям, выполненным на структурном уровне, в рамках кодовой базы. Программисты, проверяющие, что входы и выходы из определенных функций или компонентов будут тестироваться с помощью белого ящика.
Также известен как «Стеклянная коробка», «Ясная коробка», «Прозрачная коробка», потому что тестер может «видеть внутри» тестируемой системы.
Основные категории
* **Единичные тесты** (отдельные единицы кода делают то, что им нужно)
* **Интеграционные тесты** (единицы / компоненты взаимодействуют друг с другом должным образом)
* **Регрессионные тесты** (повторное применение тестов на более поздних этапах разработки для обеспечения их работы)
Существует три основных метода:
* **Разделение эквивалентности** (проверенные входные значения являются репрезентативными для больших входных наборов данных)
* **Анализ граничных значений** (система тестируется с выбранными входами, где поведение и, следовательно, выход должны меняться)
* **Графический анализ причинно-следственных связей** (тесты основаны на визуализации отношений ввода-вывода)
### Другие источники
[Разработка управляемых тестов (руководство FreeCodeCamp)](https://guide.freecodecamp.org/agile/test-driven-development)
# [Единичные тесты (руководство FreeCodeCamp)](https://guide.freecodecamp.org/software-engineering/unit-tests/)
[Основы тестирования программного обеспечения](http://softwaretestingfundamentals.com/)