Document toolboxDocument toolbox

Version 17.0.0 Test Report

August 2024

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

Summary of v.17 testing

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

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 Leasehold and Freehold Reform Bill, Renters' Reform Bill, and Digital Markets, Competition and Consumers Bill, along with the corresponding tabled amendments to those bills. Version 17 introduces a new feature which makes it possible to download and upload large lists of amendments to a bill version for testing; we made use of this new feature to perform tests on those bills using large numbers of real-world amendments.

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

Issues found during testing

  1. We identified a bug which prevented images displaying in the Editor. This has been fixed in the final version 17 build.

  2. We identified an existing bug with ‘remove reference tag’ function which also could cause problems with the updated ‘tag references’ function. The issue affected some references in documents containing line numbering mark-up. This has been fixed in the final version 17 build.

  3. We observed that the automatic reference tagging function sometimes added additional reference tags around existing references; that has been fixed in the final build.

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

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

 

Editor Test Matrix script

Pass

Issue identified with the display of images in the Editor. Fixed in the final candidate build.

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 previous sessions. This focused particularly on the auto-apply amendment functionality and ensuring that no regressions had been introduced by comparing the output of the auto-apply feature in the new version of Lawmaker with the output from the current version of Lawmaker.

Bill title

Amendments tested

Notes

Bill title

Amendments tested

Notes

Renters Reform (HoC, As Introduced)

170 OPC amendments

Auto-apply outputs from Production compared with Staging; no differences found

Digital Markets, Competition and Consumers (HoL, As Brought from the Commons)

50 amendments tested

Auto-apply outputs from Production compared with Staging; no differences found

Leasehold and Freehold Reform (HoC, As Introduced)

124 amendments tested

Auto-apply outputs from Production compared with Staging; no differences found

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 and issues.

No issues were found.

New and improved feature testing

Automatic tagging of references

Ticket reference

Testing result

Description

Notes

Ticket reference

Testing result

Description

Notes

LDAPP-4272

Pass

Extend XML markup generation to add <mref> around reference groups

 

LDAPP-4372

Pass

Allow users to create manual cross-references from provisions in the Editor

 

LDAPP-4459

Pass

Update tag x-ref behaviour to account for existing unmodified refs

 

LDAPP-4460

Pass

Update tag x-ref behaviour to handle manual refs

Identified and fixed issues relating to:

  • re-tagging of references in provisions containing Quoted Text elements

  • duplication of <mref> tags when re-tagging a document

LDAPP-4455

Pass

Change presentation in Editor of valid internal and external x-refs

 

LDAPP-4427

Pass

Tag document alias references

 

LDAPP-4417

Pass

Extend //mref markup to internal references when manually generating x-refs (from the Structure View or Context Menu)

 

LDAPP-4380

Pass

Handle ephemeral block context outside of amending provisions

 

LDAPP-4378

Pass

Ignore X-refs in quoted text and in parenthetical descriptions

 

LDAPP-4375

Pass

Improve behaviour of contextual references

 

LDAPP-4366

Pass

Tag references inside quoted structures and quoted text

 

LDAPP-4365

Pass

X-refs not tagged in text preceding quoted structures with following text

 

LDAPP-4364

Pass

Stop //ref elements being editable directly in the Editor

 

LDAPP-4356

Pass

Update all the "x-ref"/"x-refs" titles to "reference"/"references"

 

LDAPP-4343

Pass

Prevent inline elements (and PIs) from breaking X-refs

Identified and fixed a related issue where re-tagging or removing the reference tags from a reference in a document containing line numbering sometimes resulted in the reference text disappearing.

LDAPP-4276

Pass

Handle isolated external provision references

 

LDAPP-4273

Pass

Identify and mark up document alias definitions

 

LDAPP-4258

Pass

Convert hybrid ID of external provision references to http://legislation.gov.uk URLs

 

LDAPP-4419

Pass

Line number missing when ref with @ukl:alternativeReference attribute spans multiple lines

 

Version 17 includes a number of significant improvements to the automatic Tag x-refs function. This function will now identify both internal cross-references and external references to existing legislation, and tag them.

Our testing focused on the new behaviour of the automatic tagging function in a variety of document types, using real-world test data.

Documents containing the newly tagged references were then used in end-to-end tests, to ensure that existing Lawmaker functionality is unaffected by the refinements to the automatic tagging function and the tags generated by that function. We did not identify any issues relating to the interaction of core Lawmaker functions and references as part of our end-to-end tests.

Referencing toolbar and the Edit ref modal

Ticket reference

Testing result

Description

Notes

Ticket reference

Testing result

Description

Notes

LDAPP-4353

Pass

Edit existing cross-references via modal (simplified)

 

LDAPP-4333

Pass

Jump to x-ref target from Editor

 

LDAPP-4478

Pass

Handle manual references - UI

 

We tested the newly expanded referencing toolbar (which appears when double-clicking on a reference in the Editor) in all document types. We checked for potential user interface problems connected to the expanded toolbar, and we checked that initiating actions from the toolbar produced the same result as initiating those actions from the right-click menu.

