Почему тест ваш код

Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.

Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.

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

Предположим, что вы создаете процедуру, которая принимает два числовых аргумента, a и b, сравнивает их и возвращает большее число:

f := proc(a:Type::Numeric, b:Type::Numeric)
begin
  if a = b or a > b then
    return(a)
  else
    return(b)
  end_if
end_proc:

Тип Type::Numeric включает целые числа, rationals, числа с плавающей запятой, и также комплексные числа. Поэтому любые комплексные числа являются допустимыми аргументами процедуры f. f процедуры имеет дефект в своем проекте, потому что вы не можете сравнить два комплексных числа. Если вы вызываете эту процедуру для двух различных комплексных чисел, вызов процедуры приводит к ошибке. Тем не менее, процедура работает, если вы вызываете ее для равных комплексных чисел:

f(I, I)

Предположим, что вы решаете сохранить процедуру f как есть. Это работает на равные сложные аргументы. Ошибка только происходит, когда сложные аргументы не равны. Позже, вы или кто-то еще забываете о проблеме с комплексными числами, но видите, что процедура может быть улучшена можно следующим образом:

f := proc(a:Type::Numeric, b:Type::Numeric)
begin
  if a >= b then
    return(a)
  else
    return(b)
  end_if
end_proc:

Этот код выглядит короче, и использует в своих интересах оператор >=. Однако, если некоторые пользователи полагались на процедуру f, чтобы распознать равные комплексные числа, их пропуски кода, когда они используют обновленную версию:

f(I, I)
Error: Unable to evaluate to Boolean. [_leequal]
  Evaluating: f

Если вы не создаете и используете тестовый скрипт для процедуры f, вы никогда не можете понимать, что процедура прекратила работать на конкретный выбор аргументов. Даже если вы протестировали этот выбор аргументов прежде, вы можете забыть тестировать его на обновленную версию. При записи тестового скрипта и выполнении его каждый раз, когда вы (или кто-то еще) обновляете свой код, помогает избежать неожиданной потери в функциональности.