/QA_bible

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

GNU General Public License v3.0GPL-3.0



!!! Новая версия 2.0 !!! Посмотреть Changelog

Что это за проект?

Библия QA это почти 300 страниц обновляемой смеси ответов на вопросы с реальных собеседований на QA, полезных ресурсов и статей, перевода интересного контента с зарубежных ресурсов и агрегации материала с отечественных. Хочу подчеркнуть, что прилагаемые к вопросам ответы - лишь мой конспект, что означает, что ответственность за свои знания несёте вы сами и каждую изучаемую тему всегда стоит рассматривать с разных углов (в разных источниках). В данный момент этот материал больше нацелен, во-первых, на начинающих, т.к. опытных коллег учить мне ещё опыта не хватит, и, во-вторых, на людей с английским до intermediate, т.к. моих знаний английского не хватает для качественного перевода сложных текстов, а у кого хватает - те и в оригинале почитают. Но, в целом, материал будет полезен всем грейдам, тем более что часть его далеко не начального уровня. Что касается источников, то список не полный. В первоначальном конспекте для себя я не сохранял ссылки, так что, если увидели авторский контент, прошу не ругаться и связаться со мной.

Как им пользоваться?

Просмотр через github: для того, чтобы увидеть материал целиком, нужно открыть первую или вторую часть (Manual part 1 или 2) в файлах репозитория (в мобильной версии нужно сначала нажать View code). Пришлось их разбить ввиду ограничения на размер одного файла в 1 мб.
В виде веб-сайта: https://vladislaveremeev.github.io/ (оглавление кликабельно)
Скачать в удобном формате: текстовые файлы доступны для скачивания в разделе релизов

