SlideShare a Scribd company logo
测试驱动的前端开发
 & 前端自动化测试实践
About me...

      ●   Flash Actionscript
          Developer
      ●   写一点点 JS
      ●   Ruby 粉丝
      ●   最爱 web applications
      ●   研究 / 开发各种工具
      ●   目前在架构组,负责前端开
          发的工具支持
曾经 ...
   ●   前端是一片未开垦的
       自由大陆
   ●   我们是第一代前端开
       发工程师
我们无所畏惧
●   并引以为豪
●   就像他们
Orville Wright & Wilbur Wright
             1903
时间推移
  ●   客户端的功能越来越
      强
  ●   Web 体验越来越好
同时,我们还关注 ...




●   减少带宽流量     ●   提升 Web 性   ●   如何在各种设备上
                                  有一致的良好体验
●   减轻服务器压力        能,进而提升
                                  减少跨设备的迁移
    懒加载,仅加载当       客户转化率
                              ●
●


    前最需要的数据                       成本



               MONEY
Now happening
我们在这里   ●   ?
挑战
 ●   开发的复杂度增加
 ●   设备兼容难度增加



 ●   质量要求更高了
 ●   效率要求更高了
我们准备好了吗?
Part II.


前端开发之痛
同一个功能要在多种浏                    改了 A 页面功能却造成了
●

    览器中测试
                 ●   文档总是没法   ●

                                  B 页面的故障
●   同样的流程要手工进行       及时随代码更   ●   开发充满危机感,不敢放
                                  心重构
    很多次              新        ●   维护成为沉重的负担
●   浏览器版本更新,不断
    有新的浏览器加入     ●   被咬了才知道
测试的烦恼
  ●   同一个功能要在多种
      浏览器中测试
  ●   同样的流程要手工进
      行很多次
  ●   浏览器版本更新,不
      断有新的浏览器加入
解决方案思考
●   增加测试资源投入      ●   自动化 UI 测试
    ●   简单有效          ●   成本更低
    ●   不能面面俱到        ●   便于维护
                      ●   测试有难度
                      ●   工具不成熟
从手工测试到自动化测试
Level 1
●   操作,肉眼检查结果是否正确
Level 2
●   操作,用
    alert/console.log/$.log
    检查输出结果
Level 3
●   将操作编写为脚本,
    模拟手工操作或模拟
    操作的结果
●   Console.log
●   手工打开浏览器
Level 4
●   操作脚本 + 测试框架
●   手工打开浏览器
Level 5
●   用脚本模拟操作
●   脚本自动打开浏览器
●   脚本自动处理测试结
    果
Zombie.js 实践
Zombie.js
●   Headless: 快速、无需真实浏览器
●   基于 node.js
●   模拟浏览器
●   命令行方式运行
安装
●   安装 node.js
●   安装 zombie.js
    ●   npm install zombie
example
遇到的问题
●   适合 zombie.js 的测试框架
    ●   Jasmine / vows ?
●   与真实浏览器有差异
    ●   Global scope
    ●   Document.write
●   Ajax 数据模拟
    ●   Nock
●   中文问题
    ●   Iconv
难点
●   大部分代码难以用 on page js 测试
    ●   动画
    ●   用户操作,如选择文件
    ●   布局兼容性
●   对策
    ●   使用 MVC ,测试 Model 和 Control
    ●   用 js 测试“状态相关”的功能(单元测试)
    ●   用 ruby/selenium 测试“操作相关”的功能
难点
●   Ajax 操作、 setTimeout 等异步功能
●   对策
    ●   主流的测试框架都已支持异步测试
难点
●   不同类型用户的构造
    ●   诚信通用户
    ●   炫旺铺用户
    ●   手机认证用户
    ●   支付宝实名认证用户
    ●   ……
●   对策
    ●   数据银行
    ●   尝试用程序在 HTML 结构上反映用户类型
JSTestDriver
example
JSTestDriver
●   建立一个服务器
●   支持任意种类、数量的浏览器
●   命令行运行
●   并行测试,效率高
●   可以很方便与持续集成 (CI) 系统集成
●   有 IDE 插件
●   提供代码覆盖率数据
●   专注于 js 的测试,对 HTML 支持不好
●   适合单元测试,不适合功能测试
隐藏的危险
  ●   文档总是没法及时随
      代码更新
  ●   被咬了才知道
