Formalizing (Web) Standards: An Application of Test and Proof

By Achim D. Brucker.

Most popular technologies are based on informal or semiformal standards that lack a rigid formal semantics. Typical examples include web technologies such as the DOM or HTML, which are defined by the Web Hypertext Application Technology Working Group (WHATWG) and the World Wide Web Consortium (W3C). While there might be API specifications and test cases meant to assert the compliance of a certain implementation, the actual standard is rarely accompanied by a formal model that would lend itself for, e.g., verifying the security or safety properties of real systems.

Even when such a formalization of a standard exists, two important questions arise: first, to what extend does the formal model comply to the standard and, second, to what extend does the implementation comply to the formal model and the assumptions made during the verification? In this paper, we present an approach that brings all three involved artifacts - the (semi-)formal standard, the formalization of the standard, and the implementations - closer together by combining verification, symbolic execution, and specification based testing.

Keywords:
standard compliance, compliance tests, DOM

Further Reading:
This presentation is based on the following publication:
A. D. Brucker and M. Herzberg, “Formalizing (web) standards: An application of test and proof,” in TAP 2018: Tests and proofs, C. Dubois and B. Wolff, Eds. Heidelberg: Springer-Verlag, 2018, pp. 159–166. doi: 10.1007/978-3-319-92994-1_9. Author copy: https://logicalhacking.com/publications/brucker.ea-standard-compliance-testing-2018/

Please cite this work as follows:
A. D. Brucker, “Formalizing (web) standards: An application of test and proof,” presented at the International conference on tests and proofs (TAP 2018), Toulouse, France, Jun. 27, 2018. Author copy: https://logicalhacking.com/publications/talk-brucker.ea-standard-compliance-testing-2018/

BibTeX
@Unpublished{ talk:brucker.ea:standard-compliance-testing:2018,
  date              = {2018-06-27},
  title             = {Formalizing (Web) Standards: An Application of Test and
                       Proof},
  keywords          = {standard compliance, compliance tests, DOM},
  language          = {USenglish},
  slideshare        = {key/zaCriFNU2LaZ6u},
  slideshare_width  = {595},
  slideshare_height = {485},
  venue             = {Toulouse, France},
  author            = {Achim D. Brucker},
  eventtitle        = {International Conference on Tests And Proofs ({TAP 2018})},
  abstract          = {Most popular technologies are based on informal or semiformal
                       standards that lack a rigid formal semantics. Typical examples
                       include web technologies such as the DOM or HTML, which are
                       defined by the Web Hypertext Application Technology Working
                       Group (WHATWG) and the World Wide Web Consortium (W3C). While
                       there might be API specifications and test cases meant to
                       assert the compliance of a certain implementation, the actual
                       standard is rarely accompanied by a formal model that would
                       lend itself for, e.g., verifying the security or safety
                       properties of real systems.
                       
                       Even when such a formalization of a standard exists, two
                       important questions arise: first, to what extend does the
                       formal model comply to the standard and, second, to what
                       extend does the implementation comply to the formal model and
                       the assumptions made during the verification? In this paper,
                       we present an approach that brings all three involved
                       artifacts - the (semi-)formal standard, the formalization of
                       the standard, and the implementations - closer together by
                       combining verification, symbolic execution, and specification
                       based testing.},
  areas             = {formal methods, software},
  note              = {Author copy: \url{https://logicalhacking.com/publications/talk-brucker.ea-standard-compliance-testing-2018/}},
  pdf               = {https://logicalhacking.com/publications/talk-brucker.ea-standard-compliance-testing-2018/talk-brucker.ea-standard-compliance-testing-2018.pdf},
}