Quickstrom: Property Based Acceptance Testing with LTL Specifications

03/22/2022
by   Liam O'Connor, et al.
0

We present Quickstrom, a property-based testing system for acceptance testing of interactive applications. Using Quickstrom, programmers can specify the behaviour of web applications as properties in our testing-oriented dialect of Linear Temporal Logic (LTL) called QuickLTL, and then automatically test their application against the given specification with hundreds of automatically generated interactions. QuickLTL extends existing finite variants of LTL for the testing use-case, determining likely outcomes from partial traces whose minimum length is itself determined by the LTL formula. This temporal logic is embedded in our specification language, Specstrom, which is designed to be approachable to web programmers, expressive for writing specifications, and easy to analyse. Because Quickstrom tests only user-facing behaviour, it is agnostic to the implementation language of the system under test. We therefore formally specify and test many implementations of the popular TodoMVC benchmark, used for evaluation and comparison across various web frontend frameworks and languages. Our tests uncovered bugs in almost half of the available implementations.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
05/24/2023

Carving UI Tests to Generate API Tests and API Specification

Modern web applications make extensive use of API calls to update the UI...
research
01/08/2019

StaBL - State Based Language for Specification of Web Applications

Context and motivation: Usage of Formal Specification languages is scarc...
research
05/07/2021

Executable Interval Temporal Logic Specifications

In this paper the reversibility of executable Interval Temporal Logic (I...
research
07/10/2023

Can Large Language Models Write Good Property-Based Tests?

Property-based testing (PBT), while an established technique in the soft...
research
01/31/2021

Model-Based Testing of Networked Applications

We present a rigorous framework for automatically testing application-la...
research
05/19/2022

Primrose: Selecting Container Data Types by their Properties

Container data types are ubiquitous in computer programming, enabling de...
research
10/03/2022

Testing by Dualization

Software engineering requires rigorous testing to guarantee the product'...

Please sign up or login with your details

Forgot password? Click here to reset