/
Version 18.0.0 Test Report

Version 18.0.0 Test Report

December 2024

For context, see the Annex to this report which explains how we approach testing of Lawmaker.

Summary of v.18 testing

Version 18 includes several new features and a number of bug fixes: see the release note for details What's new in version 18?

Each new feature and bug fix has been tested to ensure that is works as expected and does not adversely impact any existing Lawmaker functionality. In addition general regression testing has been carried out.

Tests were performed using a combination of newly created documents, documents imported from legislation.gov.uk, and existing real-world documents copied from the Production environment.

To test UK Bills functionality, we used in particular the Renters (Reform) Bill, the Employment Rights Bill, the Automated Vehicles Bill, and the Football Governance Bill along with the corresponding tabled amendments to those bills.

We also imported UK Act content from legislation.gov.uk to test performance on large documents, including the Energy Act 2023.

Issues found during testing

  1. We identified a bug which caused too much text to be wrapped in inline style tags when selecting text before a Quoted Structure and applying bold, underline, or italic styling to it. This has been fixed in the final version 18 build.

  2. We identified an issue which prevented the assignment of members' names to Motions in LoDAs at Ping Pong stage. This has been fixed in the final version 18 build.

  3. A false-positive document check was identified which affects adjacent Quoted Structures in version 18. We intend to fix this in a future support release.

See below for more information on the specific testing outcomes related to new features and bug fixes in version 18.

Regression tests performed

End-to-end tests

The following end-to-end regression scripts and specfic feature scripts were run through by the Lawmaker team:

Script

Test result

Notes

Script

Test result

Notes

UK Bill Test Script

Pass

 

UK Amendments Test Script

Pass

 

UK Ping Pong test script

Pass

Identified a problem with adding Members’ names as proposers and supporters on Motions; this has been fixed in the final v.18.0 build.

Editor Test Matrix script

Pass

 

Scottish Bill test script

Pass

 

Scottish Amendments test script

Pass

 

Additional UK Bill and Amendment testing

In addition to the general regression scripts, additional testing was carried out of UK Bill functionality using real data from current and previous parliamentary sessions. This focused particularly on the auto-apply amendment functionality to ensure that the majority of amendment scenarios could be applied, and that the same scenarios which are currently supported in version 17.2 are still supported in version 18.0.

Some known limitations of auto-apply were observed during testing; these will be fixed in a future support release.

(Note that support for auto-application of amendments which leave out, insert, or substitute whole rows in tables will be added in version 18.1)

Bill title

Amendments tested

Notes

Bill title

Amendments tested

Notes

Employment Rights Bill

(House of Commons, As Introduced)

102 out of 114 amendments applied

Scenarios tested:

  • Hybrid substitutions which leave out text and insert paragraphs within a definition

  • Leave out amendments which span the end of a subsection, paragraph or other similar structure

  • Hybrid substitutions which leave out text and inserts sub-paragraphs

  • Substituting amendments which replace the entirety of the content of a Quoted Structure

  • Leave out amendments which remove a word within a defined term inside a definition

  • Amendments which insert lengthy new Schedules

  • There is one complex hybrid amendment in this set which failed to be applied. This amendment also fails to apply when tested using the current version of Lawmaker (v.17.2).

  • An amendment to substitute a whole table row failed to apply. This cannot be applied in v.18.0 but will be supported in v.18.1.

  • 4 inserting amendments failed to apply because the wrong starting element had been chosen for the Quoted Structure (for example, 'Content' had been used when 'List' should have been selected).

  • One of the failing amendments inserts a new cross-heading in the middle of a Quoted Structure containing multiple new sections which aren’t grouped under cross-headings. In version 18.0, auto-apply is capable of inserting cross-headings in parts of a bill where cross-headings, Parts, or Chapters already exist. We will consider extending the auto-apply logic to handle this case in future.

Renters (Reform) Bill

(House of Commons, As Introduced)

166 out of 176 amendments applied

Scenarios tested:

  • Simple textual amendments to text in tables

  • Amendments which change the content of //ref elements (i.e. references)

  • Amendments to definitions

  • Insertion of New Clauses in order of their Sort Code

  • Amendments which change //num elements inside Quoted Structures

  • Amendments to shoulder notes inside Quoted Structures that contain Schedules

Some amendments failed to apply because they were leaving out the last line of a Quoted Structure immediately before a Schedule cross-heading. We will fix this limitation in a future support release.

Automated Vehicles

(House of Lords, As Introduced)

53 out of 55 amendments applied

