Molly Dishman and Martin Fowler
Testability Quality Factor for Continuous Delivery in Digital Systems
TL;DR; When we architect systems using automated testing and test-first approaches, we quickly see testability constraints move to our system boundary. Low testability quality factor in external services is a key constraint on our ability to continuously prove our system is in a state of production readiness. We require external systems . . .
Manual Test Teams and Testability Architectural Debt
The architecture of specification subsystems has always been critical to quality factors like cycle time -
Industry estimates indicate that between 30 and 50 percent (or in some cases, even more) of the cost of developing well-engineered systems is taken up by testing. If the software architect can reduce this cost, the payoff . . .
This describes the concept of a functional-only architectural focus, an extreme example, where architects consider only their functional domain. Here, only half of the system being built is actually being consciously 'designed', the remainder is being evolved by development teams (who may or may not know how to architect large suites . . .
Service-Oriented Architecture and Architectural Quality Factors
In the context of Service-Oriented Architecture, early work from [O'Brien et al, 2005] discusses the importance of quality attributes -
Software architecture is the bridge between mission/business goals and a software-intensive system. Quality attribute requirements drive software architecture design. Choosing and designing . . .
Software Architecture in Practice
Recap on extrinsic quality factors
Extrinsic quality factors are key concepts for business and architecture stakeholders. [Bass et al, 2013] use quality factors to describe the architectural characteristics of a system -
availability, modifiability, performance, security, testability, and usability
as . . .
Some tips from Eberhardt Rechtin
On the design of testable systems, Rechtin provides us with several heuristics [Rechtin, 1991] -
To be tested, a system must be designed to be tested
This sounds self-evident, yet, within many architecture silos, a view persists that testability is the concern of development and testing teams. Are they missing . . .