Правильность (информатика)

редактировать

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

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

Например, последовательно перебирая целые числа 1, 2, 3,…, чтобы увидеть, можем ли мы найти пример какого-либо явления - скажем, нечетное совершенное число - довольно легко напишите частично правильную программу (используя длинное деление на два, чтобы проверить n как идеальное или нет). Но сказать, что эта программа полностью правильна, значило бы утверждать что-то , в настоящее время не известное в теории чисел.

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

A глубокий результат в теории доказательств, соответствие Карри – Ховарда, утверждает, что доказательство функциональной корректности в конструктивной логике соответствует определенной программе в лямбда-исчислении. Такое преобразование доказательства называется программным извлечением.

Логика Хоара - это особая формальная система для строгих рассуждений о правильности компьютерных программ. Он использует аксиоматические методы для определения семантики языка программирования и спора о правильности программ с помощью утверждений, известных как тройки Хоара.

Тестирование программного обеспечения - это любая деятельность, направленная на оценку атрибута или возможности программы или системы и определение того, что она соответствует требуемым результатам. Несмотря на решающее значение для качества программного обеспечения и широко применяемое программистами и тестировщиками, тестирование программного обеспечения по-прежнему остается искусством из-за ограниченного понимания принципов работы программного обеспечения. Сложность тестирования программного обеспечения связана с его сложностью: мы не можем полностью протестировать программу средней сложности. Тестирование - это больше, чем просто отладка. Целью тестирования может быть обеспечение качества, верификация и валидация или оценка надежности. Тестирование также можно использовать в качестве общей метрики. Проверка правильности и проверка надежности - две основные области тестирования. Тестирование программного обеспечения - это компромисс между бюджетом, временем и качеством.

См. Также

Примечания

Ссылки

Последняя правка сделана 2021-05-15 13:08:18
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте