1. Field of the Invention
The present invention relates generally to software testing and, in particular, to software testing across platforms and operational profiling.
2. Description of Related Art
There is a need for improvement in the current operational profiling art, where external activity distributions map to testcase distribution. Operational profiling, or profiling for short, is a kind of software testing. Profiling includes measuring, collecting, and analyzing data about activity levels occurring in a software system. The data collected is called a profile. Examples of activity levels include a level of file accesses in a file management system and a level of messages transmitted in a messaging system. Profiling needs to be extended to include both external and internal activities, i.e., activities that are external or internal to a software system.
Operational profiling often is limited to a vague understanding of a customer's workload activities, with no valid feedback loop to demonstrate that the measurement of external workload activities of a given customer's workload map well to a test workload for both the external interfaces and the internal processing. Currently, there is no defined process to understand the internal activities of a workload for a set of components, a component, a sub-component, or an application. Sometimes, the customer is queried to gain an understanding of what externals are exercised and to determine the overall distribution of the external activities. Sometimes, there is an understanding of the industry average for some particular solution.
Consider a shopping application. Suppose an ecommerce application supplies an infrastructure for building an online store or mall. Sometimes, a customer is queried to understand if they are using certain features, such as business-to-business (B2B), business-to-consumer (B2C), auctioning or the like. Numbers are sometimes obtained from the customer about how the shopping site is stressed with regard to the distribution of catalog browsing, adding items to a shopping cart, entering personal information to complete a sale, or actually completing a sale to make a purchase. Other times, this type of external activity distribution is obtained from an industry-wide average from public or common knowledge. Thus, testing is primarily based on externals from customer or industry input. But, there is no measure of whether or not a test system is being driven in a similar or more comprehensive fashion with regard to internal portions of code being executed in the customer system.
There is a need for a way to understand internal processing of a software system and to collect a set of empirical data points from both the customer and the test environment. The empirical data points would allow accurate measurements and comparisons of how close or distant the test environment is from providing a similar or better measure of load and coverage than the customer environment. With the measurements and comparisons, new test workloads could be created and existing test workloads could be modified to be more closely aligned with customer workloads. There is a need for a way to build a portfolio of workloads and environment tuning actions, allowing load and stress testing to be focused on a particular customer or a composite for an industry or workload type. This would certainly be a much more cost effective approach to customer representative testing than the often suggested and very costly porting of customer workloads into the test environment. For example, a single test workload could cover all of the customers.
There is a need for gathering empirical system data and having conditions in the test environment similar to the customer environment when resolving customer problem reports. Empirical system data, (e.g., activity at a component level, the number of direct access requests, the number of sequential access requests), would provide more detailed information than external indicators and improve the quality and effectiveness of software testing during resolution of customer problem reports. There is also a need for providing some kind of comparison charts or other data to reassure the customer that any resolution was tested under conditions similar to the customer environment.
The present invention is directed to systems and methods of comparing empirical system data for testcase and workload profiling that satisfies these needs and others.
A first aspect is a method of comparing empirical system data for testcase and workload profiling. Customer data is gathered from a customer system and test data is gathered from a test system. The test data corresponds to the customer data. The test system including testcases and workloads. At least one testcase or at least one workload in the test system is improved by making comparisons between the customer data and the test data in an iterative process.
A second aspect is another method for using comparisons of empirical system data for testcase and workload profiling. Customer data is received from a customer system. The customer data includes a plurality of customer activities. Test data is gathered from a test system. The test system includes a plurality of testcases and a plurality of workloads. The test data includes a plurality of test activities. Each test activity in the test activities corresponds to a customer activity in the customer activities. It is determined whether a select test activity meets or exceeds the corresponding customer activity. A workload in the test system is changed and new test data is gathered, when the select test activity does not meet or exceed the corresponding customer activity.
A third aspect is a system for using comparisons of empirical system data for testcase and workload profiling. The system includes a customer system and a test system. The customer system provides customer data that includes a plurality of customer activities. The test system provides test data that includes a plurality of testcases and a plurality of workloads. The test data includes a plurality of test activities. Each test activity corresponds to a customer activity. The test system changes a workload in the test system and gathers new test data, when a select test activity does not meet or exceed a corresponding customer activity.
These and other features, aspects, and advantages of the present invention will become better understood with regard to the following description, appended claims, and accompanying drawings, where:
The exemplary method for using comparisons of empirical system data for testcase and workload profiling improves the current art of asking the customer what he does by simply asking for some set of empirical data that can be formatted, reduced, and analyzed. After gathering the same data from the test system, a comparison is made with the customer data and this comparison is used in an iterative process. The iterative process is one of test workload changes followed by data comparisons to both the customer data and to data in prior iterations. In this way, a more representative workload and/or environment tuning is achieved. A more representative workload is not necessarily optimal. It may be suboptimal or not recommended. The goal is to have the test environment be representative of the customer environment in order to do testing that successfully removes defects. Workloads can be modified or created with a concept of future tuning capabilities designed in so that the test workload portfolio represents individual workloads. These individual workloads can be used every day with variability to enable testing of both the products and the service streams with workloads that exceed the customer's activity, best fits a set of customers, or generally matches an industry composite.
The available data 202 includes customer data 201 and test data 203. The exemplary data analysis system records or otherwise obtains empirical system data for testcase and workload profiling to be used in comparisons. The exemplary data analysis system records performance and accounting data, such as system management facility (SMF) data, component trace (CTRACE) data, and list catalog (LISTCAT) data. However, there is no limitation on what data, hardware or software platforms can be used. Testcase and workload profiling can be improved even by bringing a single data point closer to the customer's data. SMF, CTRACE, LISTCAT, or any other data is collected at both the customer system and the test system.
After the available data 202 is collected, it is reduced and averages, minimums, maximums, standard error, and other statistics are computed for data points over periods of measurement. The statistics are then mapped and compared to one another and workload alterations and tuning are implemented to converge the data in the comparisons. With CTRACE, module call frequency statistics are used to understand the amount and type of work being completed during a very small measurement window.
Computing environment 204 includes a data reduction and comparison automation (RCA) 208, statistical analysis software (SAS® software) 210, and IPCS 212, in this exemplary data analysis system 200. SAS 210 provides statistical data for the SMF data, in this example. IPCS 212 formats the CTRACE data, in this example. RCA 208 requests and receives the statistical data from SAS 210 and the formatted data from IPCS 212. RCA 208 filters the data, compares test data and customer data, and determines the differences between the test data and the customer data, such as a percent difference.
Exemplary statistics for a single data point generated and compared for two sets of mined data is shown in Table 1. This sample is from one of 202 data points from an SMF type 42, subtype 15, Sysplex-wide storage class summary data section. The data is collected over several SMF recording intervals and the statistics are programmatically generated.
In Table 1, the customer data is more varied, while the test data is more steady state as shown by the difference between minimum and maximum values and the standard deviation. Conclusions are drawn and test data is modified based on analysis of the statistics according to the testing purposes or goals. For example, the percent difference indicates a degree of similarity between the customer data and the test data. A negative percent difference indicates missing activity in the test. A large positive percent difference indicates that the test exceeds the customer for “good” activity, but for “bad” activity this indicates a need for changes to the test system.
The customer computing environment 302 includes a computer 305, customer application programs 306, a z/OS™ software products 308, and a z/OS™ operating system 310, in this example. The customer application programs 306 effect low-level system activity data with regard to types of load and stress. Some examples of customer application programs 306 include financial software applications, banking software applications, and any application that drives low-level system activity. The z/OS™ software products 308 and the way they are configured effect low level system activity data. The Z/OS™ operating system 310 and the way it is configured effects low-level empirical component activity data. The customer computing environment 302 also collects the low level system activity as customer data 201, i.e., the customer's raw SMF data and/or Supervisor Call (SVC) dumps with CTRACE, in this example.
The customer data 201 in the customer-computing environment 302 of
The exemplary test computing environment 402 includes a computer 405, test application programs 406, z/OS™ software products 408, z/OS™ operating system 410, and test data 202. The test application programs 406 effect low-level system activity data with regard to types of load and stress. The z/OS™ software products 408 and the way they are configured effect low level system activity data. The z/OS™ operating system 410 and the way it is configured effects low-level empirical component activity data. The low-level system activity data is collected in a database as the test data 202 and available to the exemplary data analysis system 200 of
The computing environment 504 includes data reduction and comparison automation (RCA) 508, formatting data 510 and generating statistics 512. The RCA 508 may be the same program that formats data 510 and generates statistics 512 or they may be separate components.
The available data 502 includes customer data 501 and test data 503. The customer data 501 includes any performance, accounting, or trace data. The test data 503 includes any raw data or comparable data.
In this example, there were two goals for analyzing the testing data collected. The first goal is to do at least the same amount or at best more of “good” processing to prove that the test environment is driving load and stress as heavy or much heavier than the customer. The second goal is to do some “bad” or costly processing for code coverage purposes, but not to run a performance challenged test that covers low probability code paths at much greater frequency than a customer would. Typically, those kinds of paths are not cost-effective to test.
In
In
In
In
Updated the size of a coupling facility (CF) caching structure to prevent costly buffer invalidation that was observed in a first iteration of the exemplary method applied to the customer data and the original test data. The results included a large reduction of the costly buffer invalidation, which improved several correlated data points. The correlated data points included more overall requests, lower normalized response time, and more I/O requests to a cache manager and less I/O requests to a direct access storage device (DASD).
Updated the size of a control interval (CI) for VSAM files to avoid too large a frequency of both CI and control area (CA) split processing. Split processing is an I/O intensive process that the test environment was doing too great an amount of over short periods of time.
Activated a hotel reservation transaction that includes sequential updates (readnext and update). Previously, the test environment had none of this specific type of activity. This change improved the overall sequential access requests so that they exceeded the levels demonstrated by the customer data.
Ran a greater number of virtual users (3,000 originally, 5,000 finally). This widened the gap of activity, giving the test systems a lead in overall activity.
These changes improved the test data to be more like the customer data. The statistical data analysis feedback loop also demonstrates that the changes had a positive impact in the testing activities, including service integration tests.
Applying the exemplary method for using comparisons of empirical system data for testcase and workload profiling usually will not result in identical activity levels for customer data and test data. Generally for most “good” processing, it is better to do more activity for stress testing, because that is most likely to reveal problems to fix. For example, if an automobile manufacturer expected customers to drive at 80 mph, it would be a good idea to test-drive it at 100 mph.
An exemplary tool performs the exemplary method for using comparisons of empirical system data for testcase and workload profiling. Test data and customer data are received, compared, and statistically analyzed, and reports are produced. An exemplary report includes charts comparing activity levels resulting from customer data and workload data, both before and after performing the exemplary method. The exemplary tool is one or more software programs.
The exemplary embodiments of the present invention have many advantages. One advantage that tests become more representative and data can be provided to support and prove that a test is more representative of the customer's internal activities and rates with hard data. Without having objective data, it is difficult to determine how to bring the test data into greater alignment with the customer data. Another advantage is that the exemplary method includes a feedback loop to provide factual data that shows by comparison how close or distant testing is from running customer-like workloads. Yet another advantage is that a simple or complex change can be made to a test workload and the overall effect can be measured as positive or negative in comparison to either the customer data or previous iterations of changes to the test workload. Still another advantage is that customers feel more secure when they understand that the test workloads are made more representative by reviewing charts and other reports.
As described above, the embodiments of the invention may be embodied in the form of computer implemented processes and apparatuses for practicing those processes. Embodiments of the invention may also be embodied in the form of computer program code containing instructions embodied in tangible media, such as floppy diskettes, CD-ROMs, hard drives, or any other computer-readable storage medium, wherein, when the computer program code is loaded into and executed by a computer, the computer becomes an apparatus for practicing the invention. The present invention can also be embodied in the form of computer program code, for example, whether stored in a storage medium, loaded into and/or executed by a computer, or transmitted over some transmission medium, such as over electrical wiring or cabling, through fiber optics, or via electromagnetic radiation, wherein, when the computer program code is loaded into and executed by a computer, the computer becomes an apparatus for practicing the invention. When implemented on a general-purpose microprocessor, the computer program code segments configure the microprocessor to create specific logic circuits.
While the invention has been described with reference to exemplary embodiments, it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted for elements thereof without departing from the scope of the invention. For example, not only z/OS™, but any type of operating system may be used and not only zSeries™ mainframes, but any type of computing devices may be used. Furthermore, various components may be implemented in hardware, software, or firmware or any combination thereof. Finally, many modifications may be made to adapt a particular situation or material to the teachings of the invention without departing from the essential scope thereof. Therefore, it is intended that the invention is not to be limited to the particular embodiment disclosed as the best or only mode contemplated for carrying out this invention, but that the invention will include all embodiments falling within the scope of the appended claims. Moreover, the use of the terms first, second, etc. do not denote any order or importance, but rather the terms first, second, etc. are used to distinguish one element from another. Furthermore, the use of the terms a, an, etc. do not denote a limitation of quantity, but rather denote the presence of at least one of the referenced item.