48
Testing Business Logic begins in Requirements Paul Vincent BCS SIGiST – Summer 2015 Conference - Friday 5 June 2015

Testing begins with requirements - Presentation to BCS SIGiST jun15

  • Upload
    isvana

  • View
    245

  • Download
    0

Embed Size (px)

Citation preview

Testing Business Logic begins in Requirements

Paul Vincent

BCS SIGiST – Summer 2015 Conference - Friday 5 June 2015

Some Known Best Practices …

• Agile development(fail early, deliver often)

• Test-driven development(test specification = system specification)

• Model-driven development(formal models are more easily transformed into software)

Ref: BCS SIGiST Spring 2015

Ref: BCS SIGiST Winter 2014

BCS SIGiST Autumn 2014

1. Why Test in Requirements?

Ref: http://loadstorm.com/2011/10/cost-fixing-software-defects/

2. But how can Requirements be Formal?

• Models can be formal

• Example = BPMN process

• Can be validated, simulated,loops detected etc

Decision

Gateway

Task

Ref OMG DMN

3. Decision Models for Requirements

• Decision “models” are not new!

Babylon 1800BC - Mathematical look-up table

3. Decision Models for Requirements

• Decision “models” are not new!

4. Decision Models for Testing

1977

5. Decision Models as Requirements

• How can we define a formal model for business logic that Business Analysts can use?

With appropriate notation, methodology and standards?

• Can modelling tools embed appropriate testing to automate tests?

Decision Methodologies

• TDM - The Decision Model (von Halle, Goldberg)• Published, commercially supported, specific notation

• Tooling (BiZZDesign, Sapiens, SAP,…)

• DTM - Decision Table Methodology (Vanthienen)• Published across papers and books, commercially supported

• Tooling (Various) for decision tables

• Decision Management Systems Methodology (Taylor)• Published, commercially supported

• Own tooling (Decision Management Solutions)

Decision Notations

• TDM - The Decision Model (von Halle, Goldberg)• Published, commercially supported, specific notation• Tooling (BiZZDesign, Sapiens, SAP,…)

• OMG DMN - Decision Model and Notation• Published, commercial support starting, specific notation• Tooling (Signavio, DMS, FICO, …)

Case Study: Example using TDM

Determine PolicyRenewal Method

Manual Renewal

Automatic Renewal

Manual or Automatic

A. What is Decision?

• Find Manual or Automated status…

Determine PolicyRenewal Method

BPMN

TDM

Per OMG DMN

•A Decision is the act of applying decision logic to one or more inputs to produce one output

•A Decision Logic is a formal expression that defines the output of a decision with respect to its inputs• A decision logic can be a Computation• Or a Fixed Alternatives Ruleset, represented as a Decision

Table or a Decision Tree• Or it can be an Imported Formulation (e.g. a predictive model

in PMML)

B. What is the Decision Logic

Decision Table / Rule Family describing logic

AND

OR

FAMILYOF RELATEDBUSINESSRULES

CONCLUSION

C. Is this complete, no duplications etc?

ALL VALUES TESTED? ALL VALUE COMBINATIONS TESTED? ALL CONCLUSIONS CONSISTENT?

Verify Rule Family / Decision Table (static test)

D. Does this do what is intended?

ARE THE RESULTS AS EXPECTED AGAINST TEST CASES?

Validate Rule Family / Decision Table (test cases)

Validate Rule Family / Decision Table (test cases)

Validate Rule Family / Decision Table (test cases)

Validate Rule Family / Decision Table (test cases)

Validate Rule Family / Decision Table (test cases)

TEST CASES CREATED, CUSTOMISED, ETC

Validate Rule Family / Decision Table (test cases)

TEST RESULTS SHOWN

Validate Rule Family / Decision Table (test cases)

TEST CASE SHOWN IN DECISION TABLE / RULE FAMILY

E. Unit Testing Done

REPEAT EXHAUSTIVE TESTS FOR THESE RULE FAMILIES

F. Test Connections to Rule Families

DEFINE TESTS FOR ALL BRANCHES, TESTING EACH LINK

Assumptions for decision modelling for testing1. I know the decision I need to make

(may be re-used across processes)

2. I define a formal / rigorous data model too (name, type, value domain, single/list)• See Data Modelling for Requirements Testing

presentation at some future SIGiST!

For Business Logic requirements…

1. We can model business logic using Decision Models

For Business Logic requirements…

1. We can model business logic using Decision Models

2. We can verify the completeness + uniqueness of this business logic

For Business Logic requirements…

1. We can model business logic using Decision Models

2. We can verify the completeness + uniqueness of this business logic

3. We can validate the business logic against all possible use cases for each rule family + all links in a decision model of multiple rule families

How useful is this?

• Example 1: a product selection requirement

• Original analysis = 15,000 rows of business logic in Excel

• Decision Modelled = ~220 rows across ~18 decisionsby 6 Business Analysts over 2-3 weeks

How useful is this?

• Example 2: business loan compliance with policy

• Original analysis = spreadsheet of X tabs ofmetrics vs business sector vs threshold levels

• Decision Modelled = Validate-able thresholds vs policies,Side by side comparison of thresholds,

Champion challenger etc

Standards to support this pattern?

• Standardisation effort by OMG DMN• Notation and metamodel

• Can be used with multiple methodologies eg DTM, TDM

• Tooling to support DMN underway

DMN Decision Requirements Diagram

DECISION BUSINESSKNOWLEDGEMODEL

INPUT

TDM / DMN

=

DRD Key

DRDConnectionsGuide

Decision Table (a Business Knowledge Model)

Decision Table Hit PoliciesIndicator Indicator

TermDescription

Single Hit U Unique Only 1 rule matched = DEFAULT POLICY

A Any Many rules can match but matched rules must have same output

P Priority Many rules can match and matched rules can have different outputs; output selected per a prioritised list of possible outputs

F First Many rules can match and matched rules can have different outputs; output selected per ordering of rules

Multi Hit O Output Matched rule outputs are returned in order per a prioritised list of possible outputs

R Rule Matched rule outputs are returned in order per ordering of rules

C Collect No operator Matched rule outputs are returned in arbitrary order

C+ Collect operator(+, <, >, #)

Operator (sum, min, max, count) applied to the outputs and the result returned

C>

C<

C#

DMN Spec Example

DRD

BKM(s)

THANK YOU

• Credits:

• OMG DMN standards teamstandardising notations for best practice decision analysis and design

• Larry Goldberg and Barbara Vonhalledefining The Decision Model as a best practice methodology

• Sapiens DECISION product teampermitting the use of their tool for this presentation