一.测试基础之测试原理
1.1生产软件中的测试背景
前提:软件的普及--如同20世纪初的电一样
无所不在(生活,生产)
软件 广泛使用(手机,电脑,手表) 导致: 对其开发和部署提出了一定的要求
关键之处(银行,心脏起搏器)
要求:总的来说就是软件测试
1.2软件测试的基本原理
测试的目标是在尽早的发现软件缺陷,并使之修复
eg:不完善的车
如果我们的工作是给客户提供一部完好的车,我们要确保车如用户所期望的那样工作,那么就要保证我们自己找到并改正车的所有缺陷
穷尽的测试是不可能的,程序测试只能说明缺陷的存在,却不能说明没有缺陷
eg:Dijkstra定律
测试贯穿于全部的软件生存周期,并不是周期结束前的最后一个活动
缺陷导致的费用随着检测出缺陷时间的拖延而增加
在缺陷注入和检测缺陷之间间隔的时间越短,不必要的费用就越少
理解测试背后的原因
‘为什么测试’的重要性同‘测试什么’,‘怎么测试’一样
首先测试测试用例
首先测试测试用例--有缺陷的测试用例比有缺陷的产品更危险
测试用例需要逐步完善,不断修订
eg:杀虫剂
测试就像杀虫剂--必须不停的改变其构成,以对付新的害虫(bug)
缺陷的修复也许会带来新的缺陷
缺陷成群集中出现,因此测试应该关注这些缺陷
测试包括缺陷预防
预防比治疗更有效---应该把眼光放的更长远
测试是缺陷预防和缺陷检测之间的精心平衡
缺陷预防应该和缺陷检测相辅相成
智能的和经过良策划的自动化是实现测试效益的关键
为什么要采取自动化
自动化哪些内容
选择最合适的自动化工具
根据需求选择工具
对测试人员进行相关培训
不要期待一夜之间获得回报
测试需要具有天分,具有自信和信任团队的非常投入的人才(你是吗?)
为‘测试’而骄傲,就会处理好’其他一切‘
1.3(课后答案)
1. 不会接受,理由如下:
麻烦,5分钟也是时间
生产商不应该制造需要用户自己纠正错误的软件
这是软件生产商应该事先做好的,而不是由消费者解决
2. 硬件环境,安全问题
3. a.没有完美的软件,有的只是没被发现的bug
b.缺陷预防和缺陷检测是相辅相成的
c.搞清楚为什么测试
d.缺陷具有免疫力
e.根据需求选择合适的自动化工具
4.10000+(10000+1000)*10+(10000+1000+100)*(10+10)
5.不能穷尽测试
如果可以需要写20个测试用例,20秒
6.看似矛盾是因为会让人产生“缺陷越检查越多的错觉”
因为修复缺陷围绕几行特定的代码进行,围绕同一段代码的修复会带来副作用
1.1生产软件中的测试背景
前提:软件的普及--如同20世纪初的电一样
无所不在(生活,生产)
软件 广泛使用(手机,电脑,手表) 导致: 对其开发和部署提出了一定的要求
关键之处(银行,心脏起搏器)
要求:总的来说就是软件测试
1.2软件测试的基本原理
测试的目标是在尽早的发现软件缺陷,并使之修复
eg:不完善的车
如果我们的工作是给客户提供一部完好的车,我们要确保车如用户所期望的那样工作,那么就要保证我们自己找到并改正车的所有缺陷
穷尽的测试是不可能的,程序测试只能说明缺陷的存在,却不能说明没有缺陷
eg:Dijkstra定律
测试贯穿于全部的软件生存周期,并不是周期结束前的最后一个活动
缺陷导致的费用随着检测出缺陷时间的拖延而增加
在缺陷注入和检测缺陷之间间隔的时间越短,不必要的费用就越少
理解测试背后的原因
‘为什么测试’的重要性同‘测试什么’,‘怎么测试’一样
首先测试测试用例
首先测试测试用例--有缺陷的测试用例比有缺陷的产品更危险
测试用例需要逐步完善,不断修订
eg:杀虫剂
测试就像杀虫剂--必须不停的改变其构成,以对付新的害虫(bug)
缺陷的修复也许会带来新的缺陷
缺陷成群集中出现,因此测试应该关注这些缺陷
测试包括缺陷预防
预防比治疗更有效---应该把眼光放的更长远
测试是缺陷预防和缺陷检测之间的精心平衡
缺陷预防应该和缺陷检测相辅相成
智能的和经过良策划的自动化是实现测试效益的关键
为什么要采取自动化
自动化哪些内容
选择最合适的自动化工具
根据需求选择工具
对测试人员进行相关培训
不要期待一夜之间获得回报
测试需要具有天分,具有自信和信任团队的非常投入的人才(你是吗?)
为‘测试’而骄傲,就会处理好’其他一切‘
1.3(课后答案)
1. 不会接受,理由如下:
麻烦,5分钟也是时间
生产商不应该制造需要用户自己纠正错误的软件
这是软件生产商应该事先做好的,而不是由消费者解决
2. 硬件环境,安全问题
3. a.没有完美的软件,有的只是没被发现的bug
b.缺陷预防和缺陷检测是相辅相成的
c.搞清楚为什么测试
d.缺陷具有免疫力
e.根据需求选择合适的自动化工具
4.10000+(10000+1000)*10+(10000+1000+100)*(10+10)
5.不能穷尽测试
如果可以需要写20个测试用例,20秒
6.看似矛盾是因为会让人产生“缺陷越检查越多的错觉”
因为修复缺陷围绕几行特定的代码进行,围绕同一段代码的修复会带来副作用