commit c5abeb29f8072bd0c517712431aae0b98d3d12b6 from: Sergey Bronnikov via: GitHub date: Tue Aug 21 12:38:22 2018 UTC Add example commit - 8369b531f8c7829f5d4daaef6c3187d381d92ae0 commit + c5abeb29f8072bd0c517712431aae0b98d3d12b6 blob - ba8a06acb2e5c52ab62807786b27f071eb5c3ecf blob + 80dbbdbbeea6ae7e88e9e6ca7ca696bd15cade16 --- README.md +++ README.md @@ -11,3 +11,212 @@ used together, and it can avoid those feature combinat [Learn more](https://csrc.nist.gov/Projects/Automated-Combinatorial-Testing-for-Software) about combinatorial testing. + +#### Example + +Let's imagine we have a program with three features and various values for each feature: + +- Sex: ♀️, ♂️ +- Weather: 🌧, ⛈, 🌩, ☀️, 🌤, 🌥 +- Mood: 😃, 😉, 😋, 😎, 🤐, 🤒, 😠, 😦, 😧, 😨, 😴, 😌 + + +Jenny can generate combinations: + +``` +$ ./jenny -n3 2 6 12 + 1a 2d 3j + 1b 2e 3i + 1a 2a 3e + ... + + 1a 2f 3i + 1b 2a 3c +``` +where 3 is a number of features in combination, 2, 6 and 12 are numbers of possible values for the appropriate feature. Total number of possible combinations is 144. + + +``` +$ cat jenny.sed +# number the testcases += + + +# Dimension 1 +s/ 1a / ♀️ /g +s/ 1b / ♂️ /g + +# Dimension 2 +s/ 2a / 🌧 /g +s/ 2b / ⛈ /g +s/ 2c / 🌩 /g +s/ 2d / ☀️ /g +s/ 2e / 🌤 /g +s/ 2f / 🌥 /g + +# Dimension 3 +s/ 3a / 😃 /g +s/ 3b / 😉 /g +s/ 3c / 😋 /g +s/ 3d / 😎 /g +s/ 3e / 🤐 /g +s/ 3f / 🤒 /g +s/ 3g / 😠 /g +s/ 3h / 😦 /g +s/ 3i / 😧 /g +s/ 3j / 😨 /g +s/ 3k / 😴 /g +s/ 3l / 😌 /g +``` + +``` +$ sed -f jenny.sed output.txt +``` + + +``` + ♀️ ☀️ 😨 + ♂️ 🌤 😧 + ♀️ 🌧 🤐 + ♀️ ⛈ 😃 + ♀️ 🌩 😎 + ♂️ 🌥 😌 + ♂️ ⛈ 😉 + ♀️ 🌤 😋 + ♂️ 🌩 🤒 + ♀️ 🌥 😠 + ♀️ 🌩 😦 + ♀️ 🌤 😴 + ♂️ 🌧 😦 + ♂️ ☀️ 😴 + ♀️ 🌧 😌 + ♀️ ⛈ 😌 + ♂️ ☀️ 😌 + ♀️ 🌥 😴 + ♂️ 🌧 😨 + ♂️ ⛈ 😨 + ♀️ 🌩 😌 + ♀️ ☀️ 😧 + ♀️ 🌤 😌 + ♂️ 🌥 😧 + ♂️ 🌧 😧 + ♀️ ⛈ 😧 + ♀️ 🌩 😧 + ♂️ ☀️ 😦 + ♂️ 🌤 😦 + ♂️ 🌥 😦 + ♀️ 🌧 😴 + ♀️ ⛈ 😦 + ♂️ 🌩 😨 + ♂️ ☀️ 😠 + ♀️ 🌤 😠 + ♀️ 🌥 😨 + ♀️ 🌧 😠 + ♂️ ⛈ 😠 + ♂️ 🌩 😠 + ♀️ ☀️ 🤒 + ♂️ 🌤 🤒 + ♀️ 🌥 🤒 + ♂️ 🌧 😃 + ♀️ 🌧 😉 + ♂️ ⛈ 😋 + ♂️ ⛈ 😎 + ♂️ 🌩 🤐 + ♀️ ☀️ 🤐 + ♀️ 🌤 🤐 + ♀️ 🌥 🤐 + ♀️ 🌩 😴 + ♂️ ☀️ 😎 + ♂️ 🌤 😎 + ♀️ 🌥 😎 + ♀️ 🌥 😃 + ♀️ 🌥 😉 + ♀️ 🌥 😋 + ♀️ 🌧 🤒 + ♀️ ⛈ 🤒 + ♂️ 🌩 😋 + ♂️ ☀️ 😋 + ♀️ 🌤 😨 + ♂️ ☀️ 😃 + ♀️ ☀️ 😉 + ♀️ 🌧 😋 + ♀️ ⛈ 🤐 + ♂️ 🌩 😉 + ♂️ 🌤 😉 + ♂️ 🌩 😃 + ♀️ 🌧 😎 + ♀️ ⛈ 😴 + ♂️ 🌤 😃 + ♂️ 🌧 😉 + ♂️ 🌤 😌 + ♂️ 🌤 😴 + ♂️ 🌤 😨 + ♂️ 🌤 😠 + ♂️ 🌤 🤐 + ♂️ 🌥 😨 + ♂️ 🌤 😋 + ♀️ 🌧 😃 + ♂️ 🌥 😋 + ♀️ ☀️ 😌 + ♂️ 🌥 😃 + ♀️ ☀️ 😴 + ♂️ ☀️ 😨 + ♀️ ☀️ 😦 + ♂️ ☀️ 😧 + ♀️ ☀️ 😠 + ♂️ ☀️ 🤒 + ♀️ 🌥 😌 + ♂️ ☀️ 🤐 + ♀️ ☀️ 😎 + ♂️ 🌥 😴 + ♀️ ☀️ 😋 + ♂️ 🌥 🤒 + ♀️ 🌤 🤒 + ♂️ ☀️ 😉 + ♀️ ☀️ 😃 + ♂️ 🌥 🤐 + ♀️ 🌥 😦 + ♂️ 🌩 😌 + ♀️ 🌩 😨 + ♂️ 🌩 😴 + ♀️ 🌩 😠 + ♂️ 🌩 😧 + ♀️ 🌩 🤒 + ♂️ 🌩 😦 + ♀️ 🌩 🤐 + ♂️ 🌩 😎 + ♀️ 🌩 😋 + ♂️ 🌥 😠 + ♀️ 🌩 😉 + ♂️ 🌥 😎 + ♀️ 🌩 😃 + ♂️ 🌥 😉 + ♀️ 🌤 😃 + ♂️ ⛈ 😌 + ♀️ ⛈ 😨 + ♂️ ⛈ 😴 + ♀️ ⛈ 😠 + ♂️ ⛈ 😧 + ♀️ 🌤 😧 + ♂️ ⛈ 😦 + ♀️ 🌤 😎 + ♂️ ⛈ 🤒 + ♂️ 🌧 😴 + ♀️ ⛈ 😎 + ♂️ 🌧 😠 + ♀️ ⛈ 😋 + ♂️ 🌧 🤒 + ♀️ ⛈ 😉 + ♂️ 🌧 🤐 + ♀️ 🌧 😨 + ♀️ 🌧 😧 + ♂️ ⛈ 🤐 + ♀️ 🌧 😦 + ♂️ ⛈ 😃 + ♀️ 🌤 😦 + ♂️ 🌧 😌 + ♀️ 🌤 😉 + ♂️ 🌧 😎 + ♀️ 🌥 😧 + ♂️ 🌧 😋 +```