Мне дали задание:

Рассмотрим список однозначных чисел. Например, [2,2,5]. Рассмотрим наследников таких списков.

  • Преемником [2,2,5] является [2,2,6].
  • Преемником [2,3,9,9] является [2,4,0,0].
  • Преемником [9,9,9,9] является [1,0,0,0,0].

Напишите программу на Java, которая принимает такой список чисел как ввод и возвращает его преемника. Вы не можете выразить этот список как десятичное число и вычислить его преемник, поскольку число может быть настолько большим, что происходит переполнение. Сделайте вашу программу максимально короткой.

Отправьте код на Java вместе с инструкциями по компиляции и тестовыми сценариями.

Я написал программу, скомпилировал и успешно запустил ее. Программа делает именно то, что требует назначение. Однако я не уверен, что инструктор имеет в виду под тестовыми сценариями. Кто-нибудь, пожалуйста, объясните и приведите пример, что это такое?

Примечание. Если вы решите отклонить вопрос, укажите причину, чтобы я мог отредактировать свой вопрос.

-2
Kane Billiot 28 Фев 2017 в 23:19

2 ответа

Лучший ответ

Посмотрите Junit. Профессор хочет, чтобы вы создали тестовый класс, который тестирует конкретные сценарии. Что-то вроде этого:

@Test
public void testSuccesor() {
   int[] start = {2,2,5};
   int[] expected = {2,2,6};

   int[] actual = callSuccesorMethod(start);

   assertArrayEquals(expected, actual);
}

Тест выдаст ошибку, если ожидаемое значение не соответствует фактическому значению. Модульное тестирование - отличный способ проверить ваш код. Это также помогает в дальнейшей разработке, когда вы изменяете код, вы можете просто повторно запустить свои тесты, чтобы убедиться, что вы ничего не сломали.

Проверьте TDD, его стиль программирования, который может вас заинтересовать.

3
Mason T. 28 Фев 2017 в 20:28

Тестовый скрипт - это программа, которая выполняет ваш код (известный как « тестируемая система » или просто « SUT ») предсказуемым образом и проверяет его поведение. исправить для заданных входов. Тест может быть на том же языке, что и SUT, но очень часто используется другой язык, поскольку у вас разные требования к производительности, простоте модификации, удобочитаемости и надежности.

Например, простого сценария оболочки может быть достаточно в вашем случае:

#!/bin/bash
set -e # important, so the script fails if any single command fails

test '2,2,6' = $(./successor '2,2,5')
test '2,4,0,0' = $(./successor '2,3,9,9')
# Add any more tests you think you should have

Если ваши инструкции по компиляции представлены в виде Makefile, вы также можете запустить свои тесты оттуда. Общепринято называть цель test, поэтому make test будет компилировать вашу программу и запускать ее тесты.

0
Toby Speight 7 Мар 2017 в 10:03