#c #тестирование #юнит_тесты
Closed. This question is opinion-based. It is not currently accepting answers. Want to improve this question? Update the question so it can be answered with facts and citations by editing this post. Closed 4 года назад. Может кто-то объяснить принцип - как оно должно работать? Что такое тест для программы? К примеру, есть задание: написать тест для программы, выводящей результат сложения двух введенных чисел.
Ответы
Ответ 1
Я бы предложил вам выбрать стратегию тестирования, например, начать с простейших: черного и белого ящиков. При использования метода черного ящика вы знаете то, что вам необходимо подать на вход, и соответственно, что вы получите на выходе для данного входа. А значит вы можете составлять тесты исходя из этих знаний. Например для сложения чисел, у вас таблица из трех столбцов, первые два - входные значения, третий - результат. Проверяя по таблице работу вашей программы вы получите (в зависимости от количества проведенных тестов) % верных решений. Обычно такие тесты называют системными (Sytem tests). Они более общие. Например, если у вас система из 5ти модулей, вы будете тестировать всю систему сразу, так как вы не знаете, что должно быть на входе и выходе любого из модулей, а знаете только общий результат. При использовании метода белого ящика - вы знаете всю логику программы, так вы можете проверить каждую часть своей программы: операторы, условия, вводимые значения и т.п. Обычно данный тип тестов называется юнит-тестом. Это тест, в котором вы проверяете работу не всей программы, а ее отдельных (атомарных в какой-то степени) частей. Рассматривая предыдущий пример с 5ю модулями, вам известен вход и выход всех, вы можете тестировать каждый в отдельности или комбинировать их последовательность (заданную логикой программы, естественно).Ответ 2
Тест, если говорить по-простому, это когда подаются в программу известные начальные данные (желательно качественно и количественно разные) и её ответ сравнивается с эталоном. То есть с тем, что должна выводить КОРРЕКТНО работающая программа. Для такого простого случая она должна просто проверять правильность сложения. Задала числа, запустила тестируемую программу и проверила её ответ. Сошёлся - хорошо. Не сошёлся - программа работает неправильно.Ответ 3
Кроме того, правильно написанная программа должна обрабатывать и ошибки ввода. Что произойдет если пользователь ввел только один аргумент? А если на вход поступило не число, а строка? А если программа не смогла запуститься из за нехватки ресурсов, например, оперативной памяти? Правильно сформированный тест должен проверять не только штатную работу программу, но и её реакцию на нештатные ситуации.
Комментариев нет:
Отправить комментарий