Publications by topic: Regression Testing Support
- Frank Mittelbach
- TUGboat 40:2, 2019
How do you prevent creating banana software (i.e., software that gets ripe at the customer site)? By proper testing! But this is anything but easy.
The paper will give an overview of the efforts made by the LaTeX Project Team over the years to provide high-quality software and explains the changes that we have made this summer to improve the situation further.
From the TUG Conference 2018 (Rio de Janeiro, Brazil)
Testing has been important to the LaTeX team since its inception, and over the years a sophisticated set of test files have been created for the kernel. Methods for running the tests have varied over the past quarter-century, following changes in the way the team work.
In recent years, the availability of Lua as a scripting language in all TeX systems has meant it has become the natural choice to support this work. With this as a driver, the team have developed
l3buildfor running tests automatically. Building on the core work,
l3buildhas grown to provide a powerful approach to releasing packages (and the LaTeX kernel) reliably.
Here, I’ll look at the background of our testing approach, before showing how and why Lua works for ushere.
Video of the talk recorded by IMPA on YouTube: Fly me to the moon: (La)TeX testing (and more) using Lua
- Joseph Wright
- Published paper, TUGboat, Volume 36 (2015), No. 3
A discussion of our Continious Integration testing setup for LaTeX3 sources using l3build and Travis-CI. These days we also use this to continuously test the LaTeX2e sources!
- Frank Mittelbach, Will Robertson and The LaTeX3 team
- Published paper, TUGboat volume 35, number 3, 2014
Regression tests are an important tool in any moderately complex programming environment. They allow the programmer to make extensive changes to their code while providing confidence that something that used to work still does. Extensive regression test suites have been an essential component of the maintenance and development of LaTeX2e and LaTeX3. A regression test suite is typically composed of a number of individual files that contain one or more testable units of the code being tested. A testable unit might be either a certain computation with an expected outcome, a series of logic tests, or—in particular for TeX-based code—material that is typeset and intended to achieve some particular formatting. During code development and before any new code is released to the public, this test suite can be compiled to ensure that any changes to the code have not introduced bugs or changed the behaviour compared to previous versions. As bugs in the code are reported, minimal examples demonstrating the bug often form test files of their own, showing that the bug has been fixed and won’t re-occur. As TeX-based code operates in at least three different `modes’ (mouth, stomach, and output), regression testing is more complex than simply asserting the outcome of certain programming logic. As part of the work of the LaTeX3 project, a new Lua-based testing environment has been written to support ongoing development. This testing environment, presented at the 2014 TUG conference in Portland, is suitable for use by the general TeX community.
From the TUG Conference 2014 (Portland, USA)
- Frank Mittelbach
- TUG 2014 Conference (Portland, USA)
- Video of the talk: A Modern Regression Test Suite for TeX Programming (via River Valley TV)
- Frank Mittelbach
- Published paper, 1997
- Keywords: maintaining LaTeX2e
An article describing the regression test suite that has been built for LaTeX over the past years. It describes some of the history and outlines the results we have had from it.
Under each topic you will find relevant articles and papers on related subjects published by the LaTeX3 project as well as links to videos of their conference presentations.
A alternative view of all publications ordered by year is given on the Publications by Year page.
A list of books that we think are useful is given on the Books Page. By buying documentation through this website you support the volunteer work of project members to keep LaTeX useful for you.
- Current LaTeX (LaTeX2e)
- LaTeX -> LaTeX3
- PDF, Tagging, Accessibility
- Coding, Testing & Support
- Other topics independent of the LaTeX version