TESTING
SOFTWARE QA
RESOURCES
A Petri Net is a formal, graphical, executable technique for the specification and analysis of concurrent, discrete-event dynamic systems;

For online graphical tutorials (in Flash Media) see Interactive Tutorials on Petri Nets

Discrete-event dynamic systems are those which may change state over time, based on current state and state-transition rules, and where each state is separated from its neighbour by a step rather than a continuum of intermediate infinitesimal states. Often falling into this classification are information systems, operating systems, networking protocols, banking systems, business processes and telecommunications systems.

The representation of multiple independent dynamic entities within a system is supported naturally by the technique, making it highly suitable for capturing systems which exhibit concurrency, e.g., multi-agent systems, distributed databases, client-server networks and modern telecommunications systems.

A mathematical and very technical form of Bug Net is the use of Petri Nets to model software testing problems. Essentially this is a form of state testing.

A Petri Net is a bipartite directed graph represented by a quadruple

PN = (P, T, I, O) where:

P = {p1,...,pn} is a finite set of places.

T = {t1,...,tm} is a finite set of transitions.

I (p,t) is a mapping P X T --> {0,1} corresponding to the set of directed arcs from places to transitions.

O(t,p) is a mapping T X P --> {0,1} corresponding to the set of directed arcs from transitions to places.