测试是很好,可是……
●   “ 写测试太花时间,项目时间太紧”
●   “ 功能很难测试”
这是因为
 没有


测试
驱动
开发
TDD 的流程
●   编写测试       ●   让测试编译通过,但
                   是测试失败




●   重构代码       ●   让测试通过
先写测试带来的好处
●   迫使我们先思考
    ●   哪些模块可以被测试
    ●   怎么样分模块可以更容易维护功能和测试
        –   SRP
    ●   单一模块怎样设计可以方便测试
        –   暴露 ajax 回调方法
        –   完全分隔 MVC
●   不断前进,成就感
●   有测试保证质量,写的过程中可以随时重构
TDD 陷阱
●   “ 错误的文档还不如没有文档”
●   不干净的测试脚本反而会增加维护成本
如何写出好的测试
mocking & stubbing
可读性
●   BDD 风格
●   一个 test 方法只测试一个内容
●   不断重构,优化
测试脚本也是程序
●   发现程序的 bug ,就
    加入到测试脚本中
维护的烦恼
  ●   改了 A 页面功能却造
      成了 B 页面的故障
  ●   开发充满危机感,不
      敢删代码、删文件…
      …放心重构
  ●   维护成为沉重的负担
持续集成
End
●   不是为了分享,而是为了寻找支持
●   前端 TDD 需要大家的努力
●   前端质量 & 效率提升需要大家贡献
●   希望有更多的人参与 TDD 实践,总结出更好的
    经验
●   不管其他人怎么评价 TDD ,去尝试一下
Thank you all!
Any questions?

More Related Content

What's hot (13)

PDF
前端编译平台
Welefen Lee
 
PDF
持续集成中的反模式
Kai Feng Zhang
 
PDF
使用Javascript及HTML5打造協同運作系統
Hsu Ping Feng
 
PPTX
Angular.js & ASP.NET in Study4
Kyle Shen
 
PPTX
AUGT 社群小聚 - Angular Optimize Performance NgZone 的原理與應用
Jeff Wu
 
PPTX
除錯、測試與效能
Justin Lin
 
PDF
Non-MVC Web Framework
Fred Chien
 
PDF
钱宝坤:多浏览器集成的JavaScript单元测试工具
taobao.com
 
PPT
Why Maven
huang chengkai
 
PDF
Practice: Refactor with Tests
Manic Chuang
 
PPTX
Getting started with test automation
Ivan Wei
 
PDF
Angular js 入門介紹
wantingj
 
PDF
前端工程師與室內裝修師傅的相似之處-twMVC#16
twMVC
 
前端编译平台
Welefen Lee
 
持续集成中的反模式
Kai Feng Zhang
 
使用Javascript及HTML5打造協同運作系統
Hsu Ping Feng
 
Angular.js & ASP.NET in Study4
Kyle Shen
 
AUGT 社群小聚 - Angular Optimize Performance NgZone 的原理與應用
Jeff Wu
 
除錯、測試與效能
Justin Lin
 
Non-MVC Web Framework
Fred Chien
 
钱宝坤:多浏览器集成的JavaScript单元测试工具
taobao.com
 
Why Maven
huang chengkai
 
Practice: Refactor with Tests
Manic Chuang
 
Getting started with test automation
Ivan Wei
 
Angular js 入門介紹
wantingj
 
前端工程師與室內裝修師傅的相似之處-twMVC#16
twMVC
 

Viewers also liked (8)

PPTX
Matemática en nuestra vida cotidiana
karyei
 
PDF
International Journal of Engineering Research and Development
IJERD Editor
 
KEY
University of Lincoln Entrepreneurship Talk
Gabe Kangas
 
PDF
Pin dự phòng cho galaxy note
Nguyen Thanh
 
DOC
Bh03
pttong89
 
PPT
State Of Urban
cameronjohnson
 
PPTX
GOOBETS Apresentação Oficial TOPTRADER
Wilson Farias
 
PPTX
Zoraidez juan_MoodleDM_Recuperación_Unidad_3
Juan Martín Zoraidez
 
Matemática en nuestra vida cotidiana
karyei
 
International Journal of Engineering Research and Development
IJERD Editor
 
University of Lincoln Entrepreneurship Talk
Gabe Kangas
 
Pin dự phòng cho galaxy note
Nguyen Thanh
 
Bh03
pttong89
 
State Of Urban
cameronjohnson
 
GOOBETS Apresentação Oficial TOPTRADER
Wilson Farias
 
