Страницы

Поиск по вопросам

четверг, 12 декабря 2019 г.

Что такое юнит-тесты? [закрыт]

#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



Кроме того, правильно написанная программа должна обрабатывать и ошибки ввода. Что произойдет если пользователь ввел только один аргумент? А если на вход поступило не число, а строка? А если программа не смогла запуститься из за нехватки ресурсов, например, оперативной памяти? Правильно сформированный тест должен проверять не только штатную работу программу, но и её реакцию на нештатные ситуации.

Комментариев нет:

Отправить комментарий