- Еженедельные архивы исходного кода.
- "Бумажные" диаграммы.
- Ручное тестирование выпусков.
- Соглашение об оформлении кода.
- Подсчёт ссылок на объекты.
- Тестовые наборы "на коленке" и их ручное "протыкивание".
- Code Review.
- CVS
- Инструкция программирования и оформления исходного кода.
- Списки ToDo.
- Логирование ошибок с выводом стека.
- Учимся пользоваться Araxis Merge или его аналогами (jfc, tfc, afc, на худой конец - fc).
- Clear Quest или любая другая "плоская" база ошибок.
- Проверка утечек (в частности через подсчёт ссылок).
- "Ручные" ежедневные отчёты в почте.
- Usecase'ы.
- Документирование исправленных ошибок прямо в коде.
- High Level Test Cases.
- Ночные сборки на bat-файлах.
- "MVC".
- Рефакторинг.
- Сбор логов от пользователей.
- wiki-подобная база знаний и база ошибок.
- "Код у нас общий".
- Code Review в wiki с использованием обсуждений в электронном виде.
- Документирование исправленных ошибок со ссылками на wiki.
- Ночные сборки на продвинутых "скриптах" (например ant) с публикацией отчётов в wiki.
- Автоматизированные ежедневные отчёты в wiki.
- Автоматизированное тестирование чёрного ящика, через GUI (например Test Complete или разные другие роботы).
- Детализация требований.
- Применение шаблонов проектирования от GoF (и не только).
- UML.
- Кодогенерация из UML.
- Соглашения об унифицированной настройке среды.
- Нагрузочное тестирование.
- Проектнозависимые стереотипы для кодогенерации.
- Рефакторинг под влиянием UML.
- Тесты библиотек.
- Стереотипы для тестов.
- Расставлены определённые технологические точки над i с отделом маркетинга.
- Механизм контрольных точек.
- Ежедневные прогоны тестов.
- Рефакторинг при наличии тестов.
- Механизм "эталонов" для тестов.
- Механизм размножения тестов относительно тестовых наборов.
- GUI-тесты.
- Скриптованные тесты.
- Специализированные стереотипы для шаблонов проектирования (например GoF).
- Ежедневные прогоны тестов и их разбор специально выделенными людьми.
- Написание тестов по результатам УЖЕ найденных ошибок, специально выделенными людьми.
- Unit-тестирование.
- Выделение аспектов в примеси.
- Интеграционное тестирование.
- Трассировка требований в тесты.
- Автоматическая публикация новых ошибок и "возрождение" старых вследствие ежедневного прогона тестов после ночной сборки.
Блог человека, который 18-ть лет программирует на Delphi. И 25 лет программирует вообще. VCL, UML, MDA, тесты. Это не "учебник", это - "заметки на полях".
Откуда список?
ОтветитьУдалитьВы всё это у себя используете? =)
as. ниже по тексту слово Redmine можно заменить на Jira+confluence+fisheye или любой другой аналогичный продукт.
ОтветитьУдалить> Подсчёт ссылок на объекты.
Зачем? Свой сборщик мусора?
> Проверка утечек (в частности через подсчёт ссылок).
FastMM в помощь. Помощнее будет. Заодно умеет отслеживать и обращения к несуществующим объектам и проверять целостность кучи (кучи ли ?)
> Инструкция программирования и оформления исходного кода.
А ещё лучше для оформления использовать автоформаттер, если возможно. И/или pre-commit валидатор.
> Учимся пользоваться Araxis Merge или его аналогами (jfc, tfc, afc, на худой конец - fc).
Такими как WinMerge, Beyond compare.
> Clear Quest или любая другая "плоская" база ошибок.
Clear Quest? Жирновато будет. Мой выбор - Redmine. Заодно и разбиение по проектам, встроенная Wiki, а главное - связывание багов с коммитами. А заодно и такие плюшки как учёт времени и кое-какое планирование. А также там вроде дакже есть плагины для code review.
> "Ручные" ежедневные отчёты в почте.
жесть. Зачем? Лучше 10 минутный stand-up из Agile.
> Usecase'ы.
Без них лучше и не начинать.
> Документирование исправленных ошибок прямо в коде.
Лучше при коммите указывать номер бага.
> High Level Test Cases.
Use cases же уже есть.
> Ночные сборки на bat-файлах.
Зачем на .bat? Есть want, есть Lazy Delphi Builder.
> Рефакторинг.
Это то, что начинается сразу же после создания нового проекта в Delphi. :D
> wiki-подобная база знаний и база ошибок.
Redmine + FAQ plugin
> Code Review в wiki с использованием обсуждений в электронном виде.
Неужели так удобней, чем использовать специализированные инструменты для code review?
> Документирование исправленных ошибок со ссылками на wiki.
Redmine + привязка ошибок к версиям.
> Автоматизированные ежедневные отчёты в wiki.
Зачем? В любом мало-мальски разумном трекере есть раздел activity где можно посмотреть, что и когда происходило.
> Автоматизированное тестирование чёрного ящика, через GUI (например Test Complete или разные другие роботы).
+ олтдельная команда на поддержание в актуальном виде скриптов для тестирования.
> Соглашения об унифицированной настройке среды.
Это должно следовать сразу за инструкцией для написания кода.
> Ежедневные прогоны тестов и их разбор специально выделенными людьми.
> Автоматическая публикация новых ошибок и "возрождение" старых вследствие ежедневного прогона тестов после ночной сборки.
Continuous integration. Jenkins в помощь.
Юнит тесты желательно гонять перед каждым коммитом (локально) и после коммита (на билд сервере).
Я написал всё как было
ОтветитьУдалить