38
IC-Unicamp – Set/2008 Passive Approach for Robustness Testing of Communication Protocols Eliane Martins, Anderson Morais IC- Unicamp Ana Cavalli Institut Telecom & Management Sud-Paris

Passive Approach for Robustness Testing of Communication ...cmrubira/seminario/apresent-eliane.pdf · IC-Unicamp –Set/2008 Passive Approach for Robustness Testing of Communication

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Passive Approach for Robustness Testing of Communication ...cmrubira/seminario/apresent-eliane.pdf · IC-Unicamp –Set/2008 Passive Approach for Robustness Testing of Communication

IC-Unicamp – Set/2008

Passive Approach for

Robustness Testing of

Communication Protocols

Eliane Martins, Anderson Morais

IC- Unicamp

Ana Cavalli

Institut Telecom & Management Sud-Paris

Page 2: Passive Approach for Robustness Testing of Communication ...cmrubira/seminario/apresent-eliane.pdf · IC-Unicamp –Set/2008 Passive Approach for Robustness Testing of Communication

2

Topics

� Robustness Testing

�Why

�What

� Proposed Approaches

� An Hybrid Approach

� Results

Page 3: Passive Approach for Robustness Testing of Communication ...cmrubira/seminario/apresent-eliane.pdf · IC-Unicamp –Set/2008 Passive Approach for Robustness Testing of Communication

3

Why robustness testing?

� Testing software to ensure that the functional requirements were met …

… is necessary but not enough

� How does the system behave in presence of

� erroneous or unexpected user inputs?

� internal or external failures?

� stressful environmental conditions?

Conformance

testing

Robustness

testing

Page 4: Passive Approach for Robustness Testing of Communication ...cmrubira/seminario/apresent-eliane.pdf · IC-Unicamp –Set/2008 Passive Approach for Robustness Testing of Communication

4

Robustness

� Definition

“the degree to which a software system or

component can function correctly in the

presence of invalid inputs or stressful

environmental conditions.”

IEEE Std 610.12-1990 - Glossary of Software Engineering Terminology

Page 5: Passive Approach for Robustness Testing of Communication ...cmrubira/seminario/apresent-eliane.pdf · IC-Unicamp –Set/2008 Passive Approach for Robustness Testing of Communication

5

Robustness testing

� Definition [CW03] :

“aimed to determine whether a system or

component can have an acceptable

behavior in the presence of faults or

stressful environmental conditions”

Page 6: Passive Approach for Robustness Testing of Communication ...cmrubira/seminario/apresent-eliane.pdf · IC-Unicamp –Set/2008 Passive Approach for Robustness Testing of Communication

6

Robustness testing approaches

� Ad-hoc approaches

�Hard to automate

� Based on models

� Based on fault injection

Page 7: Passive Approach for Robustness Testing of Communication ...cmrubira/seminario/apresent-eliane.pdf · IC-Unicamp –Set/2008 Passive Approach for Robustness Testing of Communication

7

Model-based approaches

� Formalization of robustness testing is inspired on that of conformance testing

�Conformance testing:

� Goal: determining whether an implementation conforms to its specification

�The specification is represented by a (behavior) model from which:

� Test cases can be derived

� Observed results can be analyzed

Page 8: Passive Approach for Robustness Testing of Communication ...cmrubira/seminario/apresent-eliane.pdf · IC-Unicamp –Set/2008 Passive Approach for Robustness Testing of Communication

9

Robustness test cases generation

Specification

(nominal)

Specification

(modified)

Robustness

test

cases

Test case generation

Faults

+

Extra outputs

Page 9: Passive Approach for Robustness Testing of Communication ...cmrubira/seminario/apresent-eliane.pdf · IC-Unicamp –Set/2008 Passive Approach for Robustness Testing of Communication

10

Illustrative example

1

23

4

a

b

a

x

Nominal model

Page 10: Passive Approach for Robustness Testing of Communication ...cmrubira/seminario/apresent-eliane.pdf · IC-Unicamp –Set/2008 Passive Approach for Robustness Testing of Communication

11

Illustrative example

1

23

4

a

b

a

x

1

23

4

a

b

ax’ err

d1

x

a

x’

a’

Nominal modelAugmented model

Handled invalid

input

Degraded

state

Exceptional

end state

Unhandled

invalid input

