Chapter 3 Flashcards

Performance Testing in the Software Lifecycle

1
Q

Keywords

Risk

A

Something that can interfere with project success

Understand Product vs Project

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Keywords

Software Development Lifecycle (SDLC)

A

A structured process that outlines the stages involved in
* planning
* creating
* testing
* deploying

software products.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Keywords

Test Log

A

A detailed record of testing activities, including the execution of test cases by specific individuals

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What activities take place during test planning?

A

Allocation of:
* Environment
* Data
* Tools
* A team

Also,
* Risk Identification
* Risk Analysis

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Describe Test Monitoring and Control activities

A

Control measures are defined to provide action plans in event of:
* Increasing load generation capacity for the infrastructure
* Changed, new, or replaced hardware
* Changes to the network
* Changes to the software implementation

In sum:
* handling changes to hardware, network, and software
* Increasing load capacity if needed

Additionally,
* Performance test objectives are evaluated to check for exit criteria achievement

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What takes place during Test Analysis?

A

Test Basis item analysis
* Requirements
* SLA
* Architecture
* Process models
* Etc

Test conditions are identified
* Load levels
* Timing conditions
* Transactions to be tested

SLA - service level agreement

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What takes place during Test Design?

A

Test cases are designed

Test cases are modular for usage as building blocks for larger tests during implementation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Describe Test Implementation

A

Performance test cases are ordered into test procedures

( Test Cases -> Test Procedures)

Test procedures should:
* Reflect functional activities.
* Tear down/bring up environment per test

Test data needs to be representative of production data:
* Volume
* Type

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What occurs during Test Execution?

A
  1. Tests are conducted
  2. Tests are evaluated
  3. Defects are reported
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What happens at Test Completion?

A

Results are presented to stakeholders in a test summary report

Results are expressed in:
* Metrics
* Aggregates
* Visualizations, sometimes in dashboards

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

True or False

Performance testing can be performed once at each test level

A

False - performance testing is iterative and must be performed multiple times

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What happens to all the testware?

A

Generally archived or passed on to other testers for future usage

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What are performance risks specific to Single Computer systems?

Running on one non-virtualized server

A
  • Excessive resource consumption, including memory leaks, background software, slow storage subsystems, etc
  • Inefficient implementation of algorithms
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What are risks to Multi-tier systems?

Multiple servers, each with specific task, like database

A
  • Non-scalable database design
  • Network bottlenecks
  • Inadequate bandwidth or capacity on any single server

As well as bad resource management and inefficient algorithms

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What are risks associated with distributed systems?

Multiple servers, but servers can change dynamically per context

A
  • Connections to unreliable or unpredictable servers, especially during network issues or intense load
  • Risks associated with multi-tier and single-compute systems
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What are risks associated with Virtualized Systems?

Single hardware hosts multiple virtual machines

A
  • Excessive load on hardware across all machines
  • Improper config of virtual host machine
17
Q

What are risks associated with Dynamic or Cloud-based Systems?

Systems that scale on-demand; distributed, virtualized, and multi-tier

A
  • Distributed risks
  • Multi-tier risks
  • And configuration risks
18
Q

What are risks of Client-Server Systems?

Client communicates via UI with one server

A
  • Single Computer risks
  • Connection speed & reliability
  • Network congestion at client-contact pt
  • Security interference with firewalls, packet inspectors, etc
19
Q

What are some of the risks associated with Mobile Applications?

Apps that run on any mobile device

A
  • Client-server
  • “Browser-based” (not explained in the 2018 syllabus)
  • Limited and variable resources per device
  • Device temperature, location, and battery life
  • Slow dataflows from device sensors, such as bluetooth or accelerometers
  • Bottlenecks with communication with other devices and servers

With Mobile and Internet-of-Things (IoT), all architectures could be present in an application, and all risks could apply.

20
Q

What are some of the risks with Embedded Real-time Systems?

Systems that work within or control everyday things. May be IoT.

A
  • Mobile-device risks
  • Connectivity issues
  • Criticality - ex, vehicle braking system
21
Q

What are some of the risks involved with Mainframe applications?

Often legacy applications, serving mission-critical business functions.

A
  • Unexpected loads that affect throughput of established applications
22
Q

What performance risks could be associated with the underlying application implementation?

A

Programming language-specific traits can lead to specific issues and can influence architecture as well as test design.

Example: C and C++ are more prone to memory leakage, which can lead to poor resource usage.

23
Q

What is the high-level process for identifying performance risk?

4 steps

A
  1. Identify risks to product quality, focusing on time behavior, resource utilization, and capacity
  2. Assess risks based on architecture
  3. Take action to mitigate risks
  4. Manage risks on an ongoing basis
24
Q

Who should participate in risk analysis?

A

All Stakeholders:
* Business - understand how performance problems will affect customers and any other business, legal, societal, financial, or safety risks
* Technical - understand relevant requirements, architecture, design, and implementation decisions

25
Q

When should risk analysis begin?

A

As early as possible and repeat regularly

For example:
* A poor database design causing a performance issue might only reveal itself during dynamic testing later down in the SDLC. However, this may have been caught much earlier.
* Unknown user numbers would lean architecture towards a more scalable design, thereby mitigating potential cost issues in the future

26
Q

Can performance testing be conducted throughout a sequential SDLC?

Such as V-model or waterfall

A

Yes, starting from verifying the acceptance criteria

Perf testing becomes all about preparation.

  1. Software Concept - Verify acceptance criteria
  2. Requirements - Verify performance requirements reflect customer needs
  3. Analysis and Design - Verify system design reflects performance requirements
  4. Coding/Implementation - Verify code reflects performance requirements
  5. Component Testing - Conduct perf testing at this level
  6. Component Integration Testing - Conduct perf testing at this level
  7. System Testing - Conduct perf testing at this level
  8. System Integration Testing - Conduct perf testing at this level
  9. Acceptance Testing - Validate system performance meets the originally stated requirements
27
Q

When is performance testing done during an incremental or iterative model?

A

At the beginning of an iteration or as an iteration of its own.

In fact, performance testing can have its own lifecycle.

28
Q

Can performance testing be included in Continuous Integration (CI)?

A

Yes -
* Requires a test environment on-demand
* Decide which tests to include
* Create new tests if necessary
* Can select only subsets of systems or applications for testing

29
Q

Who is responsible for performance testing in Commercial Off-the-shelf (COTS) software?

A

The customer is 100% responsible, although there may be contract provisions allowing for performance requirements.

29
Q

Describe the performance testing lifecycle

A
  • Release planning - performance testing is considered for each iteration of the release
  • Iteration planning - Performance risks are assessed in more detail. Tests may be performed within the iteration.
  • User Story Creation - Verify requirements for ‘non-functional’ user stories.
  • Design of performance tests - user stories are used to support test design
  • Coding/Implementation - Performance testing can happen alongside coding, as deep as unit/component testing
  • Testing/Evaluation - Testing can occur as a separate activity
  • Delivery - Performance monitoring