1.

What do you understand about fuzz testing? What are the types of bugs detected by fuzz testing?

Answer»

Fuzz Testing is a software testing technique that utilizes erroneous, unexpected, or random data as input and then looks for exceptions like crashes and memory leaks. It's a type of automated testing that's used to define system testing techniques that use a randomized or dispersed approach. During fuzz testing, a system or software program may have a variety of data input problems or glitches.

Following are the different phases of Fuzz Testing:

  • Identify the Target System: The system or software application that will be tested is identified. The target system is the name given to that system. The testing team determines the target system.
  • Identify Inputs: Once the target system is determined, random inputs are generated for testing purposes. The system or software application is tested using these random test scenarios as inputs.
  • Generate Fuzzed Data: After receiving unexpected and INVALID inputs, these invalid and unexpected inputs are turned to fuzzed data. Fuzzed data is essentially random data that has been transformed into fuzzy logic.
  • Use fuzzed data to RUN the test: The fuzzed data testing process is now being used. Basically, the CODE of the programme or software is EXECUTED in this portion by providing random input, i.e. fuzzed data.
  • Monitor System Behavior: After the system or software application has completed its execution, check for any crashes or other anomalies, such as potential memory leaks. The random input is used to test the system's behaviour.
  • Log Flaws: In the final phase, defects are detected and rectified in order to produce a higher-quality system or software program.

Following are the different types of bugs detected by fuzz testing:

  • FAILURES in assertions and memory leaks - This practice is often employed in large applications where defects compromise memory safety, which is a serious flaw.
  • Invalid data - Fuzzers are used in fuzz testing to generate faulty input that is used to test error-handling methods, which is critical for software that does not have control over its input. Simple fuzzing is a technique for automating negative testing.
  • Correctness bugs - Some forms of "correctness" flaws can also be detected using fuzzing. For example, a corrupted database, inadequate search results, and so on.


Discussion

No Comment Found