Page 11: Passive Approach for Robustness Testing of Communication ...cmrubira/seminario/apresent-eliane.pdf · IC-Unicamp –Set/2008 Passive Approach for Robustness Testing of Communication

12

Illustrative example

1

23

4

a

b

a

x

1

23

4

a

b

ax’ err

d1

x

a

x’b, x

b, x

a, b, x

ab, x

a’

a, b, x

Nominal modelAugmented model

inopportune

inputs

Page 12: Passive Approach for Robustness Testing of Communication ...cmrubira/seminario/apresent-eliane.pdf · IC-Unicamp –Set/2008 Passive Approach for Robustness Testing of Communication

13

Difficulties with the model-based

approaches

� Model size is too big for use

� Need to carefully define test objectives

� Tester has limited control of faults

� Faults to consider may depend on the application domain and on the system architecture

� Environmental (context) faults (memory, processor, communication channel, device drivers) are not considered

� System behavior in the presence of faults cannot always be completely specified

Page 13: Passive Approach for Robustness Testing of Communication ...cmrubira/seminario/apresent-eliane.pdf · IC-Unicamp –Set/2008 Passive Approach for Robustness Testing of Communication

14

Fault injection

� Definition

Deliberate introduction of faults into a system to observe its behavior

� Applicability

� To verify whether the error detection and recovery mechanisms behave as expected.

� To evaluate dependability measures such as reliability for a giving mission time, availability, performance degradation due to fault handling.

� To understand the effects of real faults.

Page 14: Passive Approach for Robustness Testing of Communication ...cmrubira/seminario/apresent-eliane.pdf · IC-Unicamp –Set/2008 Passive Approach for Robustness Testing of Communication

15

Fault injection approaches

� Faults can be injected:

� Into a model

� Into a prototype or final system:

� Hardware level

� Software level

Simulation-based fault injection

Hw-implemented fault injection (HWIFI)

Sw-implemented fault injection (SWIFI)Sw-implemented fault injection (SWIFI)

Page 15: Passive Approach for Robustness Testing of Communication ...cmrubira/seminario/apresent-eliane.pdf · IC-Unicamp –Set/2008 Passive Approach for Robustness Testing of Communication

16

Robustness testing and fault

injection

� Interface fault injection:

�affects functions input/output parameters or

protocol messages fields

� Invalid values produced according to

input/output domains or formats

� Some approaches and tools:

�Ballista/Piranha, Mafalda, Fuzz, Riddle,

PROTOS, Jaca

Page 16: Passive Approach for Robustness Testing of Communication ...cmrubira/seminario/apresent-eliane.pdf · IC-Unicamp –Set/2008 Passive Approach for Robustness Testing of Communication

17

Page 17: Passive Approach for Robustness Testing of Communication ...cmrubira/seminario/apresent-eliane.pdf · IC-Unicamp –Set/2008 Passive Approach for Robustness Testing of Communication

23

Limitations of interface fault

injection approaches

� Oracle is generally not based on the specification

� “golden run” or reference implementation

� Crash or not crash

� Knowledge about the system structure or behavior is not frequent

� Exceptions: Avresky et al 1992; Echtle &Chen 1991; Sinha &Suri 1998; Loki 2000

Page 18: Passive Approach for Robustness Testing of Communication ...cmrubira/seminario/apresent-eliane.pdf · IC-Unicamp –Set/2008 Passive Approach for Robustness Testing of Communication

24

Proposed approach

� Hybrid approach combining

�Fault injection

�Passive testing

Page 19: Passive Approach for Robustness Testing of Communication ...cmrubira/seminario/apresent-eliane.pdf · IC-Unicamp –Set/2008 Passive Approach for Robustness Testing of Communication

25

Passive testing approaches

� Based on trace acceptation

�determines whether the observed trace

satisfies the specification model

� Based on invariants

Page 20: Passive Approach for Robustness Testing of Communication ...cmrubira/seminario/apresent-eliane.pdf · IC-Unicamp –Set/2008 Passive Approach for Robustness Testing of Communication

26

Abstract test architecture

Tester

PO

PO: Point of Observation

SAP: Service Access Point

Inconclusive

verdictPass Fail

execution trace Implementation

under test

(IUT)

Test context

SAP

Robustness

properties

Specification

Fault

Injector

Fault set

Invariants