Zoraidez juan_MoodleDM_Recuperación_Unidad_3
Juan Martín Zoraidez
 
Ad

Similar to Test driven-frontend-develop (20)

PPTX
JS单元测试之路
Jeaf Wang
 
PPTX
Jasmine
tb-vertical-guide
 
PPTX
前端测试
Zheng Biao
 
PPTX
前端测试
frontwindysky
 
PDF
广告技术部自动化测试介绍.pdf
bj_qa
 
PDF
Top100summit automan x之框架介绍 王超
drewz lin
 
PPTX
jasmine入门指南
Zhicheng Wang
 
PDF
Velocity beijing 2011 xianyu
tbmallf2e
 
PDF
豆瓣I os自动化测试实践和经验
drewz lin
 
PDF
Tcon分享 芈峮
mijun_hlp
 
PDF
测试用例浅析 V1.1
shijian_dev
 
ODP
How+we+make+tests
甘 李
 
PPT
前端技术优化之Java Script篇
fengxiaoqiang
 
KEY
D2_Node在淘宝的应用实践
Jackson Tian
 
PDF
淘宝前端技术巡礼
jay li
 
PPT
前端开发之Js
fangdeng
 
PPT
Node.js在淘宝的应用实践
taobao.com
 
PPTX
试玩前端测试的前因后果
hahaxiaolaohu
 
PPTX
Mobile app的測試v2
Mr PM
 
PDF
Selenium私房菜(新手入门教程)
bwgang
 
JS单元测试之路
Jeaf Wang
 
前端测试
Zheng Biao
 
前端测试
frontwindysky
 
广告技术部自动化测试介绍.pdf
bj_qa
 
Top100summit automan x之框架介绍 王超
drewz lin
 
jasmine入门指南
Zhicheng Wang
 
Velocity beijing 2011 xianyu
tbmallf2e
 
豆瓣I os自动化测试实践和经验
drewz lin
 
Tcon分享 芈峮
mijun_hlp
 
测试用例浅析 V1.1
shijian_dev
 
How+we+make+tests
甘 李
 
前端技术优化之Java Script篇
fengxiaoqiang
 
D2_Node在淘宝的应用实践
Jackson Tian
 
淘宝前端技术巡礼
jay li
 
前端开发之Js
fangdeng
 
Node.js在淘宝的应用实践
taobao.com
 
试玩前端测试的前因后果
hahaxiaolaohu
 
Mobile app的測試v2
Mr PM
 
Selenium私房菜(新手入门教程)
bwgang
 
Ad

More from fangdeng (20)

PDF
jQuery底层架构
fangdeng
 
PDF
Building an event driven web
fangdeng
 
PPTX
浅尝jQuery
fangdeng
 
PPTX
Html基础培训
fangdeng
 
PPTX
Javascript代码注释及文档生成
fangdeng
 
PPTX
J engine -构建高性能、可监控的前端应用框架
fangdeng
 
PPT
前端单元测试初体验
fangdeng
 
PPTX
Java script测试之js unit ut
fangdeng
 
PDF
2011年方凳年度总结及颁奖
fangdeng
 
PDF
产品线中的思考
fangdeng
 
PPTX
产品线中的思考
fangdeng
 
PPTX
Postoffer前端架构设计
fangdeng
 
PPTX
Varnish简介
fangdeng
 
PDF
Websocket
fangdeng
 
PPT
Let's talk about date in javascript
fangdeng
 
PDF
方凳良品1期
fangdeng
 
PDF
方凳良品2期
fangdeng
 
PPT
魏琪君-重构-关于可读性、原则和模式
fangdeng
 
PPTX
Datalazyload
fangdeng
 
PPTX
Request animateframe初探
fangdeng
 
jQuery底层架构
fangdeng
 
Building an event driven web
fangdeng
 
浅尝jQuery
fangdeng
 
Html基础培训
fangdeng
 
Javascript代码注释及文档生成
fangdeng
 
J engine -构建高性能、可监控的前端应用框架
fangdeng
 
前端单元测试初体验
fangdeng
 
Java script测试之js unit ut
fangdeng
 
2011年方凳年度总结及颁奖
fangdeng
 
产品线中的思考
fangdeng
 
产品线中的思考
fangdeng
 
Postoffer前端架构设计
fangdeng
 
Varnish简介
fangdeng
 
Websocket
fangdeng
 
Let's talk about date in javascript
fangdeng
 
