Testing Plug-in Architectures

Similar documents
Test Automation to the Limit

What your IDE could do once you understand your code

1. I NEED TO HAVE MULTIPLE VERSIONS OF VISUAL STUDIO INSTALLED IF I M MAINTAINING APPLICATIONS THAT RUN ON MORE THAN ONE VERSION OF THE.

Turning a Marathon Runner into a Sprinter: Adopting Agile Testing Strategies and Practices at Microsoft

THOMAS LATOZA SWE 621 FALL 2018 DESIGN ECOSYSTEMS

WYSIWON T The XML Authoring Myths

Qualitative Data Analysis: Coding. Qualitative Methods: Interviews Chickasaw Nation September 12, 2017

Automated Testing of Tableau Dashboards

Test-driven development

The Power of Unit Testing and it s impact on your business. Ashish Kumar Vice President, Engineering

EXECUTIVE OVERVIEW. Upgrading to Magento 2

Drupal 8 THE VIDER ITY APPR OACH

A Better Approach to Leveraging an OpenStack Private Cloud. David Linthicum

Next Generation Backup: Better ways to deal with rapid data growth and aging tape infrastructures

HOW TO WRITE USER STORIES (AND WHAT YOU SHOULD NOT DO) Stuart Ashman, QA Director at Mio Global Bob Cook, Senior Product Development Manager, Sophos

Testing and Migration

CS 307: Software Engineering. Lecture 10: Software Design and Architecture

What your Plug-in Test Suites Really Test: An Integration Perspective on Test Suite Understanding

Eclipse Day at GooglePlex 2009 Joep Rottinghuis Productivity Tools Architect, ebay Inc. August 27, 2009

The Data Protection Rule and Hybrid Cloud Backup

Test Automation Strategies in Continuous Delivery. Nandan Shinde Test Automation Architect (Tech CoE) Cognizant Technology Solutions

Is SystemVerilog Useful for FPGA Design & Verification?

8. Quality Assurance

The Future of Testing: Continuous Enterprise Testing

BSIF. A Freeware Framework for. Integrated Business Solutions Modeling. Using. Sparx Systems. Enterprise Architect

Build and Provision: Two Sides of the Coin We Love to Hate

Eclipse Packaging Project

When, Where & Why to Use NoSQL?

Agile vs Fragile. Susmit Bhattacharya, Solution Architect, Asia Pacific. - The need for Automation in Agile Tricentis GmbH. All Rights Reserved.

Ideas Gallery - Sai Kishore MV (Kishu)

웹소프트웨어의신뢰성. Instructor: Gregg Rothermel Institution: 한국과학기술원 Dictated: 김윤정, 장보윤, 이유진, 이해솔, 이정연

Open Source

HIRP OPEN 2018 Compiler & Programming Language. An Efficient Framework for Optimizing Tensors

API, DEVOPS & MICROSERVICES

9 th CA 2E/CA Plex Worldwide Developer Conference 1

5 Challenges to Government IT Modernization: In Brief. Quick tips & facts about IT modernization across federal, state and local governments

What is version control? (discuss) Who has used version control? Favorite VCS? Uses of version control (read)

THE AUTOMATED TEST FRAMEWORK

Data governance and data quality: is it on your agenda or lurking in the shadows?

Testing. Topics. Types of Testing. Types of Testing

Reliable programming

Service Delivery Platform

Viewer 2 Beta Frequently Asked Questions

Improved Database Development using SQL Compare

Modern Database Architectures Demand Modern Data Security Measures

QA & Test Management

Choice, Choices, Choices: Fat versus Thin Clients

Certkiller.P questions

The Essence of Node JavaScript on the Server Asynchronous Programming Module-driven Development Small Core, Vibrant Ecosystem The Frontend Backend

Lecture 20: SW Testing Presented by: Mohammad El-Ramly, PhD

Intelligent Mobile App Testing

RED HAT ENTERPRISE LINUX. STANDARDIZE & SAVE.

