Проверка работоспособности или тест на работоспособность — это базовый тест, позволяющий быстро оценить, может ли утверждение или результат расчета быть правдой. Это простая проверка того, является ли произведенный материал рациональным (что создатель материала мыслил рационально, применяя здравомыслие ). Цель проверки работоспособности — исключить определенные классы заведомо ложных результатов, а не выявить все возможные ошибки. Для проведения теста можно использовать эмпирическое правило или приблизительный расчет . Преимущество проведения первоначального теста на вменяемость заключается в быстрой оценке основных функций.
Например, в арифметике при умножении на 9 использование правила делимости на 9 для проверки того, что сумма цифр результата делится на 9, является проверкой работоспособности: она не выявляет каждую ошибку умножения, но является быстрым и простым методом. метод обнаружения множества возможных ошибок.
В информатике тест на работоспособность — это очень краткая проверка функциональности компьютерной программы , системы, вычислений или другого анализа, чтобы убедиться, что часть системы или методологии работает примерно так, как ожидалось. Часто это происходит перед более тщательным тестированием.
Тест на здравомыслие может относиться к различным порядкам величин и другим простым практическим методам, применяемым для перекрестной проверки математических расчетов . Например:
При разработке программного обеспечения тест на работоспособность (форма тестирования программного обеспечения , которая предлагает «быстрое, широкое и поверхностное тестирование» [1] ) оценивает результат подмножества функций приложения, чтобы определить, возможно ли и разумно ли приступить к дальнейшему тестированию. всего приложения. [2] Тесты на работоспособность иногда могут использоваться взаимозаменяемо с дымовыми тестами [3] , поскольку оба термина обозначают тесты, которые определяют, возможно ли и целесообразно ли продолжать тестирование дальше. С другой стороны, иногда делают различие: дымовой тест — это неисчерпывающий тест, который устанавливает, работают ли наиболее важные функции программы, прежде чем приступить к дальнейшему тестированию, тогда как тест на работоспособность относится к тому, являются ли определенные функции, такие как конкретная ошибка, fix работает как положено, без тестирования более широкой функциональности программного обеспечения. [ нужна цитация ] Другими словами, тест на работоспособность определяет, правильно ли работает предполагаемый результат изменения кода, в то время как дымовой тест гарантирует, что в процессе не было нарушено ничего важного. Тестирование работоспособности и дымовое тестирование позволяют избежать напрасной траты времени и усилий за счет быстрого определения того, является ли приложение слишком ошибочным, чтобы заслуживать более тщательного тестирования качества , но требует дополнительной отладки разработчиком .
Группы тестов работоспособности часто объединяются для автоматического модульного тестирования функций, библиотек или приложений перед объединением кода разработки в ветку тестирования или магистральной ветки контроля версий , [4] для автоматизированной сборки , [5] или для непрерывной интеграции и непрерывного развертывания. . [6]
Еще одно распространенное использование теста на работоспособность — для обозначения проверок, которые выполняются в программном коде, обычно над аргументами функций или возвращаемыми из них значениями, чтобы увидеть, можно ли считать ответы правильными. Чем сложнее программа, тем важнее проверить ее реакцию. Тривиальный случай — проверить, указывает ли возвращаемое значение функции на успех или неудачу, и, следовательно, прекратить дальнейшую обработку в случае неудачи. Это возвращаемое значение на самом деле часто само по себе является результатом проверки работоспособности. Например, если функция попыталась открыть файл, записать в него и закрыть его, можно использовать проверку работоспособности, чтобы гарантировать, что ни одно из этих действий не привело к сбою — эта проверка работоспособности часто игнорируется программистами. [7]
Подобные проверки работоспособности могут использоваться во время разработки в целях отладки, а также для устранения ошибок во время выполнения программного обеспечения . Например, в приложении для управления банковским счетом проверка работоспособности завершится неудачей, если при снятии средств требуется больше денег, чем общий баланс счета, вместо того, чтобы позволить счету стать отрицательным (что было бы неразумно). Другой тест на здравомыслие может заключаться в том, что депозиты или покупки соответствуют закономерностям, установленным историческими данными — например, крупные транзакции покупок или снятие наличных в банкоматах в зарубежных местах, которые владелец карты никогда раньше не посещал, могут быть помечены для подтверждения. [ нужна цитата ]
Проверки работоспособности также выполняются после установки стабильного производственного кода программного обеспечения в новую вычислительную среду , чтобы гарантировать соблюдение всех зависимостей , таких как совместимая операционная система и связанные библиотеки . Когда компьютерная среда прошла все проверки работоспособности, она считается работоспособной средой, в которой программа установки может продолжить работу с разумными ожиданиями успеха.
« Привет, мир!» Программа также часто используется в качестве проверки работоспособности среды разработки . Если эта простая программа не скомпилируется или не выполнится, а не будет сложным сценарием, выполняющим набор модульных тестов, это докажет, что в поддерживающей среде, вероятно, есть проблема с конфигурацией, которая не позволит любому коду компилироваться или выполняться. Но если «Hello world» выполняется, то любые проблемы, возникающие в других программах, скорее всего, могут быть связаны с ошибками в коде этого приложения, а не в среде.
Ассоциация вычислительной техники [ 8] и такие программные проекты, как Android , [9] MediaWiki [10] и Twitter , [11] не рекомендуют использовать фразу «проверка работоспособности» в пользу других терминов, таких как «проверка достоверности» , « проверка согласованности» или «проверка достоверности». просто протестируйте , как часть более широкой попытки избежать эйблистского языка и повысить инклюзивность .
Распространенной привычкой программирования является игнорирование возвращаемого значения из fprintf(stderr, ...