Неделя 1. Теория тестирования. Часть 1
Доброго времени суток. Вот и прошла первая неделя с начала моего обучения. За данную неделю я хотел сделать больше, но плохое самочувствие + нагрузочное тестирование высасывали все соки из меня. Поэтому получилось как получилось.
Я еще не решил в каком формате буду делать отчет, так что пока буду просто скидывать сюда свои конспекты и мысли, к которым я пришел. Если есть идеи, то милости прошу в комментарии. ^_^
Как и планировалось, я начал смотреть курс Artsiom Rusau QA Life. Посмотрел я не так чтобы много в силу того, что мне не особо заходит формат, но, проведя исследования других видеороликов я понял, что, в общем то, не так уж и плохо, тем более если параллельно смотреть еще какой-нибудь источник. А таким источником мне послужила небольшая статейка на хабре "Фундаментальная теория тестирования". Так что пока я планирую продолжить слушать лекции и еще хочу параллельно проходить курс на stepik "Тестирование ПО: подготовка к сертификации ISTQB Foundation".
Забыл сказать, что я также ознакомился с курсами, которые советовали из комментариев, но пока что попробую без них.
Также большое спасибо за совет по CI/CD, я уже добавил его в источники, по которым буду изучать данный раздел.
А теперь мой конспект:
Виды информационного взаимодействия:
B2B (business-to-business) - одна компания продает продукт другой компании.
B2C (business-to-customer) - компания продает продукт конечному потребителю или частному лицу.
B2G (business-to-government) - компания продает продукт гос. учреждениями.
C2C (customer-to-customer) - частное лицо продает продукт частному лицу (например, авито).
Тестирование - поиск несоответствия между фактическим и ожидаемым результатом.
SDLC (Software Development Life Cycle) - жизненный цикл разработки.
Этапы:
Анализ требований - отвечает на вопрос «Какие проблемы требуют решений?»
Планирование - отвечает на вопрос «Что мы хотим сделать?»
Проектирование и дизайн - отвечает на вопрос «Как мы добьемся наших целей?»
Разработка ПО - регулирует процесс создания продукта.
Тестирование - регулирует обеспечение качественной работы продукта.
Развертывание - регулирует использование финального продукта.
Также еще можно выделить два этапа:
Инициация (идея) - у заказчика появилась идея и он ищет компанию, которая будет это реализовывать.
Вывод из эксплуатации - бизнес решает прекратить поддержку продукта.
Для чего нужно тестирование:
Обеспечить продукту надлежащее качество.
Уменьшить расходы за создание продукта (например, если не ранней стадии не найти баг, то в дальнейшем стоимость его исправления обойдется значительно дороже)
Принципы тестирования:
Тестирование показывает наличие дефектов (нельзя найти все баги).
Исчерпывающее тестирование невозможно.
Раннее тестирование (тестовые активности должны начинаться как можно раньше и преследовать целью экономия средств заказчика, так как чем раньше обнаружиться баг, тем меньше будет стоимость его исправления).
Скопление дефектов (в небольшом количестве модулей сокрыто большое количество дефектов)
Парадокс пестицида (если повторять те же тестовые сценарии снова и снова, в какой-то момент этот набор тестов перестанет выявлять новые дефекты).
Тестирование зависит от контекста (например, способ тестирования медицинской техники будет отличаться от того, которым тестируем коммерческий сайт).
Заблуждение об отсутствии ошибок.
Жизненный цикл тестирования:
Цели тестирования:
Оценка рабочих продуктов (требования, пользовательские истории, проектирование и код).
Все ли указанные требования выполнены.
Завершен ли объект тестирования и работает, как ожидают пользователи и заинтересованные лица.
Создание уверенности в уровне качества объекта тестирования.
Предотвращение и обнаружение отказов и дефектов.
Предоставление заинтересованным лицам достаточной информации, позволяющей им принять обоснованные решения.
Снижение уровня риска ненадлежащего качества программного обеспечения.
Соблюдение договорных, правовых или нормативных требований, или стандартов и/или проверка соответствия объекта тестирования им.
Отладка (debugging) - это деятельность разработки для нахождения, анализа и исправления таких дефектов. Последующее подтверждающее тестирование проверяет, устранены ли исправленные дефекты.
Контроль качества (quality control) - набор действий, предназначенных для оценивания качества компонента или системы.
Обеспечение качества (quality assurance) - активности, направленные на обеспечение уверенности в том, что требования к качеству будут выполнены.
Различия в QC и QA:
QC включает различную деятельность, в том числе работы по тестированию, которые поддерживают достижение соответствующего уровня качества.
QA сосредоточено на соблюдении соответствующих процессов для обеспечения уверенности в том, что будут достигнуты соответствующие уровни качества.
(QC работает над продуктом, а QA работает над процессами)
Управление качеством (quality management) - скоординированные действия по руководству и контролю организации в отношении качества, которые включают в себя установление политики качества и целей качества, планирование качества, контроль качества, обеспечение качества и повышение качества.
Верификация (verification) - доказанное объективными результатами исследования подтверждение того, что определенные требования были выполнены. (Делаем ли мы продукт правильно?)
Валидация (validation) - доказанное объективными результатами исследования подтверждение того, что требования для ожидаемого конкретного исследования приложения были выполнены. (Делаем ли мы правильный продукт?)
(Валидация сконцентрирована на требовании (нужды заказчика), а валидация - на ожидании пользователя (нужды пользователя)).
Получилось конечно прям мало, так что нужно будет на следующей неделе прям хорошенечко поработать. Спасибо что дочитали. Если есть какие-то советы, пожелания и т.п., то жду вас :)