Facilitating testing and monitoring of number entry systems in medical devices Abigail Cauchi, Christian Colombo, Mark Micallef & Gordon Pace.

Slides:



Advertisements
Similar presentations
Verifying Web Applications: From Business Level Specifications to Automated Model-Based Testing Christian Colombo, Mark Micallef, Mark Scerri.
Advertisements

Automated Evaluation of Runtime Object States Against Model-Level States for State-Based Test Execution Frank(Weifeng) Xu, Gannon University Dianxiang.
A System to Generate Test Data and Symbolically Execute Programs Lori A. Clarke September 1976.
Overview Motivations Basic static and dynamic optimization methods ADAPT Dynamo.
TTCN-3 Test Case Generation from arbitrary traces Capture & Replay Bogdan Stanca-Kaposta & Theofanis Vassiliou-Gioles (Testing Technologies)
ECE 720T5 Fall 2012 Cyber-Physical Systems Rodolfo Pellizzoni.
Rankster A web utility app to make it fast and easy to create extracts and reports with ranked data John Blodgett Nov, 2013.
1 Design by Contract Building Reliable Software. 2 Software Correctness Correctness is a relative notion  A program is correct with respect to its specification.
SEERE, Neum 2009 Runtime verification of Java programs using ITL Vladimir Valkanov, Damyan Mitev Plovdiv, Bulgaria.
1 Software Testing and Quality Assurance Lecture 21 – Class Testing Basics (Chapter 5, A Practical Guide to Testing Object- Oriented Software)
The Process of Multiplatform Development: An Example Robyn Taylor University of Alberta.
Chapter 15 Design, Coding, and Testing. Copyright © 2005 Pearson Addison-Wesley. All rights reserved Design Document The next step in the Software.
Knowledge and Systems Research Group, University of Huddersfield B vs OCL: Comparing Specification Languages for Planning Domains Diane Kitchin, Lee McCluskey,
Improving the Usability of e-Commerce Applications Using Business Processes Presenter: Te-Yen Liu 2008/02/05 Topic:
Indistar® Flag to Re-Assess. Flag to Re-assess Flag to Re-assess is a feature that will tag… indicators initially assessed as fully implemented, indicators.
Recall The Team Skills Analyzing the Problem
Principle of Functional Verification Chapter 1~3 Presenter : Fu-Ching Yang.
© 2008 IBM Corporation Behavioral Models for Software Development Andrei Kirshin, Dolev Dotan, Alan Hartman January 2008.
Software Testing Prasad G.
1 CSc Senior Project Software Testing. 2 Preface “The amount of required study of testing techniques is trivial – a few hours over the course of.
HORIZONT 1 TWS/WebAdmin Tips & Tricks HORIZONT Software for Datacenters Garmischer Str. 8 D München Tel ++49(0)89 /
IStateLink 3.0 Help and Training Tutorial December 2010.
Sensitivity Analysis A systematic way of asking “what-if” scenario questions in order to understand what outcomes could possibly occur that would affect.
TEST CASE DESIGN Prepared by: Fatih Kızkun. OUTLINE Introduction –Importance of Test –Essential Test Case Development A Variety of Test Methods –Risk.
Lesson 8 Creating Forms with JavaScript
Dr. Pedro Mejia Alvarez Software Testing Slide 1 Software Testing: Building Test Cases.
Ranga Rodrigo. Class is central to object oriented programming.
Designing For Testability. Incorporate design features that facilitate testing Include features to: –Support test automation at all levels (unit, integration,
Output and User Interface Design
Chapter 8 – Software Testing Lecture 1 1Chapter 8 Software testing The bearing of a child takes nine months, no matter how many women are assigned. Many.
Capture and Replay Often used for regression test development –Tool used to capture interactions with the system under test. –Inputs must be captured;
From Use Cases to Test Cases 1. A Tester’s Perspective  Without use cases testers will approach the system to be tested as a “black box”. “What, exactly,
Software Engineering Research paper presentation Ali Ahmad Formal Approaches to Software Testing Hierarchal GUI Test Case Generation Using Automated Planning.
MICRO SOFT WORD.
Chapter 25 Formal Methods Formal methods Specify program using math Develop program using math Prove program matches specification using.
Functional Verification Figure 1.1 p 6 Detection of errors in the design Before fab for design errors, after fab for physical errors.
Summarizing the Content of Large Traces to Facilitate the Understanding of the Behaviour of a Software System Abdelwahab Hamou-Lhadj Timothy Lethbridge.
A Use Case Primer 1. The Benefits of Use Cases  Compared to traditional methods, use cases are easy to write and to read.  Use cases force the developers.
8 1 Chapter 8 Advanced SQL Database Systems: Design, Implementation, and Management, Seventh Edition, Rob and Coronel.
1 Introduction to Software Testing. Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Chapter 1 2.
Usability 1 Usability evaluation Without users - analytical techniques With users - survey and observational techniques.
Run-Time Conflict Resolution for Personal Features Joanne Atlee Department of Computer Science University of Waterloo University of Waterloo.
© Hive Studios 2011 Ivan Pavlović, Hive Studios Visual C# MVP, MCT, CSM
Chapter 8 Lecture 1 Software Testing. Program testing Testing is intended to show that a program does what it is intended to do and to discover program.
Software Architecture Evaluation Methodologies Presented By: Anthony Register.
Verification & Validation. Batch processing In a batch processing system, documents such as sales orders are collected into batches of typically 50 documents.
Design - programming Cmpe 450 Fall Dynamic Analysis Software quality Design carefully from the start Simple and clean Fewer errors Finding errors.
Comparing model-based and dynamic event-extraction based GUI testing techniques : An empirical study Gigon Bae, Gregg Rothermel, Doo-Hwan Bae The Journal.
Scientific Debugging. Errors in Software Errors are unexpected behaviors or outputs in programs As long as software is developed by humans, it will contain.
System Test Planning SYSTTPLAN 1 Location of Test Planning Responsibilities for Test Planning Results of Test Planning Structure of a Test Plan Test Definitions.
Click to edit Master text styles JavaMOP Hamid Reza Niroomand A presentation to Dr. Babamir.
Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 4: Events Programming with Alice and Java First Edition by John Lewis.
1 SEQUENCE DIAGRAM EXAMPLE The domain model, showing the navigability of the associations, and the Reserve video (staff scenario) use-case description.
Static Techniques for V&V. Hierarchy of V&V techniques Static Analysis V&V Dynamic Techniques Model Checking Simulation Symbolic Execution Testing Informal.
Requirement Analysis SOFTWARE ENGINEERING. What are Requirements? Expression of desired behavior Deals with objects or entities, the states they can be.
Programming Logic and Design Fourth Edition, Comprehensive Chapter 14 Event-Driven Programming with Graphical User Interfaces.
Chapter – 8 Software Tools.
Knowledge Based Systems ExpertSystems Difficulties in Expert System Development u Scarce resources – new technology – demand for trained personnel u Development.
William H. Bowers – Specification Techniques Torres 17.
1 Punishment Through Continuous Delivery If it hurts, do it more often…
Accelerometer based motion gestures for mobile devices Presented by – Neel Parikh Advisor Committee members Dr. Chris Pollett Dr. Robert Chun Dr. Mark.
Some Great Open Source Intrusion Detection Systems (IDSs)
Regression Testing with its types
Chapter 8 – Software Testing
ATTRACT TWD Symposium, Barcelona, Spain, 1st July 2016
ESTABLISHING REQUIREMENTS
All You Ever Wanted to Know About Dynamic Taint Analysis & Forward Symbolic Execution (but might have been afraid to ask) Edward J. Schwartz, Thanassis.
Analysis models and design models
Orchestrating Intelligent Systems
Engineering Quality Software
Presentation transcript:

Facilitating testing and monitoring of number entry systems in medical devices Abigail Cauchi, Christian Colombo, Mark Micallef & Gordon Pace

Same input key sequence: 1.Left 2.Up 5 times 3.Left 4.Down Zimed ADBBraun Infusomat Space

Under the UK Health & Safety At Work Act (1974) and under similar legislation in other countries, devices should be designed to reduce risk to be As Low As Reasonably Practical, ALARP.

UI principles No button presses with no effects Understandable error messages Reduce chances of (big) mistakes Etc

Cursor wraparound

The specification Coming from UI experts, psychologists, etc Implemented by software developers

The specification Coming from UI experts, psychologists, etc Implemented by software developers The problem is not new! Customers already specify systems

The specification Coming from UI experts, psychologists, etc Implemented by software developers The problem is not new! Customers already specify systems Gherkin

Gherkin Feature

Automated Testing How can we use Gherkin to execute tests?

Gherkin output

StepDefinitions.java

Automated Testing How can we use Gherkin to execute tests? Execute the scenarios, invoking the steps

Logs from Running the Gherkin Feature

Runtime Monitoring

Can we use the tests to automatically generate monitors?

Gherkin Feature

Precondition

Gherkin Feature Precondition Event

Gherkin Feature Precondition Event Assertion

Aspect Oriented Programming Implementation Event

Aspect Oriented Programming Implementation Precondition

Event Aspect Oriented Programming Implementation Assertions Precondition

Event Aspect Oriented Programming Implementation Precondition + Setup Assertions Crucial to match the precondition with the corresponding assertion Crucial to match the precondition with the corresponding assertion Crucial to match the precondition with the corresponding assertion Crucial to match the precondition with the corresponding assertion Crucial to match the precondition with the corresponding assertion Crucial to match the precondition with the corresponding assertion

Event Things to note Assertions Easy to extract Precondition Easy to extract

Event Things to note Precondition + Setup Assertions Not straight forward: Going from action to condition! Not straight forward: Going from action to condition!

One approach

How does this interact with other methods? Eg: Are there other methods which change th e cursor position? Does it affect other parts of the system state? How does this interact with other methods? Eg: Are there other methods which change th e cursor position? Does it affect other parts of the system state?

One approach How does this interact with other methods? Eg: Are there other methods which change th e cursor position? Does it affect other parts of the system state? How does this interact with other methods? Eg: Are there other methods which change th e cursor position? Does it affect other parts of the system state? Static analysis to identify such methods and r eset the flag if detected

Left() method implementation

Aspect Oriented Programming Implementation

Discussion Resulting monitors can be too specific Can generalise using tester input but we want to automate

Options to consider Observing tests and extract invariants Automatically deduce pre-post conditions: cursor == 0 Left cursor == 0

Options to consider Observing tests and extract invariants Automatically deduce pre-post conditions: cursor == 0 Left cursor == 0 How much can/should you generalise from observing a few tests?

Filtering Filtering generated invariants vs Filtering resulting monitor alerts Attempting to model check the invariant to check if it is true Attempting to choose variables to consider for invariant extraction Attempting to model check the invariant to check if it is true Attempting to choose variables to consider for invariant extraction

Filtering Filtering generated invariants vs Filtering resulting monitor alerts Showing the monitor results in priority order Asking user for feedback Showing the monitor results in priority order Asking user for feedback

Conclusions Numerous challenges when going from tests to monitors Right mix of techniques to obtain all available information: Static analysis, dynamic analysis on test + system description, test + system execution. Right mix of user input and automation