Test Automation: An Empirical Perspective. Part I -- Introduction

Similar documents
Towards a Software Engineering Research Framework: Extending Design Science Research

UNIT-III LIFE-CYCLE PHASES

Empirical Research on Systems Thinking and Practice in the Engineering Enterprise

Design Science Research Methods. Prof. Dr. Roel Wieringa University of Twente, The Netherlands

Introduction to Design Science Methodology

Introduction to Design Science Methodology

Astronomy Project Assignment #4: Journal Entry

CHAPTER 8 RESEARCH METHODOLOGY AND DESIGN

Benchmarking: The Way Forward for Software Evolution. Susan Elliott Sim University of California, Irvine

Out of the Ivory Tower: Tao Xie Peking University ( ), China North Carolina State University Raleigh, NC, USA

ty of solutions to the societal needs and problems. This perspective links the knowledge-base of the society with its problem-suite and may help

2IMP25 Software Evolution. Software Evolution. Alexander Serebrenik

HTA Position Paper. The International Network of Agencies for Health Technology Assessment (INAHTA) defines HTA as:

A SYSTEMIC APPROACH TO KNOWLEDGE SOCIETY FORESIGHT. THE ROMANIAN CASE

Future Personas Experience the Customer of the Future

Data Acquisition, Management, Sharing and Ownership

PhD in DESIGN - 34th cycle

Integrating New and Innovative Design Methodologies at the Design Stage of Housing: How to go from Conventional to Green

Six steps to measurable design. Matt Bernius Lead Experience Planner. Kristin Youngling Sr. Director, Data Strategy

CRITERIA FOR AREAS OF GENERAL EDUCATION. The areas of general education for the degree Associate in Arts are:

KT for TT Ensuring Technologybased R&D matters to Stakeholders. Center on Knowledge Translation for Technology Transfer University at Buffalo

Raw Materials: Study on Innovative Technologies and Possible Pilot Plants

THE STATE OF THE SOCIAL SCIENCE OF NANOSCIENCE. D. M. Berube, NCSU, Raleigh

Evidence Engineering. Audris Mockus University of Tennessee and Avaya Labs Research [ ]

Playware Research Methodological Considerations

Software Process: a roadmap

Forecasting Urban Travel Book Launch Panel Northwestern University, Evanston, Illinois, October 22, 2015

Logarithms ID1050 Quantitative & Qualitative Reasoning

Investing in Knowledge: Insights on the Funding Environment for Research on Inequality Among Young People in the United States

FORESIGHT. Scenarios METHOD HORIZONS. Module

December Eucomed HTA Position Paper UK support from ABHI

K.1 Structure and Function: The natural world includes living and non-living things.

Site. General Requirements Evaluation*

Table of Contents. Two Cultures of Ecology...0 RESPONSES TO THIS ARTICLE...3

FORESIGHT METHOD HORIZONS. Module. Introduction to Foresight for Canada Beyond 150

Designing for End-User Programming through Voice: Developing Study Methodology

Edgewood College General Education Curriculum Goals

By Mark Hindsbo Vice President and General Manager, ANSYS

Introduction to adoption of lean canvas in software test architecture design

MANAGING HUMAN-CENTERED DESIGN ARTIFACTS IN DISTRIBUTED DEVELOPMENT ENVIRONMENT WITH KNOWLEDGE STORAGE

Software-Intensive Systems Producibility

FET Flagships in Horizon 2020

SEAri Short Course Series

Introduction to Software Engineering

Achieving SerDes Interoperability on Altera s 28 nm FPGAs Using Introspect ESP

Emerging Trends in Software Engineering

Okavango Research Institute

STOA Workshop State of the art Machine Translation - Current challenges and future opportunities 3 December Report

An Integrated Approach Towards the Construction of an HCI Methodological Framework

IS 525 Chapter 2. Methodology Dr. Nesrine Zemirli

Outline. IPTS and the Information Society Unit IPTS Research Agenda on ICT for Governance

Questionnaire Design with an HCI focus

User Experience Design in Software Product Lines

Robotics: from FP7 to Horizon Libor Král, Head of Unit Unit A2 - Robotics DG Communication Networks, Content and Technology European Commission

Software LEIC/LETI. Lecture 21

Computer Science as a Discipline

Using Foresight and Scenarios for Anticipation of Skill Needs

Agent-Based Modeling Tools for Electric Power Market Design

Individual Test Item Specifications

OXNARD COLLEGE ACADEMIC SENATE

Understand that technology has different levels of maturity and that lower maturity levels come with higher risks.

Software Process: a roadmap

Introduction. Requirements Engineering: Why RE? What is RE? How to do RE? -> RE Processes. Why RE in SysE? Case Studies and The Standish Report

Fourth Grade. Course of Study For Science

An introduction to software development. Dr. C. Constantinides, P.Eng. Computer Science and Software Engineering Concordia University

SESAR EXPLORATORY RESEARCH. Dr. Stella Tkatchova 21/07/2015

