Skip to main content
Version: 3.0.1

STD UI Testability

Scope

This document defines HTML attribute naming conventions and element identification patterns that support automated UI testing.

It does NOT describe:

  • Algorithm test strategies
  • Configuration validation test plans
  • Rules regression testing approach
  • Integration or end-to-end test architecture

HTML Attributes

Human-readable HTML attributes for automated testing (Rules/run file report focussed) + menu items PHASE 1

Target releasehttps://arctichare.atlassian.net/projects/BT/versions/10067/tab/release-report-all-issues
EpicBT-3658 - Human-readable HTML attributes for automated testing
Document statusrequirements written
Document owneraron
Technical writersTharaka Dilshan
Business ContextFunctional requirementAcceptance CriteriaJira TaskEvidence
1Nomenclature needs to be clear to all for attribute names and easily used programaticallyIn UI we have Upper-Case items with Spaces. For attributes however: must be all lowercase, and with _ replacing ' ')

kebab case
1. All upper-case UI text to be lower case for these attributes
2. All spaces replaced by - for these attributes
BT-3673 - Fill Data attribute (Phase 1)
2This is for v2 not v3, so 'v3' Kit Configuration submenu items are out of scopeDo not do any of these reqs for 'kit configuration' submenu pagesN/ABT-3673 - Fill Data attribute (Phase 1)
3As QA I want to have stable way to identify menu elements (for clicking)For every menu item, have an attribute menu=[title] where [title] is the menu name. Where the menu is an icon, use hover text (like example 3 below)

For example:
1. menu=run_files
2. menu=outcomes_report
3. menu=settings
Menu elements have readily identified attributes corresponding to their titleBT-3673 - Fill Data attribute (Phase 1)
4As QA I want to be able to find any element for a result in the run file report easilyFor each table in run file identify by table=[name]_table eg

1. table=assay_summary_table
2. table=wells_table
3. table=quantification_table
Tables have readily identified attributes corresponding to their titleBT-3673 - Fill Data attribute (Phase 1)
5As QA I want to be able to find any element for a result in the run file report easilyFor each cell in these tables, allow element to be identified by the table name and column header '=' row's unique identifier (either well_position or well_position.target) eg:

1. wells_table-outcome=A1
2. wells_table-class =A1.NCOV1
3. assay_summary_table-mix=PCOVID
4. assay_summary_table-target=NCOVID.NCOV3
5. assay_summary-pc-tick=NCOVID.NCOV3
6. assay_summary-pc-cross=NCOVID.NCOV3
Cells have readily identifiable attributes to enable easy finding within tables for assertions etcBT-3673 - Fill Data attribute (Phase 1)
6As QA I want to be able to identify each 'widget' element to select it easilyFor each widget in run file report name it widget.[title] eg

1. widget=assay_summary
2. widget=westgards
Run file report widgets have readily identified attributes corresponding to their titleBT-3673 - Fill Data attribute (Phase 1)
7AS QA I want to be able to identify filters easily (then I can use text searches to select items that I want etc)For each filter on every app page, identify by filter=[filter_title] eg

1. filter=mixes
2. filter=uploaded_date
3. filter=outcome
All filters have readily identified attributes corresponding to their UI titleBT-3673 - Fill Data attribute (Phase 1)

Attribute Naming Conventions

PatternFormatExample
Menu itemsmenu={title}menu=run_files
Tablestable={name}_tabletable=wells_table
Table cells{table}-{column}={row_id}wells_table-outcome=A1
Widgetswidget={title}widget=assay_summary
Filtersfilter={title}filter=mixes

Naming Rules:

  • All lowercase
  • Spaces replaced with underscore (_)
  • Kebab-case for compound identifiers

RequirementDomainDescriptionRelevance
REQ-NFR-001Non-Functional RequirementsPage Load TimeAC-04 specifies "Load time shall be measurable via automated testing tools" - testability attributes enable this measurement
REQ-RUNRPT-002Runfile ReportAccess Analytical WidgetsWidget attributes (widget=assay_summary, widget=westgards) enable automated identification and interaction with widgets
REQ-RUNRPT-009Runfile ReportSort Well TableTable and cell attributes (table=wells_table, wells_table-outcome=A1) enable automated verification of table sorting
REQ-RUNRPT-010Runfile ReportFilter Well TableFilter attributes (filter=mixes, filter=outcome) enable automated filter interaction and verification
REQ-TABLES-001TablesDisplay Data in Tabular FormatTable attributes (table=[name]_table) and cell identification attributes enable automated data extraction and verification
REQ-TABLES-003TablesSelect and Interact with Table RowsCell identification attributes enable automated row selection and interaction
REQ-FILTERS-001FiltersFilter Data by CriteriaFilter attributes (filter=[filter_title]) enable automated filter manipulation and state verification

Relationship Summary

This STD defines the HTML attribute naming conventions and placement strategy that enables automated testing of the SRS requirements listed above. The testability design:

  1. Supports QA automation - All attributes follow consistent naming (lowercase, kebab-case) enabling predictable selector construction
  2. Enables data verification - Cell-level attributes (wells_table-outcome=A1) allow precise data extraction for assertions
  3. Facilitates UI interaction - Menu, filter, and widget attributes enable reliable element targeting without fragile CSS/XPath selectors
  4. Ensures test stability - Semantic attributes are decoupled from visual styling changes