SlideShare una empresa de Scribd logo
1 de 40
Тестирование ПО
Введение в тестирование
 Что такое тестирование программного обеспечения?
 Проверка соответствия между реальным и ожидаемым поведением программы
 Процесс выполнения программы с целью нахождения ошибок
 Техническое исследование программы для получения информации о её
качестве с точки зрения производителя и потребителя
Необходимость тестирования
 высокие требования в области качества
 спецификаций производителя
 спецификаций потребителя
 низкое качество ПО ведет к:
 потере денег
 потере времени
 потере репутации
 даже к летальному исходу
Стоимости ошибки на каждой из
стадии разработки
Не выявленная и не решенная
проблема при использовании
программного обеспечения может
быть в 40-100 раз дороже при
решении чем выявленная проблема
на ранней стадии во время
разработки ПО
Необходимость тестирования
 создан Atomic Energy of Canada
Limited в 1982
 5 летальных исхода (1985-1987)
Therac 25
Цели и задачи тестирования
 Выявление дефектов на различных этапах жизненного цикла приложения
 Проверка того, что выявленный дефект был успешно устранён
 Выяснение того, что изменения, связанные с устранением выявленного
дефекта, не привнесли новых дефектов в систему
Базовая терминология тестирования
 Error (ошибка)
 Bug/Defect (Баг/Дефект)
 Failure (Отказ)
 Requirement (требование)
 Test Case (тестовый случай)
 Test Data (Тестовые Данные)
7 принципов тестирования
1. Тестирование показывает наличие дефектов
(Testing shows the presence of bugs)
“Тестирование может показать наличие дефектов в программе, но не доказать их
отсутствие.”
2. Исчерпывающее тестирование невозможно
(Exhaustive testing is impossible)
“Невозможно тестировать все комбинаций пользовательского ввода и состояний
системы”
3. Раннее тестирование
(Early testing)
“Тестирование должно начинаться как можно раньше в жизненном цикле
разработки программного обеспечения”
4. Скопление дефектов
(Defect clustering)
“80% проблем содержатся в 20% модулей”
7 принципов тестирования
5. Парадокс пестицида
(The pesticide paradox)
“ Одни и те же тесты находят все меньше новых ошибок “
6. Тестирование зависит от контекста
(Testing is context dependent)
“Выбор методологии, техники и типа тестирования будет напрямую зависеть от
природы самой программы”
7. Заблуждение об отсутствии ошибок
(Absence of errors fallacy)
“Нахождение и исправление дефектов будут не важны если система не будет
удовлетворять ожиданиям и потребностям пользователя”
Уровни Тестирования
 Component/Unit Testing (компонентное или модульное тестирование)
“тестировании различных модулей приложения, которые могут быть
протестированы по отдельности в силу своей автономности”
 Integration Testing (интеграционное тестирование)
“представляет собой исследование связей между компонентами приложения”
 System Testing (системное тестирование)
“направлено на исследование функциональных и нефункциональных особенностей
системы в целом”
 Acceptance Testing (приёмочное тестирование)
“соответствует ли система приёмочно/сдаточным критериям”
 Alpha Testing - имитацию реального использования продукта штатными разработчиками
либо командой тестировщиков
 Beta Testing - предполагает привлечение добровольцев из числа обычных будущих
пользователей продукта
Тестировщик и QA инженер
 Quality Management (управления качеством)
 Quality Control (контроль качества)
“ставит основной акцент на поиске дефектов, которые уже были внесены в
продукт”
 Quality Assurance (обеспечение качества)
предотвращение появления дефектов
Кто такой тестировщик?
“в обязанности тестировщика входит поиск дефектов ПО, а также, отчасти,
выявление их этимологии с формальным указанием условий возникновения
каждой ошибки”
 Testing (Тестированье) – это средство обнаружения ошибок
 Debugging (Отладка) – является средством поиска и устранения причин
уже обнаруженных ошибок
Кто такой тестировщик?
 тестировщик участвует в приёмке-сдаче готового продукта
 опыт разработки программного обеспечения - совершенно не обязательно
 тестирование и разработка – суть два различных процесса
Цели и задачи тестировщика
“Задача тестировщика состоит в том, чтобы поставлять разработчикам
информацию о соответствии продукта заданным спецификациям”
 обнаружениые дефектов кодирования
 выявление недостатков производительности системы
 контроль исправления, выявленных в процессе тестирования дефектов
