Слайд 2Тестирование программного обеспечения (Software Testing) — проверка соответствия реальных и ожидаемых результатов
![Тестирование программного обеспечения (Software Testing) — проверка соответствия реальных и ожидаемых результатов](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/853776/slide-1.jpg)
поведения программы, проводимая на конечном наборе тестов, выбранном определённым образом.
Цель тестирования — проверка соответствия ПО предъявляемым требованиям, обеспечение уверенности в качестве ПО, поиск очевидных ошибок в программном обеспечении, которые должны быть выявлены до того, как их обнаружат пользователи программы.
Слайд 3Для чего проводится тестирование ПО?
Для проверки соответствия требованиям.
Для обнаружение проблем на более
![Для чего проводится тестирование ПО? Для проверки соответствия требованиям. Для обнаружение проблем](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/853776/slide-2.jpg)
ранних этапах разработки и предотвращение повышения стоимости продукта.
Обнаружение вариантов использования, которые не были предусмотрены при разработке. А также взгляд на продукт со стороны пользователя.
Повышение лояльности к компании и продукту, т.к. любой обнаруженный дефект негативно влияет на доверие пользователей.
Слайд 4Принципы тестирования
Принцип 1 — Тестирование демонстрирует наличие дефектов (Testing shows presence of
![Принципы тестирования Принцип 1 — Тестирование демонстрирует наличие дефектов (Testing shows presence](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/853776/slide-3.jpg)
defects).
Тестирование только снижает вероятность наличия дефектов, которые находятся в программном обеспечении, но не гарантирует их отсутствия.
Принцип 2 — Исчерпывающее тестирование невозможно (Exhaustive testing is impossible).
Полное тестирование с использованием всех входных комбинаций данных, результатов и предусловий физически невыполнимо (исключение — тривиальные случаи).
Принцип 3 — Раннее тестирование (Early testing).
Следует начинать тестирование на ранних стадиях жизненного цикла разработки ПО, чтобы найти дефекты как можно раньше.
Слайд 5Принцип 4 — Парадокс пестицида (Pesticide paradox).
Если повторять те же тестовые сценарии
![Принцип 4 — Парадокс пестицида (Pesticide paradox). Если повторять те же тестовые](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/853776/slide-4.jpg)
снова и снова, в какой-то момент этот набор тестов перестанет выявлять новые дефекты.
Принцип 5 — Тестирование зависит от контекста (Testing is context depending). Тестирование проводится по-разному в зависимости от контекста. Например, программное обеспечение, в котором критически важна безопасность, тестируется иначе, чем новостной портал.
Принцип 6 — Заблуждение об отсутствии ошибок (Absence-of-errors fallacy). Отсутствие найденных дефектов при тестировании не всегда означает готовность продукта к релизу. Система должна быть удобна пользователю в использовании и удовлетворять его ожиданиям и потребностям.
Слайд 6Качество программного обеспечения (Software Quality) - это совокупность характеристик программного обеспечения, относящихся
![Качество программного обеспечения (Software Quality) - это совокупность характеристик программного обеспечения, относящихся](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/853776/slide-5.jpg)
к его способности удовлетворять установленные и предполагаемые потребности.
Слайд 7Обеспечение качества (QA — Quality Assurance) и контроль качества (QC — Quality
![Обеспечение качества (QA — Quality Assurance) и контроль качества (QC — Quality](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/853776/slide-6.jpg)
Control) — эти термины похожи на взаимозаменяемые, но разница между обеспечением качества и контролем качества все-таки есть, хоть на практике процессы и имеют некоторую схожесть.
QC (Quality Control) — Контроль качества продукта — анализ результатов тестирования и качества новых версий выпускаемого продукта.
К задачам контроля качества относятся:
проверка готовности ПО к релизу;
проверка соответствия требований и качества данного проекта.
Слайд 8QA (Quality Assurance) — Обеспечение качества продукта — изучение возможностей по изменению
![QA (Quality Assurance) — Обеспечение качества продукта — изучение возможностей по изменению](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/853776/slide-7.jpg)
и улучшению процесса разработки, улучшению коммуникаций в команде, где тестирование является только одним из аспектов обеспечения качества.
К задачам обеспечения качества относятся:
проверка технических характеристик и требований к ПО;
оценка рисков;
планирование задач для улучшения качества продукции;
подготовка документации, тестового окружения и данных;
тестирование;
анализ результатов тестирования, а также составление отчетов и других документов.
Слайд 9Характеристики качества ПО
Функциональность (Functionality) - определяется способностью ПО решать задачи, которые соответствуют зафиксированным
![Характеристики качества ПО Функциональность (Functionality) - определяется способностью ПО решать задачи, которые](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/853776/slide-8.jpg)
и предполагаемым потребностям пользователя, при заданных условиях использования ПО. Т.е. эта характеристика отвечает то, что ПО работает исправно и точно, функционально совместимо соответствует стандартам отрасли и защищено от несанкционированного доступа.
Надежность (Reliability) – способность ПО выполнять требуемые задачи в обозначенных условиях на протяжении заданного промежутка времени или указанное количество операций. Атрибуты данной характеристики – это завершенность и целостность всей системы, способность самостоятельно и корректно восстанавливаться после сбоев в работе, отказоустойчивость.
Слайд 10Удобство использования (Usability) – возможность легкого понимания, изучения, использования и привлекательности ПО для
![Удобство использования (Usability) – возможность легкого понимания, изучения, использования и привлекательности ПО](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/853776/slide-9.jpg)
пользователя.
Эффективность (Efficiency) – способность ПО обеспечивать требуемый уровень производительности, в соответствии с выделенными ресурсами, временем и другими обозначенными условиями.
Удобство сопровождения (Maintainability) – легкость, с которой ПО может анализироваться, тестироваться, изменяться для исправления дефектов для реализации новых требований, для облегчения дальнейшего обслуживания и адаптирования к имеющемуся окружению.
Портативность (Portability) – характеризует ПО с точки зрения легкости его переноса из одного окружения (software/ hardware) в другое.
Слайд 12Документацию, которая используется на проектах по разработке ПО, можно условно разделить на
![Документацию, которая используется на проектах по разработке ПО, можно условно разделить на](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/853776/slide-11.jpg)
две группы:
Проектная документация — включает в себя всё, что относится к проекту в целом.
Продуктовая документация — часть проектной документации, выделяемая отдельно, которая относится непосредственно к разрабатываемому приложению или системе.
Слайд 13Этапы тестирования:
Анализ продукта
Работа с требованиями
Разработка стратегии тестирования и планирование процедур контроля качества
Создание
![Этапы тестирования: Анализ продукта Работа с требованиями Разработка стратегии тестирования и планирование](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/853776/slide-12.jpg)
тестовой документации
Тестирование прототипа
Основное тестирование
Стабилизация
Эксплуатация
Слайд 14Стадии разработки ПО — этапы, которые проходят команды разработчиков ПО, прежде чем
![Стадии разработки ПО — этапы, которые проходят команды разработчиков ПО, прежде чем](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/853776/slide-13.jpg)
программа станет доступной для широкого круга пользователей.
Программный продукт проходит следующие стадии:
анализ требований к проекту;
проектирование;
реализация;
тестирование продукта;
внедрение и поддержка.
Слайд 15Аккаунт-менеджер - менеджер по работе с клиентами, специалист, который работает с клиентами
![Аккаунт-менеджер - менеджер по работе с клиентами, специалист, который работает с клиентами](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/853776/slide-14.jpg)
компании и обеспечивает их лояльность. Аккаунт-менеджер обеспечивает выполнение всех необходимых клиенту задач, находит к каждому заказчику индивидуальный подход, поддерживает с ним хорошие отношения (даже после того, как все заказы уже выполнены), предлагает ему новые услуги и продукты.
Менеджер проекта (Project manager, руководитель проекта, проект-менеджер; сокращенно - PM, ПМ, РП) - лицо, ответственное за управление проектом. Менеджер проекта несет ответственность за достижение целей проекта в рамках бюджета, в срок и с заданным уровнем качества.
Слайд 16Системный аналитик (аналитик) является “мостиком” между заказчиком и членами команды. Переводит пожелания
![Системный аналитик (аналитик) является “мостиком” между заказчиком и членами команды. Переводит пожелания](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/853776/slide-15.jpg)
заказчика в формат точно описанных технических заданий.
Системный архитектор (архитектор) проектирует разрабатываемую систему на самом верхнем уровне и принимает ключевые решения по поводу технологий и методологий разработки. Активно занимается исследованиями и экспериментами, рисует многочисленные диаграммы и документирует архитектурные решения.
Слайд 17Программист (разработчик) пишет код на языках программирования, т.е. непосредственно кодирует логику работы
![Программист (разработчик) пишет код на языках программирования, т.е. непосредственно кодирует логику работы](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/853776/slide-16.jpg)
программы. Также является ее первым пользователем и тестировщиком. Непосредственно отвечает за то, что программа работает и работает правильно (в соответствии с техническим заданием).
Ведущий программист (технический лидер, техлид) - программист, который с технической точки зрения принимает решения о формате реализации функционала и координирует работу команды разработчиков.
Слайд 18QA-специалист - специалист, который обеспечивает качество продукта (тестирует, контролирует и управляет качеством
![QA-специалист - специалист, который обеспечивает качество продукта (тестирует, контролирует и управляет качеством](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/853776/slide-17.jpg)
продукта).
SDET-специалист (контроль качества, автоматизация тестирования) - специалист, который проверяет и отвечает за качество продукта. Пишет код для автоматизации процесса тестирования на разных языках программирования. Помогает команде разработки с точки зрения технических вопросов, вопросов архитектуры и построения приложения