Терминология, цикл 1

Что такое качество?

Качество есть субъективное понятие, которое как бы измеряет удовлетворенность клиента. У каждого клиента могут быть свои понятия о качестве.

Что такое качество программного обеспечения?

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

Что такое QA (Quality Assurance, обеспечение качества)?

Это процесс мониторинга и улучшения всех активностей, связанных с разработкой программного обеспечения, начиная от сбора требований и заканчивая реализацией и тестированием.

Какова разница между QA и QC (Quality Control)?

Контроль качества сосредоточен на проверке конечного продукта, как его исходных кодов, так и правильности поведения сборок (билдов). Обеспечение качества сосредоточено на качестве процессов производства программного обеспечения и предотвращении возникновения условий для появления плохого продукта.

Что такое тестирование?

Тестирование есть процесс верификации, валидации и поиска ошибок (багов, дефектов) в программном обеспечении. Все три процесса осуществляются на основе требований. Валидация и верификация на примере велосипеда: верификация – строили ли мы велосипед правильно? у него есть рама, руль, седло, привод, колеса? валидация – правильный ли мы построили велосипед? он вообще едет? ааа – цепь приварили к звездочке, неправильный велосипед, валидацию не прошел. Поиск дефектов – это поиск поведения и/или данных, которые не предусмотрены требованиями.

Какова цель тестирования?

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

Тестирование черного ящика. Что это по-вашему?

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

Тестирование серого ящика?

Это тестирование системы с возможностью доступа к её компонентам. Например, сделали что-то из интерфейса пользователя, зашли в базу данных, убедились, что данные изменились правильно.

Тестирование белого ящика?

Применительно к программному обеспечению это анализ исходного кода.

Что такое дефект (ошибка, баг)?

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

Что такое позитивное тестирование?

Определение факта, что система ведет себя правильно (по требованиям) в случаях, когда пользователь выполняет допустимые действия (не старается сломать систему).

Что такое негативное тестирование?

Определение факта, что система правильно обрабатывает ситуации, когда пользователь ведет себя неправильно или старается сломать систему.

Какой тип тестирования позволяет найти наибольшее количество багов?

Негативное тестирование. По некоторым другим данным – тестирование состояний и переходов.

Что такое тест-кейс?

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

Опишите набор тест-кейсов для тестирования текстового поля ввода.

Пример: поле для ввода фамилии. Требования: не менее двух символов, не более 120. Пять тест-кейсов: три допустимых – два, сто двадцать и пятьдесят символов и два недопустимых – один символ и сто двадцать один символ. Три кейса на допустимые символы: один положительный (Иванов), два кейса содержащие цифры или специальные символы. Если нужно – проверка функционала, например, приведение первого символа к верхнему регистру.

Компоненты тест-кейса.

На этапе планирования тест-кейс содержит: 1. уникальный идентификатор; 2. описание/говорящее название (цель проверки); 3. описание пути, как из стартового состояния получить необходимое по требованиям состояние или нужные выходные данные; 4. ожидаемые результаты.

На этапе выполнения добавляются: 5. Актуальные результаты; 6. Заключение: прошел/не прошел (PASS/FAIL criteria).

Опишите содержание баг-репорта.

Баг-репорт это сообщение о найденном дефекте. Включает следующие поля:

  • уникальный идентификатор репорта;
  • тестируемое приложение/система;
  • версия и номер релиза;
  • краткое описание проблемы (что, где, при каких условиях);
  • шаги для воспроизводства;
  • важность (Severity);
  • приоритет (Priority);
  • системное окружение;
  • зарепортил такой-то;
  • подписан на такого-то;
  • статус бага (открыт, подписан на разработчика, не воспроизводится, закрыт);
  • решение по багу и комментарии;
  • ключевые слова.

Что такое юнит-тестирование?

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

Что такое сборка (билд)?

Билд это собранная, предполагающаяся работоспособной система, состав которой однозначно и уникально определяется номером билда (в случае сложных систем их компоненты однозначно определяются версиями пакетов, использованных в билде).

Что такое API тестирование?

Это тестирование прикладного программного интерфейса (Application Programming Interface), то есть набора программных функций и процедур. Функции API могут быть вызваны из специальных клиентов для тестирования API или сторонних программ (например, автотестов).

Как тестировать логин/пароль?

На эту тему есть множество мнений, минималистский вариант такой – есть всего два кейса: 1. правильный логин, правильный пароль (положительный кейс), нужно убедиться, что вход в систему возможен; 2. правильный логин, неправильный пароль (негативный кейс), нужно убедиться, что вход в систему невозможен. Все остальные фантазии на эту тему – это как правило разновидности случая 2, различные негативные тесты. Некоторые собеседующие говорят, ну как же, есть еще третий случай – правильный пароль, но не свой. Так-то это случай 2. Если не свой, значит не правильный.

Перечислите виды тестирования.

Есть две большие группы: функциональное тестирование и нефункциональное тестирование.

Функциональное тестирование – проверка заявленных в требованиях функций системы и правильность поведения с точки зрения бизнес-процессов. Некоторые авторы относят в эту группу тестирование безопасности и тестирование интероперабельности (взаимодействие с окружением).

Нефункциональное тестирование включает тестирование производительности (например, пропускная способность для сетевых устройств или количество одновременно обрабатываемых запросов для web-систем), надежности (подверженность сбоям и характеристики восстановления после сбоя), стресс-тестирование (поведение системы под нагрузкой, превышающей требования), тестирование удобства использования (usability), тестирование на удобство сопровождения (установка, удаление, установка обновлений).

Регрессионное тестирование является специальным видом функционального тестирования. Это “проверка назад”. Проводится для установления факта того, что ничего не сломано при починке бага или добавления новой функции.

Перечислите уровни тестирования.

Тестирование требований (как минимум на полноту и непротиворечивость), юнит-тестирование (тестирование компонентов), интеграционное тестирование (проверка взаимодействия компонентов), системное тестирование (поведение системы в рамках конкретной платформы – железо, операционная система), приемочное тестирование (заказчик подтверждает, что все его требования выполнены).

4 thoughts on “Терминология, цикл 1”

  1. Спасибо за статьи, отличный материал! Освежил многие вещи в памяти.

    1. Попробуйте выйти на связь одним из способов, указанных в Контактах

  2. Пожалуй лучший сборник по терминологии в рунете, которую спрашивают на собеседованиях.
    Спасибо!

Leave a Reply

Your email address will not be published. Required fields are marked *