csc444h: so(ware engineering I matt medland

Paper. Delivering Strong Security in a Hyperconverged Data Center Environment

How technical excellence helps in LeSS adoption. Anton Bevzuk Dodo Pizza Chief Agile Officer

A few more things about Agile and SE. Could help in interviews, but don t try to bluff your way through

Microsoft Azure Databricks for data engineering. Building production data pipelines with Apache Spark in the cloud

How Often and What StackOverflow Posts Do Developers Reference in Their GitHub Projects?

Virtual Private Networks with Cisco Network Services Orchestrator Enabled by Tail-f - Fast, Simple, and Automated

Architectural Blueprint

SOFTWARE MAINTENANCE AND EVOLUTION --- REFACTORING FOR ASYNC --- CS563 WEEK 3 - THU

LECTURE 3 ADMINISTRATION SECTION -A

Equinox Project 3.6 Release Review

1 Shorten Your Sales Cycle - Copyright Roundpeg 2015 All rights Reserved

How Can Testing Teams Play a Key Role in DevOps Adoption?

Extreme programming XP 6

HOW WELL DO YOU KNOW YOUR IT NETWORK? BRIEFING DOCUMENT

SOLUTION BRIEF CA TEST DATA MANAGER FOR HPE ALM. CA Test Data Manager for HPE ALM

Use-Case Driven Domain Analysis for Milk Production Information Systems

Hospital System Lowers IT Costs After Epic Migration Flatirons Digital Innovations, Inc. All rights reserved.

OpenChain Specification Version 1.3 (DRAFT)

Breakdown of Some Common Website Components and Their Costs.

Leading the Digital Transformation from the Centre of Government

Black-box Testing Techniques

AZURE CLOUD SECURITY GUIDE: 6 BEST PRACTICES. To Secure Azure and Hybrid Cloud Environments

Best Practices for Application Virtualization

Model-Based Testing: Your Key to Better Software

Joopal and Drumla. Sam Moffatt, Joomla! September 13, 2009

Fundamental Shift: A LOOK INSIDE THE RISING ROLE OF IT IN PHYSICAL ACCESS CONTROL

Mobile Wireless Sensor Network enables convergence of ubiquitous sensor services


Page 1. Outline. A Good Reference and a Caveat. Testing. ECE 254 / CPS 225 Fault Tolerant and Testable Computing Systems. Testing and Design for Test

Xerte Online Toolkits v3.0 Release Notes

Short Test Cycles for Performance Testing with TruClient Technology

WHITE PAPER. Header Title. Side Bar Copy. Header Title 5 Reasons to Consider Disaster Recovery as a Service for IBM i WHITEPAPER

Rigorously Test Composite Applications Faster With CA Test Data Manager and CA Agile Requirements Designer

Chapter 2 Web Development Overview

Overcoming the Challenges of Reusing Software

Answers NOT TO BE PRINTED

Accelerate your Software Delivery Lifecycle with IBM Development and Test Environment Services

How to Manage your Process Mining Analysis - Best Practices and Challenges. Willy van de Schoot Process Mining Camp June 15 th, 2015

Tools to Develop New Linux Applications

OSSW ICOSST 2009, Al-Khawarizmi Institute of Computer Science University of Engineering and Technology, Lahore

J2EE Application Development : Conversion and Beyond Osmond Ng

SUSE s vision for agile software development and deployment in the Software Defined Datacenter

Three things you should know about Automated Refactoring. When planning an application modernization strategy

SOLUTION BRIEF CA TEST DATA MANAGER AND CA SERVICE VIRTUALIZATION. CA Test Data Manager and CA Service Virtualization

How to Build an Appium Continuous Testing Pipeline

Object Teams Release Review. Planned Review Date: July 7, 2010 Communcation Channel: Submitted by: Stephan Herrmann

MCP in a Modern Integrated Environment (UN 4015 D) Tim Schulz Enterprise Architect

Transcription:

Testing Plug-in Architectures Arie van Deursen @avandeursen Joint work with Michaela Greiler Margaret-Anne Storey

The TU Delft Software Engineering Research Group Education Programming, software engineering MSc, BSc projects Research Software architecture Software testing Repository mining Collaboration Services Model-driven engineering End-user programming 2

Crawljax: Automated Testing of Ajax Aplications 3 Ali Mesbah, Arie van Deursen, Danny Roest: Invariant-Based Automatic Testing of Modern Web Applications. IEEE Trans. Software Eng. 38(1): 35-53 (2012)

Plug-in Architectures Create series of tailored products by combining, configuring, & extending plug-ins 4

5

WordPress The number one reason people give us for not upgrading to the latest version of WordPress is fear that their plugins won t be compatible. http://wordpress.org/news/2009/10/plugin-compatibility-beta/ 6

http://www.eclipsesource.com/blogs/author/irbull/ 7

Eclipse-based Software Eclipse Plug-in Architecture 8

Underneath: OSGi Routers, Modems, Gateways, Control Panels, Phones, Cars, Trains, Trucks, Healthcare devices 9

One Product = Many Plug-ins Set of Plug-ins = Many Products What are the test implications? How should we test plug-in architectures? 10

[ Plug-in Testing Issues to Consider ] Fault model? Interacting plug-ins, Plug-in configurations Plug-in versions Plug-in extensions Resource usage Test Approaches? Combinatorial Multi-version As part of product line engineering Search-based through interaction space See related work (slide 5) of #sast2012 Teste de Linha de Produto de Software Baseado em Mutação de Variabilidades. Marcos Quinaia (UNICENTRO), Johnny Ferreira (UFPR), Silvia Vergilio (UFPR). 11

What do Eclipsers Think about Testing? 12

Research Questions 1. What testing practices are prevalent in the Eclipse community? 2. Does the plug-in nature of Eclipse have an impact on software testing? 3. Why are certain practices adopted, and why are others not adopted? 4. Are there additional compensation strategies used to support testing of plug-ins? 13

25 Interviews 14

Grounded Theory Systematic procedure to discover theory from (qualitative) data Coding Code, concept, category Memoing Theoretical sensitivity Theoretical sampling Constant comparison Saturation S. Adolph, W. Hall, Ph. Kruchten. Using Grounded Theory to study the experience of software development. Emp. Sw. Eng., Jan. 2011. B. Glaser and J. Holton. Remodeling grounded theory. Forum Qualitative Res., 2004. 15

What s a Theory? A set of well-developed categories (e.g. themes, concepts) that are systematically inter-related through statements of relationships to form a framework that explains some relevant social, psychological, educational, or other phenomenon. Corbin & Strauss, Basicis of Qualitative Research, 1998 16

P Code Comment P1, P4 The best Unit test are the best P1 Legacy code legacy code can be problematic to tests P1 Fast, easy to execute They are fast, and easy to execute P1 Misused as Integration test Unit tests grows into PDE test P1 Refactoring easy refactoring is easier when you have a well design unit test P4 More important than Integration test Are more important P4 Limited applicability Leave parts out that cannot be tested by unit tests, Remote calls P4 High amounts You can have many P4 Frequent execution Can be executed often P8 Only complex stuff Only for complex stuff like state machines P13 Comfort for refactoring P16 Limited applicability Concurrency P20 Limited applicability For code within browser It gives you a certain level of comfort to know that when you make a change and you break something that that would be apparent in your test case 17

Resulting Theory Theory comprises four main categories: 1. Testing practices used by Eclipsers 2. Impact of the plug-in characteristic 3. Factors affecting test practice adoption 4. The role of the community Also 12 concepts, 100 codes, 100 memos Full codes & quotes: Technical Report TUD-SERG-2011-011 18

Triangulation 1. Resonance @ EclipseCon 2. Survey among 151 developers 19

Practices: Unit testing is popular Unit testing is where you find the most bugs Ultimately, unit test are our best friends P18 P3 At least 70% of our test effort is spent on unit testing. P14 20

Other forms of testing are less popular We think that with a high test coverage through unit tests, integration tests are not necessary. The Capture and Replay nature of QF-tests was too rigid when the system was evolving P18 P20 We haven t been 100% satisifed with capture-replay: too much is captured. P14 21

Findings 1: Practices Common practice to have no separate test teams Eclipsers are proud of their unit testing Eclipsers tend to dislike system, integration, UI, and acceptance testing Substantially less automation 22

Automated or Manual? 23

Cross plug-in testing is optional We do bug-driven cross plug-in testing P18 P19 We have no automated tests for cross plug-in testing, but we do manual testing. 24

Version testing is minimal A lot of people put version ranges in their bundle dependencies, and they say they can run with 3.3 up to version 4.0 of the platform. P13 But I m willing to bet that 99% of the people do not test that their stuff works. 25

Findings 2: Plug-ins Testing deferred to `application engineering No special effort during `product line engineering Integration testing on demand: Bug occurring in the field No test effort aimed at integration faults per se Versions, configurations, interactions, 26

Testing combinations or versions? 43% don t test integration of different products only 3% test this thoroughly 55% don t test for platform versions only 4% test this thoroughly 63% don t test for dependency versions only 10% test this thoroughly 27

Barriers It s complicated to integrate Junit with the build. Another framework? I didn t want to take the trouble And you never know, once you write a good test, then it will become obsolete with the next version of Eclipse P4 P21 Especially for plug-ins, we would need some best practices. P7 28

Findings 3: Barriers Responsibility for integration unclear Requirements for composite unclear Lack of ownership Insufficient plug-in knowledge Set-up of test infrastructure too complicated Test execution too long Poor testability of the platform 29

Community Testing (I) Testing is done by the user community. [ ] We have more than 10,000 installations per month. If there should be a bug it gets reported immediately. P12 P17 The community helps to test the system for different operating systems, and versions. They are very active with that. 30

Community Testing (II) I would say the majority of the bug reports come from the community. [ ] We have accepted more than 800 patches. P20 P19 We make all infrastructure available, [ ], so that somebody who writes a patch has the opportunity to run the same tests [ ] 31

Downstream Testing We re a framework. If the user downloads a new version and lets his application run with it, then this is already like a test. P20 P13 They have extensive unit tests, and so I am quite sure that when I break something, somebody downstream very rapidly notices and reports the problem. 32

Findings 4: Compensation Strategies Community plays key role in finding and reporting issues Downstream testing (manual and automatic) provides additional tests of upstream framework. Open test infrastructure facilitates patching 33

Summary: Findings 1. (Automated) unit testing is widely adopted; Integration, system, UI and acceptance testing are much less automated 2. The plug-in nature has little direct impact on test practices 3. Barriers to adopt techniques include unclear ownership, accountability, and test effort & execution time 4. Limited integration testing is compensated by community 34

Scope Beyond the participants: Challenged results in survey among 150 Eclipsers Beyond Eclipse: Open source, developer centric, plug-in architecture, services, Beyond the people: Repository mining, code analysis 35

(Eclipse) Implications 1. Community tolerance for failures determines (integration) test effort 2. Need to strengthen community 3. Need to strengthen plug-in architecture with self testing capabilities 4. Test innovations must address adoption barriers 36

37

Issue of concern Positivist View Representativeness of findings Reproducibility Objectivity: free from researcher bias Reliability: findings can be replicated Rigor of method Internal validity: statistically significant Generalizability of findings External validity: domain of generalizability Interpretive View Confirmability: conclusions depend on subjects, not on researcher Auditability: process is consistent & stable over time Credibility: finding relevant and credible to people we study Transferability: how far can findings be transferred to other contexts? "Ameaças à validade". 38

Impact for Your (SAST 2012) Paper? 1. Empirical Studies in Software Testing 2. Experience in Organizing Test Teams 3. Teste de Linha de Produto de Software Baseado em Mutação de Variabilidades 4. Execução Determinística de Programas Concorrentes Durante o Teste de Mutação 5. Uso de análise de mutantes e testes baseados em modelos: um estudo exploratório 6. Framework para Teste de Software Automático nas Nuvens 7. Usando o SilkTest para automatizar testes: um Relato de Experiência 8. Automating Test Case Creation and Execution for Embedded Real-time Systems 9. Controlando a Diversidade e a Quantidade de Casos de Teste na Geração Automática a partir de Modelos com Loop 10. Geração Aleatória de Dados para Programas Orientados a Objetos 39

Conclusions (1) Increasing Dynamism We must accept that many deployed compositions are in fact untested. As the level of dynamism grows, we need to move from a priori testing to in vivo testing Rethink what your test approach might mean in a run time setting. 40

Conclusions (2) In Vivo / Run Time / On line Testing Continuous assertion & health checking Active stimuli upon configuration change Learn relevant stimuli from past behavior First steps in research, little adoption so far [ DevOps is just the beginning ] 41

Conclusions (3): Involving the Tester in Your Research To understand the problem to begin with Qualitative study to start research To evaluate your results More painful, and more rewarding! 42

Summary A Grounded Theory study is a great way to understand what people are struggling with. Integration testing in plug-in architectures is hard and possibly costly A cooperative community is a invaluable We must and can strengthen postdeployment testing and reporting 43

Further Reading Michaela Greiler, Arie van Deursen & Margaret-Anne Storey. Test Confessions: A Study of Testing Practices for Plug-in Systems Proceedings International Conference Engineering (ICSE2012), IEEE, 2012. Full report: TUD-SERG-2011-010 44