Lecture 5 Flashcards
Software testing is typically divided into what two types?
Functional and non-functional
What are three examples of functional testing?
-Unit testing
-Integration testing
-End 2 end testing
What are three examples of non-functional testing?
-Performance testing
-Security testing
-Usability testing
Why do we do performance testing?
To ensure stability and reliability
What do we hope to find during performance testing?
Bottlenecks
What is the ultimate goal of doing performance tests to identify bottlenecks and improve performance?
To improve the user experience
How can performance testing help with budgeting issues?
It can assess whether the IT infrastructure resources are over/underutilised, and if new changes are worth the time/money spent on them
What are three types of performance test?
-Baseline test
-Load test
-Endurance test
In the context of performance testing, what are transactions?
Logical groupings of requests
In the context of performance testing, what is think time?
A way for the test to simulate the wait in between clicks for users
What is response time?
Browser rendering time+network time+backend processing time
What is throughput?
The number of operations the system can perform in a unit of time
What is correlation?
The process of capturing parameters from server responses to use them in future requests, such as access IDs
What is parametrisation?
The process of injecting parameters into requests to make them unique, for example orderIDs should be different each time to simulate real world usage
What are metrics to consider when defining Acceptance Criteria goals?
-Response time
-Throughput
-Resource utilisation
What is an example of a conceptual goal in performance testing, that might be used in a meeting with stakeholders?
The ‘user login’ function should be fast even under heavy usage
What is an example of a quantitative goal that can actually be tested?
The ‘user login’ transaction is less than 4s with a 90% probability with up to 10k users in the system
What is a common challenge in performance testing that arises from the need for the test environment to mirror the production environment?
Difficult to achieve early in the process (‘shift-left testing’), but doing it late might mean changes to infrastructure become more expensive
What problems in performance testing are caused by the use of HTTP to communicate?
Most tools only work on the HTTP level, measuring from the backend, not including browser response time. Testing on the HTTP level requires deep knowledge of the application
What are three popular load testing tools?
-JMeter (user friendly GUI)
-Loadrunner
-MS Visual Studio Load Tester for Web Applications
What is an example of a programming framework?
Locust (python)