Как запрограммировать собственный тестовый код

Я не знаю, что это за выражение на английском языке, но я имею в виду, что код, который вы используете, чтобы убедиться, что код правильный, все возможные случаи работают, и программа делает то, что должна (например, если я делаю код для работы с матрицей, я хочу быть уверен, что она работает с 3x3, 5x100 и всеми видами матриц, это то, что я имею в виду под тестовым кодом).

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

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

Сам проект посвящен вводу-выводу, я должен сделать так, чтобы он работал на чтение и запись в «буфере» (DUART называется: MC68681 DUART, а сам ассемблер, кажется, называется MC68000).

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

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


person keont    schedule 27.10.2013    source источник


Ответы (1)


ну, кажется, вы знаете, что программа должна делать правильно?

следующий шаг — разбить его на части и намеренно разбить каждую часть. Это похоже на создание алгоритмов, получить базовое представление о том, что программа делает шаг за шагом... 1. она делает это; 2. делает это; 3. затем это; 4. еще один шаг и так далее, пока не закончит работу.

Для каждой части программы: - Определите, что она делает - Создайте метод для проверки правильных значений - Создайте другие методы для целенаправленной проверки неправильных значений (другими словами - сломайте ее).

Сделайте тест, чтобы знать, какие значения будут выводиться, используйте свои методы и посмотрите, все ли они верны.

person MGHandy    schedule 27.10.2013
comment
Это именно проблема. Прямо сейчас я не знаю СОВЕРШЕННО каждый метод, но то, что вы говорите о нарушении каждой части, сделано. Возможно, не идеально, но сделано, я строю каждую из самых простых частей, чтобы потом склеить все вместе. Это часть о тестировании, я понятия не имею, как это сделать. Какие значения, как запустить программу, вроде бы вообще что угодно, я видел всего 1 пример, и то убогий, так что совсем запутался. - person keont; 27.10.2013
comment
Извините, что оставляю вас. Я пытался найти лучший способ объяснить, иногда это довольно сложно. Я нашел ссылку, которая может помочь вам. sydney.edu.au/engineering/it/~soft1002/java_expository/ - person MGHandy; 28.10.2013
comment
Лучший способ, который я могу проверить, - это написать отдельный тестовый класс для проверки всех ваших методов, то, что вы делаете, - это установить в этом тестовом классе предопределенные значения или (ожидаемые значения) для передачи в исходную программу. Протестируйте значения, которые сломают его, и значения, которые, как вы знаете, будут приняты. если что-то сломается, когда не должно, вернитесь и исправьте это, а затем снова запустите тесты, пока не разберетесь во всем. - person MGHandy; 28.10.2013
comment
Нет проблем с подвесной частью. Что касается вашего второго комментария, это именно то, что я хочу сделать, я просто не знаю, как заставить DUART начать отправлять байты, чтобы я мог проверить, получу ли я их обратно, я не знаю, как сделать основную программу, которая дает исправить информацию, чтобы можно было протестировать методы, и так далее. Это сложная часть, я думаю, что мне не хватает понимания ассемблера, чтобы сделать это. Проверяю ссылку прямо сейчас - person keont; 28.10.2013
comment
Извините, что это так расплывчато, но, поскольку это университетский проект, я не был уверен, каковы правила в отношении того, что я могу вынести из самой постановки задачи. - person keont; 28.10.2013
comment
Я нашел целую вещь по программированию на ассемблере 68000, которая может быть полезна: ссылка. Извините, я не могу больше помочь, я не слишком знаком с программированием на ассемблере. - person MGHandy; 30.10.2013
comment
Все в порядке, чувак, пока что ты помог больше, чем кто-либо другой. Эта ссылка кажется действительно полезной, сначала я подумал, что это это другое руководство Но ваша, вероятно, лучшая написанная книга, связанная с программированием, которую я когда-либо видел. И я видел, что у него есть множество примеров, поэтому я чувствую, что нашел золотую жилу. конечно, это 400 страниц, так что это потребует некоторого времени, но я думаю, что из этого что-то получится - person keont; 30.10.2013
comment
Я рад, что смог дать вам что-то полезное, я просмотрел оглавление и нашел кое-что важное, и начал просматривать эти разделы, похоже, это поможет, поэтому я отправил ссылку на него. Я нашел около 10 миллионов разных вещей, но ни одна из них не выглядела такой уж полезной. - person MGHandy; 31.10.2013