- 1、本文档共39页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
nginx模块的测试方法与程一序测试经验
1
Nginx模块的测试方法与程序测试经验
服务器平台 李子
2010年5月5日
2
服务器平台 李子
概要
单元测试
nginx-test
perl
单元测试
4
2010年5月5日
单元测试 roadmap
什么是单元测试
单元测试重要性
我们的借口
单元测试内容
Mock对象
怎么成为好的单元测试
5
2010年5月5日
什么是单元测试
定义
开发者编写的一小段代码,用于检查被测试代码的一个很小的、很明确的功能是否正确
目的
证明某段代码的行为是否与开发者所期望的一致
6
2010年5月5日
不写测试的借口
测试太花时间了
在编写代码时,你在哪些地方花费了更多时间?
在项目快要结束时才做单元测试
立即测试与延后测试的比较
7
2010年5月5日
不写单元测试的借口
还认为没时间写单元测试
对于所编写的代码 ,在调试上花了多少时间?
你觉得是正确的代码,但却存在重大bug,你花多少时间在重新确认这些代码上面?
对于别人报告的一个bug,你花多少时间 才找到导致这个bug的源码位置 ?
8
2010年5月5日
不写单元测试的借口
单元测试运行时间太长
将费时间的测试与其它测试分开来
费时测试可以每天一次或几天一次
运行很快的测试可以经常运行
测试代码并不是我的工作
工作完成并不意味着编码结束
增加对自己代码的自信
会不会让测试人员没事可干?
9
2010年5月5日
需要测试的内容
Right-BICEP
Right——结果是否正确
B——边界条件
I——反向关联
C——交叉检查
E——强制错误条件的发生
P——性能要求
10
2010年5月5日
需要测试的内容
Right——结果是否正确
确认代码要做的与期望是否一致
重视测试数据,出错时,先检查数据2-3次
11
2010年5月5日
需要测试的内容
B——边界条件
Conformance(一致性)
Ordering(顺序性)
Range(区间性)
Referendce(依赖性)
Existence(存在性)
Cardinatity(基数性)
Time(相对或者绝对的时间性)
correct
12
2010年5月5日
需要测试的内容
I——反向关联
使用反向的逻辑来验证他们
如:计算平方根,将结果平方后来验证
向容器增加数据,验证数据是否存在于容器中
尽可能使用不同的原理来反向测试
避免两个函数出现相同的bug
13
2010年5月5日
需要测试的内容
C——交叉检查
使用未采取方法来验证采纳方法的正确性
使用本身的不同部分来数据来检验
如:总数=已完成+未完成
E——强制产生错误条件
如:磁盘满,断网…
E——性能特性
可以粗糙测试来保证性能曲线的稳定性
如:改前为1s,改后是5s
14
2010年5月5日
Mock对象
使用场景
某个方法依赖于其他一些难以操控的东西,如网络等
简单替换
简单替换函数
如:gettime()
15
2010年5月5日
Mock对象
Mock对象
使用一个接口来描述这个对象
为产品代码实现这个接口
以测试为目的,在mock对象中实现这个接口
16
2010年5月5日
优秀的测试
A-TRIP
自动化(Automatic)
彻底的(Thorough)
可重复的(Repeatable)
独立的(Independent)
专业的(Professional)
17
2010年5月5日
优秀的测试
自动化(Automatic)
调用测试自动化
检查结果自动化
彻底的(Thorough)
测试了所有可能会出问题的情况
可重复的(Repeatable)
独立于其它测试,独立于周围环境
能以任意顺序执行,且产生相同结果
18
2010年5月5日
优秀的测试
独立的(Independent)
简洁而精炼
一次只测试一样东西
专业的(Professional)
不要为了测试去测试,不可能出现问题的情况就不需要去测试了
nginx-test
20
2010年5月5日
nginx-test roadmap
能做什么
执行流程
有何优势
有何不足
如何测试
21
2010年5月5日
nginx-test
能做什么
主要是针对功能测试
测试执行流程
22
nginx-test
优势
独立性
依赖于强大的perl(特别是CPAN)
清晰的测试结果
可扩展性强
不足
无法针对单元测试进行测试
无法针对性能进行测试
目前提供针对nginx的库函数较少
23
2010年5月5日
nginx-test
如何使用
函数库
Perl库:Test:More
/~mschwern/Test-Simple-0.94/lib/Test/More.pm
like、 unlike、ok、is
like ($got, qr/expected/, $test_name);
文档评论(0)