Skip to main content
Dryad

Hypermedia-based software architecture enables test-driven development

Data files

Oct 16, 2023 version files 3.82 KB

Abstract

Objectives:

Using agile software development practices, develop and evaluate a software architecture and implementation for reliable management of bioinformatic data that is stored in the cloud.

Materials and Methods:

CORE (Comprehensive Oncology Research Environment) Browser is a new open-source web application for cancer researchers to manage sequencing data organized in a flexible format in Amazon Simple Storage Service (S3) buckets. It has a microservices- and hypermedia-based architecture, which we integrated with Test-Driven Development (TDD), the iterative writing of computable specifications for how software should work prior to development. Optimal testing completeness is a tradeoff between code coverage and software development costs. We hypothesized this architecture would permit developing tests that can be executed repeatedly for all microservices, maximizing code coverage while minimizing effort.

Results:

After one-and-a-half years of development, the CORE Browser backend had 121 tests designed for repeated execution and 875 custom tests that were executed 3,031 times, providing 78% code coverage.

Discussion:

Hypermedia architecture’s repeating pattern, links, permits CORE Browser to implement tests that can be executed repeatedly by every microservice to achieve high code coverage. Code coverage correlates with software reliability. Other benefits of this architecture include permitting access to bucket data from outside the application and separating management of bioinformatic data from analysis.

Conclusion:

Architectural choices are important enablers of modern software development practices, such as TDD. Updating software architecture may be a critical next step in agile transformation after an engineering team implements the structural changes on which most such transformations focus.

Keywords:

High-throughput nucleotide sequencing, software, data management, cloud computing.