…..
Кто такой QA инженер?
 Quality Assurance (обеспечение качества) - разработка и внедрение
превентивных мер по недопущению появления дефектов и составляет
основную задачу обеспечения качества
 Quality Assurance Engineer (QA инженер) ,задачей которого является
повышения качества процесса, с одной стороны, и продукта – с другой
 Process Engineering – PE (разработка процессов), поиск путей модернизации
процесса, с целью повышения качества производимой продукции;
 Software Quality Assurance (обеспечение качества), в основном состоящее в
удостоверении того, что разработка продукта соответствует определённым на
предприятии процессам (process consistency)
Цели и задачи QA (обеспечение качества)
 Process Engineering (Разработка процессов) – изучение опыта организации
процесса на производстве с целью его совершенствования и разработки
новых процессов, обеспечивающих производство качественного продукта
 Process Improvement (постоянное совершенствование процессов
производства), которое, как правило, выражается в предотвращении
дефектов (defects prevention), носящего форму изучения дефектов с
целью их предотвращения, а также опыта прошлых проектов с целью
поиска путей усовершенствования процессов разработки
 Process Consistency (удостоверение соответствия разработки продукта
определённым процессам)
Цели и задачи QA инженера
 разработка эффективных процессов для проектов
 контроль и обеспечение корректного использования процессов
 выбор эффективных методов и способов тестирования
 подбор и использование эффективных методов предотвращения дефектов
Цели и задачи тестировщика и QA инженера
 Основная цель тестировщиков и QA инженеров одна – обеспечение
качества конечного продукта
 QA инженер отвечает за обеспечение качества, а тестировщик – за его
контроль
 QA инженер и тестировщик работают на различных уровнях процесса, а
также в различных зонах ответственности
Тестирование в контексте процесса
разработки ПО
Каскадная модель
(Waterfall Model)
 Анализ требований
(Requirements Analysis)
 Проектирование программного
обеспечения
(Software Design)
 Реализация (Implementation)
 Тестирование программного
обеспечения (Testing)
 Установка (Deployment)
 Эксплуатация и поддержка
 Сопровождение (Maintenance)
Тестирование в контексте процесса
разработки ПО
V-образная модель
(V-model)
 Анализ требований потребителя -
приёмочное тестирование
 Анализ требований производителя -
системное тестирование
 Высокоуровневый проектирование -
интеграционное тестирование
 Детализированная проектирование -
компонентное или модульное
тестирование
 Разработка программного кода
Жизненный цикл тестирования ПО
(Fundamental Test Process)
Жизненный цикл тестирования ПО
 Анализ требований – На фазе анализа требований тестировщик должен
получить требования к тестируемому продукту и сформировать из них
«матрицу требований», это позволит в будущем следить, чтобы программа
оставалась такой, какой хочет видеть ее клиент;
 Анализ дизайна проекта - какой подход к тестированию будет
использоваться, важно для автоматизации тестов (automation testing)
 Планирование тестирования - это этап, на котором производиться
планирование тестов, тестировщики планируют как они будут проверять
требования предъявленные к продукту
 определение целей тестирования
 спецификация тестовых мероприятий
Жизненный цикл тестирования ПО
 Разработка тестов - разработка тестов ведется параллельно разработке
программы, как только разрабатывается часть программы, к ней
разрабатывают тест, который будет производить тестирование этой части
программы
 Выполнение тестов - выполнение тестов производиться постоянно в
процессе разработки продукта, для более раннего отслеживания дефектов
 Написание отчетов - тестировщики после выполнения тестирования
должны написать отчеты о найденных дефектах, и частях приложения
которые работают правильно
 Повторная проверка дефектов - когда отчеты были написаны и переданы
разработчикам, их задача исправить найденные дефекты приложения,
после исправления все приложение должно пройти повторную проверку
тестировщиками
Типы тестирования
 Функциональные виды
 функциональное тестирование (functional testing) - направлено на проверку
корректности выполняемых системой функций и может присутствовать на всех
уровнях тестирования;
 тестирование безопасности (security and access control testing) направлено
на проверку безопасности системы, а также оценку целостности подхода к
защите приложения от несанкционированного доступа и защите
конфиденциальных данных;
 тестирование взаимодействия (interoperability testing) - направлено на
