Chapter 3 Flashcards
Performance Testing in the Software Lifecycle (30 cards)
Keywords
Risk
Something that can interfere with project success
Understand Product vs Project
Keywords
Software Development Lifecycle (SDLC)
A structured process that outlines the stages involved in
* planning
* creating
* testing
* deploying
software products.
Keywords
Test Log
A detailed record of testing activities, including the execution of test cases by specific individuals
What activities take place during test planning?
Allocation of:
* Environment
* Data
* Tools
* A team
Also,
* Risk Identification
* Risk Analysis
Describe Test Monitoring and Control activities
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
What takes place during Test Analysis?
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
What takes place during Test Design?
Test cases are designed
Test cases are modular for usage as building blocks for larger tests during implementation
Describe Test Implementation
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
What occurs during Test Execution?
- Tests are conducted
- Tests are evaluated
- Defects are reported
What happens at Test Completion?
Results are presented to stakeholders in a test summary report
Results are expressed in:
* Metrics
* Aggregates
* Visualizations, sometimes in dashboards
True or False
Performance testing can be performed once at each test level
False - performance testing is iterative and must be performed multiple times
What happens to all the testware?
Generally archived or passed on to other testers for future usage
What are performance risks specific to Single Computer systems?
Running on one non-virtualized server
- Excessive resource consumption, including memory leaks, background software, slow storage subsystems, etc
- Inefficient implementation of algorithms
What are risks to Multi-tier systems?
Multiple servers, each with specific task, like database
- Non-scalable database design
- Network bottlenecks
- Inadequate bandwidth or capacity on any single server
As well as bad resource management and inefficient algorithms
What are risks associated with distributed systems?
Multiple servers, but servers can change dynamically per context
- Connections to unreliable or unpredictable servers, especially during network issues or intense load
- Risks associated with multi-tier and single-compute systems
What are risks associated with Virtualized Systems?
Single hardware hosts multiple virtual machines
- Excessive load on hardware across all machines
- Improper config of virtual host machine
What are risks associated with Dynamic or Cloud-based Systems?
Systems that scale on-demand; distributed, virtualized, and multi-tier
- Distributed risks
- Multi-tier risks
- And configuration risks
What are risks of Client-Server Systems?
Client communicates via UI with one server
- Single Computer risks
- Connection speed & reliability
- Network congestion at client-contact pt
- Security interference with firewalls, packet inspectors, etc
What are some of the risks associated with Mobile Applications?
Apps that run on any mobile device
- 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.
What are some of the risks with Embedded Real-time Systems?
Systems that work within or control everyday things. May be IoT.
- Mobile-device risks
- Connectivity issues
- Criticality - ex, vehicle braking system
What are some of the risks involved with Mainframe applications?
Often legacy applications, serving mission-critical business functions.
- Unexpected loads that affect throughput of established applications
What performance risks could be associated with the underlying application implementation?
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.
What is the high-level process for identifying performance risk?
4 steps
- Identify risks to product quality, focusing on time behavior, resource utilization, and capacity
- Assess risks based on architecture
- Take action to mitigate risks
- Manage risks on an ongoing basis
Who should participate in risk analysis?
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