🪓
QAммунизм
  • 💬Предисловия
  • 📜Теория тестирования
    • Для чего проводится тестирование ПО?
    • Принципы тестирования
    • QC — Quality Control
    • QA — Quality Assurance
    • Верификация и валидация
    • Этапы тестирования
    • Стадии разработки ПО
    • Требования
    • Дефект (bug) и Отчёт о дефекте (bug report)
    • Severity vs Priority
    • Базовые типы задач
    • Тестовые среды
    • Основные фазы тестирования
    • Основные виды тестирования ПО
    • Тест-дизайн
    • Методы тестирования
      • Тестирование белого ящика
      • Тестирование серого ящика
      • Тестирование чёрного ящика
    • Тестовая документация
      • Тест план (Test Plan)
      • Чек-лист (check list)
      • Тестовый сценарий (test case)
  • 🦠Матрица компетенций QA Engineer
    • Грэйды QA
      • Trainee Manual QA Engineer (стажер)
      • Junior Manual QA Engineer (младший)
      • Pre-Middle Manual QA Engineer (почти средний)
      • Middle Manual QA Engineer (средний)
      • Upper-Middle Manual QA Engineer (продвинутый)
      • Senior Manual QA Engineer (ведущий)
    • Грэйды AQA
      • Trainee Automation QA Engineer (стажер)
      • Junior Automation QA Engineer (младший)
      • Pre-Middle Automation QA Engineer (почти средний)
      • Middle Automation QA Engineer (средний)
      • Upper-Middle Automation QA Engineer (продвинутый)
      • Senior Automation QA Engineer (ведущий)
    • Краткое содержание
  • 📑Паттерн описания тест-кейсов
    • Названия
    • Описание
    • Количество шагов
    • Ожидаемые результаты
  • 🦾Автоматизация тестирования
    • 🐍Python
      • 🧪PyTest
        • pytest.ini
      • 📗SeleniumBase
        • Установка
        • Конфигурации подключения к Selenoid
        • Распространенные методы
      • 📊Allure Python
        • Установка
        • Слушатель
        • Декораторы
          • Шаги(step)
          • Вложения(attach)
          • Ссылки(issue)
          • Описания(description)
          • Заголовки(title)
          • Строгость(Severity)
          • Epic
          • Title
        • Окружающая среда(Environment)
        • Маркеры(mark)
      • 🗺️ООП в Python во всех подробностях
        • Приватность свойств. Name Mangling (_name и __name)
        • Переменные (свойства / атрибуты) класса
        • Анотация типов
        • @staticmethod
        • @classmethod
        • @property
        • Кеширование результата вычисляемых свойств
        • Наследование
        • Определение одного родителя
        • Перегрузка
        • Множественное наследование
        • Mixins
        • Полиморфизм
        • super().__init__() - Инициализация из родительского класса
        • Хешированные объекты
        • Абстрактные классы
        • Абстрактный класс наследуется от абстрактного класса
        • __slots__ в классе и при наследовании
        • Композиция
        • Наследование vs Композиция
        • Дескрипторы (__get__(), __set__(), __del__())
        • No Data Descriptor
        • Data Descriptor
        • Слабые ссылки (weakref)
        • Метод __set_name__
    • 🐸JavaScript (В разработке)
      • 🃏Playwright (В разработке)
    • 🛰️Git: Основные команды
    • 🧊Selenoid - Allure server
      • Установка
    • 🐳Docker
      • Установите Docker Desktop в Windows
    • 🧾Паттерны проектирования автоматизированного тестирования
      • Как написать идеальный автотест: 25 принципов.
        • Тесты не так важны, как действия по результатам этих тестов
        • Ценность
        • Лучше ничего не делать, чем сделать flaky-тест
        • Доверие
        • Поделись знанием
        • Устрой дестрой
        • Думай иначе
        • Тесты должны запускаться автоматически
        • Тайна пирамиды
        • Из множества важного выбирай то, что проще
        • Нельзя протестировать всё
        • Используй скрытую силу
        • Принцип ААА
        • Не повторяйся
        • Хрупкость
        • Принцип двух ящиков
        • Тестируй без последствий
        • Упрощения
        • Красота
        • Параллельность
        • Скорость
        • Автотест — это фича
        • Автотест — это тест
        • Атомарность
        • Независимость
      • Паттерны
        • Page Object Model (POM)
    • 🧑‍🔧Принципы разработки ПО
      • SOLID в автоматизации тестирования
        • S — Single Responsibility Principle(Принцип единой ответственности)
        • O — Open/Closed Principle(Принцип открытости/закрытости)
        • L — Liskov Substitution Principle(Принцип замены Лискова)
        • I — Interface Segregation Principle(Принцип разделения интерфейса)
        • D — Dependency Inversion Principle(Принцип инверсии зависимостей)
      • KISS (Keep It Simple, Stupid)
      • DRY (Don’t Repeat Yourself)
      • YAGNI (You Aren’t Gonna Need It)
      • Бритва Оккама
      • Avoid Premature Optimization
  • 🎭Вопросы для собеседования
    • Junior
      • Теория тестирования
      • AQA
        • Программирование
        • Selenium
        • TestNG/JUnit(PYTHON)
        • Git
        • CI
      • Интернет
      • Компьютерные сети
      • Практические задания
    • Middle
      • Теория
      • AQA
        • Selenium
        • Тестовая инфраструктура
      • Интернет
      • Мобильный
      • Практические задания
    • Senior
      • Теория
      • Практические задания
    • Практические задания
  • 📊Оценка покрытие Тест-кейсами/UI-автотестами(Coverage)
    • Матрица трассировки требований(RTM)
    • Обратная связь от тестировщиков
    • Включение новых сценариев
    • Использование метрик покрытия
    • Анализ отчетов о выполнении тестов
    • Измерение покрытия кода
    • Определение целевых экранов
    • Рассмотрение покрытия по сценариям использования
    • Автоматизированные средства анализа кода
