Program
All papers are available in the ACM digital library.
8:30 | Introduction and Chair’s Welcome |
8:35 | Session 1: Contributed Papers Chair: Dorina Petriu, Carleton University |
Connie U. Smith (Performance Engineering Services) Juan F. Pérez, Weikun Wang, Giuliano Casale (Imperial College) Xiaoguang Dai, Boyana Norris, Allen Malony (University of Oregon) John Klein, Ian Gorton (Software Engineering Institute) | |
10:00 | Break |
10:30 | Session 2: Discussion Session on Challenges |
12:00 | Lunch |
1:30 | Session 3: Contributed Papers |
Davide Arcelli, Luca Berardinelli (Università Degli Studi L'Aquila), Catia Trubiani (Gran Sasso Science Institute, L’Aquila) Sebastian Lehrig , Steffen Becker (Chemnitz University of Technology) Rafik Henia, Laurent Rioux, Nicolas Sordon, Gérald-Emmanuel Garcia, Marco Panunzio (Thales) Dorina Petriu (Carleton University) | |
3:00 | Break |
3:30 | Session 4: Discussion Session on Research Opportunities Chair: Connie Smith, Performance Engineering Services |
5:00 | Closing and Workshop Summary |
Workshop Discussion
Report on Joint Discussions in the
WOSP-C Performance Engineering Challenges and LT Large-Scale Testing Workshops
ICPE 2016, Delft, Mar 12, 2016
Summary assembled by Andre Bondi, Murray Woodside, Christian Voegele and Jack Jiang
(bondia(at)acm(dot)org, cmw(at)sce.carleton(dot)ca, voegele(at)fortiss(dot)org, zmjiang(at)cse.yorku(dot)ca)
In addition to discussing the presentations during the two workshops (see the program and the ACM digital library) there were four joint breakout groups discussing the following topics:
- The relationship between performance models and performance testing
- Collection of representative test data in distributed environments
- Performance engineering for dynamic architectures
- Performance testing, operating data and DevOps
Summaries of these discussions follow.
1. The Relationship between Performance Models and Performance Testing
In summary there were three main thoughts:
- How: QPMN, Simulation Models, Test/Production, ML/Regression Model, (How accurate must a performance model be?)
- Input from Test to Model: Derive Test Cases from Performance Models
- Value: Risk mitigation, Planning, compare actual vs. predicted, compare option/ variations
The discussion covered reasons for including models, modeling technology including Machine Learning models, relationships in both directions.
- ... the model can be calibrated from test data
- ... tests can be derived from the model.
An active final discussion arose about what is a good enough model, how a less detailed model may be better because quicker to make and easier to use. However
- ... it was agreed there are no well-accepted objective criteria to apply to a model, to evaluate it as “good enough”
- ... the criteria should be related to the use of the model, and might be connected as much to business value, as to technical criteria.
- ... one example was, the impact of a new feature or system on existing services
- ... Another example was, to make a model that evaluates the overall impact of a change, on a line of business (e.g. sales).
There was also a comment that the model-building process needs to be collaborative between different stakeholders (not just modeling specialists)
2. Collection of representative test data in distributed environments
- Challenges:
- i. Anonymize test data from production often required due to privacy laws
- ii. Data dependencies across multiple databases
- iii. Data must be realistic (distribution of attributes, amount of data)
- iv. Generation of data during runtime that supports the dataflow of the application is difficult
- Action items:
- i. Automatic test data generation driven by performance requirement
- ii. Feedback-driven selection and generation of test data by learning the impact of parameter inputs on the performance
- iii. Automatic generation of load test data that fit together across multiple systems, especially identifying data dependencies across databases that are not directly connected
3. Performance Engineering for Dynamic Architectures
The topic was prompted by self-organizing systems that change rapidly at run-time, but we decided that it should include any system in which entities and relationships change while it is running (reliable and adaptive systems for instance). It needs identification, maybe a different name. some examples are
- mobile entities connected by proximity
- elastic applications
- reconfigurable manufacturing systems
- real-time control
The time-scale for change is a major property.
Action Items:
- A taxonomy of types of dynamic changes
- Identify suitable performance metrics (System metrics, adaptation metrics, reliability, availability and other metrics like energy)
- Identify the steps in adaptation (such as decision delays and adaptation delays) and the important attributes of their execution
- Identify representative case studies
4. Performance Testing, Operating Data and DevOps
This topic aims to discuss about the relationship of performance testing and operating data in the context of DevOps.
First, the group discussed about the meaning of DevOps and its strength.
- Rapid feedback about the software quality
- Ecosystems
- Lots of automation (e.g., in deployment, testing, monitoring, etc.)
- Use of repository of customer usage data to build workload profiles
- Challenges in conducting performance testing in DevOps:
- New test cases, new testing techniques (e.g., which version to test, how long to test)
Then the group discusses about the use and the limitations of “Canary Deployment”:
- Cannot be applied to mission critical systems
- Depends on how much failures that companies can tolerate
- “A/B testing” style of performance testing
- How do we select the “canary”?
- Survey the customers for alpha/beta
- Select “equivalent” customers
- Customer satisfaction levels, revenue, application type (safety critical)?
Finally, the group discussed about the challenges and opportunities in developing and maintaining tools to conduct performance testing in the context of DevOps:
- Leveraging the testing data collected during CI to help us select “suspicious” builds
- The need for regular load testing process to verify the selected problems
- Ecosystems (Develop, Deploy, CI, automation)
- Conceptual mismatch (Dev vs. Ops)
- Lots of automation (build, deploy, test,..)
- Repository of production usage data
- New testing techniques, New test cases (e.g. test reduction, # of versions , testing time)