Semantics-based Automated Web Testing

@inproceedings{Guo2015SemanticsbasedAW,
  title={Semantics-based Automated Web Testing},
  author={Hai-Feng Guo and Qing Ouyang and Harvey P. Siy},
  booktitle={International Workshop on Automated Specification and Verification of Web Sites},
  year={2015}
}
We present TAO, a software testing tool performing automated test and oracle generation based on a semantic approach. TAO entangles grammar-based test generation with automated semantics evaluation using a denotational semantics framework. We show how TAO can be incorporated with the Selenium automation tool for automated web testing, and how TAO can be further extended to support automated delta debugging, where a failing web test script can be systematically reduced based on grammar-directed… 

Figures and Tables from this paper

A machine learning approach to generate test oracles

This work presents an approach based on machine learning (ML) for automation of the test oracle mechanism in software that uses historical usage data from an application captured by inserting a capture component into the application under test.

Automated Test Oracle Generation via Denotational Semantics

Gena was extended with an interface for users to define semantic domains, and formal semantic evaluation functions for mapping from syntax to semantics, based on the methodology of denotational semantics.

A framework for automated testing of javascript web applications

A framework for feedback-directed automated test generation for JavaScript in which execution is monitored to collect information that directs the test generator towards inputs that yield increased coverage is presented.

Using production grammars in software testing

It is concluded that the use of production grammars in combination with other automated testing techniques is a powerful and effective method for testing software systems, and is enabled by a special purpose language for specifying extended production Grammars.

Finding Bugs in Web Applications Using Dynamic Test Generation and Explicit-State Model Checking

A dynamic test generation technique for the domain of dynamic Web applications that utilizes both combined concrete and symbolic execution and explicit-state model checking and minimizes the conditions on the inputs to failing tests so that the resulting bug reports are small and useful in finding and fixing the underlying faults.

Invariant-based automatic testing of AJAX user interfaces

  • Ali MesbahA. Deursen
  • Computer Science
    2009 IEEE 31st International Conference on Software Engineering
  • 2009
This work proposes a method for testing AJAX applications automatically, based on a crawler to infer a flow graph for all (client-side) user interface states, and identifies AJAX-specific faults that can occur in such states as well as DOM-tree invariants that can serve as oracle to detect such faults.

Testing Web applications by modeling with FSMs

A system-level testing technique that combines test generation based on finite state machines with constraints with the goal of reducing the state space explosion otherwise inherent in using FSMs is proposed.

Controllable Combinatorial Coverage in Grammar-Based Testing

The notion of controllable combinatorial coverage and a corresponding algorithm for test- data generation are described and implemented in the C#-based test-data generator Geno, which has been successfully used in projects that required differential testing, stress testing and conformance testing of grammar-driven functionality.

A Symbolic Execution Framework for JavaScript

This paper builds an automatic end-to-end tool, Kudzu, and applies it to the problem of finding client-side code injection vulnerabilities, and designs a new language of string constraints and implements a solver for it.

A dynamic stochastic model for automatic grammar‐based test generation

This paper presents an automatic grammar‐based test generation approach, which takes a symbolic grammar as input, requires zero control input from users, and produces well‐distributed test cases using a novel dynamic stochastic model.

Simplifying and Isolating Failure-Inducing Input

The delta debugging algorithm generalizes and simplifies the failing test case to a minimal test case that still produces the failure, and isolates the difference between a passing and a failingTest case.