Browse Prior Art Database

Method and system to dynamically generate and execute performance test cases starting from a code static analysis

IP.com Disclosure Number: IPCOM000234144D
Publication Date: 2014-Jan-14
Document File: 3 page(s) / 76K

Publishing Venue

The IP.com Prior Art Database

Abstract

One of the main issues with software is to identify performance problems that may have impacts on the non-functional requirements. The identification of possible bottlenecks in a software and the right tests cases to be executed is not a trivial task. Usually a big part of the bottlenecks issues are identified after the software is deployed in production. The idea presented in this article provides a method able to identify the possible software bottlenecks and the needed performance test cases to be executed in order to verify that the software meets the non-functional requirements. The core of the idea presented in this article is to analyze statically the source code of the software, identify the possible bottlenecks (ex. loop, heavy system calls,etc..) and then at runtime generate the stress test cases. In order to generate the stress test cases, the new module will query a knowledge base where testers and developers publish scripts/programs/commands that allow to stress the identified condition.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 52% of the total text.

Page 01 of 3

Method and system to dynamically generate and execute performance test cases starting from a code static analysis

One of the main issues with software is to identify performance issues that may have impacts on the non-functional requirements. The identification of possible bottlenecks in a software and the right tests cases to be executed is not a trivial task. Usually a big part of the bottlenecks issues are identified after the software is deployed in production.

The idea presented in this article provides a new method able to identify the possible software bottlenecks and the needed performance test cases to be executed in order to verify that the software meets the non-functional requirements.

The core of the idea presented in this article is to analyze statically the source code of the software, identify the possible bottlenecks (ex. loop, heavy system calls,etc..) and then at runtime generate the stress test cases. In order to generate the stress test cases, the new module will query a knowledge base where testers and developers publish scripts/programs/commands that allow to stress the identified condition.

Basically the flow is the following:

Execute a static analysis of source code in order to identify loops or known APIs that can have impacts on performance based on machine load/configuration For each loop/API identified as a possible bottleneck identify relevant variables and how they are collected/calculated


Search in the provided knowledge base the identified API and associated operations that can be used to generate different workloads
Execute multiple test cases using the program/command/script found in the

previous step having different workloads and register performance information using a performance analysis tool (like Rational Quantify)

Based on the above, the solution will allow to really identify bottlenecks within a software in a dynamic way introducing a non-trivial performance test process that could be executed not only in a test environment but into a customer's environment as well.

The core of the idea presented in this article is to analyze statically the source code of the software, identify the possible bottlenecks (ex. loop, heavy system calls,etc..) and then at runtime generate the stress test cases. in order to generate the stress test cases, the new module will query a knowledge base where testers and developers publish scripts/programs/commands that allow to stress the identified condition.

The following diagram describes the components of the solution:


1.


2.


3.


4.

1


Page 02 of 3

Basically, a new Performance Analysis Tool is provided that will have a Static Analyzer component that will analyze the software source code and identify a list of possible cyclic operations (like for, while, etc) and the most frequent heavy API that are used. The set of API is stored in a knowledge base...