As this ebook edition doesn't have fixed pagination, the page numbers below are hyperlinked for reference only, based on the printed edition of this book.
A
A/B testing 17
acceptance testing 17
Agile environment
test automation 11
testing, demands 5
Agile methodology 17
Agile test automation
quadrants 27
Android emulator
anti-pattern 217
API automation
API calls
mocking, considerations 233
API mocking 229
API requests
organizing with collections 157-161
API response
asserting, with snippets 162-164
API testing 18
API testing tool
selecting, criteria 67
API tests 205
advantages 126
components 60
high-level architecture 60, 61
WebdriverIO, configuring with 132, 133
Appium Client 60
Appium doctor 142
Appium Inspector
Appium Server 60
Appium/WebdriverIO test 140, 141
application programming interfaces (APIs) 10, 34, 147
arrow functions 109
creating, in JavaScript 109
assertions
async/await functions
automated API tests
writing 162
automation engineer
tools 43
reference link 65
B
Bamboo 32
Bash
reference link 48
Behavior-Driven Development (BDD) 18
black-box testing 18
bug
versus defect 6
business layer pattern 41
C
callback functions 110
creating, in JavaScript 110, 111
Carthage 142
Chai 112
Chai Assertion Library
reference link 162
Chef 25
CI/CD integration 68
CircleCI 104
advantages 48
usage, tips/tricks 47
cloud-based environment
tapping, advantages 34
cloud service providers (CSPs) 143
coding/design anti-patterns
assertions, incorrect usage 220, 221
business logic, validating with UI tests 222
code duplication, impact 218, 219
code quality, compromising in tests 217
complex tests, affecting test maintainability 219, 220
data, handling within test frameworks 221, 222
inefficient code reviews, effects 223
refactoring, significance 222
tightly coupled code 218
cohesion 218
collections
used for organizing API requests 157-161
collection variables 164
command line
used, for executing spec 113-115
used, for handling Jmeter’s tests 186-188
comma-separated values (CSV) file 30
component tests 205
conditional statements
containers 171
continuous delivery (CD)
and deployment pipeline 202-204
continuous integration and continuous delivery (CI/CD) 199
process 200
test automation strategies 204
continuous integration (CI) 32, 104
continuous testing 10
coupling 218
Create, Read, Update, Delete (CRUD) 148
cy.get function 116
additional configurations 120, 121
API calls, intercepting 119, 120
components 62
features 104
high-level architecture 62, 63
limitations 121
reference link 63
selectors, using 116
test, creating 109
Cypress Node.js server 62
Cypress test runner 62
D
data-driven testing 18
data types
objects 87
primitive 87
data variables 164
defect 6
versus bug 6
defect management
in testing 6
design patterns, in test automation
business layer pattern 41
using 37
development-operations (DevOps) 7, 34
Docker
URL 148
Document Object Model (DOM) 116
dynamic test suite data 221
E
ECMAScript 84
ECMAScript 6 (ES6) version 109
emulator 143
end-to-end (E2E) test automation framework 127
end-to-end (E2E) testing 18, 25, 104
end-to-end (E2E) tests 200, 205, 206
environment variables 164
exploratory testing 18
Extreme Programming 9
F
fat arrow (=>) 109
flags
flags, using with commit command
framework level constants 222
functional bugs 4
functional test data 221
G
Garden.io 216
GET API request
GET request
sending with Postman 151
change, committing 74
commands 80
commit message 74
flags 76
flags, using with commit command 74-77
merge conflicts, resolving 77-80
reference link 56
Git commands
git bisect 80
git cherry-pick 80
git rebase 81
git reflog 81
git reset 81
git revert 81
GitHub Actions 104
global data 221
global variables 164
go-to-market (GTM) 34
Grid 58
Groovy documentation
reference link 193
H
HTTP(S) Test Script Recorder
Hybrid apps 60
I
Integrated Development Environment (IDE) 58
using 81
integration testing 18
Internet of Things (IoT) 29
iOS-specific considerations, mobile automation
CSPs, selecting 143
real devices, versus emulators 143
issues
J
Java Development Kit (JDK) 193
Java documentation
reference link 193
Java Runtime Environment (JRE) 193
JavaScript 84
basics 85
exploring 100
learning, need for 84
objects 89
JavaScript arrays
JavaScript functions
JavaScript objects
arrays 94
destructuring 93
object literals, working with 91, 92
JavaScript program
executing 85
Node.js, installing 84
running 84
Java Virtual Machine (JVM) 191, 193
Jest 229
JIRA 32
components 64
download link 176
high-level architecture 64, 65
HTTP(S) Test Script Recorder, using 189, 190
Java essentials for 190
performance test, automating 179
performance testing, considerations 195
reference link 64
working 176
JMeter master 64
JMeter slave nodes 64
JMeter, user manual
reference link 190
JSON Server 229
JSR233 assertion
L
latency
versus sample time 184
listener 182
load testing 18
local variables 164
loops 94
M
machine learning (ML) 28
master on repository 49
master-slave architecture 64
mobile automation 141
iOS-specific considerations 142
mobile automation framework
mobile test
writing 138
mobile testing tools 68
mock API
setting up, with Postman 230-233
Mocki.io 229
N
Native apps 60
Newman 169
non-functional requirements (NFRs) 204
O
object-oriented programming (OOP) 104
P
penetration testing 18
performance testing tool
requirements 66
selecting 66
performance test, JMeter
assertions, working with 184, 185
automating 179
working, via command line 186-188
personally identifiable information (PII) 33, 122
Portable Document Format (PDF) file 32
POST API request
Postman 229
API requests organizing with collections 157-161
automated API tests, writing 162
download link 149
REST API testing 148
used for sending GET request 151
used for sending POST request 151
using, to set up mock API 230-233
working with 148
workspaces, creating 150
workspaces, managing 150
Postman application
downloading 149
Postman docs
reference link 171
POST request
sending with Postman 151
Prettier 112
process-oriented anti-patterns 223-226
Progressive Web Apps (PWAs) 142
Q
quality 7
quality engineering
roles, exploring 15
Quick Test Professional (QTP) 30
R
real devices 143
request dashboard in Postman 151
REST APIs
testing aspects, GraphQL versus 172
REST API testing 148
S
sample time
versus latency 184
security testing 18
selectors 116
Selenium 57
components 58
high-level architecture 58, 59
Selenium WebDriver 40
shell scripting 48
Shift-Left approach 7
Shift-Right approach 7
smoke testing 18
snippets
used, for asserting API response 162-164
Software Development Engineer in Test (SDET) 16, 17, 32 , 204
responsibilities 16
versus test automation engineer 16
software testing 4
spec 109
executing 113
executing, with command line 113-115
executing, with visual test runner 115, 116
structure 112
writing 112
stress testing 18
system testing 18
T
Terraform 25
anti-patterns 217
challenges 12
coding/design anti-patterns 217
process-oriented anti-patterns 223-226
regression bugs, finding 13
regression bugs, handling 13
test automation engineers 15, 16
test automation environment 24
provisioning 25
testing, in production environment 25
test automation frameworks 56
Appium 60
Axe 65
Cypress 62
JMeter 63
selecting 66
Selenium 57
test automation framework, standards
platform, laying for tests 32
test libraries, managing 31
test automation strategies, for CI/CD
API tests 205
E2E tests (API and UI) 205, 206
test failures, addressing 207
unit/component tests 205
test automation strategy 22
devising 29
management support, obtaining 23
scope, defining 24
testing, in cloud 34
test results, reporting 28, 29
tools and training, selecting 29
test automation tool, selecting considerations 68
budget considerations 68
CI/CD integration 68
team’s skillset 69
test case 18
test, Cypress 109
arrow functions, creating in JavaScript 109, 110
callback functions, creating in JavaScript 110, 111
creating 109
spec, executing 113
spec structure 112
writing 112
Test-Driven-Design (TDD) 9
Test-Driven Development (TDD) 19
test early and test often 8, 9
test failures
testing 3
challenges 8
defect management 6
demands, in agile environment 5
DevOps 7
functional 4
need for 4
non-functional 4
quality 7
Shift-Left approach 7
Shift-Right approach 7
testing aspects, GraphQL
versus RestAPI 172
test pyramid 35
API tests 36
E2E tests 36
integration tests 36
system tests 36
test cycles, structuring 37
tests 36
UI tests 36
tests
test suite/test automation suite 19
time-to-market (TTM) 34
tools
for automation engineer 43
selecting 66
TypeScript 113
U
UIAutomator 126
Unified Functional Testing (UFT) tool 30
unit tests 205
unit testing 19
usability testing 19
user acceptance testing (UAT) 25
user interface 64
V
validation 19
verification 19
Vim
reference link 46
virtual machines (VMs) 24
visual test runner
used, for executing spec 115, 116
W
Web apps 60
web automation
WebDriver 58
WebdriverIO 127
advantages 127
configuring, with Appium 132, 133
web testing tool
features 67
selecting 67
white-box testing 19
X
Xcode 142
Xcode Command Line Tools 142
18.116.69.240