Page 21: Passive Approach for Robustness Testing of Communication ...cmrubira/seminario/apresent-eliane.pdf · IC-Unicamp –Set/2008 Passive Approach for Robustness Testing of Communication

27

Invariants analysis approachBehavior model

I1 = RcvInvoke(TID = N)/?, *, TR-Invoke.res/{Ack (TID = N)}

I2= RcvInvoke(TID = N) / TR.Invoke.ind, *, TR-Invoke.res / {Ack (TID = N) }

Invariants in the form of regular expressions

create

verify

Invariants = properties of interest

create

create

Page 22: Passive Approach for Robustness Testing of Communication ...cmrubira/seminario/apresent-eliane.pdf · IC-Unicamp –Set/2008 Passive Approach for Robustness Testing of Communication

28

Test configuration

TESTINV

Pre-processing

module

TESTINV

Invariant

Checking

module

TESTINV

Invariant

Correctness

module

Verdict Log

(True, False)

Correction

Verdict

(True, False)

WAE_Layer_PO.lo

g WSP_Layer_PO.lo

g WTP_Layer_PO.lo

g WDP_Layer_PO.lo

Formatted trace

race

Invariant

Specification

Ethernet

Upper

layers

IUTPOtrace

Internet Protocol

(IPv4 or IPv6)

FIRMAMENT

Page 23: Passive Approach for Robustness Testing of Communication ...cmrubira/seminario/apresent-eliane.pdf · IC-Unicamp –Set/2008 Passive Approach for Robustness Testing of Communication

29

Fault Injector

WAE

WSP

WTP - Responder

WDP/UDP

IP

WAP Gateway

The WAP stack

FaultletsFaultlets

WAE

WSP

WTP - Initiator

WDP/UDP

IP

WAP TerminalUser

defined

inputs

PDUPO HTTP

server

Page 24: Passive Approach for Robustness Testing of Communication ...cmrubira/seminario/apresent-eliane.pdf · IC-Unicamp –Set/2008 Passive Approach for Robustness Testing of Communication

31

Client Terminal

(simulator)

Gateway

(Kannel)

WSP

WTP

(Initiator)

WTP

(Responder) WSP

Fault

Injector

Tr-Invoke.reqInvoke

Invoke Tr-Invoke.ind

Tr-Result.reqResult

Result

Tr-Result.ind

Tr-Result.resAck

Ack

Tr-Result.cnf…

No faults injected

Page 25: Passive Approach for Robustness Testing of Communication ...cmrubira/seminario/apresent-eliane.pdf · IC-Unicamp –Set/2008 Passive Approach for Robustness Testing of Communication

32

Client Terminal

(simulator)

Gateway

(Kannel)

WSP

WTP

(Initiator)

WTP

(Responder) WSP

Fault

Injector

Tr-Invoke.reqInvoke

Invoke Tr-Invoke.ind

Tr-Result.reqResult

Result

Tr-Result.ind

Tr-Result.resAck

ErrorPDU

AbortAbort

Tr-Abort.ind

Fault injected

Page 26: Passive Approach for Robustness Testing of Communication ...cmrubira/seminario/apresent-eliane.pdf · IC-Unicamp –Set/2008 Passive Approach for Robustness Testing of Communication

34

An experiment that failed

Experiments Runs Result seen byNokia browser

Observ.

E1- Test packetcorruption.

R1- Ack (0x3)

→Invoke (0x1)

Requested page

Change PDUType

R2- Ack (0x3)

→Invalid (0x00)

Requested page

R3- Ack (0x3)

→Result (0x2)

Error message:“Server abortedconnection”

R4- Ack (0x3)

→Invalid (0xff) Browser blocked

Page 27: Passive Approach for Robustness Testing of Communication ...cmrubira/seminario/apresent-eliane.pdf · IC-Unicamp –Set/2008 Passive Approach for Robustness Testing of Communication

35

Example of observed trace with

failure (1)2007-10-11 01:21:50 [6] INFO: (ORIGINATE STATE: LISTEN ; NEXT STATE:INVOKE_RESP_WAIT)2007-10-11 01:21:50 [6] INFO: FROM WDP: Event Name: RcvInvoke(TID=78, class=2,Uack=1, TIDNew=0, RID=0)2007-10-11 01:21:50 [6] INFO: TO WSP: Primitive Name: TR-Invoke.ind(class=2)2007-10-11 01:21:50 [6] INFO:

