Вы находитесь на странице: 1из 39

Добро

пожаловать Курс QA Manual


Список дел на сегодня:

 Познакомиться – кратко о курсе


 Разобраться, что же такое тестирование
 Валидация и Верификация – в чем отличия
 Что такое качество и какие его характеристики
 Выяснить цели тестирования
 Получить первое домашнее задание
 Уйти домой с приятным грузом новых знаний 
Расскажи о себе

● Где учился/учишься?
● Где работал/работаешь?
● Почему ты здесь?
● Почему ты думаешь, что можешь
быть хорошим тестировщиком?
Рекомендации:

● Не бойтесь и не стесняйтесь задавать вопросы!


● Всегда используйте рекомендованную преподавателем информацию
(ссылки в конце презентаций с лекциями)
● Обязательно выполняйте домашнее задание. Не откладывайте на потом
● Занятия, которые вы выполняете дома, составляют 60% ваших знаний
● Самообразование - это самый быстрый путь к успеху
● Каждый день узнавайте что-то новое :)
Основы тестирования
What is testing? QA/QC
Why is testing necessary?
Что такое тестирование?
Тестирование
Тестирование программного обеспечения — процесс анализа программного
средства и сопутствующей документации с целью выявления дефектов и
повышения качества продукта.

В глоссарии ISTQB нет термина «тестирование ПО», который широко


используется в русском языке. Там есть лишь термин «тестирование
(testing)».
ISTQB - некоммерческая организация, занимающаяся определением
различных принципов развития сферы тестирования ПО, таких как структура
и правила аккредитации, сертификации и т.п. Рабочие группы ISTQB
отвечают за разработку и поддержку сертификационных программ и
экзаменов.

Программа ISTQB организовывает сертификацию тестировщиков по всему


миру. Сейчас доступно два уровня сертификации: Базовый уровень
(Foundation Level) – один модуль, и Продвинутый уровень (Advanced Level) –
три модуля.
Тестирование (ISTQB version)
Testing. The process consisting of all lifecycle activities, both static and dynamic,
concerned with planning, preparation and evaluation of software products and
related work products to determine that they satisfy specified requirements, to
demonstrate that they are fit for purpose and to detect defects.

“Процесс, содержащий в себе все активности жизненного цикла, касающиеся


оценки программного продукта с целью определить, что он соответствует
описанным требованиям, показать, что он подходит для заявленных целей и
для определения дефектов.”
QA/QC/Testing?

WHAT IS THIS?
QA/QC/Testing
QA (quality assurance) - комплекс
мероприятий, который охватывает все
технологические аспекты на всех этапах
разработки, выпуска и введения в
эксплуатацию программных систем для
обеспечения необходимого уровня
качества программного продукта.
QA/QC/Testing
QC (quality control) - процесс контроля
соответствия разрабатываемой системы
предъявляемым к ней требованиям.

Testing - процесс, отвечающий


непосредственно за составление и
прохождение тест-кейсов, нахождение и
локализацию дефектов и т.д.
Кто такой QA?

Quality Assurance engineer — это


специалист по обеспечению качества,
деятельность которого направлена на
улучшение процесса разработки ПО,
предотвращение дефектов и выявление
ошибок в работе продукта.
Кто такой QA?
Основная задача QA — обеспечение
качества.

QA-инженер фокусирует внимание на


процессах разработки ПО, улучшает их,
предотвращает появление дефектов и
проблем.

«Makes sure you are doing the right things, the right way»
Процесс обеспечения качества состоит из таких
этапов: • проверка требований к продукту;
• оценка рисков;
• планирование идей по улучшению
качества продукта;
• планирование тестирования;
• анализ результатов тестирования.
Quality Control
Внутри процесса QA выделяют процесс
Quality Control — контроль качества
продукта. QC-специалисты анализируют
результаты тестирования и отвечают за
выявление и уничтожение дефектов в
продукте.

«Makes sure the results of what you have done is what you expected»
Основные цели QC
• Повысить лояльность клиентов
• Получить повторный бизнес
• Получить новых клиентов от рефералов
• Поддерживать или улучшать свои позиции
на рынке
• Улучшить безопасность
• Уменьшить риски ответственности
• Внести свой вклад в общий позитивный
брендинг вашего продукта
Testing
● Еще более узкая специальность в
рамках QA/QC — тестировщик ПО,
который проверяет готовый продукт
на наличие ошибок (багов) и
несоответствие требованиям, и
затем документирует найденные
дефекты и пути их воспроизведения.

● Тестирование — это один из этапов


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

Задачей же QA является обеспечение соответствия


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

Зачем? Почему? Кому это нужно?


Цели тестирования
Цели тестирования для бизнеса

● Предоставление информации о качестве ПО конечному заказчику;


● Повышение качества ПО;
● Предотвращение появления дефектов.
Ключевые цели тестирования

● Повысить вероятность того, что приложение,


предназначенное для тестирования, будет работать
правильно при любых обстоятельствах
● Повысить вероятность того, что приложение,
предназначенное для тестирования, будет
соответствовать всем описанным требованиям
● Предоставление актуальной информации о состоянии
продукта на данный момент
● Повышение качества ПО
● Снижение количества дефектов
Валидация и верификация

