We have web application where one of the components is rule based. There are about 60 rules and some of these have multiple dependencies on other rules.
I am very confused about how to go about functional testing since testing each of them is hard as they are also time bound ie., each rule has a time window exceeding which the behavior changes.
The problem is that I have the list of rules and I know that they are dependent on each other, that is all I know. What more should I ask the developers (no analysts, requirements ... exist here) for clear understanding of these rules.
I am simply lost as to where to start and how to go about. Well I am not a beginner but am unable to granularize this process for testing.
What is it that you can verify, observe or measure about the application?
Is it possible to establish data scenarios with a predictable outcome?
Is there a known and/or documented flow to the ruleset?
Do you have a reference system to compare to?
How is the application used by the end-users?
Our approach on similar apps is as follows:
1. establish a baseline data scenario Ai that has a known outcome Ao
2. build a variant data scenario Ai that tests either side of the boundary of the first rule hit in the logic flow
- usually this means modifying only a few data elements from the baseline
3. continue building variant scenarios or additional baselines as needed to test each rule point
4. build an automation utility that accepts the data scenarios Ai[n] and verifies only specific to the expected outcomes Ao[n]
- you can obviously put time delay elements into the script to verify time-dependent features
By using the baseline + variant method of building out test data, the complexity of that task is minimized.
By automating, verification of the data scenarios and the expected outcomes becomes fast and repeatable.