A lightweight framework for dynamic GUI data verification based on scripts

Runtime verification (RV) provides essential mechanisms to enhance software robustness and prevent malfunction. However, RV often entails complex and formal processes that could be avoided in scenarios in which only invariants or simple safety properties are verified, for example, when verifying input data in Graphical User Interfaces (GUIs). This paper describes S‐DAVER, a lightweight framework aimed at supporting separate data verification in GUIs. All the verification processes are encapsulated in an independent layer and then transparently integrated into an application. The verification rules are specified in separate files and written in interpreted languages to be changed/reloaded at runtime without recompilation. Superimposed visual feedback is used to assist developers during the testing stage and to improve the experience of users during execution. S‐DAVER provides a lightweight, easy‐to‐integrate and dynamic verification framework for GUI data. It is an integral part of the development, testing and execution stages. An implementation of S‐DAVER was successfully integrated into existing open‐source applications, with promising results. Copyright © 2015 John Wiley & Sons, Ltd.

[1]  Martin C. Rinard From Runtime Verification to Runtime Intervention and Adaptation , 2012, RV.

[2]  Koushik Sen,et al.  Rule-Based Runtime Verification , 2004, VMCAI.

[3]  Grigore Rosu,et al.  JavaMOP: Efficient parametric runtime monitoring framework , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[4]  Tevfik Bultan,et al.  Runtime Verification of Web Service Interface Contracts , 2010, Computer.

[5]  Alex Groce,et al.  Formal Analysis of Log Files , 2010, J. Aerosp. Comput. Inf. Commun..

[6]  Jess Chadwick,et al.  Programming ASP.NET MVC 4 - Dveloping Real-world Web Applications with ASP.NET MVC , 2012 .

[7]  Eric Bodden A lightweight LTL runtime verification tool for java , 2004, OOPSLA '04.

[8]  Michael Fitzgerald Learning Ruby - the language that powers rails , 2007 .

[9]  Pramodita Sharma 2012 , 2013, Les 25 ans de l’OMC: Une rétrospective en photos.

[10]  Gary T. Leavens,et al.  How the design of JML accommodates both runtime assertion checking and formal verification , 2003, Sci. Comput. Program..

[11]  Eric Bodden MOPBox: A Library Approach to Runtime Verification - (Tool Demonstration) , 2011, RV.

[12]  Shelley Powers,et al.  JavaScript Cookbook - Programming the Web , 2010 .

[13]  Jeremiah Willcock,et al.  cKanren miniKanren with Constraints , 2011 .

[14]  John W. Eaton,et al.  GNU Octave manual version 3: a high-level interactive language for numerical computations , 2008 .

[15]  Alessandro F. Garcia,et al.  An exploratory study of code smells in evolving aspect-oriented systems , 2011, AOSD '11.

[16]  Insup Lee,et al.  Monitoring, Checking, and Steering of Real-Time Systems , 2002, Electron. Notes Theor. Comput. Sci..

[17]  Parag A. Pathak,et al.  Massachusetts Institute of Technology , 1964, Nature.

[18]  Yliès Falcone,et al.  Runtime Verification of Safety-Progress Properties , 2009, RV.

[19]  Gregorio Martínez Pérez,et al.  A Proposal for Automatic Testing of GUIs Based on Annotated Use Cases , 2010, Adv. Softw. Eng..

[20]  Mahesh Viswanathan,et al.  Java-MaC: A Run-Time Assurance Approach for Java Programs , 2004, Formal Methods Syst. Des..

[21]  A. Jefferson Offutt,et al.  Input validation analysis and testing , 2006, Empirical Software Engineering.

[22]  Bertrand Meyer,et al.  Applying 'design by contract' , 1992, Computer.

[23]  Gregorio Martínez Pérez,et al.  OpenHMI-tester: an open and cross-platform architecture for GUI testing and certification , 2010, Comput. Syst. Sci. Eng..

[24]  Anneke Kleppe,et al.  The object constraint language: precise modeling with UML , 1998 .

[25]  Viktor Kuncak,et al.  Runtime Checking for Program Verification , 2007, RV.

[26]  Howard Barringer,et al.  Rule Systems for Run-time Monitoring: from Eagle to RuleR , 2010, J. Log. Comput..

[27]  Adrian M. Colyer,et al.  Aspect-oriented programming with AspectJ , 2005, IBM Syst. J..

[28]  Marcelo d'Amorim,et al.  Event-based runtime verification of java programs , 2005, ACM SIGSOFT Softw. Eng. Notes.

[29]  Ondrej Lhoták,et al.  Collaborative Runtime Verification with Tracematches , 2010, J. Log. Comput..

[30]  Lujo Bauer,et al.  Enforcing Non-safety Security Policies with Program Monitors , 2005, ESORICS.

[31]  Fred B. Schneider,et al.  Enforceable security policies , 2000, TSEC.

[32]  John W. Eaton,et al.  GNU octave : a high-level interactive language for numerical computations : Octave version 2.0.17 (stable) , 1997 .

[33]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[34]  Barry Alan Feigenbaum,et al.  Accessibility validation with RAVEN , 2006, WoSQ '06.

[35]  Grigore Rosu,et al.  An overview of the MOP runtime verification framework , 2012, International Journal on Software Tools for Technology Transfer.

[36]  Viktor Kuncak,et al.  Modular data structure verification , 2007 .