Over a million developers have joined DZone.

The Core Activities of Performance Testing

A list of seven core actions that occur in successful performance testing processes, and what factors to consider for each action.

· Performance Zone

Evolve your approach to Application Performance Monitoring by adopting five best practices that are outlined and explored in this e-book, brought to you in partnership with BMC.

There are seven core activities that occur in a successful performance testing process. Before implementing them, it is important that we understand these seven concepts.

The core activities are as follows:

Identification of Test Environments

Here we identify the physical test and production environment for the software application. It also identifies the tools and resources that are available to the test team. The environment, tools and resources here refer to the configurations and settings of the hardware, the software and the network. A thorough understanding of this test environment enables better test planning and design. This identification process needs to be periodically reviewed during the testing process.

The key factors to consider for test environment identification are as follows:

    1. Hardware and machine configurations
    2. Network Architecture and user location
    3. Domain Name System Configuration
    4. Software installed.
    5. Software licenses
    6. Storage capacity and data volume
    7. Levels of logging
    8. Load Balancing
    9. Load Generation and Monitoring tools
    10. Volume and type of network traffic.
    11. Scheduled processes, updates and backups.
    12. Interaction with external systems.Image title

Identification of Performance Acceptance Criteria

This step involves identifying or estimating the performance characteristics of the software application. This starts with noting the performance characteristics which are rendered as good performance by the stakeholders. The main characteristics of a stable performance are Response Time, Resource Utilization and Throughput.

The key factors to consider for identification of performance acceptance criteria are as follows:

    1. Business Requirements and obligations
    2. User Expectations
    3. Industry Standards and Regulatory Compliance Criteria
    4. Service Level Agreements (SLAs)
    5. Resource Utilization Limits
    6. Workload Models
    7. Anticipated load Conditions
    8. Stress Conditions
    9. Performance Indicators
    10. Previous Releases
    11. Competing Applications
    12. Objectives of Optimization
    13. Safety and scalability
    14. Schedule, Budget, Resources and Staffing

Plan and Design tests

When you design and plan a test for quantifying the performance characteristics, real world simulations should be created. This will generate significantly relevant and useful results that will help the organization to take informed business decisions. If this is not the test objective, then the most valuable usage scenarios should be explicitly determined.

The key factors to consider in planning and designing tests are as follows:

  1. Obligated usage scenario

  2. Usage scenarios implied by the testing goals

  3. Most common usage scenarios.

  4. Performance critical Usage scenarios

  5. Technical Usage scenario

  6. Stakeholder Usage scenario

  7. High Visibility Usage Scenario

  8. Business Critical Usage ScenarioConfiguration of Test Environment

Innumerable issues arise from network, hardware, server operating systems and software compatibility. Configuring the test environment needs to be started early. This ensures that the configuration issues are resolved before the testing is begun. Additionally, periodic reconfiguration, updates, enhancements should be carried out throughout the project lifecycle.

  1. The key factors to consider in configuring the test environment are as follows:

  2. Determine the maximum load that can be generated before reaching a load bottleneck.

  3. Verify the synchronization of all the system clocks from where the data resources are collected.

  4. Validate the load testing accuracy against the different hardware components.

  5. Validate the load testing accuracy against the server clusters.

  6. Validate the distribution of load by monitoring the resource utilization across servers.

Implementation of Test Design

The biggest challenge in performance testing is to execute a realistic test with simulated data in a way that the application being tested cannot differentiate between real data and simulated data.

  1. The key factors to consider for implementation of test design are as follows:

  2. Ensure the correct implementation of the test data feeds.

  3. Ensure the correct implementation of transaction validations.

  4. Ensure the correct handling of hidden information fields and special data

  5. Validate the key performance indicators.

  6. Ensure the proper population of variables for request parameters.

  7. Consider request wrapping in test scripts to measure the response time for requests.

  8. Consider the script to match the designed test compared to changing the test to match the script.

  9. Evaluate the generated results against those expected. This validates the script development.

Execute Tests

The process of executing test cases is dependent on the tools, resources and the environment. It can be said to be a combination of the following tasks:

  1. Coordinating the execution of tests.

  2. Validating the tests, configurations and the data environments.

  3. Executing tests.

  4. Validating and monitoring the scripts and data while executing.

  5. Reviewing the results on test completion

  6. Archiving the tests, test data, test results and related information for later use.

  7. Logging activity times for later identification.

The key factors to consider while executing tests are as follows:

    1. Validate the execution of tests for completed data.
    2. Validate the use of correct values of data for realistic simulation of the business scenario.
    3. Limit the test execution cycles and review them after each cycle.
    4. Execute the same test multiple times to determine the factors accounting for the difference.
    5. Observe any unusual behavior while test execution.
    6. Set up warning to the team before executing tests.
    7. Do not carry out extra processes on the load generating machine while generating a load.
    8. Simulate ramp up and cool down periods.
    9. Executing a test can be held up when a point of diminishing returns is reached.

Analyze, Report, and Retest

The main aim of executing tests is more than the results. Conclusions need to be derived from them along with the consolidated data to support the conclusions. This process requires analysis, comparisons and reporting.

  1. The key factors to consider are follows:

  2. Analyze the data both individually and collectively.

  3. Analyze and compare the results to determine the inward or outward trend of the application under test.

  4. If any fixes are made, then validate the fix by repeating the test.

  5. Share the results of the test and make the raw data available to the team.

  6. Modify tests if desired objective is not met.

  7. Exercise caution while reducing test data as valuable data cannot be lost.

  8. Report early and often.

  9. Report visually and intuitively.

  10. Consolidate data correctly and summarize them effectively.

  11. Intermediate reports should include priorities, issues and limitations for the next execution cycles.

Conclusion

The above testing activities occur at different stages of the testing process. It is very important to understand the importance and objective of each activity elaborately to be able to design them to best fit the project context.

Learn tips and best practices for optimizing your capacity management strategy with the Market Guide for Capacity Management, brought to you in partnership with BMC.

Topics:
software testing ,performance testing ,quality assurance ,load testing

Opinions expressed by DZone contributors are their own.

The best of DZone straight to your inbox.

SEE AN EXAMPLE
Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.
Subscribe

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}