2007-10-11 01:21:50 [6] INFO: (ORIGINATE STATE: INVOKE_RESP_WAIT ; NEXT STATE:RESULT_WAIT)2007-10-11 01:21:50 [6] INFO: FROM WSP: Primitive Name: TR-Invoke.res2007-10-11 01:21:50 [6] INFO:

2007-10-11 01:21:50 [6] INFO: (ORIGINATE STATE: RESULT_WAIT ; NEXT STATE:RESULT_RESP_WAIT)2007-10-11 01:21:50 [6] INFO: FROM WSP: Primitive Name: TR-Result.req2007-10-11 01:21:50 [6] INFO: TO WDP: PDU Name: Result(TID=78, RID=0)2007-10-11 01:21:50 [6] INFO:

2007-10-11 01:21:50 [0] ERROR: pdu unpacking returned NULL2007-10-11 01:21:50 [6] INFO: TO WDP: PDU Name: Abort(TID=78, abort-type=0,abort-reason=1)2007-10-11 01:21:50 [6] INFO:

2007-10-11 01:21:50 [6] INFO: TO WSP: Primitive Name: TR-Abort.ind(abort-reason=1)2007-10-11 01:21:50 [6] INFO:

2007-10-11 01:24:32 [0] ERROR: SIGINT received, let's die.

01:21:50

01:24:32

Abort PDU

TR-Abort

Run aborted by the user

Wapbox hangs

Page 28: Passive Approach for Robustness Testing of Communication ...cmrubira/seminario/apresent-eliane.pdf · IC-Unicamp –Set/2008 Passive Approach for Robustness Testing of Communication

36

2007-10-11 01:21:50 [6] DEBUG: WTP: Destroying WTPRespMachine

0x820def0 (23)

2007-10-11 01:21:50 [6] DEBUG: WTP: Created WTPRespMachine

0x8209c90 (24)

2007-10-11 01:21:50 [6] DEBUG: WTP: resp_machine 24, state

LISTEN, event RcvInvoke.

2007-10-11 01:21:50 [6] DEBUG: WTP: Destroying WTPRespMachine

0x8209c90 (24)

...

2007-10-11 01:21:50 [1] DEBUG: WSP: machine 0x81e90e8, state

CONNECTING_2, event TR-Abort.ind

2007-10-11 01:21:50 [1] DEBUG: ----------1)handle_session_event

2007-10-11 01:21:50 [1] DEBUG: WSP 2: New state NULL_SESSION

2007-10-11 01:21:50 [1] DEBUG: Destroying WSPMachine 0x81e90e8

2007-10-11 01:24:32 [0] ERROR: SIGINT received, let's die.

Wapbox log:

Page 29: Passive Approach for Robustness Testing of Communication ...cmrubira/seminario/apresent-eliane.pdf · IC-Unicamp –Set/2008 Passive Approach for Robustness Testing of Communication

37

Another experiment that failed� Experiment 5: wrong packet size.

� Run 2: change PDU size to small value (=2)

� Failure: no Abort message generated as was expected!

2007-10-11 03:53:21 [6] INFO: (ORIGINATE STATE: LISTEN ; NEXT STATE:INVOKE_RESP_WAIT)2007-10-11 03:53:21 [6] INFO: FROM WDP: Event Name: RcvInvoke(TID=306,class=2, Uack=1, TIDNew=0, RID=0)2007-10-11 03:53:21 [6] INFO: TO WSP: Primitive Name: TR-Invoke.ind(class=2)2007-10-11 03:53:21 [6] INFO:

2007-10-11 03:53:21 [6] INFO: (ORIGINATE STATE: INVOKE_RESP_WAIT ; NEXT STATE:RESULT_WAIT)2007-10-11 03:53:21 [6] INFO: FROM WSP: Primitive Name: TR-Invoke.res2007-10-11 03:53:21 [6] INFO:

2007-10-11 03:53:21 [6] INFO: (ORIGINATE STATE: RESULT_WAIT ; NEXT STATE:RESULT_RESP_WAIT)2007-10-11 03:53:21 [6] INFO: FROM WSP: Primitive Name: TR-Result.req2007-10-11 03:53:21 [6] INFO: TO WDP: PDU Name: Result(TID=306, RID=0)2007-10-11 03:53:21 [6] INFO:

