Unit testing
.pdfSoftware testing
Общие сведения, unit testing
Тюльпин А.А., 2013
Качество программного обеспечения
●Качество означет соответствие требованиям (Philip Crosby
(Quality is free, 1979)
○Ошибки в спецификациях?
○Различные уровни качества?
●Качество означает свободу от ошибок. Joseph Juran(Quality
Control Handbook, 1988)
●8 различных определений - Hoyer&Hoyer(What is quality,
2001)
2013
Качество программного обеспечения
●Определение IEEE, 1991
○Степень, в которой система, компонент или процесс отвечает требованиям
○Степень, в которой система, компонент или процесс отвечает клиентским или пользовательским потребностям или ожиданиям
2013
Характеристики качества ПО
●ISO 9126
○Надёжность
○Сопровождаемость
○Практичность
○Эффективность
○Мобильность
○Функциональность
Тюльпин А.А., 2013
Тестирование ПО
●Тестирование - это процесс запуска программы с целью нахождения ошибок. (Myers, 1979)
●Тестирование - это формальный процесс, проводимый специальной командой, в котором программный модуль, несколько интегрированных программных модулей или весь пакет программного обеспечения исследуются с помощью запуска программ на компьютере. Все испытания проводятся в соответствии с утвержденными процедурами на утвержденных наборах тестов (Galin 2004)
2013
Задачи тестирования
●Прямая
○Выявить как можно больше ошибок
○Довести тестированное ПО после коррекции найденных ощибок и повторного тестирования до приемлемого уровня качества
○Выполнить необходимые тесты эффективно и результативно в рамках бюджета и планирования
●Обратная
○Собрать результаты тестов для предотвращения ошибок в будущем (Defect prediction models)
2013
Классифкация типов тестирования
●Относительно метода испытаний
○White-box - тестировщик может смотреть исходный код
○Black-box - тестировщик не может смотреть исходный код
●Относительно требований
○McCall’s quality model
2013
Типы тестирования
●Модульное (Unit testing)
●Интеграционное
●Системное
●Регрессионное
●Нагрузочное
●И т.д.
2013
Модульное тестирование
●Модульное тестирование - метод, с помощью которого отдельные модули исходного кода, наборы одного или нескольких модулей компьютерной программы вместе с соответствующими контрольными данными, процедурами использования и порядком использования испытываются на пригодность. Kolawa, Adam;
Huizinga, Dorota (2007)
2013
Инструментарий
●Java
○JUnit
○JavaTESK
○TestNG
○...
●C
○CUnit
○CTESK
●C++
○Google Testing Framework
○Boost Test
○...
●Python
○PyUnit
○PyTest
○Nose