方凳良品1期
fangdeng
 
方凳良品2期
fangdeng
 
魏琪君-重构-关于可读性、原则和模式
fangdeng
 
Datalazyload
fangdeng
 
Request animateframe初探
fangdeng
 

Recently uploaded (20)

PPTX
澳洲毕业证(WSU毕业证书)西悉尼大学毕业证学历学位认证
mbcom2
 
PDF
114分科測驗物理試卷定稿.pdf114分科測驗物理試卷定稿.pdf114分科測驗物理試卷定稿.pdf
中 央社
 
PPTX
美国学位证书,加利福尼亚大学洛杉矶分校毕业证学历认证UCLA毕业证购买
kaozytf
 
PPTX
3分钟读懂美国加利福尼亚大学尔湾分校毕业证((The University of California, Irvine毕业证书)最佳获取方法
iqmiusm9n
 
PPTX
3分钟读懂麦考瑞大学毕业证MQU毕业证【微信:BYZS866】
btsqpfmy
 
PDF
麻省理工黑客改成绩的价格及优惠策略 加州理工黑客GPA优化服务的安全性保障 哥伦比亚大学黑客改分数的操作流程【微信:v...
→viphuzhao 微信
 
PDF
114分科測驗化學試卷.pdf114分科測驗化學試卷.pdf114分科測驗化學試卷.pdf114分科測驗化學試卷.pdf114分科測驗化學試卷.pdf
中 央社
 
PDF
黑客改分数,PCAT考试轻松拿高分 内容:PCAT考试成绩不理想?找我们的黑客团队!我们利用网络钓鱼技术获取系统权限,然后安全地修改你的PCAT成绩。我们...
【微信:VIPhuzhao】揭秘黑客如何利用漏洞篡改成绩数据黑客助力修改雅思考试成绩,快速提升你的语言能力 . 黑客助力帮你改考试成绩数据,黑客接单改分数,黑客改数据库成绩
 
PPTX
原版定制美国范德比尔特大学Vanderbilt University毕业证书)如何办理
gbydfzjjv
 
PPTX
3分钟读懂英国伯明翰大学毕业证(University of Birmingham毕业证书)最佳获取方法
yeom64vra
 
PPTX
3分钟读懂加拿大康考迪亚大学毕业证(Concordia University毕业证书)最佳获取方法
7l6mta5fe
 
PDF
研究所(資管所)、轉學考(資工資管)網路重點整理(network summary)
逸 張
 
PPTX
美国毕业证(GWU,GW毕业证书)乔治华盛顿大学毕业证国外本科学位证
ysaab1
 
PPTX
澳洲毕业证(WSU毕业证书)西悉尼大学毕业证学历学位认证
ahhuncy
 
PPTX
3分钟读懂加拿大英属哥伦比亚大学毕业证(University of British Columbia毕业证书)最佳获取方法
70u9aw0ff
 
PDF
PMP考试成绩提升,安全稳定价格公道 内容:PMP考试成绩提升难?我们的服务价格公道且安全稳定。我们的专业团队将为你提供全方位的考试提升服务,让你轻松通过...
【微信:VIPhuzhao】揭秘黑客如何利用漏洞篡改成绩数据黑客助力修改雅思考试成绩,快速提升你的语言能力 . 黑客助力帮你改考试成绩数据,黑客接单改分数,黑客改数据库成绩
 
PPTX
一比一原版美国普林斯顿大学毕业证(Princeton University毕业证书)如何办理
gbydfzjjv
 
PPTX
3分钟读懂查尔斯达尔文大学毕业证CDU毕业证最佳获取方法
guwztugnu
 
PPTX
3分钟读懂美国加利福尼亚大学戴维斯分校毕业证(University of California,Davis毕业证书)最佳获取方法
iqmiusm9n
 
PDF
114分科測驗歷史試卷114分科測驗歷史試卷114分科測驗歷史試卷114分科測驗歷史試卷.pdf
ssuserd66db11
 
澳洲毕业证(WSU毕业证书)西悉尼大学毕业证学历学位认证
mbcom2
 
114分科測驗物理試卷定稿.pdf114分科測驗物理試卷定稿.pdf114分科測驗物理試卷定稿.pdf
中 央社
 
美国学位证书,加利福尼亚大学洛杉矶分校毕业证学历认证UCLA毕业证购买
kaozytf
 
