Updated: 6/11/2026
Testing Complex Software Systems
Testing a complex software system is crucial to ensuring it meets all of the needs of its creators over its lifetime.
Updated: 6/11/2026
Testing a complex software system is crucial to ensuring it meets all of the needs of its creators over its lifetime.
gDS V2 is coming!
Testing is a critical practice in software engineering, sitting at the nexus of many activities. It uncovers defects in both existing and new code, helps guide development toward the product owner’s goals, and becomes a long-term resource for understanding and maintaining the product.
This website presents two activities that make testing more productive:
It is important to note that automation is not an end in itself; it must always serve the goal of effective testing.
A test platform is a broad concept, much like an operating system. In the context of this website, the platform is built using Python on Linux. This combination provides a flexible and user-friendly environment that offers capabilities often unavailable in other language and operating system pairings.
A test platform is designed to interface with, drive, load, stress, and intentionally disrupt complex software systems while simultaneously verifying their functionality. These activities occur concurrently and often in unpredictable sequences. The platform also includes a capable user interface that enables test and development teams to interact efficiently with the system and maximize productivity.
Because many activities run simultaneously, a test platform shares several characteristics with an operating system. Building one requires an understanding of concepts such as concurrency, resource management, and process coordination. Fortunately, these skills can be learned incrementally as the platform evolves.
Organizations often require engineering buy-in before investing in a test platform. Stakeholders reviewing engineering budgets may question the value of building and maintaining a sophisticated testing system alongside an already complex product. In practice, however, experience shows that:
The greatest return on investment comes from enabling users to execute and validate their code as quickly as possible. When combined with techniques such as chaos testing, a test platform can also evaluate system resilience by introducing controlled failures and measuring how effectively the system responds and recovers.
Refer to the pull-down menus at the top of the website screen:
The gDS Facility -- This section presents gDS, a "low code", Python-based data handling facility that simplifies the process of building Python test platforms for chaos testing in complex software systems. You can, however, use the data handling facility of your choice.
Building Test Platforms -- This section covers building test platforms, including how to manage concurrency while ensuring effective chaos testing.
Case Studies -- Three case studies are an integral part of this website, showcasing real-world applications. The case studies come complete with running (Linux only) code housed in a public GitHub repository (browse to or “git clone” the URL below):
https://github.com/talborough/testingComplexSystems
Free, interactive webinars -- 2 interactive Zoom webinars aligned with the 3 case studies are available. Please email me to ask about them and how to schedule them:
In total this website provides engineering staff with resources to analyze, run, and draw upon as they evaluate and build the automation needed for the testing of their complex software systems.