Fuzz testing is a means of bombarding a particular network device with a series of network packets with intentionally malformed encoding. The device under test should discard the malformed packet without crashing or hanging.
In fuzz testing, random bad data -- " fuzz " -- is sent to a network device. Some specific patterns of bad data will typically crash the device. The development engineer must correct the code in the network device and then replicate and repeat the specific patterns of bad data to make sure that the corrected code is now sufficiently robust and secure.
Passing a fuzz test indicates that the device under test handles exceptions without crashing, however, it does not guarantee that the networked device behaves properly. Thus fuzz testing compliments conformance and compliance testing.
With the Maxwell Alter Impairment, the development engineer can drill down and focus on the areas requiring correction.
Replay Packet Captures
Engineers can use the Alter Impairment to debug complex problems where the engineer has packet captures but not the original device (a form of capture and replay). Often problems occurring with a network device at a customer site can not be easily replicated. However, with packet captures and the Maxwell Alter Impairment, the problems can be reproduced in the lab for debugging and correction.
Recreate the Condition; No Programming Required
The Alter Impairment also allows engineers and quality assurance testers to create a new set of tests for a particular feature, without learning a programming language.
During the network conversation the Alter Impairment can:
Insert or append bytes into a protocol packet's payload or header.
Remove bytes from a protocol packet's payload or header.
Find and remove specific IPv4, IPv6, or TCP options.
Rewrite any header field or payload bytes, such as source or destination IP addresses.
Automatically update protocol length fields after byte insertions and deletions.
Perform operations on byte strings inside the packet, such as addition, bit-wise "and", "or", and "xor".
Recompute all checksums upon the engineer's request.
Perform the alterations to a copy of the original packet and send the altered copy before or after the original packet - thus allowing insertion of entirely new packets into the network dialog.
Support for Tunneling
The Alter Impairment even understands tunneling - so, for example, a request to modify the first IPv6 datagram header will be performed even when that IPv6 datagram is tunneled inside an IPv4 datagram.
Any Alter Impairments defined by an engineer may be saved and replayed at a future time.
The Alter Impairment may also be combined with other standard impairments such as jitter, delay, re-ordering, etc.
Modify a Live Packet -- No Need to Create Packets "From Scratch"
Compared with other commercial and open source tools (such as Scapy), the Alter Impairment:
Lets the engineer modify a live packet from a real-world network conversation; no need to create a new packet from scratch.
Supports "man in the middle" operation by sitting between two devices, intercepting the network traffic; it is not limited to creating a packet to send it to an end point.
Permits multiple, concurrent packets to be altered; operation is not limited to one packet at a time.
Operates via a point and click graphical interface; there is no requirement to learn a special programming language built on top of another programming language.
Keeps up with the flow of traffic for accurate network emulation; does not slow down and burden network operation.