Front office technology, FIX, MIFID2 and global electronic trading. Technology for fixed income, equities, f/x, futures and options. Buy-side, sell-side, hedge funds, exchanges and execution venues. ....
Replace tactics and logistics with functional requirements and non-functional requirements and you have a "too long, didn't read" version of this post.
So, what's this about? By way of explanation, functional requirements are WHAT a system does. So a functional requirement may be that within a user interface a user cannot enter a negative number as a limit price for a regular bond. This then has a direct link to functional testing, so a tester would test that they cannot enter a negative number as a limit price for a regular bond. If the functional requirement and the functional test are tightly coupled then this paradigm can be described as Test Driven Development.
Non-functional requirements are HOW the system operates. So a non-functional requirement may be to specify that if a user tries to create an order ticket from the user interface the ticket appears and is ready to use within 200 milliseconds. Or that a user can login within 500 milliseconds of clicking on the login button having populated a username, password and token value. Again, if the non-functional requirement is linked directly to a test case then this is a case of Test Driven Development.
Functional testing is complex but generally can be performed either manually or with automated testing. For trading applications there are typically a number of stages of testing, automated first to check for gross functionality followed by manual testing to check for more nuanced points and finally user acceptance testing before go-live into production.
Non-functional testing is often much more complex. If a non-functional requirement is that a trading platform must be able to support 100 concurrent users each receiving a streamed order book of 1000 instruments with full depth - how do you test that? Do you set up 100 virtual machines and one operator or do you have 100 testers?
Functional testing will get a system delivered to production. Non-functional testing is what gets you live and operating day-in and day-out. Combine a stringent non-functional requirements set with a high quality implementation of DevOps and your chances of success are greatly increased....