Communication protocols are the rules that govern the communication between the different components within a distributed computer system. Since protocols are implemented in software and/or hardware, the question arises whether the existing hardware and software testing methods would be adequate for the testing of communication protocols. The purpose of this paper is to explain in which way the problem of testing protocol implementations is different from the usual problem of software testing. We review the major results in the area of protocol testing and discuss in which way these methods may also be relevant in the more general context of software testing. servation and synchronization problems between the different parts of the test system. These issues have a strong impact on testability. Finally, we review the practice of protocol conformance testing and state our conclusions. 1.1. The nature of protocol testing communication protocols are the rules that govern the communication between the different components within a distributed computer system. In order to organize the complexity of these rules, they are usually partitioned into a hierarchical structure of protocol layers, as exemplified by the seven layers of the standardized 0S1 Reference Model [1S7498]. Figure 1(a) shows a communication system from the point of view of two users. The users interact with the communication service through interactions, called service primitives, exchanged at 109 so-called service access points (SAP). The definition of the behavior of the box which extends between the two users is called the service specification. It defines the local rules of interactions at a given service access point, as well as the so-called end-to-end properties which relate the interactions at the different access points and represent the communication properties, such as end-to-end connection establishment or reliable data transfer. SAP1 SAP2 communication service N communlcah + Figure 1: The architecture of a communication system.