2007-10-11 03:53:21 [0] PANIC: wap/wap_events.c:161: wap_event_assert:Assertion `event != NULL' failed.

PANIC

Crash of

the wapbox

Page 30: Passive Approach for Robustness Testing of Communication ...cmrubira/seminario/apresent-eliane.pdf · IC-Unicamp –Set/2008 Passive Approach for Robustness Testing of Communication

38

2007-10-11 03:53:21 [6] DEBUG: WTP 1: New state RESULT_RESP_WAIT

...

2007-10-11 03:53:21 [0] DEBUG: A too short PDU received

2007-10-11 03:53:21 [0] DEBUG: Dumping WAPEvent 0x820bad0

2007-10-11 03:53:21 [0] DEBUG: type = T-DUnitdata.ind

2007-10-11 03:53:21 [0] DEBUG: WAPAddrTuple 0x820bb40 =

<127.0.1.1:32787> - <0.0.0.0:9201>

2007-10-11 03:53:21 [0] DEBUG: user_data =

2007-10-11 03:53:21 [0] DEBUG: Octet string at 0x820bd38:

2007-10-11 03:53:21 [0] DEBUG: len: 1

2007-10-11 03:53:21 [0] DEBUG: size: 2

2007-10-11 03:53:21 [0] DEBUG: immutable: 0

2007-10-11 03:53:21 [0] DEBUG: data: 18 .

2007-10-11 03:53:21 [0] DEBUG: Octet string dump ends.

2007-10-11 03:53:21 [0] DEBUG: WAPEvent dump ends.

2007-10-11 03:53:21 [0] PANIC: wap/wap_events.c:161: wap_event_assert:

Assertion `event != NULL' failed.

Wapbox log:

Page 31: Passive Approach for Robustness Testing of Communication ...cmrubira/seminario/apresent-eliane.pdf · IC-Unicamp –Set/2008 Passive Approach for Robustness Testing of Communication

39

Simple invariants usedS1. RcvInvoke/TR-Invoke.ind,*,TR-Result.req/{Result}

S2. RcvInvoke/TR-Invoke.ind,*,RcvAck/{TR-Result.cnf, NULL}

S3. RcvErrorPDU/{Abort, TR-Abort.ind}

S4. ?/?, *, RcvAbort/{TR-Abort.ind}

S5. ?/?, *, TimerTO_R/{Result,TR-Abort.ind}

S6. ?/?, *, TimerTO_A/{Ack,TR-Abort.ind, NULL}

S7. ?/?, *, TR-Abort.req/{Abort}

S8. RcvInvoke/Ack, *, RcvAck/{TR.Invoke.ind}

S9. RcvInvoke/Ack, *, RcvInvoke/{Ack, NULL}

S10. ?/?, *, NULL/{CRASH, HANG}

Alphabet of the

machine: ≈ 20 WTP

events + Hang +

Crash + NULL

Page 32: Passive Approach for Robustness Testing of Communication ...cmrubira/seminario/apresent-eliane.pdf · IC-Unicamp –Set/2008 Passive Approach for Robustness Testing of Communication

40

Discussion about observed

results� Only control flow was considered in the invariant analysis

� Observed anomalous behavior:

� Lack of resources created new sources of failures:

� IUT did not tolerate some OS exceptions

� Lack of information in the specification

� Ex.: Initiator continues to send requests for new transactions even when the Responder keeps retransmitting the same results

Page 33: Passive Approach for Robustness Testing of Communication ...cmrubira/seminario/apresent-eliane.pdf · IC-Unicamp –Set/2008 Passive Approach for Robustness Testing of Communication

41

Conclusions

� Hybrid approach for robustness testing, combining formal and fault injection techniques:

� Fault injection:

� Allows better coverage of environment faults than in traditional testing

� Passive testing:

� Allows more precise result analysis than simply observing crash or hangs, as is usual in FI

� Possibility to test an IUT in its context � useful in later stages of system testing or even in the field

Page 34: Passive Approach for Robustness Testing of Communication ...cmrubira/seminario/apresent-eliane.pdf · IC-Unicamp –Set/2008 Passive Approach for Robustness Testing of Communication

42

Current work� Approach is in use for testing robustness against attacks:

� Cryptographic protocol testing

� Instead of communication faults, attacks are injected

� Attack scenarios derived from real successful attacks reported in the literature