We checked that the new reference toolbar had no effect on the performance of the Editor when opening larger documents.

User testing on Staging helped us to identify an issue with the appearance and layout of the ‘Edit ref’ modal on smaller screens. We intend to fix this in the next minor Lawmaker release.

Generation of citation footnotes in SIs

Ticket reference

Testing result

Description

Notes

Ticket reference

Testing result

Description

Notes

LDAPP-4241

Pass

Investigate and design auto-generation of citation footnotes

 

LDAPP-4385

Pass

Generate amending statements

 

LDAPP-4389

Pass

Retrieve amending infomation for rrefs

 

LDAPP-4388

Pass

UI - Insert a footnote for an individual reference or group of references

 

LDAPP-4386

Pass

Merge amending statements into a single citation footnote

 

LDAPP-4446

Pass

Handle edge cases in parsing textual amendments with malformed amended provisions

 

LDAPP-4472

Pass

Fix capitalisation of provisions and presentation of SI titles in citation footnotes

 

Version 17 gives users the ability to automatically generate citation footnotes in SIs. We checked the content and format of these auto-generated footnotes using a large number of real SI documents imported from legislation.gov.uk.

Improved sorting of amendments on the Amendment Manager tab

Ticket reference

Testing result

Description

Notes

Ticket reference

Testing result

Description

Notes

LDAPP-4448

Pass

Rework OoC sort function so it sorts amendments correctly - Back End

 

LDAPP-4410

Pass

Rework OoC sort function so it sorts amendments correctly - Front End

 

Version 17 replaces the ‘OoC Sort’ button on the Amendment Manager tab with a ‘Sort by Marshalled Order’ button that correctly sorts amendments in the table according to the order in which they will appear in official lists. We tested the new sorting using Commons, Lords, and Scottish Parliament amendments, and ensured that the ordering logic was correct. We also tested using large numbers of real amendments imported from the Production environment.

Quoted text

Ticket reference

Testing result

Description

Notes

Ticket reference

Testing result

Description

Notes

LDAPP-4404

Pass

Inserting Quoted Text in Editor and CSS

 

LDAPP-4405

Pass

Changing quote marks in Quoted Text via modal

 

LDAPP-4432

Pass

Adjust Quoted Text formatting

 

LDAPP-4407

Pass

Handling Quoted Text in PDFs

 

LDAPP-4457

Pass

Allow insertion of a Quoted Structure when cursor is in a Quoted Text element

 

LDAPP-4433

Pass

Fix duplicate //mod issue when inserting a Quoted Text or Quoted Structure outside a //mod

 

LDAPP-4453

Pass

Quoted text causes line numbering to skip when appearing first on subsequent lines

 

We tested adding Quoted Text elements in UK Bills, Scottish Bills, and SIs. We checked that existing Editor functions continued to work in documents containing these elements. We checked that PDF rendering and line numbering continued to work correctly in provisions which contained Quoted Text elements.

Church Measures

Ticket reference

Testing result

Description

Notes

Ticket reference

Testing result

Description

Notes

LDAPP-321

Pass

Create a new Church Measure project

 

LDAPP-3087

Pass

Church Measure template

 

LDAPP-4458

Pass

Church Measure XML/PDF - Refactoring hardcoded 'HL Paper' and 'HC' texts on the front cover

 

LDAPP-3089

Pass

Convert Church Measure to enacted

 

LDAPP-4438

Pass

Add Church Measure doctype to Insert Quoted Structure and Update Quoted Structure modals

 

LDAPP-4413

Pass

Modify Document Information fields for Church Measures

 

SPT-1631

Pass

Incorrect Document Push in Copy Provisions Operation

 

LDAPP-3088

Pass

Modify "Insert front cover" and "Insert back cover" functions (and "Finalise version" modal) for Church Measures

 

LDAPP-411

Pass

Generate a PDF of a Church Measure with correct styling, and display Church Measures in the Editor with correct styling

 

LDAPP-4466

Pass

Submit enacted Measure to TNA

 

LDAPP-4465

Pass

Enable Push/Pull and Insert/Update Origin Information functions for Church Measures

 

Version 17 adds supports for Church Measures documents. We tested the core Lawmaker functions in the Editor and on the Project tab for Church Measures projects to ensure that users can draft and manage Measures in Lawmaker.

User testing enabled us to identify some features which were not enabled for Church Measures (including the push/pull function and the ‘Submit to TNA’ action for enacted Measures). We worked with the development team to enable and test those features for Measures, and have included the necessary changes in the final version 17 release.

Uploading amendment list XML to create new amendments

Ticket reference

Testing result

Description

Notes

Ticket reference

Testing result

Description

Notes

LDAPP-4441

Pass

Upload amendment list XML - backend

 

LDAPP-4399

Pass

Upload amendment list XML - front-end

 

Editing fragments of a schedule

Ticket reference

Testing result

Description

Notes

Ticket reference

Testing result

Description

Notes

LDAPP-4373

Pass

Implement fragmentation below the Schedule level

 

LDAPP-4397