Powered by GitBook
On this page

Was this helpful?

  1. Теория тестирования

Основные виды тестирования ПО

— это совокупность активностей, направленных на тестирование заданных характеристик системы или её части, основанная на конкретных целях.

Last updated 2 years ago

Was this helpful?

  • Классификация по запуску кода на исполнение:

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

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

  • Классификация по доступу к коду и архитектуре:

    • Тестирование белого ящика — метод тестирования ПО, который предполагает полный доступ к коду проекта.

    • Тестирование серого ящика — метод тестирования ПО, который предполагает частичный доступ к коду проекта (комбинация White Box и Black Box методов).

    • Тестирование чёрного ящика — метод тестирования ПО, который не предполагает доступа (полного или частичного) к системе. Основывается на работе исключительно с внешним интерфейсом тестируемой системы.

  • Классификация по уровню детализации приложения:

    • Модульное тестирование — проводится для тестирования какого-либо одного логически выделенного и изолированного элемента (модуля) системы в коде. Проводится самими разработчиками, так как предполагает полный доступ к коду.

    • Интеграционное тестирование — тестирование, направленное на проверку корректности взаимодействия нескольких модулей, объединенных в единое целое.

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

    • Приёмочное тестирование — проверяет соответствие системы потребностям, требованиям и бизнес-процессам пользователя.

  • Классификация по степени автоматизации:

    • Ручное тестирование.

    • Автоматизированное тестирование.

  • Классификация по принципам работы с приложением

    • Позитивное тестирование — тестирование, при котором используются только корректные данные.

    • Негативное тестирование — тестирование приложения, при котором используются некорректные данные и выполняются некорректные операции.

  • Классификация по уровню функционального тестирования:

    • Дымовое тестирование (smoke test) — тестирование, выполняемое на новой сборке, с целью подтверждения того, что программное обеспечение стартует и выполняет основные для бизнеса функции.

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

    • Расширенное тестирование (extended) — направлено на исследование всей заявленной в требованиях функциональности.

  • Классификация в зависимости от исполнителей:

    • Альфа-тестирование — является ранней версией программного продукта. Может выполняться внутри организации-разработчика с возможным частичным привлечением конечных пользователей.

    • Бета-тестирование — программное обеспечение, выпускаемое для ограниченного количества пользователей. Главная цель — получить отзывы клиентов о продукте и внести соответствующие изменения.

  • Классификация в зависимости от целей тестирования:

    • Функциональное тестирование (functional testing) — направлено на проверку корректности работы функциональности приложения.

    • Нефункциональное тестирование (non-functional testing) — тестирование атрибутов компонента или системы, не относящихся к функциональности.

      1. Тестирование производительности (performance testing) — определение стабильности и потребления ресурсов в условиях различных сценариев использования и нагрузок.

      2. Нагрузочное тестирование (load testing) — определение или сбор показателей производительности и времени отклика программно-технической системы или устройства в ответ на внешний запрос с целью установления соответствия требованиям, предъявляемым к данной системе (устройству).

      3. Тестирование масштабируемости (scalability testing) — тестирование, которое измеряет производительность сети или системы, когда количество пользовательских запросов увеличивается или уменьшается.

      4. Объёмное тестирование (volume testing) — это тип тестирования программного обеспечения, которое проводится для тестирования программного приложения с определенным объемом данных.

      5. Стрессовое тестирование (stress testing) — тип тестирования направленный для проверки, как система обращается с нарастающей нагрузкой (количеством одновременных пользователей).

      6. Инсталляционное тестирование (installation testing) — тестирование, направленное на проверку успешной установки и настройки, обновления или удаления приложения.

      7. Тестирование интерфейса (GUI/UI testing) — проверка требований к пользовательскому интерфейсу.

      8. Тестирование удобства использования (usability testing) — это метод тестирования, направленный на установление степени удобства использования, понятности и привлекательности для пользователей разрабатываемого продукта в контексте заданных условий.

      9. Тестирование локализации (localization testing) — проверка адаптации программного обеспечения для определенной аудитории в соответствии с ее культурными особенностями.

      10. Тестирование безопасности (security testing) — это стратегия тестирования, используемая для проверки безопасности системы, а также для анализа рисков, связанных с обеспечением целостного подхода к защите приложения, атак хакеров, вирусов, несанкционированного доступа к конфиденциальным данным.

      11. Тестирование надёжности (reliability testing) — один из видов нефункционального тестирования ПО, целью которого является проверка работоспособности приложения при длительном тестировании с ожидаемым уровнем нагрузки.

      12. Регрессионное тестирование (regression testing) — тестирование уже проверенной ранее функциональности после внесения изменений в код приложения, для уверенности в том, что эти изменения не внесли ошибки в областях, которые не подверглись изменениям.

      13. Повторное/подтверждающее тестирование (re-testing/confirmation testing) — тестирование, во время которого исполняются тестовые сценарии, выявившие ошибки во время последнего запуска, для подтверждения успешности исправления этих ошибок.

📜