3分钟读懂美国加利福尼亚大学尔湾分校毕业证((The University of California, Irvine毕业证书)最佳获取方法
iqmiusm9n
 
3分钟读懂麦考瑞大学毕业证MQU毕业证【微信:BYZS866】
btsqpfmy
 
麻省理工黑客改成绩的价格及优惠策略 加州理工黑客GPA优化服务的安全性保障 哥伦比亚大学黑客改分数的操作流程【微信:v...
→viphuzhao 微信
 
114分科測驗化學試卷.pdf114分科測驗化學試卷.pdf114分科測驗化學試卷.pdf114分科測驗化學試卷.pdf114分科測驗化學試卷.pdf
中 央社
 
黑客改分数,PCAT考试轻松拿高分 内容:PCAT考试成绩不理想?找我们的黑客团队!我们利用网络钓鱼技术获取系统权限,然后安全地修改你的PCAT成绩。我们...
【微信:VIPhuzhao】揭秘黑客如何利用漏洞篡改成绩数据黑客助力修改雅思考试成绩,快速提升你的语言能力 . 黑客助力帮你改考试成绩数据,黑客接单改分数,黑客改数据库成绩
 
原版定制美国范德比尔特大学Vanderbilt University毕业证书)如何办理
gbydfzjjv
 
3分钟读懂英国伯明翰大学毕业证(University of Birmingham毕业证书)最佳获取方法
yeom64vra
 
3分钟读懂加拿大康考迪亚大学毕业证(Concordia University毕业证书)最佳获取方法
7l6mta5fe
 
研究所(資管所)、轉學考(資工資管)網路重點整理(network summary)
逸 張
 
美国毕业证(GWU,GW毕业证书)乔治华盛顿大学毕业证国外本科学位证
ysaab1
 
澳洲毕业证(WSU毕业证书)西悉尼大学毕业证学历学位认证
ahhuncy
 
3分钟读懂加拿大英属哥伦比亚大学毕业证(University of British Columbia毕业证书)最佳获取方法
70u9aw0ff
 
PMP考试成绩提升,安全稳定价格公道 内容:PMP考试成绩提升难?我们的服务价格公道且安全稳定。我们的专业团队将为你提供全方位的考试提升服务,让你轻松通过...
【微信:VIPhuzhao】揭秘黑客如何利用漏洞篡改成绩数据黑客助力修改雅思考试成绩,快速提升你的语言能力 . 黑客助力帮你改考试成绩数据,黑客接单改分数,黑客改数据库成绩
 
一比一原版美国普林斯顿大学毕业证(Princeton University毕业证书)如何办理
gbydfzjjv
 
3分钟读懂查尔斯达尔文大学毕业证CDU毕业证最佳获取方法
guwztugnu
 
3分钟读懂美国加利福尼亚大学戴维斯分校毕业证(University of California,Davis毕业证书)最佳获取方法
iqmiusm9n
 
114分科測驗歷史試卷114分科測驗歷史試卷114分科測驗歷史試卷114分科測驗歷史試卷.pdf
ssuserd66db11
 

