Оцените презентацию от 1 до 5 баллов!
Тип файла:
ppt / pptx (powerpoint)
Всего слайдов:
17 слайдов
Для класса:
1,2,3,4,5,6,7,8,9,10,11
Размер файла:
175.48 kB
Просмотров:
85
Скачиваний:
0
Автор:
неизвестен
Слайды и текст к этой презентации:
№1 слайд![Тестирование программистом.](/documents_6/ebd7b2cbe7254bce12e14fcca475ca23/img0.jpg)
Содержание слайда: Тестирование программистом. Юнит-тесты. Фреймворки для тестирования
Еникеев Р.Р.
№2 слайд![Введение Программисты не](/documents_6/ebd7b2cbe7254bce12e14fcca475ca23/img1.jpg)
Содержание слайда: Введение
Программисты
не должны надеяться на то, что их код работает правильно
должны доказывать корректность кода снова и снова
Лучший способ доказать - автоматизированные тесты
Обычно программисты выполняют ручное тестирование
Автоматизированный тест
Пишется программистом
Запускается на компьютере
Во время тестирования
Тестировщик ищет баги
Программист убеждается в корректности программы
№3 слайд![Unit тесты Программисты](/documents_6/ebd7b2cbe7254bce12e14fcca475ca23/img2.jpg)
Содержание слайда: Unit тесты
Программисты тестируют сам код, а не результат щелчка по кнопке на сайте
Unit-тест – блок кода (обычный метод), который вызывает тестируемый блок кода и
Тестирует минимально возможный участок кода
Класс
Метод
Проверяет его правильность работы (сравнение ОР и ФР)
Тестируемый код
Тестируемая система (SUT, system under test)
Тестируемый класс (CUT, class under test)
№4 слайд![Когда пишутся тесты Мы](/documents_6/ebd7b2cbe7254bce12e14fcca475ca23/img3.jpg)
Содержание слайда: Когда пишутся тесты
Мы создаем тесты по мере написания кода, не ожидая завершения написания всего приложения
Также как ручное тестирование
У нас может не быть UI или других классов, но мы все равно тестируем наш код
№5 слайд![Свойства хорошего unit теста](/documents_6/ebd7b2cbe7254bce12e14fcca475ca23/img4.jpg)
Содержание слайда: Свойства хорошего unit теста
Автоматизированный и повторяемый
После написания тест должен остаться для последующего использования, чтобы использовать как регрессионное тестирование
Должен легко запускаться и выполнятся быстро
Чтобы выполняться как можно чаще и программист не ленился их запускать
Простым в реализации
Чтобы программист не ленился писать юнит-тесты
Сложные тесты занимают много времени программиста
Написать юнит-тест не сложно, сложнее написать код, который будет поддерживать тестирование
№6 слайд![Свойства хорошего unit теста](/documents_6/ebd7b2cbe7254bce12e14fcca475ca23/img5.jpg)
Содержание слайда: Свойства хорошего unit теста
Любой участник разработки должен иметь возможность запустить unit тест
Поэтому тесты должны сохраняться в CVS (также как SUT)
Независимые (могут запускаться независимо)
Отсутствие побочных эффектов!
№7 слайд![Хранение тестов Тесты можно](/documents_6/ebd7b2cbe7254bce12e14fcca475ca23/img6.jpg)
Содержание слайда: Хранение тестов
Тесты можно хранить
Снаружи проекта как отдельный проект
в релиз будет уходить только код
Внутри рабочего проекта
тесты будут поставляться вместе с кодом, что позволит запустить их на пользовательском компьютере
№8 слайд![Имя тест-кейса Юнит-тесты](/documents_6/ebd7b2cbe7254bce12e14fcca475ca23/img7.jpg)
Содержание слайда: Имя тест-кейса
Юнит-тесты необходимо сопровождать как и обычный код
поэтому важно выбирать правильные имена
Имя тест-кейса
объясняет для чего он нужен
другие программисты смогут понять для чего он нужен
помогает лучше разобраться нам самим, что мы тестируем
не понимая этого, мы не сможем написать тест (также как обычная функция)
№9 слайд![Именование тестов Много](/documents_6/ebd7b2cbe7254bce12e14fcca475ca23/img8.jpg)
Содержание слайда: Именование тестов
Много способов именования юнит-тестов
Бывают соглашения по именованию внутри компании/отдела
Именования тестового класса для Foo – FooTest
Каждый класс тестирует только одну сущность
Принцип именования тестов
[Тестирующийся метод]_[Сценарий]_[Ожидаемое поведение]
№10 слайд![Фреймворки для тестирования](/documents_6/ebd7b2cbe7254bce12e14fcca475ca23/img9.jpg)
Содержание слайда: Фреймворки для тестирования
Существует большое количество фреймворков для разных ЯП
https://en.wikipedia.org/wiki/List_of_unit_testing_frameworks
Большинство фреймворков очень похожи, т.к. основаны на общей идее и имеет инфраструктуру (иерархию классов)
для создания тестов
Вспомогательные функции для assert’ов
для запуска тестов (test runners)
Во многих IDE есть поддержка тестовых фреймворков
№11 слайд![Самый простой пример](/documents_6/ebd7b2cbe7254bce12e14fcca475ca23/img10.jpg)
Содержание слайда: Самый простой пример тест-кейса
Тест-кейс должен начинаться с test
Инфраструктура создания в
unittest.TestCase
В одном классе могут нахо-диться множество тест-кейсов
unittest.main() – предоставляет интерфейс командной строки
№12 слайд![Test runner Test runner](/documents_6/ebd7b2cbe7254bce12e14fcca475ca23/img11.jpg)
Содержание слайда: Test runner
Test runner запускает тесты и выдает результат
Сколько тестов запустилось
Если произошла ошибка
Место ошибки
Причина ошибки
Существуют
Console runner
GUI runner
Тест-кейс и раннер независимы, поэтому можно использовать любой раннер.
№13 слайд![Тестирование калькулятора](/documents_6/ebd7b2cbe7254bce12e14fcca475ca23/img12.jpg)
Содержание слайда: Тестирование калькулятора
№14 слайд![Список assert ов](/documents_6/ebd7b2cbe7254bce12e14fcca475ca23/img13.jpg)
Содержание слайда: Список assert’ов
№15 слайд![Дизайн тест-кейсов AAA - unit](/documents_6/ebd7b2cbe7254bce12e14fcca475ca23/img14.jpg)
Содержание слайда: Дизайн тест-кейсов
AAA - unit тест состоит из 3 частей
Arrange – создаем все объекты, которые необходимы для выполнения тестирования
calc = Calc()
Act – выполняется тестируемый метод
actual_result = calc.sum(1, 2)
Assert – сравнение ожидаемого и фактического результата
self.assertEqual(3, actual_result)
№16 слайд![Параметризованные тесты](/documents_6/ebd7b2cbe7254bce12e14fcca475ca23/img15.jpg)
Содержание слайда: Параметризованные тесты (parameterized)
№17 слайд![Ссылки https docs.python.org](/documents_6/ebd7b2cbe7254bce12e14fcca475ca23/img16.jpg)
Содержание слайда: Ссылки
https://docs.python.org/3/library/unittest.html
https://wiki.python.org/moin/PythonTestingToolsTaxonomy