Scenarios tested:

  • Insertion of new subsections at the same location in order of Sort Code

  • Insertion of New Clauses in order of Sort Code

  • Amendments which add or remove text within paragraphs within Quoted Structures

  • A missing comma after the line reference in one amendment caused it to fail to apply. Fixing this manually and saving the amendment allows Lawmaker to apply this amendment successfully.

  • Another amendment failed to apply because it amended words in a Clause which was left out by another amendment (this is an expected conflict).

Football Governance

(House of Lords, As Introduced)

171 out of 199 amendments applied

Scenarios tested:

  • Hybrid insert (creation of new text and a new sub-paragraph in a subsection which originally only contained text)

  • Leaving out a string of text up to but not including a piece of punctuation

  • Leaving out text mid-way through a reference (e.g. leaving out "60" in "sections 60 to 62")

  • Inserting text in the middle of a reference

  • Insertion of a new clause before another clause, just after a cross-heading

  • Hybrid insert within a definition

  • Amendments to content of Quoted Structures, including subsections, paragraphs, and inline elements like refs

  • Some amendments could be applied after re-wording them (for example, by using the formulation “leave out lines x to y” rather than specifying the last word on a particular line as the starting point for an omission).

  • 10 amendments failed because they were correctly identified as overlapping.

  • 4 amendments contained an unnecessary comma in the amendments instruction which caused those amendments to fail to apply; removing the comma allows them to be applied successfully.

  • One amendment failed to apply because the text string being left out did not match the wording in the bill.

  • One new clause amendment failed to apply due to a missing comma after the reference to the target clause.

  • One amendment failed to apply because of a misplaced <mod> tag within the amendment instruction.

Additional Scottish Bill and Amendment testing

Auto-apply was also tested using the following Scottish bills and a selection of lodged amendments:

Bill title

Amendments tested

Notes

Bill title

Amendments tested

Notes

Bankruptcy and Diligence (Scotland) Bill

(As Introduced)

27 out of 30 applied

Scenarios tested:

  • Amendments inserting new cross-headings

  • Hybrid amendments inserting new paragraphs containing Quoted Structures

  • Substitution of subsections

  • Insertion of new clauses at the same location in the bill

  • A complex hybrid amendment to leave out the first two subsections and one child paragraph in section 1 and insert new subsections (which should then inherit the remaining child paragraphs) did not apply successfully. We'll aim to fix this in a future support release.

  • One amendment which leaves out a subsection failed to apply because the amendment instruction did not include page and line numbers. Adding these and saving the amendment allows it to be auto-applied successfully.

  • One amendment failed to apply because a full-stop had been included at the end of the Quoted Structure in the amendment instruction. Removing this and saving the amendment allowed the amendment to be applied.

Regulation of Legal Services (Scotland) Bill

(As Introduced)

196 out of 214 applied

In order to check Editor performance in a bill containing a large number of applied amendments, we tested auto-apply using the latest batch of lodged government amendments to this bill.

  • A high proportion of amendments applied successfully, including those that insert new Parts or other comparable structure.

  • Performance appeared acceptable; the ‘fold’ option on the Editor toolbar image-20241220-222156.png can be used to improve performance further.

  • Accepting amendments one-by-one appeared to work well in the context of this bill.

PDF testing

PDFs were generated for a range of real and test documents and the outputs compared to PDFs generated with the current version of Lawmaker to identify any unexpected differences.

No issues were found.

New and improved feature testing

Auto-apply and inline amending

Development ticket

Feature request or support ticket reference

Description

Test result

Development ticket

Feature request or support ticket reference

Description

Test result

LDAPP-4486

 

Auto-apply amendments to any bill version which is currently open in the Editor

Pass

LDAPP-4475

LMS-2742

Auto-apply amendments which insert a Cross-heading, Part, or other grouping level in the Body or Schedules of a Bill

Pass; but note that amendments inserting cross-headings into Quoted Structures which don’t contain those groupings are not currently applied.

LDAPP-4471

 LMS-668

Auto-apply New Clause/Schedule amendments to the same location in order of their Sort Code value

Pass

LDAPP-4467

 LMS-167

Accept applied amendments one-by-one

Pass

LDAPP-4473

 

Ignore the insertion of new content by other amendments when determining the start and end locations of other auto-applied amendments

Pass

LDAPP-4515

LMS-2742

Accept auto-applied amendments which insert a Cross-heading, Part, or other grouping level in the Body or Schedules of a Bill

Pass

LDAPP-4543

LMS-3250

Auto-apply amendments which leave out a string beginning with punctuation

Pass

LDAPP-3107

LMS-2742

Auto-apply simple textual amendments to Tables in a bill version

Pass

LDAPP-4480

 

Improve Editor performance in documents containing lots of inline amendments

Pass

LDAPP-4510

 

Remove beta label from inline amendment option in Create LoDA modal

Pass

LDAPP-4523

 

Auto-apply amendments which insert new Parts/Chapters/cross-headings Before provisions in the Body or Schedules of a Bill

Pass

SPT-1750

PRB1001014

Content is duplicated when accepting an amendment

Pass

SPT-1742

PRB1001014

Incorrect application of amendments applied causes bulk amendment application to fail

Pass

Amendment lists

Development ticket

Feature request or support ticket reference

Description

Test result

Development ticket

Feature request or support ticket reference

Description

Test result

LDAPP-4384

 LMS-2691

Commons: small changes to the template text which appears in various Official Lists

Pass

SPT-1753

PRB1001044

Interstitial Heading not formatting to italics

Pass

PDF generation

Development ticket

Feature request or support ticket reference

Description

Test result

Development ticket

Feature request or support ticket reference

Description

Test result

LDAPP-4504

 

Add hyphenation options to tables

Pass

LDAPP-4511

 

Fix line numbering issues caused by hyphenation

Pass

SPT-1688

 

Fix rendering issues caused by the interaction between tracked changes, comments, line-numbering, and running header in Scottish bills

Pass

Improved sorting of amendments on the Amendment Manager tab

Development ticket

Feature request or support ticket reference

Description

Test result

Development ticket

Feature request or support ticket reference

Description

Test result

LDAPP-4519

 

Enable accept/reject/reply actions on tracked changes which affect content inside locked elements

Pass

LDAPP-4508

 

Update Adjacent quoted structure behaviour to remove restrictions

Pass; but note one false-positive Document Check error which is now appearing in certain places where Adjacent Quoted Structures are used

LDAPP-4481

 

Insert Quoted Structure from CCA

Pass

LDAPP-4544

 

Fix the quick-fix links in the validation tooltips which appear in the Editor

Pass

LDAPP-4477

 

Update schematron rules for v.18

Pass

LDAPP-4463

 

Remaining problems of inline styling

Pass

LDAPP-4547

 

Fix issues with cursor placement and scroll position

Pass; there may be some scenarios where the scroll position changes unexpectedly but the majority of cases are greatly improved.

LDAPP-4548

 

Create a separate right-hand panel to show schema errors

Pass

SIs/SSIs

Development ticket

Feature request or support ticket reference

Description

Test result

Development ticket

Feature request or support ticket reference

Description

Test result

LDAPP-4541

 

Add chapter number to primary legislation document references in citation footnotes

Pass

LDAPP-4522

 

Make table number bold in PDFs

Pass; note that this also works correctly in bills

LDAPP-4521

 

Change order of SI/SSI procedures in drop down when creating new project

Pass

LDAPP-4545

LMS-3256

Insert italic heading in SI/SSI schedules

Pass

LDAPP-4562

 

Increase space before the signature block in SIs/SSIs

Pass

Document Management and Permissions

Development ticket

Feature request or support ticket reference

Description

Test result

Development ticket

Feature request or support ticket reference

Description

Test result

LNI-8

 

Update Significant Version labels when a bill is published

Pass

LNI-39

 

Update labelling of document versions (PDFs, save snapshot & published bills)

Pass

SPT-1723

 

Applying a permission to a new doc in a project hides the project from everyone else

Pass

References

Development ticket

Feature request or support ticket reference

Description

Test result

Development ticket

Feature request or support ticket reference

Description

Test result

LDAPP-4500

 

Improve handing of contextual references to include "after", "before" and "omit"

Pass

LDAPP-4499

 

Improve handling of alias references: context and brackets

Pass

LDAPP-4479

 

Incorrect tagging of word as external reference ('that partial')

Pass

LDAPP-4447

 

Prevent //ref tags from appearing inside //def tags when tagging references

Pass

LDAPP-4428

 

Fix duplicate start quote when tagging document alias definitions containing inline elements

Pass

LDAPP-4532

LMS-3255

Handle list of references of different types

Pass

SPT-1754

PRB1001026

Internal refs are tagged with the wrong context

Pass

SPT-1752

PRB1001042

X-ref tags placed in the wrong location when an Act title is incomplete or preceded by the word "into"

Pass

SPT-1751

PRB1001049

Tags added in the wrong places when using the 'Tag x-refs' feature on a version of a bill which contains line numbering