A Balanced Introduction to Computer Science, 3/E

BIM+Blockchain: A Solution to the "Trust" problem in Collaboration?

Graphics can be defined as translations of numbers in the form of a. drawing, design or plan to explain or illustrate something.

IEEE IoT Vertical and Topical Summit - Anchorage September 18th-20th, 2017 Anchorage, Alaska. Call for Participation and Proposals

Innovation in Quality

Chapter 30: Game Theory

Programme Curriculum for Master Programme in Economic History

Rapid Prototyping of Computer Systems , , A, , Units Carnegie Mellon University. Course Syllabus Spring 2005

Software Measurement & Lessons from the Masters: Benefits for Industry

Our position. ICDPPC declaration on ethics and data protection in artificial intelligence

The role of testing in verification and certification Kerstin Eder

UNIT VIII SYSTEM METHODOLOGY 2014

The art of COLD CALLING

SAFETY ASSESSMENT METHODOLOGIES AND THEIR APPLICATION IN DEVELOPMENT OF NEAR SURFACE WASTE DISPOSAL FACILITIES ASAM PROJECT

Introduction to Humans in HCI

Information Systemss and Software Engineering. Computer Science & Information Technology (CS)

Visual & Virtual Configure-Price-Quote (CPQ) Report. June 2017, Version Novus CPQ Consulting, Inc. All Rights Reserved

From Concept to Market: Linking Research, Development and Production Activities

UCL CULTURE. Artist Brief 1. Permanent commission for public access areas Destination artwork

Innovation for Defence Excellence and Security (IDEaS)

INNOVATIVE APPROACH TO TEACHING ARCHITECTURE & DESIGN WITH THE UTILIZATION OF VIRTUAL SIMULATION TOOLS

Managing the Innovation Process. Development Stage: Technical Problem Solving, Product Design & Engineering

A brief introduction to... Evidence-informed policymaking

2018 NISO Calendar of Educational Events

UNCLASSIFIED UNCLASSIFIED 1

Issues and Challenges in Coupling Tropos with User-Centred Design

Sustainability Science: It All Depends..

EMMA feedback and assessment tool

Design Research Methods for Systemic Design

ANSYS v14.5. Manager Installation Guide CAE Associates

Would you mind? futurest. Together we shape the future. Company introduction, team, methods & project examples

The Societal Benefits of Spatial Data Infrastructures

Monte Carlo Tree Search. Simon M. Lucas

Systems Engineering Overview. Axel Claudio Alex Gonzalez

Transcription:

Test Automation: An Empirical Perspective. Part I -- Introduction Long Tutorial at the GTTSE Summer School on Generative and Transformational Techniques in Software Engineering, Braga, Portugal, 2011 Arie van Deursen, Delft University of Technology 1

Language Engineering GTTSE Software Engineering 2

My Journey Language Engineering GTTSE Software Engineering 1990 2011 ASF+SDF, DSLs, language prototyping, reverse engineering reverse engineering, sw architecture, testing, human factors, 3

This Tutorial Topics Software testing Test automation Web applications Plug-in architectures Angles In search for connections Pushing the limit Empirically grounded What s our impact? 4

[Historic side note] Journal of Sw. Maintenance, 1998 A DSL for Banking Specify essence of interest rate products Generate Cobol code Early 90s now Survived many mergers 5

6

7

Proc. ICSM 1999 Sw. Practice & Experience, 2004 www.sig.eu Software Improvement Group 8

Proc. WCRE 2000, Science of Comp. Progr., 2006 9

10

11

Crawljax: Automated Testing of Ajax Aplications 12

Bas Cornelissen, Andy Zaidman, Arie van Deursen, A Controlled Experiment for Program Comprehension through Trace Visualization. IEEE Transactions on Software Engineering, 2011 13

Spreadsheet Analysis 14

Can we predict impact? 1. Some very cool results are never applied 2. Need to speak the user s language 3. Simpler might be more effective 4. What is our perspective on evaluation? 15

What is Exciting in an Engineering Field? 1. Invention of wholly new ideas and directions A. Finkelstein A. Wolf 2. Work of promise that illuminates #1 3. Early application of #2 showing clear prospect of benefit 4. Substantial exploitation of #3 yielding measurable societal benefits 5. Maturing of #4 with widespread adoption by practitioners 16

[ Some Discussion Outcomes ] Run time versus design time Repository mining Reinventing analysis Scaling up debugging SE techniques in new domains (health) Societal scale systems (REST) 17

What Can We Learn From The Social Sciences? Paradigms shaping the practice of research: Post-positivism Social constructivism Participatory / advocacy Pragmatism 18

Post-positivism Conjectures and Refutations: The Growth of Scientific Knowledge Testing of hypotheses A priori use of theory 19

Pragmatism Clarify meanings of intellectual concepts by tracing out their conceivable practical consequences. (Charles Peirce, 1905) Do not insist upon antecedent phenomena, but upon consequent phenomena; Not upon the precedents but upon the possibilities of action (John Dewey, 1931) 20