оценку возможности приложения взаимодействовать с внешними
компонентами или системами, а также включает тестирование совместимости
(compatibility testing) и интеграционное тестирование (integration testing)
Типы тестирования
 Нефункциональные виды
 тестирование удобства использования (usability testing) связано с оценкой
степени удобства использования, а также понятности и привлекательности
пользовательского интерфейса приложения;
 тестирования производительности
 Performance and Load testing - нагрузка в пределах нормы
 Stress Testing (стрессовое тестирование) - нагрузки превышающей штатную
 Stability/Reliability Testing - нормальной нагрузки при длительном
функционировании
 volume testing (объёмное тестирование) - используется для оценки
поведения системы при условии увеличения объёма данных
Виды тестирования связанные с изменениями
 Регрессионное тестирование (regression testing) - предназначено для
проверки осуществлённых в системе изменений, а так же на
подтверждение того, что существовавшая до изменения ункциональность,
работает также как и прежде;
 Повторная проверка дефектов (retesting) - после исправления бага нужно
пройти повторную проверку
 дымовое тестирование (smoke testing) направлено на обзорную проверку
всех компонентов приложения на предмет работоспособности, а также на
выявление грубых дефектов, наличие которых можно определить, так
сказать, «невооружённым глазом»;
Подходы к тестированию
 Exploratory (ознакомительное) - одновременное обучение, дизайн теста и
выполнение теста
 Scripted (по сценарию) - набор инструкций, которые будут выполняться в
тестируемой системе, чтобы проверить, что система функционирует
должным образом
 Manual (ручное) - Ручное тестирование производиться человеком
 Automated (автоматическое) - автоматическое тестирование
производиться ПО
Подходы к тестированию
 Black Box (черный ящик) - тестировщик не имеет доступа к исходному
коду
 White Box (белый ящик) - позволяет тестировщику использовать исходный
код приложения (создание unit-test)
 Positive (Позитивное) - тестировщик играет роль «правильного»
пользователя (happy flow)
 Negative (негативное) - тестировщик должен играть роль хакера, который
пытается поломать программу, стоит приложить все возможные усилия
для проверки программы в самых не благоприятных условиях
Unit Test Example
Unit Test Example 2
Test Case (Тестовый случай)
Тестовый случай (Test Case) - это артефакт, описывающий совокупность шагов,
конкретных условий и параметров, необходимых для проверки реализации
тестируемой функции или её части
 Название теста
 Предусловия
 Шаги + Ожидаемый результат
 Фактический результат
Test Case Example
Лабораторная работа 1
Описать тест кейсы для проверки Регистраций на сайте ‘https://www.rambler.ru/’
 1 positive test case
 1 negative test case
Ошибки пользовательского интерфейса
Задача разработчиков сделать интерфейс
«дружественным» (user-friendly
interface) а тестировщики должны
проверить действительно ли
дружественный этот интерфейс
 Организация интерфейса - стоит
следить за тем, чтобы интерфейс
логически был разделен на группы
 Пропущенные команды – это дефект
интерфейса, когда в приложении
явно не хватает какой-то функции,
или просто не понятно как
пользоваться этой функцией
Ошибки пользовательского интерфейса
 Производительность – очень плохо,
когда пользователь видит как программа
с задержкой реагирует на его действия
 Выходные данные – выходными
данными программы называют все
результаты работы рограммы, будь то
информация, экспортированная в PDF
файл, или просто вывод в label на
клиентскую область окна
 Обработка ошибок –хорошо, когда в
программе невозникает ошибок или
когда они возникают, программа сама в
силах их исправить, но всех ошибок не
предусмотреть, поэтому очень важно
показывать подробный отчет об ошибке,
желательно выводить на экран
информацию о том, как исправить
возникшую ошибку.
Другие ошибки
 Ошибки граничных условий - нет проверки на формат входящих данных
 Ошибки документации
 Ошибки тестирования
Дружественный интерфейс
 Доступность - все элементы
управления будут понятны
максимальному количеству
пользователей
 Минимализм. В интерфейсе не
должно быть ничеголишнего,
отличным примером может
служить регулятор громкости в
windows.
 Уверенность. Очень важно
чтобы все элементы управления
просто «кричали» о том что они
делают
Лабораторная работа 2
Описать тест кейсы на сайте:
‘euzbor.md’
‘pneu.md’
 3 positive test case
 7 negative test case
Примеры ошибок
Вопросы ?

Más contenido relacionado