Pass

Update structure view to show fragments in schedules

 

Bug fix testing

The following bug fixes in version 17 were tested

SI/SSIs

Issue key

Summary

Test result

Issue key

Summary

Test result

SPT-1703

Error when copying an SI to another project when SI doesn't have enacting text

Pass

SPT-1700

Smart paste of SI prov1 with auto-renumber ON strips trailing full stop from num

Pass

SPT-1695

Updated SI subject heading list

Pass

SPT-1689

SI Paragraph (1) spacing differs in quoted structure as starting element

Pass

SPT-1679

Specific wordings of SI/SSI dates still causes line break

Pass

SPT-1676

Procedure of SI on the Project tab or Dashboard is locked in after creation and unchangeable

Pass

SPT-1671

Add OFGEM and OFCOM as new organisations

Pass

Editor

Issue key

Summary

Test result

Issue key

Summary

Test result

SPT-1713

Editor fails to revert to using the correct document filter after an unknown action in the editor results in a failure to switch back to the LDAPPDocumentFilter

Pass

SPT-1690

Wrong placement of material dragged into containers in amendment QSs

Pass

SPT-1711

Oxygen sometimes fails to retrieve the XML from the server for operations like auto-save, save and structure view updates

Pass

SPT-1706

The "A problem has occurred" modal appears in documents with lots of spelling errors.

Pass

SPT-1702

Performance issue in getElementByGuid(Oxygen client-side code) (included in patch release 16.2.1)

Pass

SPT-1701

TNA - Screen Jumps On Paste

Pass

SPT-1699

Poor performance when copying a reasonable number of provisions (included in patch release 16.2.1)

Pass

SPT-1683

Mark as done toggle not working in certain cases

Pass

SPT-1672

Issues with rejecting "surround" tracked changes in Oxygen v25.1.

Pass

SPT-1653

Updates to document during a renumber operation result in strange document modifications

Pass

SPT-1656

Promote/Demote of closing words unwraps inline formatting and footnotes

Pass

SPT-1631

Incorrect Document Push in Copy Provisions Operation

Pass

SPT-1616

Strange restrictions on using the Structure View to move a Schedule in a version of a bill where a New Schedule amendment has been applied

Pass

SPT-1611

Oxygen exceptions occurring when a user accepts tracked change edits ("A problem has occurred") (included in patch release 16.2.1)

Pass

SPT-1609

Cross references inside tracked change deletions are re-added without deleted markup after updating cross references in the provision

Pass

PDFs

Issue key

Summary

Test result

Issue key

Summary

Test result

SPT-1696

Quoted structure in change track have incorrect indent

Pass

SPT-1693

Text in ukpga quoted structure //section/intro is not justified in PDF

Pass

SPT-1692

Page numbering broken from page 10 onwards in Scottish Parliamentary Amendment lists

Pass

SPT-1691

Empty paragraph element wrongly aligned in PDF

Pass

SPT-1682

Long hyperlinks (URLs) that are split across multiple lines have line spacing issues in the PDF and CSS issues in footnotes in the editor

Pass

SPT-1558

Resolve PDF rendering issues caused by missing attributes on quotedStructures (ukl:docName and ukl:indent)

Pass

Amendments

Issue key

Summary

Test result

Issue key

Summary

Test result

SPT-1651

Auto-apply: amendments which leave out words after a Defined term can't be applied if the quotation marks on the defined term are included in the amendment instruction

Pass

SPT-1646

Extra spaces appear in certain substituting amendments when auto-applied to a bill version

Pass

SPT-1633

Auto-applying amendments to rref elements sometimes results in too much text being included in the rref; original rref's href attributes also persist

Pass

SPT-1632

Auto-applied amendment which inserts text beginning with punctuation after a <ref> element adds the text inside the <ref> when accepted

Pass

SPT-1266

Side-lining on auto-applied insert section amendment goes down too far

Pass

SPT-1608

Moving an amendment in a LoDA using the Structure View with tracked changes turned on results in the amendment being duplicated

Pass

SPT-1541

Auto-saved traditional amendments in an inline LoDA cannot be restored into the working version

Pass

Document management (Project tab, comparison, permissions etc.)

Issue key

Summary

Test result

Issue key

Summary

Test result

SPT-1662

Duplicating an 'Auto backup' snapshot results in the wrong XML content being retrieved - later changes are included in the duplicate 

Pass

SPT-1218

User who first created document still has read-only access when their permissions are removed

Pass

SPT-1677

ALL CAPS text is displayed with additional spacing in the Edit Portion dropdown

Pass

SPT-1648

Opening an Edit portion document in parallel with others causes issues

Pass

SPT-1645

When logging out with two Editor tabs open (one containing a portion of a version), it's not possible to 'Save all changes' in the 'Unsaved changes' modal

Pass

SPT-1665

Comparison output moves opening words into the wrong position on Scottish Bill

Pass

SPT-1657

XML comparison functionality doesn't handle processing instructions appropriately

Pass

SPT-1627

Incorrect comparison result when an x-ref has been updated within a <mod>

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.