Mike's Notes
Automated self-testing is needed for Pipi. Something like Chaos Monkey would be great. These are working notes as I learn and do some experiments.
Resources
- https://en.wikipedia.org/wiki/Random_testing
- https://en.wikipedia.org/wiki/Fuzzing
- https://en.wikipedia.org/wiki/Monkey_testing
References
- Reference
Repository
- Home > Ajabbi Research > Library >
- Home > Handbook >
Last Updated
07/09/2025
Fuzz Testing
Mike is the inventor and architect of Pipi and the founder of Ajabbi.
Pipi is a self-organising system that can autonomously adapt. This makes it difficult to integrate external standard software tools. However, it requires robust testing to make it tough and reliable. One way might be to deliberately provide a hostile environment for Pipi.
Ecosystem Testing
A copy of Pipi could attack other copies as a way to automate testing. Both the hunter and the hunted could have an arms race, forcing evolutionary-driven survival. This might work well with the internal evolutionary algorithms.
Survivors would go into production.
Random Testing
"Random testing is a black-box software testing technique where programs are tested by generating random, independent inputs. Results of the output are compared against software specifications to verify that the test output is pass or fail. In case of absence of specifications the exceptions of the language are used which means if an exception arises during test execution then it means there is a fault in the program, it is also used as a way to avoid biased testing." - Wikipedia
Monkey Testing
"In software testing, monkey testing is a technique where the user tests the application or system by providing random inputs and checking the behaviour, or seeing whether the application or system will crash. Monkey testing is usually implemented as random, automated unit tests." - Wikipedia
Fuzz Testing
"In programming and software development, fuzzing or fuzz testing is an automated software testing technique that involves providing invalid, unexpected, or random data as inputs to a computer program. The program is then monitored for exceptions such as crashes, failing built-in code assertions, or potential memory leaks. Typically, fuzzers are used to test programs that take structured inputs. This structure is specified, such as in a file format or protocol and distinguishes valid from invalid input. An effective fuzzer generates semi-valid inputs that are "valid enough" in that they are not directly rejected by the parser, but do create unexpected behaviors deeper in the program and are "invalid enough" to expose corner cases that have not been properly dealt with.
For the purpose of security, input that crosses a trust boundary is often the most useful. For example, it is more important to fuzz code that handles a file uploaded by any user than it is to fuzz the code that parses a configuration file that is accessible only to a privileged user." - Wikipedia
No comments:
Post a Comment