La actualidad más candente

Test Case Design
Test Case DesignTest Case Design
Test Case Design
acatalin
 
Software testing methods, levels and types
Software testing methods, levels and typesSoftware testing methods, levels and types
Software testing methods, levels and types
Confiz
 
verification and validation
verification and validationverification and validation
verification and validation
Dinesh Pasi
 
Software Testing Life Cycle
Software Testing Life CycleSoftware Testing Life Cycle
Software Testing Life Cycle
Udayakumar Sree
 

La actualidad más candente (20)

ISTQB, ISEB Lecture Notes- 4
ISTQB, ISEB Lecture Notes- 4ISTQB, ISEB Lecture Notes- 4
ISTQB, ISEB Lecture Notes- 4
 
Agiles Testen - Überblick
Agiles Testen - ÜberblickAgiles Testen - Überblick
Agiles Testen - Überblick
 
Pirâmide de testes mobile, dividindo seus testes de maneira efetiva
Pirâmide de testes mobile, dividindo seus testes de maneira efetivaPirâmide de testes mobile, dividindo seus testes de maneira efetiva
Pirâmide de testes mobile, dividindo seus testes de maneira efetiva
 
Planejamento de testes em um mundo ágil
Planejamento de testes em um mundo ágilPlanejamento de testes em um mundo ágil
Planejamento de testes em um mundo ágil
 
End-to-End Test Automation for Both Horizontal and Vertical Scale
End-to-End Test Automation for Both Horizontal and Vertical ScaleEnd-to-End Test Automation for Both Horizontal and Vertical Scale
End-to-End Test Automation for Both Horizontal and Vertical Scale
 
Test Case Design
Test Case DesignTest Case Design
Test Case Design
 
ISTQB / ISEB Foundation Exam Practice - 6
ISTQB / ISEB Foundation Exam Practice - 6ISTQB / ISEB Foundation Exam Practice - 6
ISTQB / ISEB Foundation Exam Practice - 6
 
Software Quality Assurance - Software Engineering PPT by Devansh Koolwal
Software Quality Assurance - Software Engineering PPT by Devansh KoolwalSoftware Quality Assurance - Software Engineering PPT by Devansh Koolwal
Software Quality Assurance - Software Engineering PPT by Devansh Koolwal
 
Software testing methods, levels and types
Software testing methods, levels and typesSoftware testing methods, levels and types
Software testing methods, levels and types
 
ISTQB, ISEB Lecture Notes- 2
ISTQB, ISEB Lecture Notes- 2ISTQB, ISEB Lecture Notes- 2
ISTQB, ISEB Lecture Notes- 2
 
Основні поняття підприємництва.pptx
Основні поняття підприємництва.pptxОсновні поняття підприємництва.pptx
Основні поняття підприємництва.pptx
 
Software Testing: History, Trends, Perspectives - a Brief Overview
Software Testing: History, Trends, Perspectives - a Brief OverviewSoftware Testing: History, Trends, Perspectives - a Brief Overview
Software Testing: History, Trends, Perspectives - a Brief Overview
 
verification and validation
verification and validationverification and validation
verification and validation
 
Software Testing or Quality Assurance
Software Testing or Quality AssuranceSoftware Testing or Quality Assurance
Software Testing or Quality Assurance
 
Introduction to Agile Testing
Introduction to Agile TestingIntroduction to Agile Testing
Introduction to Agile Testing
 
ISTQB / ISEB Foundation Exam Practice - 5
ISTQB / ISEB Foundation Exam Practice - 5ISTQB / ISEB Foundation Exam Practice - 5
ISTQB / ISEB Foundation Exam Practice - 5
 
ISTQB Metodolojisi ile Test Planlama ve Tahminleme
ISTQB Metodolojisi ile Test Planlama ve TahminlemeISTQB Metodolojisi ile Test Planlama ve Tahminleme
ISTQB Metodolojisi ile Test Planlama ve Tahminleme
 
QTest - Test management Tool
QTest - Test management ToolQTest - Test management Tool
QTest - Test management Tool
 
Técnicas de Teste
Técnicas de TesteTécnicas de Teste
Técnicas de Teste
 
Software Testing Life Cycle
Software Testing Life CycleSoftware Testing Life Cycle
Software Testing Life Cycle
 

Similar a тестирование по

