Hacker News new | past | comments | ask | show | jobs | submit login

Step 1: Gather timings of key presses from a lot of kids.

2: Use ML to learn how to simulate it.

3: Sell it as a service, labeling it KaaS.

4: Profit, then go to jail because of a misunderstanding.

But seriously, is there such a tool to automate this?




People have been fuzzing user interfaces since the 80s. It was used for developing MacPaint and MacWrite in Apple's original Macintosh. Quote Wikipedia:

> In 1983, Steve Capps at Apple developed "The Monkey", a tool that would generate random inputs for classic Mac OS applications, such as MacPaint [0]. The figurative "monkey" refers to the infinite monkey theorem which states that a monkey hitting keys at random on a typewriter keyboard for an infinite amount of time will eventually type out the entire works of Shakespeare. In the case of testing, the monkey would write the particular sequence of inputs that will trigger a crash.

Read the story here:

https://www.folklore.org/StoryView.py?story=Monkey_Lives.txt


Thanks for sharing that story. It's probably the reason why Netflix decided to use "monkey" for the name of their tool to randomly terminate service instances: https://netflix.github.io/chaosmonkey/


I frequently use the monkey bundled with the Android tool chain[0] to stress test my UIs. Have found numerous issues throughout the years by using it

[0] https://developer.android.com/studio/test/monkey


That's really cool, I never knew about that. I'll have to try it on my apps!



As others have pointed out, you are describing fuzzing but rather than purely random you’ve trained your fuzzer on a particularly troublesome set of random variables ;-)


There's also model based testing and property based testing. QuickTest in Haskell and Erlang can generate test cases for your code.


I have been using the name monkey-testing for this kind of testing for as long as I can remember. There are tools to automate it.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: