What tool(s) would you use to generate a random list of 100 words? – 30 Days of Tools, Day 11

It’s Day 11 of the 30 Days of Tools challenge. Time to get a little creative with your words! :writing_hand:


What tool(s) would you use to generate a random list of 100 words?

  • What’s the simplest option you could implement?
  • How creative – and perhaps unnecessary – could you get? (Internet of things, anyone? :wink:)
  • Demo your solutions/ideas in whatever way works for you

Feel free to reply to this post and share wherever you like, on the MoT Slack, LinkedIn, Twitter using #30DaysOfTools, Racket, your blog, with your team and any place you feel might inspire yourself and others to do the same. Let’s learn from each other throughout October. Visit the 30 Days of Tools page and select the “Subscribe to Topic” button to receive each daily challenge direct to your inbox.


:point_right: Have you seen the amazing schedule and registered for Test.bash();?

It’s on October 28th, 10am-10pm UK time. Available with a Pro Subscription or you can purchase a ticket.

2 Likes

I suppose we all know Lorem Ipsum, but do you know the cupcake version?

wordList

6 Likes

If you want non English words (and not French don’t be affraid) I love to use Lorem Ipsum - All the facts - Lipsum generator
“Lorem Ipsum is a placeholder text commonly used to demonstrate the visual form of a document” Lorem ipsum - Wikipedia
rec-tab

4 Likes

Oh!!! I missed it you said that already!

3 Likes

My go-to tool is the blindtext generator.
Blindtext

But for the icing on the cupcake, I guess I will try out cupcakeipsum.

3 Likes

Python REPL for the win

This kinda should “work” its someone written it in scala, so it’s probably a bit tricky to host your own copy, but possible to prevent load abuse. #AutomateAllOfTheThings

/edit It suddenly struck me how I approached this as a “portable” question, but not “scaleable” , I also did not include a loop to call this method 100 times, since that may get me rate-limited, and I was actually writing this code with google open on one side trying to not make any mistakes as a went along (which is totally rare for me.) The tester in me also has to remind people, these will be engleesh-US spellings. Using this as a reminder to look at the test-data generator problem that I want to get time to implement as well.

2 Likes

Simplest is probably just to rip 100 words out of the dictionary file on linux filesystems.

with open("/usr/share/dict/words", "r") as f:
    words = f.readlines()

for _ in range(100): 
    print(random.choice(words))

Most creative? I’d look at the stock markets, take the top 100 companies in a market, read their deltas for the last 24 hours, use a conversion to make that into a letter, then choose a word starting in that letter based off their deltas in the last week and a position in the dictionary file from before. (though now I wonder if Benford’s law would make it less random than it could otherwise be)

The demo is above already in the rathe simple Python shown.

3 Likes

I am going to write more about this on my blog, I have some ideas for unnecessarily creative solutions. But for now:

Really simple, easy and boring method

Do a quick google and see what tools already exist. The first result when googling ‘generate 100 random words’ was the following website:

https://www.randomlists.com/random-words

It provided the option to select a specific data set, quantity of words and decide if you want duplicate words or not. You then click the 'rerun' button, and a set of random words are generated for you.

First 20 of the 100 random words I generated


Tools Used: Google, RandomLists.com

Other ideas

  • Watch Countdown, use words identified in each round or generate your own .
  • Get a cat or dog to walk on the keyboard
  • Listen to my 18 month old niece (new words created every day)

Full blog post:

2 Likes
  • What’s the simplest option you could implement?
    Use a free online dictionary, loop trough it and randomize the output.
  • How creative – and perhaps unnecessary – could you get? (Internet of things, anyone? :wink:)
    There are a ton of existing random text generators to use, I’d probably re-invent the wheel and scrape together some coded solution (preferably in C# or Java)
  • Demo your solutions/ideas in whatever way works for you
1 Like

Some years ago I developed native iOS and Android keyboards called TesterKey which one was able to use to generate different kinds of test data directly when testing on mobile devices without having to leave the app or website you were testing to go to another website or a different app for getting the data. Besides different string and number generation I thought to include support for generating test images in different resolutions, videos etc.

Didn’t have enough time to keep updating them for newer iOS and Android versions, but maybe I’ll bring this project back to life again some day. Here are the slides of a presentation I did regarding the tool at Nordic Testing days in 2017 https://nordictestingdays.eu/files/files/risko_ruus-a_story_of_a_tester_building_his_first_mobile_app-15.05.pdf

If someone would like to collaborate on such a project then feel free to get in touch :slight_smile:

2 Likes

Boring answer, but I would almost certainly just use faker.js

var faker = require('faker');

for(i=0;i<100;i++){
   console.log(faker.random.word());
}

For fun, I’d probably start stringing things together to try and make something comprehensible, e.g.

var faker = require('faker');

for(i=0;i<100;i++){
    console.log(faker.fake("{{name.firstName}} is {{hacker.ingverb}} the {{hacker.adjective}} {{animal.type}}")
    );
}

Will give you results like:

Dereck is compressing the back-end horse
Sadie is synthesizing the primary insect
Freeman is transmitting the 1080p cetacean
Stacy is backing up the haptic rabbit
Kevin is quantifying the mobile cow
Dedric is indexing the neural insect
Bianka is quantifying the 1080p bear
Stan is backing up the cross-platform snake
2 Likes

My own code that picks words at random from a list of thousands. This has most likely been done already, so I’d look for a random word API and utilize that. It would be a fun exercise.

Create a weird one like Star Wars ipsum if it doesn’t already exist!

Crud it exists, just go here, no demo required… Star Wars Ipsum - Lorem Ipsums Though it is not that great or flexible…

1 Like

What’s the simplest option you could implement?

A tiny script that gets the list from an API (e.g: Random word API). If that is not allowed, then something more involved like a library (e.g: RandomStringUtils (Apache Commons Lang 3.12.0 API)) spits them out throgh the channel and in a format that we need.

It also depends if the “word” have to be actual English words or any string suffices.

How creative – and perhaps unnecessary – could you get? (Internet of things, anyone? :wink:)

Two unnecessarily complex, but interesting scenarios popped into my head immediately:

  1. Access Wikipedia, start clicking links at random with random depth (how many iterations) and RegEx match any word from the end page.
  2. Use a previously trained AI (or you can train on yourself if we’re talking needlessly complex) and make him spit out words.

Demo your solutions/ideas in whatever way works for you.

I’m commiting to sharing a GitHub repo attempting the 1st approach above. Come back to this post in a week or so.

1 Like