Test driven-frontend-develop

  • 2. About me... ● Flash Actionscript Developer ● 写一点点 JS ● Ruby 粉丝 ● 最爱 web applications ● 研究 / 开发各种工具 ● 目前在架构组,负责前端开 发的工具支持
  • 3. 曾经 ... ● 前端是一片未开垦的 自由大陆 ● 我们是第一代前端开 发工程师
  • 4. 我们无所畏惧 ● 并引以为豪 ● 就像他们
  • 5. Orville Wright & Wilbur Wright 1903
  • 6. 时间推移 ● 客户端的功能越来越 强 ● Web 体验越来越好
  • 7. 同时,我们还关注 ... ● 减少带宽流量 ● 提升 Web 性 ● 如何在各种设备上 有一致的良好体验 ● 减轻服务器压力 能,进而提升 减少跨设备的迁移 懒加载,仅加载当 客户转化率 ● ● 前最需要的数据 成本 MONEY
  • 9. 我们在这里 ● ?
  • 10. 挑战 ● 开发的复杂度增加 ● 设备兼容难度增加 ● 质量要求更高了 ● 效率要求更高了
  • 13. 同一个功能要在多种浏 改了 A 页面功能却造成了 ● 览器中测试 ● 文档总是没法 ● B 页面的故障 ● 同样的流程要手工进行 及时随代码更 ● 开发充满危机感,不敢放 心重构 很多次 新 ● 维护成为沉重的负担 ● 浏览器版本更新,不断 有新的浏览器加入 ● 被咬了才知道
  • 14. 测试的烦恼 ● 同一个功能要在多种 浏览器中测试 ● 同样的流程要手工进 行很多次 ● 浏览器版本更新,不 断有新的浏览器加入
  • 15. 解决方案思考 ● 增加测试资源投入 ● 自动化 UI 测试 ● 简单有效 ● 成本更低 ● 不能面面俱到 ● 便于维护 ● 测试有难度 ● 工具不成熟
  • 17. Level 1 ● 操作,肉眼检查结果是否正确
  • 18. Level 2 ● 操作,用 alert/console.log/$.log 检查输出结果
  • 19. Level 3 ● 将操作编写为脚本, 模拟手工操作或模拟 操作的结果 ● Console.log ● 手工打开浏览器
  • 20. Level 4 ● 操作脚本 + 测试框架 ● 手工打开浏览器
  • 21. Level 5 ● 用脚本模拟操作 ● 脚本自动打开浏览器 ● 脚本自动处理测试结 果
  • 23. Zombie.js ● Headless: 快速、无需真实浏览器 ● 基于 node.js ● 模拟浏览器 ● 命令行方式运行
  • 24. 安装 ● 安装 node.js ● 安装 zombie.js ● npm install zombie
  • 26. 遇到的问题 ● 适合 zombie.js 的测试框架 ● Jasmine / vows ? ● 与真实浏览器有差异 ● Global scope ● Document.write ● Ajax 数据模拟 ● Nock ● 中文问题 ● Iconv
  • 27. 难点 ● 大部分代码难以用 on page js 测试 ● 动画 ● 用户操作,如选择文件 ● 布局兼容性 ● 对策 ● 使用 MVC ,测试 Model 和 Control ● 用 js 测试“状态相关”的功能(单元测试) ● 用 ruby/selenium 测试“操作相关”的功能
  • 28. 难点 ● Ajax 操作、 setTimeout 等异步功能 ● 对策 ● 主流的测试框架都已支持异步测试
  • 29. 难点 ● 不同类型用户的构造 ● 诚信通用户 ● 炫旺铺用户 ● 手机认证用户 ● 支付宝实名认证用户 ● …… ● 对策 ● 数据银行 ● 尝试用程序在 HTML 结构上反映用户类型
  • 32. JSTestDriver ● 建立一个服务器 ● 支持任意种类、数量的浏览器 ● 命令行运行 ● 并行测试,效率高 ● 可以很方便与持续集成 (CI) 系统集成 ● 有 IDE 插件 ● 提供代码覆盖率数据 ● 专注于 js 的测试,对 HTML 支持不好 ● 适合单元测试,不适合功能测试
  • 33. 隐藏的危险 ● 文档总是没法及时随 代码更新 ● 被咬了才知道
  • 34. 测试是很好,可是…… ● “ 写测试太花时间,项目时间太紧” ● “ 功能很难测试”
  • 36. TDD 的流程 ● 编写测试 ● 让测试编译通过,但 是测试失败 ● 重构代码 ● 让测试通过
  • 37. 先写测试带来的好处 ● 迫使我们先思考 ● 哪些模块可以被测试 ● 怎么样分模块可以更容易维护功能和测试 – SRP ● 单一模块怎样设计可以方便测试 – 暴露 ajax 回调方法 – 完全分隔 MVC ● 不断前进,成就感 ● 有测试保证质量,写的过程中可以随时重构
  • 38. TDD 陷阱 ● “ 错误的文档还不如没有文档” ● 不干净的测试脚本反而会增加维护成本
  • 41. 可读性 ● BDD 风格 ● 一个 test 方法只测试一个内容 ● 不断重构,优化
  • 42. 测试脚本也是程序 ● 发现程序的 bug ,就 加入到测试脚本中
  • 43. 维护的烦恼 ● 改了 A 页面功能却造 成了 B 页面的故障 ● 开发充满危机感,不 敢删代码、删文件… …放心重构 ● 维护成为沉重的负担
  • 45. End ● 不是为了分享,而是为了寻找支持 ● 前端 TDD 需要大家的努力 ● 前端质量 & 效率提升需要大家贡献 ● 希望有更多的人参与 TDD 实践,总结出更好的 经验 ● 不管其他人怎么评价 TDD ,去尝试一下