Как не перепутать?
Верификация и валидация
Верификация (Verification) — Валидация (validation) – это процесс оценки
это статическая практика проверки документов, конечного продукта, необходимо проверить, соответствует
дизайна, архитектуры, кода, т.д. ли программное обеспечение ожиданиям и требованиям
клиента. Это динамический механизм проверки и
Верификация — это процесс включающий в себя тестирования фактического продукта.
проверку: Plans, Requirement Specifications, Design
Specifications, Code, Test Cases, Chek-Lists, etc. Валидация всегда включает в себя запуск кода
программы.
Верификация всегда проходит без запуска кода.
Верификация использует методы — reviews, Валидация использует методы, такие как тестирование
walkthroughs, inspections, etc. Black Box, тестирование White Box и нефункциональное
тестирование.
Верификация отвечает на вопрос “Делаем ли мы
продукт правильно?” Валидация отвечает на вопрос “Делаем ли мы
правильный продукт?”
Верификация поможет определить, является ли
программное обеспечение высокого качества, но оно не Валидация проверяет, соответствует ли программное
гарантирует, что система полезна. обеспечение требованиям и ожиданиям клиента.
Проверка связана с тем, что система хорошо
спроектирована и безошибочна. Валидация может найти ошибки, которые процесс
Verification не может поймать.
Верификация происходит до Validation Валидация происходит после Verification.
Пример
Верификация:
Корпус корабля? – есть
Мачта? – есть
Веселый роджер? – нет
Штурвал? – нет
Парус? – есть
Все ли есть? – нет
Валидация:
Плывет ли корабль вообще? Держится ли корабль на воде?

Верификация: – подтверждение того, что определенные требования были выполнены.

Валидация: – проверка того, что продукт отвечает ожиданиям и потребностям пользователей.


Качество

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

Любые несоответствия должны


рассматриваться как дефекты –
отсутствие качества.
«Пригодность к использованию»
принимает во внимание требования и
ожидания конечных пользователей
продукта, т.е. продукт или
предоставляемый сервис будет
удобным для их нужд.
Качество в разработке ПО
Существует набор стандартов ISO 9000, регулирующий общие принципы обеспечения
качества во всех отраслях. Наиболее важными стандартами в разработке ПО
являются:
● ISO 9000:2000 Quality management systems — Fundamentals and vocabulary;
● ISO 9001:2000 Quality management systems — Requirements. Models for quality
assurance in design, development, production, installation, and servicing;
● ISO 9004:2000 Quality management systems — Guidelines for performance
improvements;
● ISO/IEC 90003:2004 Software engineering — Guidelines for the application of ISO
9001:2000 to computer software.
Так же в каждой компании могут быть разработаны свои стандарты качества,
отвечающие конкретной специфике работы и соответственно ее требованиям.
Определение качества в стандартах
[1061-1998 IEEE Standard for Software Quality Metrics Methodology]
Качество ПО — это степень, в которой ПО обладает требуемой комбинацией свойств.

[IEEE Std 610.12-1990]


Качество ПО — степень, в которой система, компонент или процесс удовлетворяют потребностям
или ожиданиям заказчика или пользователя.

[ISO/IEC 25000:2014]
Качество ПО — способность программного продукта при заданных условиях удовлетворять
установленным или предполагаемым потребностям.

[ISO 8402:1994 Quality management and quality assurance]


Качество ПО — это совокупность характеристик ПО, относящихся к его способности удовлетворять
установленные и предполагаемые потребности.
Модель качества ПО (ISO 9126)
Характеристики качества
Функциональность (Functionality) — определяется способностью ПО решать задачи, которые
соответствуют зафиксированным и предполагаемым потребностям пользователя, при заданных
условиях использования ПО. Т.е. эта характеристика отвечает за то, что ПО работает исправно и
точно, функционально совместимо, соответствует стандартам отрасли и защищено от
несанкционированного доступа.

Надежность (Reliability) – способность ПО выполнять требуемые задачи в обозначенных условиях


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

Удобство использования (Usability) – возможность легкого понимания, изучения, использования


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

Удобство сопровождения (Maintainability) – легкость, с которой ПО может анализироваться,


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

Портативность (Portability) – характеризует ПО с точки зрения легкости его переноса из одного


окружения (software/hardware) в другое.
Полезные ссылки
● https://habrahabr.ru/post/221447/
● https://dou.ua/lenta/articles/how-to-qa/
● http://software-testing.ru/library/testing/general-testing/2671-5-trends-future-software-testing
● https://bytextest.ru/2017/12/18/testing-trends-2018/
● http://istqbexamcertification.com/what-is-software-testing/
● http://istqbexamcertification.com/what-is-verification-in-software-testingor-what-is-software-
verification/
● http://istqbexamcertification.com/what-is-validation-in-software-testing-or-what-is-software-validation/
● https://www.functionize.com/blog/quality-assurance-vs-quality-control-vstesting-whats-the-
difference/
● https://qalight.com.ua/baza-znaniy/qa-qc-i-testirovanie/
● https://qalight.com.ua/baza-znaniy/kachestvo-programmnogo-obespecheniya/
● Савин Р. “Тестирование DOT COM или Пособие по жестокому обращению с багами в
интернет-стартапах”
● Lee Copeland “A Practitioner’s Guide to Software Test Design”
• Создать/обновить LinkedIn Profile и добавить одногруппников и лектора

• Исследовать ‘forgot password feature’ для выбранного ресурса и создать


документ с описанием.

Оценить