Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемМарианна Евстафьева
1 Автотестирование и самотестирование Теория программирования, лекция первая
2 Что такое тестирование?
3 Виды тестирования Ручное Автоматическое – Юнит-тесты – Внешние тесты – Эмуляция работы пользователя Самотестирование программы
4 Заключается в том, что в ряде потенциально проблемных мест ставятся специальные проверки корректности работы программы, которые работают только под отладкой
5 Assert Assert(expr : Boolean [; const msg: string]); Пример – Assert(index > 0); Или более человечно: – Assert(index > 0, Обращение к базе книг по неверному индексу);
6 Assert. Боевой пример Function GetHumanNameOfDigit(digit: Byte): String; Begin Assert(digit >= 0); Assert(digit
7 Моя процедура – моя крепость Обычно проверяют – Невероятные ситуации – Данные, пришедшие извне (с сервера?) – Параметры процедур
8 Assert в больших проектах Все остальные программисты, запускающие в отладке вашу программу, параллельно работают тестерами ;-) Assert помогает – Когда другие программисты правят ваш код, не разбираясь в нем на 100% – Когда другие программисты правят код соседних модулей, генерирующих данные для вашего – Когда у вас болит голова и вы делаете ошибки
9 Включение/выключение ассертов Включить – {$C+} или – {$ASSERTIONS ON} Выключить – {$C-} – {$ASSERTIONS OFF} По умолчанию – включены
10 Юнит-тесты Юнит-тест – это набор тестов, которые проверяют корректность работы процедуры при любых параметрах её вызова. Юнит-тесты запускаются в начале работы программы или перед началом работы программы.
11 Покрытие юнит-тестами Считается, что 100% процедур должно быть покрыто юнит-тестами. На практике, это условие может быть соблюдено только в NASA и аналогично по масштабам вложений в ПО организациям.
12 Пример юнит-тестов Procedure TestGetHumanNameOfDigit(); Begin Assert(GetHumanNameOfDigit(-1) = ); Assert(GetHumanNameOfDigit(10) = ); Assert(GetHumanNameOfDigit(2) = два); End;
13 Правило покрытия тестами ф-ии Каждая ветвь исполнения кода должна быть проверена хотя бы 1 раз.
14 4 веточки – 4 проверки Function GetSignedDigitHumanName(digit: Byte): String; Begin If (digit < -9) Then … Else If (digit < 0) Then … Else If (digit < 10) Then … Else … End;
15 Тоже 4 ветви Function CalcFunc(a, b: Byte): Integer; Begin If (a > 0) Then begin if (b > 0) Then …. else …. end else begin if (b > 0) Then …. else …. end; End;
16 Запуск юнит-тестов При использовании достаточно сложных подходов можно запускать тесты отдельно от программы Надо понять принцип: – Поэтому можем запускать, когда в командной строке при запуске программы указан ключ «- tests»
17 Пример If (ParamCount = 1) And (ParamStr(1) = - tests) Then begin TestGetDigitHumanString(); … end;
18 Важность Считается, что без автотестирования / самотестирования большой проект не сделать.
19 Вопросы
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.