Pragmatic Considerations Not every belief that is true is to be acted upon Not committed to single research method Research occurs in social (and technological) context Research builds up group knowledge Cleo H. Cherryholmes. Notes on Pragmatism and Scientific Realism. Educational Researcher. 1992;21(6):13-17. 21

The Qualitative Research Palette Measuring applicability? The outcome as a narrative Multi-facetted validity Carolyn B. Seaman. Qualitative methods in empirical studies of software engineering. IEEE TSE, 1999 Case studies Ethnography Participant observation Grounded theory Phenomenology Narrative studies Participative inquiry Interviewing Document analysis 22

23

McGrath on Maximizing Criteria 1. Generalizability of evidence over population 2. Precision of measurement and control over extraneous factors 3. Realism of the context in which evidence is gathered. Although you always want to maximize all three criteria simultaneously, you cannot do so 24

McGrath on Credible Knowledge 1. Results depend on methods. 2. All methods have limitations. 3. Hence, any set of results is limited. Credible empirical knowledge requires consistency or convergence of evidence across studies based on different methods. 25

Design Science Type Conditions of Practice Control of context Example Users Goals Illustration no yes small designer illustration Opinion imagined yes any stakeholder support Lab demo no yes realistic designer knowledge Lab experiment no yes artificial subjects knowledge Benchmark no yes standard designer knowledge Field trial yes yes realistic designer knowledge Field experiment yes yes realistic stakeholder knowledge Action case yes no real designer knowledge and change Pilot project yes no realistic stakeholder knowledge and change Case study yes no real stakeholder knowledge and change Roel Wieringa. Design Science Methodology. Presentation for Deutsche Telekom, 2010 (also ICSE, RE tutorial) 26

This Tutorial Topics Software testing Test automation Web applications Plug-in architectures Angles In search for connections To the limit Empirically grounded What s our impact? 27

Why I Love Software Testing (1) Dependability in practice 28

Why I Love Software Testing (2) Research Challenges 29

Why I Love Software Testing (3) System Understanding 30

Test Automation software that automates any aspect of testing of an application system Generate inputs & expected results Run test suites without manual intervention Turn scenarios into executable test cases JUnit, Rspec/Cucumber, Selenium, TTCN, Hexawise, Haddoop, 31

Testing Chrome in Quotes Chromium development places a high premium on tests, tests, tests, tests and more tests The Chromium Buildbots run these tests 24x7 It is imperative that test suites be updated, maintained, executed, and evolved Developers contributing code are expected to always run all tests Keep the source tree always building so that regressions are minimized and developer productivity is maximized When contributing code, always consider whether your change has enough testing: a new feature or module should almost certainly be accompanied by tests. See http://dev.chromium.org/developers/testing 32

GUI Testing 33

webrat_steps.rb: Cucumber Then /^I should see "([^\"]*)"$/ do text response.should contain(text) end Feature: Log in and out As an administrator I want to restrict access to certain portions of my site In order to prevent users from changing the content Scenario: Logging in Given I am not logged in as an administrator When I go to the administrative page And I fill in the fields Username admin Password secret And I press "Log in" Then I should be on the administrative page And I should see "Log out" Scenario: Logging out... 34

Exploratory Testing Human tester, using brain, fingers, & wit to create scenarios that will cause software either to fail or to fulfill its mission. Take advantage of human cleverness No scripts: Exploratory Testing Record test findings as you go

Touring Tests Touring Guidebook tour Money tour Landmark tour After hours tour Museum tour Rained-out tour Couch potato tour Antisocial tour Testing Use the manual The money-generating features Key features Batch functionality Legacy features Start and then cancel operations Do as little as possible (all defaults) Known bad inputs http://blogs.msdn.com/b/james_whittaker/

Testing is about Varying Things: Input, State, Paths, Data, Environment Input: Atomic versus abstract Input combinations Order of inputs Legal versus illegal Input filters & checks Normal versus special Default / user supplied State History of stimuli Paths Routes through system Data Evolution over months Environment Simulate the real world

Test Automation Limits Test automation is often built to solve too big a problem. This broad scope makes automation brittle and flaky because it's trying to do too much. There are certain things that automation is good at and certain things humans are good.at.. What I want is automation that makes my job as a human easier. Automation is good at analyzing data and noticing patterns. It is not good at determining relevance and making judgment calls. Fortunately humans excel at judgment. So when I am doing exploratory testing, I want automation following me and helping. 38

Testing is your Business Testing: 50% of costs of software projects Your work must simplify testing! For developers For system integrators For stakeholders Does it? How? 39

GTTSE Preproceedings 1. Which levels of test automation are possible? 2. Which levels of test automation are desirable? 40

Key Points Engineering calls for pragmatism Assess opportunities for action Qualitative methods to the rescue Multiple evaluations required You re working on testing too 41

GTTSE Outlook Wednesday: Reflections on test automation for the web Thursday: Reflections on compositional testing 42