软件测试
上一篇 /
下一篇 2011-01-14 14:56:19 / 天气: 冷
/ 心情: 郁闷
什么是软件测试?
(现在)软件测试不仅仅是为了发现错误,预防错误,管理软件质量。
使用人工或自动手段来运行或测试某个系统的过程;其目的是检验是否满足规定的需求或是弄清预期结果与实际结果的差别。(1983 IEEE年提出)
测试目的:
证明:表明软件能够工作。
检测:发现错误。
预防:管理软件质量。
测试与调试的差别:
目的不同:测试时找出存在的错误;调试时定位错误并修改程序以修正错误。
方法不同:测试时根据实测用例,执行程序;调试是通过问题的描述运行程序和检测程序的相关部分;
过程不同:测试时有序的,可重复的;调试是不可重复的。
测试用例举例:
用例编号 | CALC-ST-ADD-001 |
测试项目 | 测试计算器的加法功能 |
测试标题 | 一个加数在合法取值范围内,另一个在最大取值范围外 |
重要级别 | 高 |
预置条件 | 启动计算器软件 |
测试输入 | 参数1:1 参数2:+ 参数3:65537 参数4:= |
执行步骤 | 用计算器键盘依次输入上述参数 |
预期输出 | 参数5:65538 |
自动化测试的条件:(系统功能基本实现的情况下)
1. 软件需求变动不频繁;
2. 项目周期足够长;
3. 自动化骄傲本重复利用率高;
4. 在手工测试无法完成的情况下,需要投入大量的人力与时间的时候。
自动化测试失败的原因:
1. 期望值过高;
2. 对收益与成本认识不清;成本=实现成本+运行维护成本
3. 没有认识到自动化测试的软件本质;(一个软件系统区测试另一个软件系统)
4. 没有认识到自动化测试的测试本质;
5. 没有选用合适的自动化测试工具。
自动化测试:
对于一些基本的、逻辑性不强的操作,可以使用自动化测试工具。应该说,现在在性能测试,压力测试等方面,自动化测试有不可替代的优势。它可以用简单的脚本,实现大量的重复操作,从而不仅可以节省大量的人类和无力,而且使测试结果更加准确。
优点:
1. 对程序的回归测试更方便。
2. 可以运行更多的繁琐测试。
3. 更好地利用资源。
4. 测试具有一致性和可重复性。
5. 测试的复用性。
6. 可以执行一些手工测试困难或者不可能执行的得测试。
7. 增加软件的信任度。
缺点:
1. 不能取代手工测试。
2. 手工测试比自动测试发现的缺陷更多。
3. 对测试质量的依耐性极大。
4、测试自动化不能提高有效性
5、测试自动化可能会制约软件开发。
7、工具本身并无想像力。
手工测试:
对于一些逻辑性不强的操作,如果自动化测试不是很健全的话,不建议使用。因为这需要比较复杂的脚本语言,不可避免的增加了由于测试脚本的缺陷所造成的测试结果错误的误差。这就需要手工测试,手工测试也存在一些缺陷,最需要做的就是回归测试。
测试分类:单元测试<参照LLD >
集成测试<参照HLD >
系统功能测试 <参照 srs需求规格说明书>
性能測試
软件测试的主要工作:
1. 检视代码,评审开发文档
2. 编写测试计划、测试方案、测试用例
3. 执行测试,发现缺陷,提交缺陷报告
4. 通过测试度量软件质量。
什么是软件的生命周期?
软件的生命周期是指软件从产生到报废的生命周期;其中包括计划、需求分析、设计、编码、测试、运行和维护、评价等阶段。
为什么要引进软件工程?需要关注些什么?
解决软件危机;
软件工程是开发、运行、维护和修复软件的系统方法,建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。
需要关注软件开发技术和软件管理方法。
软件开发相关要素:人员、过程、工具(只有合适的人员借助合适的工具经过合适的过程才能开发出高质量的软件)工具是为人员和过程服务,起辅助作用,人员和过程起关键作用。
常见的软件开发流程有几种?优缺点?
瀑布模型
优点:1.开发的各个阶段比较清晰。
2.强调早期计划及需求调查。
3.适合需求稳定的产品开发
缺点:依赖于早期的需求调查,不适应需求的变化
1.单一流程,不可逆。
2.风险往往迟至后期才显露,失去了及早修正的机会。
3.测试仅是编码后的一个阶段。
螺旋模型
RUP流程(迭代式开发流程)最大的优点就是适应需求变化,灵活多变,降低项目风险。
IPD流程
缺陷的生存周期:
发现缺陷(测试员)→open(PM)→fixed(开发人员)→close(测试员)
→reopen(测试员)→fixed
发现缺陷(测试员)→open(PM)→rejected(开发人员)→close(PM)
 
收藏
举报
TAG: