ioSemantics is a company focused on automating and improving the QA process within decision management. Focused on increasing agility, ioSemantics is developing new technology to improve the link from development to production, especially in the kind of tight operate – assess – adapt – redeploy loop you see when business rules are being used to manage decisions. Their core product is called qaSemantics and I got a chance to discuss it with Steve Bucuvalas, their founder and President, yesterday.
By reducing the work effort for QA from its traditional 40% to about 5%, they claim a 35% total cost reduction while, at the same time, improving quality and business user empowerment. QA is often a bottleneck when empowering the business to manage their own development as IT departments control production and worry that business people will make mistakes. qaSemantics handles QA automation with IT still controlling the transition to production.
They take a model-based reasoning approach to this. This technology/approach won the Turing Award last year when those who invented model-based quality checking for semiconductors were recognized. qaSemantics takes the same approach that revolutionized chip QA so it seems at least possible that it should have a similarly revolutionary impact on the QA of rules. The product has three steps:
- Automated reasoning for program analysis. An adaptor is built per rule language – a parser/compiler that transforms the language into an source-independent version – and this independent version is then converted to a semantic model
- A semantic model of the applications’ behavior is stored in a database
- Model-based reasoning is used to deliver quality services based on this model
The product has 5 main components:
- Quality Browser to explore the semantic model
- Policy Editor that allows QA scenarios to be defined as business policies
- Debug Assist that traces a failure back to its source
- Regression Validator to verify correctness on the policies
- PopNTest to support traditional test scenarios
I got a short demo based on a mortgage example. In this case the desire was to ensure that the rules never approved a conforming loan unless the total loan amount was less than the Fannie Mae limit. There are essentially an infinite number of potential cases to test so most QA focuses on good coverage and corner cases. This requires business know-how especially for “should fail” cases. An example of 240 test cases would provide adequate coverage for this policy (Fannie Mae acceptance). The Policy Editor is used to set up policies to check. The semantic model generates variables based on the input and output (of the decision) and allows a user to constrain the circumstances – specify a policy for it. This can be based on specifying that only Conformant 30 year loans are being considered by the policy. The policy can then specify desired constraints such as the fact that these kinds of mortgages must have an amount less than or equal to $417K. The model can then be automatically examined to see if it is possible for this policy to be broken. The model allows every possible “path” to be considered.
Having found problem qaSemantics will then show the area of concern and do so in a way that allows the original representation to be debugged – the initial conversion keeps track of how the original source-language connection so as to facilitiate this. In addition there is support for visualization of results.
The end result of all of this is to allow non-technical users to specify policies that should always be true for any route through the decision and then automatically verify this against the complete model – every path. This helps reassure IT people that the rules are complete and correct and so safe to deploy and should reduce the amount of time and effort involved in QA.
In addition, ioSemantics has ioRules – a business rules product for managing rules. This is not their primary focus, however, as they hope to integrate qaSemantics with leading business rules management systems.