一、软件缺陷
1.软件缺陷举例
(1)迪斯尼狮子王多媒体光盘游戏->软件在极少数系统中工作正常,但在大多数公众使用的系统中不能运行(迪斯尼公司未能对市面上不同的PC机型进行广泛的测试)
(2)英特尔奔腾浮点除法缺陷(在精度要求很高的工程和数学计算中出错):软件测试工程师在芯片发布之前的内部测试中已经发现了这个问题,但它并没有得到决策层的重视
2.软件缺陷是什么
产品说明书是软件开发小组的一个协定,它对开发的产品进行定义,给出产品的细节、如何做、做什么、不能做什么
只有至少满足下列五个规则之一才称发生了一个软件缺陷
(1)软件未实现产品说明书要求的功能
(2)软件出现了产品说明书指明不应该出现的错误
(3)软件实现了产品说明书未提到的功能
(4)软件未实现产品说明书未提及但应实现的目标(eg.计算器在电池低电量的情况下计算错误)
(5)软件难以理解、不易使用、运行缓慢或在测试员的角度看来最终用户会认为不好
3.造成软件缺陷的原因:产品说明书、软件设计
产品说明书不够全面、经常更改、整个开发小组没有很好的沟通
4.软件测试员的目标是:尽可能早的找出缺陷并确保其得以修复
二、软件开发的过程
1.软件产品构成的主要部分
可交付部分:制造出来并交付他人的软件组件
客户需求、产品说明书、进度表、软件设计文档(结构文档、数据流图、状态转换图、流程图)、测试文档(测试计划;测试用例;缺陷报告;测试工具和自动测试;度量、统计和总结)
软件产品的组成:帮助文件、用户手册、样本和示例、标签和不干胶、产品支持信息、图标和标志、广告和宣传材料、错误信息、安装、说明文件
注意:测试错误提示信息(该部分通常不是由专业人员完成,而是交给程序员来做,为了避免不必要的误解和歧义,尽量检查错误提示信息是否易读易懂)
2.软件项目成员
(1)项目经理(编写产品说明书、管理进度、进行重大决策)
(2)体系架构师或系统工程师(设计整个系统的体系架构或软件)
(3)程序员
(4)测试员或质量保证
(5)技术作者、用户协助专员、用户培训专员、手册编写员或文案专员(编制软件产品附带的文件和联机文档)
(6)配置管理员或构建员(把程序员编写的代码和技术作者编写的所有文档资料组合在一起,合成为一个软件包)
3.软件开发生命周期模式
(1)大爆炸模式(所有精力都花费在开发软件和编写代码上,几乎没有测试)
(2)边写边改模式:原型范例、演示程序(开头几乎没有文档编制和计划)
(3)瀑布模式(重视产品定义、各步骤之间相互独立、没有回溯)
(4)螺旋模式(测试人员在早期参与软件开发)
三、软件测试的实质
1.测试的原则:
(1)不可能完全测试程序(输入量太大、输出结果太多、软件执行路径太多、软件说明书是主观的,可以说从旁观者看来是缺陷)
(2)软件测试是有风险的行为(因为不可能完全测试,测试用例的选择上存在风险)
(3)测试无法显示潜伏的软件缺陷
(4)找到的软件缺陷越多,说明软件缺陷越多
(5)反复使用相同的测试软件最后会使软件具有抵抗力(杀虫剂怪事)
(6)并非所有的软件缺陷都要修复
(7)产品说明书从没有最终版本
2.软件测试的术语
(1)精确和准确
(2)确认和验证(确认:保证软件符合产品说明书;验证:保证软件满足用户要求)
(3)质量和可靠性
(4)软件测试和质量保证(软件测试人员的目标是尽可能早的找出软件缺陷,并确保缺陷得以修复;质量保证人员创建和执行改进软件开发过程并防止软件缺陷发生的标准和方法)
网友评论