� Attacker is implemented by a fault injector

� Goal: reveal vulnerabilities in the protocol implementation

� Invariants used to represent security properties

Page 35: Passive Approach for Robustness Testing of Communication ...cmrubira/seminario/apresent-eliane.pdf · IC-Unicamp –Set/2008 Passive Approach for Robustness Testing of Communication

43

Future works

� Algorithm for the transformation of attack

scenarios into executable scenarios for the fault

injector (Attacker)

� Application of the approach to a case study

� Use of sequence alignment algorithms for

results analysis

Page 36: Passive Approach for Robustness Testing of Communication ...cmrubira/seminario/apresent-eliane.pdf · IC-Unicamp –Set/2008 Passive Approach for Robustness Testing of Communication

Thanks!

Email: [email protected]

[email protected]

Page 37: Passive Approach for Robustness Testing of Communication ...cmrubira/seminario/apresent-eliane.pdf · IC-Unicamp –Set/2008 Passive Approach for Robustness Testing of Communication

45

References (1)Report about model-based robustness testing:

Castanet R., Waeselynk H., “Techniques avancées de test de systèmes complexes: test de robustesse“, report CNRS-AS23, 2003.

Ballista

Koopman, P., Siewiorek, D, DeVale, K., DeVale, J., Fernsler, K., Guttendorf, D., Kropp, N., Pan, J., Shelton, C., Shi, Y.: “Ballista Project : COTS Software Robustness Testing.” Carnegie Mellon University.

Piranha

J.L.Griffin. “Testing protocol implementation robustness”, Proc. 29th. Annual International Symposium on Fault-Tolerant Computing (FTCS), 15-18 June 1999, Madison, Wisconsin

Mafalda

J. Arlat, J.-C. Fabre, M. Rodríguez and F. Salles, “Dependability of COTS Microkernel-Based Systems”, IEEE Trans on Computers, 51 (2), pp.138-163, February 2002.

Fuzz

Miller B. P., et. al. (1995) Fuzz Revisited: A Re-examination of the Reliability of UNIX Utilities and Services. Networked Computer Science Technical Reports Library CS-TR-95-1268, UW Madison Computer Sciences Department, April 1995

PROTOS

R. Kaksonen, M.Laakso, A.Takanen. Vulnerability Analysis of Software through Syntax Testing. http://www.ee.oulu.fi/research/ouspg/protos/analysis/WP2000-robustness/

Page 38: Passive Approach for Robustness Testing of Communication ...cmrubira/seminario/apresent-eliane.pdf · IC-Unicamp –Set/2008 Passive Approach for Robustness Testing of Communication

46

References (2)RIDDLE

A. Ghosh, V. Shah, and M. Schmid. An approach for analyzing the Robustness of Windows NT Software. In Proceedings of the 21st National Information Systems Security Conference, pages 383–391, Crystal City, VA, 1998.

Jaca

Naaliel Mendes, Regina Moraes, Eliane Martins, Henrique Madeira. “Jaca Tool Improvements for Speeding Up Fault Injection Campaigns”. 13ª. Tools Session. 20º. Brazilian Symposium on Software Engineering (SBES), Florianópolis, Oct./2006

About invariant testing:

E. Bayse, A. Cavalli, M. Nunez and F. Zaidi, “A Passive Testing Approach based on Invariants: Application to the WAP”, Computer Networks, 48, pp247-266, 2005

Introduction to fault injection:

Hsueh, Mei-Chen; Tsai, Timothy; Iyer, Ravishankar. “Fault Injection Techniques and Tools”. IEEE Computer, Abril/1997

Hybrid approaches for active testing:

K. Echtle and Y. Chen, “Evaluation of deterministic fault injection for fault-tolerant protocol testing,” in Proc. 21st Int. Symp. Fault-Tolerant Computing (FTCS-21), IEEE, Montréal, Québec, Canada, June 1991, pp. 418-425.

D. Avresky, J. Arlat, J.-C. Laprie, and Y. Crouzet, “Fault injection for the formal testing of fault tolerance,” in Proc. 22nd Int. Symp. Fault-Tolerant Computing (FTCS-22), IEEE, Boston, MA, July 1992, pp. 345-354.

N.Suri; P.Sinha. “On the Use of Formal Techniques for Validation”. Proc. of FTCS-28, pp. 390--399, 1998.