Difference between revisions of "HSST 2016"

From CERES
Jump to: navigation, search
Line 24: Line 24:
 
There is a dictum of Dijkstra that testing can be used to show the presence of bugs, but never to show their absence, but yet, can testing at least guarantee that no bugs of a predefined type are left? Addressing this question, the tutorial provides an overview of research in testing from state-oriented models, including various types of finite state machines and transition systems, where fault assumptions are formalized in fault models and tests are generated to guarantee that any bug that fits a chosen fault model is detected in any implementation of a given specification. We use examples to explain how faults can be modelled and how tests exhaustive for a given fault model can be generated.  
 
There is a dictum of Dijkstra that testing can be used to show the presence of bugs, but never to show their absence, but yet, can testing at least guarantee that no bugs of a predefined type are left? Addressing this question, the tutorial provides an overview of research in testing from state-oriented models, including various types of finite state machines and transition systems, where fault assumptions are formalized in fault models and tests are generated to guarantee that any bug that fits a chosen fault model is detected in any implementation of a given specification. We use examples to explain how faults can be modelled and how tests exhaustive for a given fault model can be generated.  
  
== Per Runeson, Lund University, Sweden==
+
== The Role of Testing and Tools for Innovation, Per Runeson, Lund University, Sweden==
 +
 
 +
 
 +
Innovation is a buzzword on the lips of both industrialists and academics. OECD defines four kinds of innovation; product, process, marketing and organizational. Software plays a significant role in product innovation. For example, in the automotive domain, software controlled functions are the basis for 90% of the product innovation. However, software plays a key role also when it comes to how products are designed and produced (process innovation), how it is delivered to the market (marketing innovation) and how different organizations interplay e.g. in ecosystems (organizational innovation). And with software comes testing.
 +
 
 +
In a survey about innovation concepts, we observed that testers in industry seemed NOT to consider themselves as contributing to innovation. On the contrary in a case study of the community of the open source tool Jenkins, we identified several key aspects related to software testing and tools. The access of “free” tools and features is a main driver to engage in the open innovation. However, in some cases, the flexibility and short turnaround speed for changes in the tools is a major advantage for industry. Specifically, we studied an effort to introduce a test framework to support testing of the tool, and found that the key challenges is access to test resources which leads to the call for frameworks for test automation.
 +
 
 +
This tutorial will introduce the basic concepts of innovation, and specifically draw on our studies of software testing aspects of open innovation. Industry participants will get insights on how to invest in a community to get best value out from the open community. Researchers will get guidance in what is needed to get their open source tools spread and utilized in a wider audience.
 +
 
  
  

Revision as of 03:08, 27 November 2015

6th Halmstad Summer School on Testing, HSST 2016

June 13-16, 2016 - Halmstad University, Sweden


Introduction

Testing and debugging account for a major part of software development cost and effort, yet the current practice of software testing is often insufficiently structured and disciplined. There have been various attempts in the past decades to bring more rigour and structure into this field, resulting in several industrial-strength processes, techniques and tools for different levels of testing. The 5th Halmstad Summer School on Testing provides an overview of the state of the art in testing, including theory, industrial cases, tools and hands-on tutorials by internationally-renowned researchers.


Tutorials

Dino Distefano, Queen Mary, University of London and Facebook, UK

Testing and Verification Methods for Many-Core Concurrency, Alastair F. Donaldson, Imperial College, UK

Many-core programming, using CPUs with lots of cores, or using GPUs, is becoming popular as a method for achieving high performance at low energy cost. The reliability of many-core software is affected by several issues at present: the uncertain and evolving nature of many-core architectures, the (un)reliability of many-core compilers, and the difficulty of writing correct many-core applications code. With colleagues in the Multicore Programming Group at Imperial, and with external collaborators, I have been involved in research to improve many-core software reliability through (a) static analysis techniques to help find bugs in, and establish correctness properties of, many-core source code, (b) automatic fuzz testing to identify defects in many-core compilers, and (c) studying the memory consistency models of many-core devices empirically, and of many-core programming languages formally, to establish a solid foundation on which to exploit many-core concurrency in a rigorous manner. I will present an overview of this work during the tutorial, demonstrating live the kinds of defects and issues that make many-core programming hard, showing how our research contributions can help, and discussing a number of open problems that current techniques do not address.

Jeff Offutt, George Mason University, USA

Fault Model-Based Testing from State-Oriented Models. Alexandre Petrenko, Computer Research Institute of Montreal (CRIM), Canada

There is a dictum of Dijkstra that testing can be used to show the presence of bugs, but never to show their absence, but yet, can testing at least guarantee that no bugs of a predefined type are left? Addressing this question, the tutorial provides an overview of research in testing from state-oriented models, including various types of finite state machines and transition systems, where fault assumptions are formalized in fault models and tests are generated to guarantee that any bug that fits a chosen fault model is detected in any implementation of a given specification. We use examples to explain how faults can be modelled and how tests exhaustive for a given fault model can be generated.

The Role of Testing and Tools for Innovation, Per Runeson, Lund University, Sweden

Innovation is a buzzword on the lips of both industrialists and academics. OECD defines four kinds of innovation; product, process, marketing and organizational. Software plays a significant role in product innovation. For example, in the automotive domain, software controlled functions are the basis for 90% of the product innovation. However, software plays a key role also when it comes to how products are designed and produced (process innovation), how it is delivered to the market (marketing innovation) and how different organizations interplay e.g. in ecosystems (organizational innovation). And with software comes testing.

