Happy New Year everyone!
For the last 18 months I have been testing software designed to trade foreign currency, known as FX or Forex trading software.
I consider myself lucky as I joined the project on day one which enabled me to learn a lot about testing trading systems.
Challenges
Financial software, including trading applications, can be some of the most incredibly difficult complex applications to test because they contain many challenges such as:
- Many concurrent users
- High rates of transactions per second
- Large numbers of systems, services and applications that all integrate with each other
- A need to process transactions in real time
- Time sensitive data e.g. the price to buy a Euro can change multiple times every second
- Catastrophic consequences for a system failure, bugs can cause financial loss
- Extremely high complexity level
At the start of my current project, I found very few resources available for testers covering complex financial systems. The few resources that I was able to find were quite dated and generally advised to write detailed plans and document all tests before executing them. I simply couldn't find any information about approaching testing of financial systems in a modern, agile, context driven way.
I was very fortunate on my project that I was able to implement testing with agility and focus on risk. Long checks historically done manually by human testers were replaced with good automated integration test coverage. The team also chose to release to production as frequently as possible, usually once a week. Not having to constantly repeat manual checks of existing functionality gave me time to do a LOT of exploratory testing. Almost all the really bad bugs, the ones with financial consequences, were found during exploratory testing sessions.
Heuristic Testing Cheat Sheet
Given the high level of exploratory testing I was able to do on my project, I generated a lot of ideas and identified some high risk areas and common mistakes. I have decided to put together a heuristic testing cheat sheet for anyone carrying out exploratory testing of trading software.
The full size version of my FX trading heuristic testing cheat sheet can be found here. I wanted to combine my knowledge of trading with some of the ideas I generated. On the sheet my ideas are written around the knowledge in magenta coloured boxes. I hope this may be useful to anyone working on trading software.
This post was also published on my company's blog Scott Logic Blog