Testing large-scale software applications has been an area of activity for a long time. Today several fields like design patterns advocate very good practices that aim to ease the burden of testing. However, in practice, testing is often done in an ad hoc manner. Large-scale software systems like network management systems are tested against very specific system requirements, which tend to be inadequate. Such large-scale systems, comprising concurrent multi-threaded processes interacting with each other, often need to be tested for long periods of time (sometimes longer than the time taken to develop the system) before they are suitable for deployment on a live network. Despite such stringent system requirements, testing often takes a back seat, and sophisticated software tools, though available, are very rarely employed in system testing. Here we describe an engineering approach for testing and verification of network management and design tools. We describe a set of handy principles, algorithms, and testing architectures that have worked very well in practice and have achieved remarkable results. The paper derives heavily from our experience; we have developed several products for Lucent Technologies' Optical Networks organization over the last three years. © 2003 Lucent Technologies Inc.
[1]
H. Nagesh,et al.
Optimal Configuration of Optical Line Systems under Various Constraints
,
2002,
2002 28TH European Conference on Optical Communication.
[2]
Gerard J. Holzmann,et al.
The Model Checker SPIN
,
1997,
IEEE Trans. Software Eng..
[3]
J. W. Suurballe.
Disjoint paths in a network
,
1974,
Networks.
[4]
Robert S. Hanmer,et al.
Systematic software testing using VeriSoft — An analysis of the 4ESS™ heart-beat monitor
,
1998,
Bell Labs Technical Journal.
[5]
Gang Liu,et al.
SPIDER: A simple and flexible tool for design and provisioning of protected lightpaths in optical networks
,
2001,
Bell Labs Technical Journal.
[6]
J. W. Suuballe,et al.
Disjoint Paths in a Network
,
2022
.