In a survey about innovation concepts, we observed that testers in industry seemed NOT to consider themselves as contributing to innovation. On the contrary in a case study of the community of the open source tool Jenkins, we identified several key aspects related to software testing and tools. The access of “free” tools and features is a main driver to engage in the open innovation. However, in some cases, the flexibility and short turnaround speed for changes in the tools is a major advantage for industry. Specifically, we studied an effort to introduce a test framework to support testing of the tool, and found that the key challenges is access to test resources which leads to the call for frameworks for test automation.

This tutorial will introduce the basic concepts of innovation, and specifically draw on our studies of software testing aspects of open innovation. Industry participants will get insights on how to invest in a community to get best value out from the open community. Researchers will get guidance in what is needed to get their open source tools spread and utilized in a wider audience.


Fault Tree Analysis, Marielle Stoelinga, University of Twente, The Netherlands

Fault tree analysis (FTA) is a very prominent method to analyze the dependability of safety and economically critical assets, like power plants, data centers and web shops. FTA comprises a wide variety of methods and techniques and is being deployed by many companies, like NASA, ESA, Honeywell, Airbus, Toyota, etc.

This tutorial addresses how fault trees can be used to model and analyze the dependability of complex systems. I will give an introduction to the most common quantitative and qualitative analysis techniques, their practical relevance and deployment in practical risk assessments. Moreover, I will illustrate how the use of formal methods help to the modeling and analytical power of FTA. I will end by discussing fault tree extensions, as well as current developments in fault tree research.

Registration

The registration deadline is April 15, 2016.


To apply to the summer school, please send an email to Veronica.Gaspes@hh.se with "Halmstad Summer School on Testing" in the title. If you have any dietary requirements, or would like to attend only certain days of the summer school, please specify in your email text.

After sending the registration email, you will receive a confirmation. Please proceed to payment after you receive the confirmation email. If your registration is confirmed, please use the PayPal page (to be provided in March 2016).


The registration fee is 2300 SEK (approx. 250 EUR, ) and covers lunches, coffee breaks, and the study material but does not include the social event and dinner. The ticket to the social event and dinner (excl. drinks) costs 500 SEK and can be requested upon registration (please indicate in your email). The deadline for registration is April 15, 2016. After sending the registration email, you will receive a confirmation. Please proceed to payment after you receive the confirmation email.


Venue

The workshop will be held on the campus of Halmstad University in Halmstad, Sweden. Halmstad is a popular holiday destination located on the Swedish west coast. Just a few minutes by bicycle or bus takes you from campus to city centre, sandy beaches or forested Galgberget Hill.

Directions to/in Campus

Directions for getting to campus can be found at http://www.hh.se/english/abouttheuniversity/visitus.307_en.html

The campus map can be found here. The workshop will be located at the Baertling lecture hall, which is located at the ground floor (1st floor in Swedish terms!) of the J building (house Visionen). Coffee breaks will be held at the ground floor of the same building.

Directions to Halmstad

Trains take you directly to Göteborg in 75 minutes, to the Malmö-Copenhagen area in about 2 hours and to Stockholm in 4.5 hours. There are also daily flights from Halmstad Airport to Stockholm.


If you are flying internationally it is generally easiest to fly into Copenhagen (CPH) airport (also known as Kastrup). The best thing about flying into CPH is that you just buy a train ticket when you arrive at the airport and simply take a train from the airport directly to Halmstad. The train leaves from the airport itself approximately once an hour on weekdays. We recommend that you check the time-table at the Swedish Railways site and allow one hour from touchdown to getting to the train station (just outside customs). (It seems that you can take an earlier or a later train on the same day regardless of the exact train you booked, but obviously you will lose your seat reservation if you have made one.) To get to your hotel, you can combine a taxi booking with your train ticket at the Swedish Railways site and a driver will wait for you with your name mentioned on a board once you arrive in Halmstad.

In Halmstad, everything is either in walking distance or a short taxi ride away. Usually there are taxis at the station. If there are none there is a phone that connects directly to the local taxi company. For the eventuality that the phone is not working, it is good to have a cell phone handy. The number for the taxi company is written on the phone.


Note that CPH is in Denmark (and not in Sweden). So, if you need visas for European countries, make sure you get one that works for both.

If for some reason you cannot or do not want to use CPH, the next best international airport is in Gothenburg (GOT), locally known as Landvetter. The tricky thing about using that airport is that you would first have to take a 45 minute shuttle from the airport to the Gothenburg train station, and then take the train to Halmstad. That is one transfer and one wait. You can buy a combined shuttle and train ticket from the the Swedish Railways site.


Accommodation

We have made a pre-booking for a group of rooms at Hotel Continental.


If you would like to use this offer, please send an email to the hotel reservation and mention the booking code "HSST2016".


Here are some other suggestions for the accommodation, with an indication of their price range, (obtained from booking.com) and their distance to the summer school venue

  • Scandic Hallandia (~160-200 EUR / night, 2km)
  • Hotel Amadeus (~100-120 EUR / night, 2.5km)
  • First Hotel Martenson (~130-150 EUR / night, 2km)
  • Quality Hotel Halmstad (~80-100 EUR / night, 3 km)
  • STF Halmstads Hostel Kaptenshamn (~80-100 EUR / night, 2km)

An annotated Google Map with suggestion for restaurants can be found here.

History

This is the fifth edition of the summer school. Information about the previous editions is provided below.


Organizers

Please do not hesitate to contact us if you have any questions or enquiries:

  • Veronica Gaspes (Organization Chair, veronica.gaspes@hh.se)
  • Mohammad Mousavi (Program Co-Chair, m.r.mousavi@hh.se)
  • Eva Nestius (Local Organization)