惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Secure Thoughts
C
Cybersecurity and Infrastructure Security Agency CISA
T
Tenable Blog
Project Zero
Project Zero
T
The Exploit Database - CXSecurity.com
T
Threat Research - Cisco Blogs
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Cyberwarzone
Cyberwarzone
PCI Perspectives
PCI Perspectives
G
GRAHAM CLULEY
H
Hacker News: Front Page
Cloudbric
Cloudbric
Latest news
Latest news
N
News and Events Feed by Topic
C
CERT Recently Published Vulnerability Notes
Attack and Defense Labs
Attack and Defense Labs
SecWiki News
SecWiki News
Security Latest
Security Latest
MyScale Blog
MyScale Blog
阮一峰的网络日志
阮一峰的网络日志
Vercel News
Vercel News
The GitHub Blog
The GitHub Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Security Archives - TechRepublic
Security Archives - TechRepublic
V2EX - 技术
V2EX - 技术
B
Blog RSS Feed
L
LINUX DO - 最新话题
人人都是产品经理
人人都是产品经理
Last Week in AI
Last Week in AI
IT之家
IT之家
Jina AI
Jina AI
Y
Y Combinator Blog
博客园 - 聂微东
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
V
Visual Studio Blog
P
Privacy International News Feed
B
Blog
S
Schneier on Security
Application and Cybersecurity Blog
Application and Cybersecurity Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Hacker News - Newest:
Hacker News - Newest: "LLM"
Help Net Security
Help Net Security
D
DataBreaches.Net
博客园_首页
G
Google Developers Blog
I
InfoQ
量子位
大猫的无限游戏
大猫的无限游戏
S
Security @ Cisco Blogs

博客园 - 紫色阴影

Android ellipsize的小问题 腾讯招聘贴 有意向的人发邮件或者msn Asp.net MVC tips -- 也做为 要写漂亮的代码 (2) 要写漂亮的代码 (1) 在团队中如何推行一项新的实践 事件驱动的javascript 验收测试的自动化 项目中的技术风险 欢迎需求变动,拥抱变化 成为MVP 使用动态数据库访问对象 使用Spring.Net对Web页面进行依赖注入 如何把握设计的尺度 初窥Managed Extensibility Framework Unity的属性注入 持续集成简介 简单介绍使用WCF的Web编程模型开发REST风格的Web Service 尝试使用WatiN进行TDD 关于站立式会议
Bug驱动开发简介
紫色阴影 · 2008-06-04 · via 博客园 - 紫色阴影

  我第一次听到这个概念的时候觉得很好笑,Bug能驱动开发吗?没有系统哪来的Bug? 一个系统从无到有的过程中,Bug是如何起驱动作用的呢?这里先介绍一个小例子:

  某公司经理想开发C2C系统,找到IT部门的头头说,帮我做一个吧。头头回答说系统已经做好了啊。经理疑惑了,可是现在这个系统什么都还没有,怎么叫做好了呢?头头说,对,现在什么都还没有,好大一个Bug啊!于是,他在Bug管理系统上记录了该系统第一个Bug,“BUG1,C2C系统“。然后他问经理,这个系统应该包含哪些功能呢?经理说,它要有用户管理,权限管理,物品管理等。头头接着给BUG1添加了几个子Bug,"BUG2,需要用户管理”“BUG3,需要权限管理”等。接着越来越多的Bug被添加到Bug系统中,如果想Close任何一个Bug,那么它的所有子Bug必须都被Close,也就是它的依赖。每一个Bug被分配一个Owner(当然也可以自由选择),该Owner的任务就是Fix Bug。

  Bug驱动开发是一个轻量的软件开发方法学,它利用Bug管理系统来记录要实现的功能,从大到小,逐渐具体化,而不仅限于记录系统缺陷。

  它的优势是什么呢?

    轻量。它仅仅使用Bug管理系统就可以管理所有的需求和系统缺陷,还可以利用dashboard来查看系统当前完成的进度。

    每个Bug分配到人,人的任务就是Fix Bug,有约束性。

    利用Bug系统的功能,很容易对各个需求进行排列优先级,状态跟踪。

    QA从一开始就融入团队工作,对Bug进行管理。

  优势应该不只这么多,只是我没有参与过Bug驱动开发,没有太多体会。不知道它和Feature驱动开发有什么本质的区别,就我看来这里的Bug是一种变相的需求表达方式而已。

  TDD是具体开发过程中的实践,从测试开始到实现某功能。而BDD或者FDD,更加high level,从整个系统开发流程来驱动。