Pass

Origins and Destinations

Development ticket

Feature request or support ticket reference

Description

Test result

Development ticket

Feature request or support ticket reference

Description

Test result

LDAPP-4520

 

Change approach to Origin notes to use //authorialNote

Pass

LDAPP-4535

 

Automatically tag external references which appear in Origin notes

Pass

LDAPP-4325

 

Prototype generate of table of origins

Pass

LDAPP-4551

 

Prototype generation of Table of Destinations

Pass

LDAPP-4528

 

Expand/collapse all origin notes in the Editor

Pass

LDAPP-4529

 

Display Origin information in a generated PDF

Pass

Annex - Overview of testing and development processes

This annex outlines how we implement quality control in relation to changes to the Lawmaker application during the development process and as part of the release process.

Testing during the development process

All new features and bug fixes are implemented by a multi-functional development team operating in an agile manner.

To ensure the quality of those changes, we implement the following steps:

  1. The initial developer working on a feature or bug fix will, at the same time as writing the necessary code, write automated tests (“unit tests”) or modify existing ones, that can be run in future to ensure the feature/fix is still working as intended.

  2. A second developer peer reviews the codes changes made by the first developer and the tests, before they are merged into the development environment.

  3. When a change is merged into the development environment, all existing unit tests are run against the updated version to ensure that they still pass. If they don’t then the change will not be merged.

  4. The new feature or fix is then tested by a QA engineer or another developer in the development environment to ensure it works as expected. A member of the Lawmaker service team tests feature/fix to ensure it meets the original specifications/expectations (this is effectively “user acceptance” of the change within the agile cycle).

If an issue is found at any of these stages, either it is passed back to an earlier stage in the process to be resolved or a separate task is created to resolve the issue.

Testing as part of the release process

Before any significant or minor release, a series of additional testing is carried out to ensure the quality of the release. The aim of this testing is to ensure that all new features and fixes work as expected when integrated together and also that no regressions in existing functionality have been introduced.

It is impossible to completely rule out any possibility of a regression being introduced somewhere but the testing aims to ensure that all business critical paths through the application work as expected and any defect introduced has only a minor impact on users.

So far as possible all issues found during release testing will be rectified before the release but work is prioritised as follows:

  • if an issue affects a business critical paths then it will be fixed and retested before release,

  • if it otherwise has a non-minor impact on users or could significantly erode user confidence in the robustness of the Lawmaker service then they will be fixed and retested before release,

  • if it has a minor impact on users or is a pre-existing issue that is not being introduced by the release then it may be recorded in our issue-tracking system and addressed in a later release.

As part of the release process, the following steps are taken to ensure the quality of the release

  1. An updated version of Lawmaker incorporating all changes is deployed to the Staging environment, which (apart from scale) is an exact replica of the Production environment.

  2. Each new feature and bug fix included in the release is re-tested in the Staging environment.

  3. A series of “end-to-end” test scripts are run through to ensure that the business-critical paths through the application work as expected. These scripts cover, in particular:

    1. Drafting and managing a Scottish Bill

    2. Drafting and managing amendments and the amendment process for a Scottish Bill

    3. Drafting and managing a UK Bill

    4. Drafting and managing amendments and the amendment process for a UK Bill

    5. The “ping pong” process for UK Bills

    6. Drafting and submitting an SI/SSI

  4. A series of specific tests on particular areas of Lawmaker functionality are carried out, including:

    1. individual features and functions within the Editor,

    2. PDF generation,

    3. converting inline amendments to traditional amendments, and

    4. automatically applying amendments to a Bill.

  5. Additional ad hoc testing by the Lawmaker Service Team also takes place in relation to any aspect of the application that is considered to be at particular risk of regression as a result of the changes made.

  6. A series of automated load tests are carried out to ensure that the changes made in the new release do not have an impact on the robustness of the application.

  7. Senior users within each user group are notified when the updated version of Lawmaker is deployed to the Staging environment and given the opportunity to view the changes and carry out ad hoc testing if they have capacity. Any feedback received from those users is reviewed and may either feed into further changes before the release (e.g. if a bug is identified) or will be recorded so that it can be addressed in future releases.

Related content

Version 17.0.0 Test Report
Version 17.0.0 Test Report
More like this
Version 17.1.0 Test Report
Version 17.1.0 Test Report
More like this
Roadmap
More like this
Roadmap - August 2023
Roadmap - August 2023
More like this
Roadmap - July 2023
Roadmap - July 2023
More like this
Roadmap - January 2023
Roadmap - January 2023
More like this