- •Водопадная и эволюционная модели разработки по
- •Scrum – методология
- •Встречи:
- •3.) Выявление требований к программному обеспечению. Способы представления требований
- •4.Архитектурные стили: компонентный, многослойный, многоуровневый, клиент-сервер.
- •6. Шаблоны проектирования Адаптер, Наблюдатель. Диаграмма классов. Сценарии применения
- •7. Шаблоны проектирования Фасад, Мост. Диаграмма классов. Сценарии применения
- •8. Тестирование программного обеспечения. Метод черного и белого ящика
- •Тестирование методом черного ящика
- •Тестирование методом белого ящика
- •9. Тестирование программного обеспечения. Юнит тестирование. Заглушки. Виды заглушек
- •10. Тестирование программного обеспечения. Виды тестирования. Последовательность фаз тестирования.
- •11. Диаграмма вариантов использования
- •12. Диаграмма классов
- •13. Диаграмма деятельности
- •1 4. Диаграмма развертывания(размещения)
- •15. Диаграмма компонентов
- •16. Диаграмма dfd
9. Тестирование программного обеспечения. Юнит тестирование. Заглушки. Виды заглушек
Тести́рование програ́ммного обеспе́чения — деятельность, выполняемая для оценки и улучшения качества программного обеспечения. Эта деятельность в общем случае базируется на обнаружении дефектов и проблем в программных системах.
С точки зрения ISO 9126, Качество (программных средств) можно определить как совокупную характеристику исследуемого ПО с учётом следующих составляющих:
Надёжность
Сопровождаемость
Практичность
Эффективность
Мобильность
Функциональность
Модульное тестирование, или юнит-тестирование (англ. unit testing) — процесс в программировании, позволяющий проверить на корректность отдельные модули исходного кода программы.
Обычно выполняется программистами
Тесты пишутся для любой нетривиальной функции или метода. Модульное тестирование используется при регрессионном тестировании.
Регрессионное тестирование:
повторное выборочное тестирование системы или компонент для проверки сделанных модификаций не должно приводить к непредусмотренным эффектам
если система успешно проходила тесты до внесения модификаций, она должна их проходит и после внесения таковых
Цель модульного тестирования — изолировать отдельные части программы и показать, что по отдельности эти части работоспособны.
Принципы:
Поощрение изменений Модульное тестирование позже позволяет программистам проводить рефакторинг, будучи уверенными, что модуль по-прежнему работает корректно (регрессионное тестирование). Это поощряет программистов к изменениям кода, поскольку достаточно легко проверить, что код работает и после изменений.
Упрощение интеграции Модульное тестирование помогает устранить сомнения по поводу отдельных модулей и может быть использовано для подхода к тестированию «снизу вверх»: сначала тестируются отдельные части программы, затем программа в целом.
Документирование кода Модульные тесты можно рассматривать как «живой документ» для тестируемого класса. Клиенты, которые не знают, как использовать данный класс, могут использовать юнит-тест в качестве примера.
Недостатки:
Ошибки интеграции, системного уровня, функций, исполняемых в нескольких модулях не будут определены
Не учитывается производительность
Особенности:
приемлемая степень покрытия кода unit-тестами – 50-90%
в первую очередь unit-тестами должна быть покрыта логика приложения
полное покрытие сложно и трудоемко
Критерии эффективности Unit-теста:
написан до кода
не зависит от других тестов, источников данных
является повторяемым (при повторном запуске теста результат не меняется)
Виды заглушек:
Fake – примитивная заглушка, совершенно несуществующий объект, методы которого возвращают заранее определенный набор данных или результат
Mock – более совершенный Fake: может содержать внутри себя операции assert, проверять порядок вызовов методов, записывать данные в единый лог-файл
Многощетинковые черви в ярости от всей этой хуйни!!!!