Борьба с ошибками (TDD)

50 %
50 %
Information about Борьба с ошибками (TDD)

Published on June 25, 2008

Author: fedor.malyshkin

Source: slideshare.net

Ошибки в коде. Обзор. Пути решения. Малышкин Фёдор ( [email_address] ) 15 февраля 2 00 8

Результаты опроса разработчиков Вопрос: В каких частях кода возникает большее количество ошибок? Варианты ответов: В ранее написаном функционале, который приходится изменять (текущий проект) В ранее написаном функционале, который приходится изменять (старый проект) При изменении «чужого» кода В совершенно новом коде В точках интеграции с другими программистами В местах использования «чужих» (не «наших») библиотек

Вопрос: В каких частях кода возникает большее количество ошибок?

Варианты ответов:

В ранее написаном функционале, который приходится изменять (текущий проект)

В ранее написаном функционале, который приходится изменять (старый проект)

При изменении «чужого» кода

В совершенно новом коде

В точках интеграции с другими программистами

В местах использования «чужих» (не «наших») библиотек

Результаты опроса разработчиков В ранее написаном функционале, который приходится изменять (текущий проект) (6/14) (42%) В ранее написаном функционале, который приходится изменять (старый проект) (4/14) (28%) При изменении «чужого» кода (8/14) (57%) В совершенно новом коде (5/14) (35%) В точках интеграции с другими программистами (12/14) (85%) В местах использования «чужих» (не «наших») библиотек (4/14) (28%)

В ранее написаном функционале, который приходится изменять (текущий проект) (6/14) (42%)

В ранее написаном функционале, который приходится изменять (старый проект) (4/14) (28%)

При изменении «чужого» кода (8/14) (57%)

В совершенно новом коде (5/14) (35%)

В точках интеграции с другими программистами (12/14) (85%)

В местах использования «чужих» (не «наших») библиотек (4/14) (28%)

Результаты опроса разработчиков В ранее написаном функционале, который приходится изменять (текущий проект) (6/14) (42%) В ранее написаном функционале, который приходится изменять (старый проект) (4/14) (28%) При изменении «чужого» кода (8/14) (57%) В совершенно новом коде (5/14) (35%) В точках интеграции с другими программистами (12/14) (85%) В местах использования «чужих» (не «наших») библиотек (4/14) (28%)

В ранее написаном функционале, который приходится изменять (текущий проект) (6/14) (42%)

В ранее написаном функционале, который приходится изменять (старый проект) (4/14) (28%)

При изменении «чужого» кода (8/14) (57%)

В совершенно новом коде (5/14) (35%)

В точках интеграции с другими программистами (12/14) (85%)

В местах использования «чужих» (не «наших») библиотек (4/14) (28%)

Анализ записей JIRA по проекту Draftsman Из всех ошибок, которые были ошибками (а не некорректными реализациями требований) – около 55% были вызваны тем, что изменялся ранее написанный функционал .

Из всех ошибок, которые были ошибками (а не некорректными реализациями требований) – около 55% были вызваны тем, что изменялся ранее написанный функционал .

Предполагаемое решение Написание модульных тестов и непрерывная интеграция (continuous integration). Написание тестов с использованием Junit (и других библиотек xUnit серии) Использование HUDSON в качестве сервера CI

Написание модульных тестов и непрерывная интеграция (continuous integration).

Написание тестов с использованием Junit (и других библиотек xUnit серии)

Использование HUDSON в качестве сервера CI

Основные проблемы В ранее написаном функционале, который приходится изменять (текущий проект) В ранее написаном функционале, который приходится изменять (старый проект) Тут тесты показывают себя в полной красе – они моментально показывают не сломалась ли программа, после ваших изменений.

В ранее написаном функционале, который приходится изменять (текущий проект)

В ранее написаном функционале, который приходится изменять (старый проект)

Тут тесты показывают себя в полной красе – они моментально показывают не сломалась ли программа, после ваших изменений.

Модульные тесты, как средства решения других проблем При изменении «чужого» кода – кроме средств проверки, они являются своего рода «документацией» на «чужой» код В точках интеграции с другими программистами – тесты позволяют создавать своего рода «контракт»: правила, которым должны следовать классы и методы другого программиста В местах использования «чужих» (не «наших») библиотек – с помощью тестов можно проверить поведение библиотеки в запутанных местах.

При изменении «чужого» кода – кроме средств проверки, они являются своего рода «документацией» на «чужой» код

В точках интеграции с другими программистами – тесты позволяют создавать своего рода «контракт»: правила, которым должны следовать классы и методы другого программиста

В местах использования «чужих» (не «наших») библиотек – с помощью тестов можно проверить поведение библиотеки в запутанных местах.

Побочные эффекты модульного тестирования Повышения модульности классов (уход от God-класс паттерна) Введение в использование интерфейсов Улучшение архитектуры приложения Избавление от дублирования кода Повышение у программистов уровня владения языком Повышение скорости разработки Увеличение свободного времени

Повышения модульности классов (уход от God-класс паттерна)

Введение в использование интерфейсов

Улучшение архитектуры приложения

Избавление от дублирования кода

Повышение у программистов уровня владения языком

Повышение скорости разработки

Увеличение свободного времени

Add a comment

Related presentations

Related pages

Test-Driven Development by Dennis Schetinin on Prezi

целью TDD борьба с ошибками Побочный ... Copy of Расширение рамок TDD с помощью m...
Read more

Борьба с хаосом при разработке ПО::Приложение к журналу СА ...

Борьба с хаосом при ... средство слежения за ошибками и ... методология tdd, ...
Read more

Programming stuff: Контракты vs. Монады?

Борьба с "нулевыми" ссылками в c#; ... Вы боретесь с ошибками в коде с помощью ... tdd (1) tex (1)
Read more

Зачем нужна @ в php | Страница 4 | PHPClub - клуб ...

Это не "борьба с ошибками", ... то же самое и с твоим файлом кэша. ... zerkms TDD infected Команда ...
Read more

Борьба с читерством в играх, когда стандартные средства не ...

Борьба с ... миллионы строк кода с минимальными ошибками 106k ... TDD для хранимых ...
Read more

Исследование характеристик мобильной передачи данных по ...

Предоставление данных в режиме tdd ... считается борьба с ... с ошибками ...
Read more

TDD vs BDD. В чем разница? | DOU

tdd vs bdd. В чем разница? Кто-то может обьяснить разницу между tdd и bdd? Это же одно и тоже?!
Read more

= DEUTSCH! - НЕМЕЦКИЙ С УДОВОЛЬСТВИЕМ = | VK

= DEUTSCH! - НЕМЕЦКИЙ С УДОВОЛЬСТВИЕМ = - ... #deutsch #test #tdd #testedeindeutsch Jeden Tag gibt es neue Fragen! Los geht's
Read more