English Case Studies
Integration, Load, and Regression Testing
Testing and developing distributed systems is a complex, challenging, and expensive endeavor. Typically, development teams custom build test harnesses for each development project, but these test harnesses simulate only the expected conditions in a clean-room environment. Testing with repeatable real-life message streams is a crucial complement to unit-testing.
Codestreet ReplayService™ is ideal for distributed system regression and performance testing. It is also a great way to stimulate algorithms that run on real-time data. Its ability to replay sequences of messages across multiple JMS topics or queues, in strict order, and with variable timing, provides an enormously valuable tool for every phase of testing.
Development teams can stage their tests through the ReplayService™, and script message playback at practically any speed. Various recorded message streams can be combined on demand, to reproduce real-world scenarios.
It is simple to drive manual tests from the Web GUI or automate tests through command-line scripts or the Java API. Error conditions and modified data can be injected into the stream.
Codestreet ReplayService™ is able to reproduce the exact message publication times, replay faster or slower by a factor, or replay with a fixed message rate up to tens of thousands msgs/sec to enable stress testing.
Some software platforms such as trading applications, require production data message streams to enable development, which are potentially expensive or difficult to provide to every development location in real-time. With Codestreet ReplayService™ you can record production data in one location and simply copy the ReplayService™ datastore files to another location for replay. Remote development groups are thus independent of network connectivity to production sites.
Once Codestreet ReplayService™ is setup to automatically record all production data, it enables development teams to make this a final test before rolling out a new version, potentially also simulating higher than usual message rates.
Another form of regression testing is the use of ReplayService™ as an XML storage and replay facility. When a new version of the application’s XSD (the XML’s schema definition) is rolled out, the XML content of millions of previous production messages can be tested against this new XSD to make sure the new schema definition does not change the validity of the previous message model. This test could be automated and executed with every release of an XSD.
- Message and State Recovery: If something simple is wrong, fix it and resend.
- Message and State Recovery: On application startup, fallback to the state of the messaging system at a well-known time or global MSG ID”, FT-setup
- Message Rate Statistics: Routinely send message rate charts to different application groups
- Disaster Recovery
- Middleware Capacity Planning
- Stress Testing Applications
- Flow Control
- Issue Resolution
- Application Development, QA, and UAT
- Audit (infrastructure and content): Keep complete trail of messages on disk, for days, months or years