Тестирование весна 2014 лекция 1
Тестирование весна 2014 лекция 1Тестирование весна 2014 лекция 1
Тестирование весна 2014 лекция 1
Technopark
 
Тестирование осень 2013 лекция 1
Тестирование осень 2013 лекция 1Тестирование осень 2013 лекция 1
Тестирование осень 2013 лекция 1
Technopark
 
IntroductionPrinciples
IntroductionPrinciplesIntroductionPrinciples
IntroductionPrinciples
QA Guards
 
Test management
Test managementTest management
Test management
QA Guards
 
Тестирование весна 2013 лекция 1
Тестирование весна 2013 лекция 1Тестирование весна 2013 лекция 1
Тестирование весна 2013 лекция 1
Technopark
 
Как развить отдел тестирования от палки-копалки до CI
Как развить отдел тестирования от палки-копалки до CIКак развить отдел тестирования от палки-копалки до CI
Как развить отдел тестирования от палки-копалки до CI
CEE-SEC(R)
 
Михаил Павлов - is a tester responsible for quality
Михаил Павлов - is a tester responsible for qualityМихаил Павлов - is a tester responsible for quality
Михаил Павлов - is a tester responsible for quality
Alexei Lupan
 
ук 03.007.02 2011
ук 03.007.02 2011ук 03.007.02 2011
ук 03.007.02 2011
etyumentcev
 

Similar a тестирование по (20)

Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
 
Тестирование весна 2014 лекция 1
Тестирование весна 2014 лекция 1Тестирование весна 2014 лекция 1
Тестирование весна 2014 лекция 1
 
Тестирование ПО (лекция 1)
Тестирование ПО (лекция 1)Тестирование ПО (лекция 1)
Тестирование ПО (лекция 1)
 
Тестирование осень 2013 лекция 1
Тестирование осень 2013 лекция 1Тестирование осень 2013 лекция 1
Тестирование осень 2013 лекция 1
 
Test management print
Test management printTest management print
Test management print
 
IntroductionPrinciples
IntroductionPrinciplesIntroductionPrinciples
IntroductionPrinciples
 
Test design print
Test design printTest design print
Test design print
 
Модуль 8. Лекция 37-38. Управление качеством проекта
Модуль 8. Лекция 37-38. Управление качеством проектаМодуль 8. Лекция 37-38. Управление качеством проекта
Модуль 8. Лекция 37-38. Управление качеством проекта
 
Who is a functional tester
Who is a functional testerWho is a functional tester
Who is a functional tester
 
Test management
Test managementTest management
Test management
 
Testing
TestingTesting
Testing
 
Mva stf module 2 - rus
Mva stf module 2 - rusMva stf module 2 - rus
Mva stf module 2 - rus
 
Процесс тестирования
Процесс тестированияПроцесс тестирования
Процесс тестирования
 
Тестирование весна 2013 лекция 1
Тестирование весна 2013 лекция 1Тестирование весна 2013 лекция 1
Тестирование весна 2013 лекция 1
 
Как развить отдел тестирования от палки-копалки до CI
Как развить отдел тестирования от палки-копалки до CIКак развить отдел тестирования от палки-копалки до CI
Как развить отдел тестирования от палки-копалки до CI
 
Quality Assurance vs Quality Control - так в чем же заключается работа специа...
Quality Assurance vs Quality Control - так в чем же заключается работа специа...Quality Assurance vs Quality Control - так в чем же заключается работа специа...
Quality Assurance vs Quality Control - так в чем же заключается работа специа...
 
Отвечает ли тестировщик за качество?
Отвечает ли тестировщик за качество?Отвечает ли тестировщик за качество?
Отвечает ли тестировщик за качество?
 
Михаил Павлов - is a tester responsible for quality
Михаил Павлов - is a tester responsible for qualityМихаил Павлов - is a tester responsible for quality
Михаил Павлов - is a tester responsible for quality
 
ук 03.007.02 2011
ук 03.007.02 2011ук 03.007.02 2011
ук 03.007.02 2011
 
Лекция 1 введение в тестирование ПО, основные понятия и принципы
Лекция 1 введение в тестирование ПО, основные понятия и принципыЛекция 1 введение в тестирование ПО, основные понятия и принципы
Лекция 1 введение в тестирование ПО, основные понятия и принципы
 

Último

ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
Ирония безопасности
 
Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
Хроники кибер-безопасника
 
2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
Хроники кибер-безопасника
 
CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
Хроники кибер-безопасника
 
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
Хроники кибер-безопасника
 
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Ирония безопасности
 

Último (9)

Ransomware_Q3 2023. The report [RU].pdf
Ransomware_Q3 2023.  The report [RU].pdfRansomware_Q3 2023.  The report [RU].pdf
Ransomware_Q3 2023. The report [RU].pdf
 
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
 
Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
 
2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
 
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdfMalware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
 
CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
 
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
 
MS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdfMS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdf
 
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
 

тестирование по

  • 2. Введение в тестирование  Что такое тестирование программного обеспечения?  Проверка соответствия между реальным и ожидаемым поведением программы  Процесс выполнения программы с целью нахождения ошибок  Техническое исследование программы для получения информации о её качестве с точки зрения производителя и потребителя
  • 3. Необходимость тестирования  высокие требования в области качества  спецификаций производителя  спецификаций потребителя  низкое качество ПО ведет к:  потере денег  потере времени  потере репутации  даже к летальному исходу
  • 4. Стоимости ошибки на каждой из стадии разработки Не выявленная и не решенная проблема при использовании программного обеспечения может быть в 40-100 раз дороже при решении чем выявленная проблема на ранней стадии во время разработки ПО
  • 5. Необходимость тестирования  создан Atomic Energy of Canada Limited в 1982  5 летальных исхода (1985-1987) Therac 25
  • 6. Цели и задачи тестирования  Выявление дефектов на различных этапах жизненного цикла приложения  Проверка того, что выявленный дефект был успешно устранён  Выяснение того, что изменения, связанные с устранением выявленного дефекта, не привнесли новых дефектов в систему
  • 7. Базовая терминология тестирования  Error (ошибка)  Bug/Defect (Баг/Дефект)  Failure (Отказ)  Requirement (требование)  Test Case (тестовый случай)  Test Data (Тестовые Данные)
  • 8. 7 принципов тестирования 1. Тестирование показывает наличие дефектов (Testing shows the presence of bugs) “Тестирование может показать наличие дефектов в программе, но не доказать их отсутствие.” 2. Исчерпывающее тестирование невозможно (Exhaustive testing is impossible) “Невозможно тестировать все комбинаций пользовательского ввода и состояний системы” 3. Раннее тестирование (Early testing) “Тестирование должно начинаться как можно раньше в жизненном цикле разработки программного обеспечения” 4. Скопление дефектов (Defect clustering) “80% проблем содержатся в 20% модулей”
  • 9. 7 принципов тестирования 5. Парадокс пестицида (The pesticide paradox) “ Одни и те же тесты находят все меньше новых ошибок “ 6. Тестирование зависит от контекста (Testing is context dependent) “Выбор методологии, техники и типа тестирования будет напрямую зависеть от природы самой программы” 7. Заблуждение об отсутствии ошибок (Absence of errors fallacy) “Нахождение и исправление дефектов будут не важны если система не будет удовлетворять ожиданиям и потребностям пользователя”
  • 10. Уровни Тестирования  Component/Unit Testing (компонентное или модульное тестирование) “тестировании различных модулей приложения, которые могут быть протестированы по отдельности в силу своей автономности”  Integration Testing (интеграционное тестирование) “представляет собой исследование связей между компонентами приложения”  System Testing (системное тестирование) “направлено на исследование функциональных и нефункциональных особенностей системы в целом”  Acceptance Testing (приёмочное тестирование) “соответствует ли система приёмочно/сдаточным критериям”  Alpha Testing - имитацию реального использования продукта штатными разработчиками либо командой тестировщиков  Beta Testing - предполагает привлечение добровольцев из числа обычных будущих пользователей продукта
  • 11. Тестировщик и QA инженер  Quality Management (управления качеством)  Quality Control (контроль качества) “ставит основной акцент на поиске дефектов, которые уже были внесены в продукт”  Quality Assurance (обеспечение качества) предотвращение появления дефектов
  • 12. Кто такой тестировщик? “в обязанности тестировщика входит поиск дефектов ПО, а также, отчасти, выявление их этимологии с формальным указанием условий возникновения каждой ошибки”  Testing (Тестированье) – это средство обнаружения ошибок  Debugging (Отладка) – является средством поиска и устранения причин уже обнаруженных ошибок
  • 13. Кто такой тестировщик?  тестировщик участвует в приёмке-сдаче готового продукта  опыт разработки программного обеспечения - совершенно не обязательно  тестирование и разработка – суть два различных процесса
  • 14. Цели и задачи тестировщика “Задача тестировщика состоит в том, чтобы поставлять разработчикам информацию о соответствии продукта заданным спецификациям”  обнаружениые дефектов кодирования  выявление недостатков производительности системы  контроль исправления, выявленных в процессе тестирования дефектов …..
  • 15. Кто такой QA инженер?  Quality Assurance (обеспечение качества) - разработка и внедрение превентивных мер по недопущению появления дефектов и составляет основную задачу обеспечения качества  Quality Assurance Engineer (QA инженер) ,задачей которого является повышения качества процесса, с одной стороны, и продукта – с другой  Process Engineering – PE (разработка процессов), поиск путей модернизации процесса, с целью повышения качества производимой продукции;  Software Quality Assurance (обеспечение качества), в основном состоящее в удостоверении того, что разработка продукта соответствует определённым на предприятии процессам (process consistency)
  • 16. Цели и задачи QA (обеспечение качества)  Process Engineering (Разработка процессов) – изучение опыта организации процесса на производстве с целью его совершенствования и разработки новых процессов, обеспечивающих производство качественного продукта  Process Improvement (постоянное совершенствование процессов производства), которое, как правило, выражается в предотвращении дефектов (defects prevention), носящего форму изучения дефектов с целью их предотвращения, а также опыта прошлых проектов с целью поиска путей усовершенствования процессов разработки  Process Consistency (удостоверение соответствия разработки продукта определённым процессам)
  • 17. Цели и задачи QA инженера  разработка эффективных процессов для проектов  контроль и обеспечение корректного использования процессов  выбор эффективных методов и способов тестирования  подбор и использование эффективных методов предотвращения дефектов
  • 18. Цели и задачи тестировщика и QA инженера  Основная цель тестировщиков и QA инженеров одна – обеспечение качества конечного продукта  QA инженер отвечает за обеспечение качества, а тестировщик – за его контроль  QA инженер и тестировщик работают на различных уровнях процесса, а также в различных зонах ответственности
  • 19. Тестирование в контексте процесса разработки ПО Каскадная модель (Waterfall Model)  Анализ требований (Requirements Analysis)  Проектирование программного обеспечения (Software Design)  Реализация (Implementation)  Тестирование программного обеспечения (Testing)  Установка (Deployment)  Эксплуатация и поддержка  Сопровождение (Maintenance)
  • 20. Тестирование в контексте процесса разработки ПО V-образная модель (V-model)  Анализ требований потребителя - приёмочное тестирование  Анализ требований производителя - системное тестирование  Высокоуровневый проектирование - интеграционное тестирование  Детализированная проектирование - компонентное или модульное тестирование  Разработка программного кода
  • 21. Жизненный цикл тестирования ПО (Fundamental Test Process)
  • 22. Жизненный цикл тестирования ПО  Анализ требований – На фазе анализа требований тестировщик должен получить требования к тестируемому продукту и сформировать из них «матрицу требований», это позволит в будущем следить, чтобы программа оставалась такой, какой хочет видеть ее клиент;  Анализ дизайна проекта - какой подход к тестированию будет использоваться, важно для автоматизации тестов (automation testing)  Планирование тестирования - это этап, на котором производиться планирование тестов, тестировщики планируют как они будут проверять требования предъявленные к продукту  определение целей тестирования  спецификация тестовых мероприятий
  • 23. Жизненный цикл тестирования ПО  Разработка тестов - разработка тестов ведется параллельно разработке программы, как только разрабатывается часть программы, к ней разрабатывают тест, который будет производить тестирование этой части программы  Выполнение тестов - выполнение тестов производиться постоянно в процессе разработки продукта, для более раннего отслеживания дефектов  Написание отчетов - тестировщики после выполнения тестирования должны написать отчеты о найденных дефектах, и частях приложения которые работают правильно  Повторная проверка дефектов - когда отчеты были написаны и переданы разработчикам, их задача исправить найденные дефекты приложения, после исправления все приложение должно пройти повторную проверку тестировщиками
  • 24. Типы тестирования  Функциональные виды  функциональное тестирование (functional testing) - направлено на проверку корректности выполняемых системой функций и может присутствовать на всех уровнях тестирования;  тестирование безопасности (security and access control testing) направлено на проверку безопасности системы, а также оценку целостности подхода к защите приложения от несанкционированного доступа и защите конфиденциальных данных;  тестирование взаимодействия (interoperability testing) - направлено на оценку возможности приложения взаимодействовать с внешними компонентами или системами, а также включает тестирование совместимости (compatibility testing) и интеграционное тестирование (integration testing)
  • 25. Типы тестирования  Нефункциональные виды  тестирование удобства использования (usability testing) связано с оценкой степени удобства использования, а также понятности и привлекательности пользовательского интерфейса приложения;  тестирования производительности  Performance and Load testing - нагрузка в пределах нормы  Stress Testing (стрессовое тестирование) - нагрузки превышающей штатную  Stability/Reliability Testing - нормальной нагрузки при длительном функционировании  volume testing (объёмное тестирование) - используется для оценки поведения системы при условии увеличения объёма данных
  • 26. Виды тестирования связанные с изменениями  Регрессионное тестирование (regression testing) - предназначено для проверки осуществлённых в системе изменений, а так же на подтверждение того, что существовавшая до изменения ункциональность, работает также как и прежде;  Повторная проверка дефектов (retesting) - после исправления бага нужно пройти повторную проверку  дымовое тестирование (smoke testing) направлено на обзорную проверку всех компонентов приложения на предмет работоспособности, а также на выявление грубых дефектов, наличие которых можно определить, так сказать, «невооружённым глазом»;
  • 27. Подходы к тестированию  Exploratory (ознакомительное) - одновременное обучение, дизайн теста и выполнение теста  Scripted (по сценарию) - набор инструкций, которые будут выполняться в тестируемой системе, чтобы проверить, что система функционирует должным образом  Manual (ручное) - Ручное тестирование производиться человеком  Automated (автоматическое) - автоматическое тестирование производиться ПО
  • 28. Подходы к тестированию  Black Box (черный ящик) - тестировщик не имеет доступа к исходному коду  White Box (белый ящик) - позволяет тестировщику использовать исходный код приложения (создание unit-test)  Positive (Позитивное) - тестировщик играет роль «правильного» пользователя (happy flow)  Negative (негативное) - тестировщик должен играть роль хакера, который пытается поломать программу, стоит приложить все возможные усилия для проверки программы в самых не благоприятных условиях
  • 31. Test Case (Тестовый случай) Тестовый случай (Test Case) - это артефакт, описывающий совокупность шагов, конкретных условий и параметров, необходимых для проверки реализации тестируемой функции или её части  Название теста  Предусловия  Шаги + Ожидаемый результат  Фактический результат
  • 33. Лабораторная работа 1 Описать тест кейсы для проверки Регистраций на сайте ‘https://www.rambler.ru/’  1 positive test case  1 negative test case
  • 34. Ошибки пользовательского интерфейса Задача разработчиков сделать интерфейс «дружественным» (user-friendly interface) а тестировщики должны проверить действительно ли дружественный этот интерфейс  Организация интерфейса - стоит следить за тем, чтобы интерфейс логически был разделен на группы  Пропущенные команды – это дефект интерфейса, когда в приложении явно не хватает какой-то функции, или просто не понятно как пользоваться этой функцией
  • 35. Ошибки пользовательского интерфейса  Производительность – очень плохо, когда пользователь видит как программа с задержкой реагирует на его действия  Выходные данные – выходными данными программы называют все результаты работы рограммы, будь то информация, экспортированная в PDF файл, или просто вывод в label на клиентскую область окна  Обработка ошибок –хорошо, когда в программе невозникает ошибок или когда они возникают, программа сама в силах их исправить, но всех ошибок не предусмотреть, поэтому очень важно показывать подробный отчет об ошибке, желательно выводить на экран информацию о том, как исправить возникшую ошибку.
  • 36. Другие ошибки  Ошибки граничных условий - нет проверки на формат входящих данных  Ошибки документации  Ошибки тестирования
  • 37. Дружественный интерфейс  Доступность - все элементы управления будут понятны максимальному количеству пользователей  Минимализм. В интерфейсе не должно быть ничеголишнего, отличным примером может служить регулятор громкости в windows.  Уверенность. Очень важно чтобы все элементы управления просто «кричали» о том что они делают
  • 38. Лабораторная работа 2 Описать тест кейсы на сайте: ‘euzbor.md’ ‘pneu.md’  3 positive test case  7 negative test case