Другие языки программирования и технологии

Помогите описать тестовые сценарии (Test Cases) для тестирования автомата по продаже газировки. Я тут дилетант.

Стоимость одного стаканчика газировки 25 рублей

Автомат принимает деньги в купюрах и монетах

Автомат не принимает монеты меньше 1 рубля

Автомат не принимает купюры больше 100 рублей

Если внесённая сумма больше стоимости напитка, автомат выдает сдачу

Как только внесена достаточная сумма автомат выдает одноразовый стаканчик с напитком
Для начала нужно спроектировать программу. Для простоты предположим, что программа консольная и получает на входе файл с исходными данными, а на выходе файл результата.

Формат входного файла:
количество монет, засунутых в автомат, перевод строки (если количество = 0 - конец файла)
строка из целых чисел через пробел - достоинства монет

Формат выходного файла:
код ошибки или 0 при успешном завершении, перевод строки (если ошибка - конец файла)
количество монет, которые вернулись обратно, перевод строки (если количество = 0 - конец файла)
строка из целых чисел через пробел - достоинства монет

Коды ошибок: 1 - недостаточно денег для покупки, 2 - монета неправильного достоинства, 3 - некорректный входной файл
Сознательно не вводил наличие разменных монет каждого из достоинств в автомате, проще считать их бесконечными.

Задача ставится так: сгенерить много разных входных файлов и проверить соответствие выхода входу и правильность выходного файла. Что проверять:
1. Несколько неправильных файлов приводят к ошибке 3: строки вместо чисел, вещественные числа, несовпадение количества (5-7 таких файлов)
2. Некорректные достоинства монет приводят к ошибке 2 (4-6 таких файлов)
3. По сумме входных монет проверить ошибку 1 или то что вход=25+выход (много файлов)
4. Перестановки достоинств монет приводят к тому же результату (случайно сгенерить перестановки достоинств в имеющихся тестах - 3-5 на каждый тест) - проверить совпадение файлов результатов.

Как проверять пункт 3:
1. Статические файлы, к примеру на 0(обязательно должен быть) , 20, 37, 623 монет
2. Случайные наборы (10-30 файлов) для КАЖДОГО из наборов от 1 до 30
3. Случайные наборы (3-5 файлов) для случайных от 31-100 (20-30 раз выбирать) количеств.

Получается дерево тестов, в котором пункты проверки разворачивается в дерево, промежуточные вершины которого пункты проверок, а листья - конкретные тесты. Ошибка в дочернем элементе "просачивается" наверх, приводя к ошибке родителя.

Это дерево должна обходить программа-тестер, которая:
- подготавливает и вызывает тесты,
- систематизирует результаты в таблицу проверок
- выводит пары файлов вход+выход для тех, у которых поведение отличается от ожидаемого

Наборы ВСЕХ тестов и таблица результатов - это протокол проверки.
Илья Черновец
Илья Черновец
11 112
Лучший ответ
а это твоя работа, или чиста так паприкалыватса?
ну так if или case в помощь