legacy tdd simplify-ken fang- iji

21
如何在既有系统,有效的进行敏捷测试驱动开发 Ken Fang

Upload: agiletourchina

Post on 14-Dec-2014

904 views

Category:

Documents


9 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Legacy tdd simplify-ken fang- iji

如何在既有系统,有效的进行敏捷测试驱动开发

Ken Fangg

Page 2: Legacy tdd simplify-ken fang- iji

方俊贤 (Ken Fang)基本资料

有将近十二年软件开发的经验.任职于 IJI, IBM-Rational, Borland 与 Telelogic 期间, 主要是协助客户从需求管理与 g 期间, 主要是协助客户从需求管理, 架构优化, 自动化测试, 敏捷测试驱动开发与持续集成. 客户群主要来自半导体, 电信产业与研究单位

于 Illinois Institute of Technology, Chicago, USA 获得于 Illinois Institute of Technology, Chicago, USA 获得信息科学硕士

当前居住在深圳, 持续与客户为创造更高质量的软件而努力努力

Ivar Jacobson International,008

Page 3: Legacy tdd simplify-ken fang- iji

议题

• 敏捷测试驱动开发的迷思

• 新旧代码区隔新旧代码区隔

• 单元测试的迷思

• All PairsAll Pairs• 工作迷思

• 区分出那些测试用例正在进行开发,测试区分出那些测试用例正在进行开发,测试

• 开发与测试的迷思

• 测试开发同是一家人• 测试开发同是 家人

Ivar Jacobson International,008

3

Page 4: Legacy tdd simplify-ken fang- iji

敏捷测试驱动开发的迷思敏捷测试驱动开发的迷思

–新旧代码区隔

Ivar Jacobson International,008

Page 5: Legacy tdd simplify-ken fang- iji

敏捷测试驱动开发的迷思

Test

只是在既有系统不停的加代码,加测试....

TestTest Test

C d C dCode Code Code

Ivar Jacobson International,008

Page 6: Legacy tdd simplify-ken fang- iji

小毛驴

我有 只小毛驴 我从来也不骑我有一只小毛驴,我从来也不骑

有 血来 著 赶集有一天我心血来潮骑著去赶集

我手里拿著小皮鞭我心里正得意

不知怎么哗拉拉拉拉我摔了一身泥

Ivar Jacobson International,008

Page 7: Legacy tdd simplify-ken fang- iji

新旧代码区隔

• 新增功能的代码不应腐败既有系统(Core Behavior)• 利用Decorator装饰新增功能;将新旧代码区隔利用 装饰新增功能;将新旧代码 隔

• 利用Adapter作适配调用

Adapter Decorator CoreBehaviour

Ivar Jacobson International,008

Page 8: Legacy tdd simplify-ken fang- iji

新旧代码区隔

既有系统:载物

新增功能:载人

Ivar Jacobson International,008

Page 9: Legacy tdd simplify-ken fang- iji

单元测试的迷思单元测试的迷思

–All Pairs

Ivar Jacobson International,008

Page 10: Legacy tdd simplify-ken fang- iji

单元测试的迷思

单元测试只针对类(Cl )• 单元测试只针对类(Class)– 测试效率与覆盖的问题

Ivar Jacobson International,008

Page 11: Legacy tdd simplify-ken fang- iji

All PairsList Textbox Checkbox1 (-x) Checkbox2 (x2)

0 1 On On1 2 Off Off1 2 Off Off2 33 44 ...5 966 977 988 998 999

• 如何找到下列Bug: List=0 & Checkbox1=On• 如何找到下列Bug: List=0 & Checkbox1=On• 分析:1)Textbox 的值是与 Bug 无关

• 2)与Bug有关的唯 测试用例是:List=0 & Checkbox1=On

Ivar Jacobson International,008

• 2)与Bug有关的唯一测试用例是:List=0 & Checkbox1=On

Page 12: Legacy tdd simplify-ken fang- iji

结对的排列组合,找到测试用例(场景)

NIST analysis of medical software device failures– Only three of 109 failure reports indicated thaty pmore than two conditions were required to cause thefailure (Wallace 2000)a u e ( a ace 000)

ALL PAIRS:ALL PAIRS:- Don't test all combinations

Test all pairs- Test all-pairs.

Ivar Jacobson International,008

Page 13: Legacy tdd simplify-ken fang- iji

结对的排列组合,找到测试用例(场景)

List Textbox Checkbox1 ( x) Checkbox2 (x2)

分类测试变量的值

List Textbox Checkbox1 (-x) Checkbox2 (x2)

0 Valid int On On

Any other Invalid int Off Off

AlphaAlpha

Ivar Jacobson International,008

Page 14: Legacy tdd simplify-ken fang- iji

结对的排列组合,找到测试用例(场景)

Textbox(3) List(2) Negative(2) Square(2)Valid integer 0 On CheckedValid integer 0 On CheckedValid integer Other Off Unchecked

Invalid integer 0 Off CheckedInvalid integer Other On Unchecked

Alpha 0 On UncheckedAlpha Other Off Checked

依 需 个 试 例依 All Pairs, 只需 6 个测试用例

Ivar Jacobson International,008

Page 15: Legacy tdd simplify-ken fang- iji

工作迷思工作迷思

–区分出那些测试用例正在进行开发,测试

Ivar Jacobson International,008

Page 16: Legacy tdd simplify-ken fang- iji

工作迷思: 直到测试通过.....

我已三天没回家我已三天没回家....

Ivar Jacobson International,008

Page 17: Legacy tdd simplify-ken fang- iji

区分出那些测试用例正在进行开发,测试

持续集成环境

Name Error Failure Test

持续集成环境

Test-Donkey 0 0 60

Test-ERP 0 0 6

WIP-Donkey 6 3 30

WIP-ERP 0 0 0

Total 6 3 96

Ivar Jacobson International,008

Page 18: Legacy tdd simplify-ken fang- iji

开发与测试的迷思开发与测试的迷思

–测试开发同是一家人

Ivar Jacobson International,008

Page 19: Legacy tdd simplify-ken fang- iji

开发与测试的迷思

• 开发人员– 测试是测试人员的事测试是测试人员的事

• 测试人员测试是开发人员的事– 测试是开发人员的事

Ivar Jacobson International,008

Page 20: Legacy tdd simplify-ken fang- iji

测试开发同是一家人

• IJI 客户的故事

测试人员准备测试数据 环境– 测试人员准备测试数据,环境

– 测试人员审视测试用例

开发人员开发测试代码与自动化测试工具– 开发人员开发测试代码与自动化测试工具

– 开发人员执行测试

Ivar Jacobson International,008

Page 21: Legacy tdd simplify-ken fang- iji

结论

A. 新舊代碼區隔

B. All PairsC. 區分出那些測試用例正在進行開發,測試

D. 測試開發同是一家人測試開發同是 家人

• 持续改进持续改进...

Ivar Jacobson International,008