软件测试的概念与过程
⼀、软件测试的引⼊
1. 软件的概念与分类
1.1 软件的概念
软件是计算机系统中与硬件相互依存的⼀部分,包括 程序、数据以及其相关⽂档 的完整集合。
1. 程序是按事先设计的功能和性能要求执⾏的指令序列;
2. 数据是使程序能正常操作信息的数据结构;
3. ⽂档是与程序开发、维护和使⽤有关的图⽂材料。
1.2 软件的分类
按重要性
系统软件
软件测试项目流程⽀持软件
应⽤软件
按架构
单机版软件
分布式软件
1. C/S 架构
2. B/S 架构
2. 软件失效
2.1 软件都是安全的吗?软件中有错误吗?
1991 年,爱国者导弹防御系统
美国爱国者导弹防御系统是⾥根总统提出的战硌防御计划(即星球⼤战计划), 海湾战争中,⽤于拦截伊拉克飞⽑腿导弹,但在沙特阿拉伯的多哈中失利,28 名美国⼠兵丧⽣。
分析发现症结在于⼀个软件缺陷,系统时钟的⼀个很⼩的计时错误积累起来到 14 ⼩时后,跟踪系统不再准确。在多哈的这次袭击中,系统已经运⾏了 100 多个⼩时。
2000 年,千年⾍问题
20C70S,美国⼀程序员位公司开发⼯资系统,当时的计算机存储空间很⼩, 为了节省存储空间,把 4 位数⽇期缩减为 2 位数,如1973—73。他简单地认 为,只有在到达 2000 年他的程序计算 00 或 01 这样的年份时问题才会发⽣问 题,他认定在 25 年之内程序肯定会升级或替换,⽽且眼前的任务⽐现在计划 遥不可及的未来更加重要。后来,程序员退休了,程序仍然在使⽤,谁也不会 想到如何深⼊到程序中检查 2000 年兼容问题,更不⽤说去修改了。
据估计,世界各地检查和解决 2000 年兼容问题和错误花费了数千亿美元
2.2 软件危机(software crisis)
20 世纪六七⼗年代,出现了软件数量急剧增长,但软件失败率⾼速上升的现象。 1968 年初,北⼤西洋公约组织的在联邦德国召开的国际学术会议上,计算机科学 家们正式提出了 “软件危机”(Softwre Crisis) 。
1. 对进度和成本估计不准确,开发成本远远超出预算,项⽬进度和软件开发效率 严重滞后;
2. ⽤户对提交的产品经常会不满意;
3. 产品的质量不可靠,缺陷很多,维护成本⾮常⾼;
4. 软件开发过程的⽂档匮乏。
2.3 软件为什么会失效?
总结起来就是⽤户、项⽬组长、分析员、程序员、咨询员等的理解和沟通上有偏差,导致⽤户最后得到的和预期结果差距较⼤缺陷产⽣的原因
⼆、软件测试的定义
1. 经典定义
1979,Myers,《软件测试艺术》
测试是为发现错误⽽执⾏程序的过程。
理解:
测试是为了证明程序有错,⽽不是证明程序⽆错误。
⼀个成功的测试是发现了⾄今未发现的错误的测试。
2. 标准定义
1983,IEEE
使⽤⼈⼯或⾃动⼿段来运⾏或测定某个系统的过程,其⽬的在于检验它是否满 ⾜规定的需求或是弄清预期结果与实际结果之间的差别。
理解:
测试是在⽤户需求和开发技术之间⼀个平衡点。
3. 国内定义
GB/T 11457
依据规范的软件检测过程和检测⽅法,按照测试计划和测试需求对被检测软件 的⽂档、程序和数据进⾏测试的技术活动。
理解
1. 软件测试是⼀个过程,测试不只是测试执⾏,它包括从计划开始到测试结 束的⼀系列活动。
2. 软件测试需要测试⽅法和技术,或者说技巧。
3. 软件包括程序、数据和⽂档,除了执⾏程序,数据和⽂档也需要测试。
4 其他理解
1. 不同时期关于测试的其他定义
2. 确信程序做了它应该做的事(Hetzel,1973)。
3. 确认程序正确实现了所要求的功能。
4. 查出规格说明中错误,以及与规格说明不符的地⽅。
5. 测试是⼀切以评价程序或系统的属性、能⼒为⽬的的活动;测试是对软件质量 的度量(Hetzel,1983)。
6. 评价程序或系统的过程。
7. 测试是与软件开发或维护⼯作并⾏进⾏的⼀个过程。
8. 测试是⼀个获取信息,降低决策风险的过程。通过测试,向整个团队提供关于 产品质量和项⽬环境的信息,帮助他们做出决定。
三、软件测试的过程
1 分析测试需求
测试⼈员对⽤户的需求进⾏分析,了解软件要做什么,怎么做,进⽽确定将来怎么 测试。
2 编写测试计划
测试负责⼈编写测试计划;
测试计划的内容
包含产品概述、测试范围/测试区域/测试项、 测试⽬标/被测特征、测试优先 级、测试配置/测试资源(硬件、软件、⼈⼒、技术等)、测试周期、进度安 排(测试任务、⼈员安排)、 测试策略、测试⽅法/途径、测试交流、风险分 析、测试标准、需交付⽂档等内容。
3 设计与编写测试⽤例
设计⽤例主要反映在编写测试点上;
根据公司格式或者选择⼀些模板编写测试⽤例。
4 执⾏测试
搭建测试环境;
执⾏测试⽤例,记录测试事件;
提交和跟踪缺陷。
5 评估与总结
分析实际测试与计划的偏差;
收集并提交各种测试⽂档和数据,对数据进⾏分析;
给出是否继续测试还是终⽌测试结论;
总结经验教训
四、软件测试的⽬的/⽬标
五、区分概念
1. 测试 & 调试
2. 软件质量保证 & 软件测试
软件质量保证(SQA,Software Quality Assurance)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论