Оглавление

  • ----- Введение (F.A.Q.) ----- 11
    • Хочу войти в айти (в разработку) через тестирование, хороший план? 11
    • Хочу зарабатывать много денег, мне сюда? 11
    • Хочу работать удаленно джуном, это возможно? 11
    • Что реально должен знать junior? А что спросят на собеседовании? 11
    • С чего начать обучение? 13
    • Какие есть полезные ресурсы кроме этого? 13
    • Основные инструменты тестировщика? 17
    • Как вообще происходит процесс найма? 20
    • Качества, которыми нужно обладать тестировщику? 20
    • Как составить резюме? 21
    • Как проходить собеседование? 22
    • Ошибки в работе у начинающих тестировщиков? 24
    • Я – единственный тестировщик на проекте. Что делать? 25
  • ----- HR-часть ----- 27
    • Вопросы с реальных собеседований с этапа HR 27
  • ----- Теоретическая часть ----- 28
    • Общие понятия 28
    • Что означает тестирование ПО? 28
    • Почему требуется тестирование ПО? 28
    • Что означает обеспечение качества (Quality Assurance - QA) при тестировании ПО? 28
    • Что означает контроль качества (Quality Control - QC) при тестировании ПО? 28
    • Что означает качество ПО? (Software Quality) 28
    • Объясните отличия в QA, QC и тестировании 29
    • Разница между верификацией и валидацией? (Verification и Validation) 30
    • Принципы тестирования? 31
    • Критерии выбора тестов? 33
    • Что такое импакт анализ (анализ влияния, Impact Analysis)? 36
    • Что подразумевается под тестовым покрытием? (Test Coverage) 36
    • Что такое модель зрелости тестирования (TMM - Test Maturity Model)? 37
    • Что такое тестирование со сдвигом влево? (Shift left testing) 39
    • Что такое независимое тестирование? (Independent testing) 39
    • В чем разница между превентивным и реактивным подходами в тестировании? (Preventative and Reactive approaches) 40
    • Перечислите типичные возможные обязанности инженера по обеспечению качества? 40
    • Что такое аудит качества? 41
    • Почему тестирование делится на отдельные этапы? 41
    • Почему невозможно полностью протестировать ПО? 41
    • Как вы тестируете продукт, если требования еще не зафиксированы? 41
    • Как вы узнаете, было ли создано достаточно тестов для тестирования продукта? 41
    • Как вы понимаете инспекцию? 41
    • Какие есть роли/должности в команде? 42
    • Опишите жизненный цикл продукта по этапам - какие участники на каждом этапе, какие у них роли? Какие артефакты на каждом этапе? 43
    • Кто такой SDET? 44
    • Что такое тестирование как сервис? (TaaS – testing as a Service) 45
    • Что подразумевается под тестовой средой? (Test Environment/Test Bed) 45
    • Что подразумевается под тестовыми данными? 46
    • Основные фазы тестирования? 46
    • Подробнее про бета-тестирование? 46
    • Что означает пилотное тестирование? (Pilot) 46
    • В чем отличие build от release? 47
    • Что такое бизнес – логика (domain)? 47
  • ----- Виды тестирования ----- 48
    • Какие существуют основные виды тестирования ПО? 48
    • Типы тестирования? (White/Black/Grey Box) 50
    • Что означает тестирование черного ящика? 50
    • Что означает тестирование белого ящика? 51
    • Что означает тестирование серого ящика? (Grey box) 52
    • Основные отличия White/grey/black box? 53
    • Что такое пирамида / уровни тестирования? (Testing Levels) 53
    • Что такое деструктивное/разрушающее/негативное тестирование? (DT - Destructive testing) 54
    • Что такое недеструктивное/неразрушающее/позитивное тестирование? (NDT – Non Destructive testing) 55
    • Что подразумевается под компонентным/модульным/юнит тестированием? (Component/Module/Unit testing) 55
    • Что подразумевается под интеграционным тестированием? (Integration testing) 58
    • Разница между Unit testing и Integration testing? 59
    • Что такое системное интеграционное тестирование? (SIT - System Integration testing) 60
    • Что подразумевается под инкрементальным подходом? (Incremental Approach) 60
    • Что подразумевается под подходом снизу-вверх? (Bottom-Up Approach) 60
    • Что подразумевается под подходом сверху-вниз? (Top-Down Approach) 61
    • Что подразумевается под гибридным/сэндвич-подходом? (Sandwich Approach) 61
    • Что подразумевается под подходом Большого взрыва? (Big Bang Approach) 61
    • В чем разница между тест-драйвером и тест-заглушкой? (Test Driver and Test Stub) 62
    • Что подразумевается под системным тестированием? 62
    • Можем ли мы провести системное тестирование на любом этапе? 63
    • Что такое функциональное тестирование? 63
    • Что такое тестирование совместимости/взаимодействия? (Compatibility/Interoperability testing) 63
    • Что такое тестирование на соответствие? (Conformance/Compilance testing) 64
    • Что такое нефункциональное тестирование? 65
    • Основные понятия в тестировании производительности? 66
    • Тестирование производительности клиентской части и серверной, в чем разница? 67
    • В общем виде что такое тестирование производительности? 67
    • Что такое тестирование емкости/способностей? (Capacity) 69
    • Что означает тестирование масштабируемости? (Scalability) 69
    • Расскажите о стрессовом тестировании? (Stress testing) 70
    • Расскажите о нагрузочном тестировании? (Load) 70
    • Что такое объемное тестирование? (Volume testing) 71
    • Тестирование выносливости/стабильности/надежности (Soak/Endurance/Stability/Reliability testing) 71
    • Что такое спайк/шиповое тестирование? (Spike) 71
    • Что такое тестирование устойчивости? (Resilence) 71
    • Что такое тестирование времени отклика? (Response time testing) 71
    • Что такое Ramp тестирование? 71
    • Что такое тестирование хранилища? (Storage testing) 71
    • Что такое тестирование на отказ и восстановление? (Failover and Recovery testing) 72
    • Что вы знаете о Тестировании удобства пользования? (Usability testing) 73
    • Отличия тестирование на удобство пользования и тестирования доступности? (Usability Vs. Accessibility testing) 73
    • Что такое тестирование интерфейса? 75
    • Что такое тестирование рабочего процесса/воркфлоу? (Workflow testing) 76
    • Что вы знаете о пользовательском приемочном тестировании? (UAT – User Acceptance testing) 76
    • Что такое эксплуатационное приемочное тестирование? (OAT - Operational Acceptance testing) 76
    • Расскажите об инсталляционном тестировании? 77
    • Что вы знаете о тестировании безопасности? (Security and Access Control testing) 79
    • Что означает оценка уязвимости/защищенности? (Vulnerability Assessment) 81
    • Расскажите подробнее о тестировании на проникновение? (Penetration testing) 81
    • Отличия Vulnerability Assessment от Penetration testing? 82
    • Что такое Fuzz тестирование? 83
    • Можно ли отнести тестирование безопасности или нагрузочное тестирование к функциональным видам тестирования? 84
    • Что вы знаете о конфигурационном тестировании? (Configuration testing) 84
    • Что подразумевается под проверкой на дым / дымовым тестированием? (Smoke testing) 85
    • Что такое тестирование встряхиванием? (Shake out testing) 86
    • Что подразумевается под санитарным тестированием? (Sanity testing) 87
    • Отличие санитарного тестирования от дымового? (Sanity vs Smoke testing) 87
    • Что вы знаете про регрессионное тестирование? (Regression testing) 87
    • Типы регрессии по Канеру? 90
    • Объясните, что такое тестирование N+1? 90
    • Что означает подтверждающее тестирование? (confirmation/re-testing) 90
    • В чем разница между повторным и регрессионным тестированием? 90
    • Что вы знаете о тестировании сборки? (Build Verification Test) 91
    • Что такое тестирование потоков? (Thread testing) 91
    • Что такое тестирование документации? (Documentation testing) 92
    • Какие вы знаете уровни тестирования данных? 92
    • Что такое подкожный тест? (Subcutaneous test) 92
    • Расскажите о локализации, глобализации и интернационализации? (Localization/ globalization/internationalization testing) 93
    • Что такое исследовательское тестирование? (Exploratory testing) 94
    • Что вы знаете о турах Виттакера в исследовательском тестировании? 95
    • Что такое Свободное или Интуитивное тестирование? (Adhoc) 95
    • Что вы знаете о мутационном тестировании? (Mutation testing) 97
    • Что означает механизм тестирования по ключевым словам? (Keyword Driven testing Framework) 98
    • Что вы знаете о тестировании интерфейса прикладного программирования (API - Application Programming Interface)? 98
    • Как протестировать API без документации/черным ящиком? 100
    • Тестирование клиентской части и серверной, в чем разница? (Frontend testing Vs. Backend testing?) 101
    • Что подразумевают под эталонным тестированием? (Baseline testing) 102
    • В чем разница между Baseline и Benchmark testing? 102
    • Что такое параллельное/многопользовательское тестирование? (Concurrency/Multi-user testing) 102
    • Как вы думаете, что такое тестирование на переносимость? 102
    • Что такое тестирование графического интерфейса/визуальное тестирование? (GUI - Graphical User Interface testing) 103
    • Что такое A/B тестирование? 104
    • Что означает сквозное тестирование? (E2E - End–to–End) 104
    • В чем разница между E2E и системным тестированием? 104
    • Что такое параллельное тестирование? (Parallel testing) 105
  • ----- Тест дизайн ----- 107
    • Тест дизайн? (Test Design) 107
    • Перечислите известные техники тест-дизайна? 107
    • Что такое статическое тестирование, когда оно начинается и что оно охватывает? 111
    • Что такое динамическое тестирование, когда оно начинается и что оно охватывает? 111
    • Какие виды Review вы знаете? 112
    • Что вы знаете о Data Flow testing? 112
    • Что вы знаете о Control Flow testing? 112
    • Что такое Loop coverage? 113
    • Что такое Race coverage? 114
    • Тестирование пути и тестирование базового пути? (Path testing & Basis Path testing) 114
    • Что вы знаете о Statement coverage? 115
    • Что вы знаете о Decision coverage? 116
    • Что вы знаете о Branch coverage? 116
    • Что вы знаете о Condition coverage? 117
    • Что вы знаете о FSM coverage? 117
    • Что такое Function coverage? 117
    • Что такое Call coverage? 117
    • Что означает LCSAJ coverage? 117
    • Сравнение некоторых метрик 118
    • Что такое Equivalence Partitioning? 118
    • Что такое Boundary Value Analysis? 118
    • Что такое Error Guessing? 118
    • Что такое Cause/Effect? 119
    • Что такое Exhaustive testing? 119
    • Какие вы знаете комбинаторные техники тест-дизайна? 119
    • Что такое тестирование ортогональных массивов? (OAT - Orthogonal Array testing) 121
    • Что такое Domain analysis/testing? 122
    • Что такое Cyclomatic Complexity в тестировании ПО? 123
    • Что такое State Transition testing? 124
    • Что такое Scenario (use case) testing? 126
    • Что такое Decision Table testing? 127
    • Что такое Random testing? 128
    • Что такое Syntax testing? 129
    • Что вы знаете о Classification tree method? 129
    • Как мы узнаем, что код соответствует спецификациям? 130
    • Что включает в себя матрица отслеживания требований? (RTM - Requirement Traceability Matrix) 130
    • В чем разница между Test matrix и Traceability matrix? 131
    • Что такое анализ GAP? 131
    • Что такое граф причинно-следственных связей? (Cause Effect Graph) 131
    • В чем разница между предугадыванием ошибок и посевом? (Error guessing and error seeding) 131
    • Стили тестов? 131
    • Техники тестирования требований? 131
    • Что такое эвристики? 132
  • ----- Тестовые артефакты и документация (Test Deliverables/TestWare/test artifacts) ----- 135
    • Виды тестовой документации? 135
    • Какие отличия у тест-кейса высокого и низкого уровня? 138
    • Отличия Test Suite от Test Scenario? 138
    • Какие отличия у плана тестирования и стратегии тестирования? 138
    • В чем разница между тест-кейсом и чек-листом? 138
    • Чем Test case отличается от сценария тестирования? 139
    • Виды тест планов? 139
    • Что является основой для подготовки плана приемки? (PAP - Product Acceptance Plan) 140
    • Что такое тест-анализ/основа/база тестирования и условия тестирования ? (Test Analysis/Test Basis/Test conditions) 140
    • Что такое документ бизнес-требований (BRD)? 141
    • Что вы знаете о требованиях (уровни/виды и т. д.)? 141
    • Расскажите, какие есть требования к самим требованиям? 143
  • ----- Дефекты и ошибки ----- 145
    • Что такое дефект? 145
    • Классы дефектов? 145
    • Какие есть категории дефектов? 145
    • Error/Mistake/Defect/Bug/Failure/Fault? 145
    • Каково содержание эффективного сообщения об ошибке? 146
    • Несколько ключевых моментов, которые следует учитывать при написании отчета об ошибке? 146
    • Серьезность и Приоритет Дефекта (Severity & Priority) 147
    • Может ли быть высокий severity и низкий priority? А наоборот? 148
    • Жизненный цикл дефекта? 149
    • Что такое утечка дефектов и релиз бага? (Bug Leakage & Bug Release) 150
    • Что означает плотность дефектов при тестировании ПО? 150
    • Что означает процент обнаружения дефектов при тестировании ПО? 150
    • Что означает эффективность устранения дефектов при тестировании ПО? (DRP) 150
    • Что означает эффективность Test case в тестировании ПО? (TCE) 151
    • Возраст дефекта в тестировании ПО? 151
    • Что такое принцип Парето в тестировании ПО? 151
    • Каковы различные способы применения принципа Парето в тестировании ПО? 151
    • В чем основное отличие отладки от тестирования? (Debugging Vs. Testing) 151
    • Почему в программном обеспечении есть ошибки? 151
    • Что вы будете делать, если во время тестирования появится ошибка? 151
    • Как вы справляетесь с невоспроизводимой ошибкой? 151
    • Если продукт находится в производстве и один из его модулей обновляется, то необходимо ли провести повторную проверку? 152
    • Что такое анализ рисков? 152
    • Что такое скрытый дефект? (Latent defect) 152
    • Что такое маскировка ошибок, объясните примером? 152
    • Категории/подходы к отладке? (Debugging approaches) 152
    • Что такое Эффективность удаления дефектов? (DRE - Defect Removal Efficiency) 153
    • Что такое сортировка дефектов? (Bug triage) 153
  • ----- SDLC и STLC ----- 154
    • Что вы знаете о жизненном цикле разработки ПО? (SDLC - Software Development Lifecycle) 154
    • Что такое цикл/колесо Деминга? (Deming circle/cycle/wheel) 155
    • Модели разработки ПО? 155
    • Что такое Agile? 160
    • Что такое Scrum? 163
    • Какие вообще особенности у тестирования в Scrum? 165
    • В чем отличие Kanban от Scrum? 167
    • Что знаете о User stories в гибких подходах к разработке? 167
    • Что значит жизненный цикл тестирования ПО? (STLC – Software Testing Lifecycle) 168
    • Что вы знаете о техниках оценки теста? (Test Estimation) 170
    • В чем разница между SDLC и STLC? 170
    • Что такое быстрая разработка приложений? (RAD - Rapid Application Development) 170
    • Что такое разработка через тестирование (TDD - Test Driven Development)? 171
    • Что такое Value Driven Testing (тестирование на основе ценности)? 171
    • TDD в Agile Model Driven Development (AMDD) 173
    • Тестирование на основе моделей (MDD - Model-driven Development) 173
    • Тестирование на основе данных (DDT - Data Driven testing) 174
    • Тестирование на основе риска (RBT - Risk Based Testing) 174
    • Что вы знаете о потоковом тестировании? (BFT — Business Flow Testing) 175
    • В чем разница между coupling и cohesion? 175
  • ----- Тестирование в разных сферах/областях (testing different domains) ----- 177
    • Что такое веб-тестирование и как его производить? 177
    • Тестирование банковского ПО 182
    • Тестирование электронной коммерции (eCommerce) 183
    • Тестирование платежного шлюза (Payment Gateway) 186
    • Тестирование систем розничной торговли (POS - Point Of Sale) 187
    • Тестирование в сфере страхования (Insurance) 189
    • Тестирование в сфере телекоммуникаций (Telecom) 192
    • Тестирование протокола: L2 и L3 OSI 193
    • Тестирование интернета вещей (IoT - Internet of Things) 195
    • Что такое облачное тестирование? (Cloud testing) 197
    • Что такое тестирование сервис-ориентированной архитектуры? (SOA - Service Oriented Architecture) 199
    • Что такое тестирование планирования ресурсов предприятия? (ERP - Enterprise Resource Planning) 202
    • Тестирование качества видеосвязи WebRTC-based сервиса видеоконференций 203
    • Что такое тестирование ETL? 203
  • ----- Мобильное тестирование ----- 205
    • Каковы особенности в тестировании мобильных приложений? 205
    • В чем отличия тестирования мобильного приложения от десктопного? 205
    • В чем отличия тестирования мобильного приложения от web? 206
    • Как работает Android, какая у него архитектура? 207
    • Что такое тестирование прерываний (Interrupt Testing)? Причем тут Activity Lifecycle? 209
    • Как устроена iOS? 209
    • Жизненный цикл iOS-приложения? 211
    • Что вы знаете о симуляторах и эмуляторах? 214
    • Типы мобильных приложений? 214
    • Что основное проверить при тестировании мобильного приложения? 215
    • Как быть с покрытием девайсов? 217
    • Последнее обновление Android/iOS, что нового? 217
    • Основные различия iOS и Android? 217
    • Что такое Middleware? 218
    • Виды жестов и т.п.? 220
    • Как проверить использование процессора на мобильных устройствах? 221
    • Что вы знаете о PWA? 221
  • ----- Сети и около них ----- 222
    • Что такое http? 222
    • Компоненты HTTP? 222
    • Методы HTTP-запроса? 223
    • Что такое endpoint, ресурс? URI, URL, URN? 223
    • Что такое веб-сервис/веб-служба? (WS - Web service) 225
    • Отличие сервиса от сервера? 226
    • Отличие сервиса от веб-сайта? 226
    • Что такое REST, SOAP? В чем отличия? 226
    • Что такое JSON, XML? 227
    • Коды ответов/состояния сервера с примерами? (HTTP status codes) 228
    • Почему ошибка 404 относится к 4** - клиентской, если по идее должна быть 5**? 233
    • Какие еще бывают протоколы? 233
    • TCP/IP это? 233
    • Что такое куки (cookies)? Как их тестировать? 234
    • Что такое Web Storage? 236
    • В чем отличие статических и динамических веб-сайтов? 236
    • Отличие stateless и stateful? 236
    • Различия методов GET и POST? 237
    • Клиент - серверная архитектура? 237
    • Уровни OSI? 238
    • Что вы подразумеваете под потоковыми медиа? (Streaming media) 239
    • Основные команды Linux? 239
    • Почему важно тестировать в разных браузерах? 241
    • Адаптивный веб-дизайн vs. Отзывчивый веб-дизайн, в чем разница? (Adaptive Vs. Responsive) 242
    • Как сервер узнает, с какого типа устройства/браузера/ОС/языка вы открываете веб-сайт? (Например, для Adaptive design) 243
    • Чем отличается авторизация от аутентификации? 243
    • Как работает авторизация/аутентификация? Как сайт понимает, что ты залогинен? 243
    • Почему важно делать подтверждение e-mail при регистрации? 248
    • Что такое кэш и зачем его очищать при тестировании? 248
    • Что такое AJAX в вебе? 249
    • Как работает браузер (коротко)? 249
    • Как работает сотовая связь? 250
    • Как работает подключение к Wi-Fi? 251
  • ----- Базы данных ----- 252
    • Базовые понятия? 252
    • Может ли у ПО быть сразу несколько баз данных? 253
    • Что такое SQL? 253
    • Что вы знаете о NoSQL? 253
    • Что такое транзакция? 253
    • Что такое нормальные формы? 254
    • Понятие хранимой процедуры? 255
    • Понятие триггера? 255
    • Что такое индексы? (Indexes) 255
    • Какие шаги выполняет тестировщик при тестировании хранимых процедур? 256
    • Как бы вы узнали для тестирования базы данных, сработал триггер или нет? 256
    • Как тестировать загрузку данных при тестировании базы данных? 256
    • Основные команды SQL? 256
    • Подробнее о джойнах? (Join) 261
    • Типы данных в SQL? 261
    • Шпаргалки SQL 262
  • ----- Практическая часть ----- 265
    • Дана форма для регистрации. Протестируйте. 265
    • Определение серьезности и приоритета 268
    • Определение граничных значений и классов эквивалентности 268
    • Логические задачи 268
    • Еще примеры 269
    • Набор небольших задач по SQL 270
    • Тестирование чашки для кофе 272
    • Тестирование карандаша 273
    • HR: Как вы будете решать конфликты между членами вашей команды? 273
    • HR: Что делать, если разработчик утверждает, что найденный дефект таковым не является? 273
    • Вот тебе комп и работающий сайт. Сделай мне 401-ю ошибку 273
    • Пришел баг из продакшена, что делаем? 273
    • Оценить время на тестирование лендинга 274
  • ----- Источники ----- 275
  • ----- Поблагодарить автора ----- 277