软件当中为什么会引入缺陷?
只要是人,都会犯错。即使是一个优秀的程序员,也会犯低级性的错误,根据数据统计,即便是优秀的程序员,开发的软件产品中,如果未经过测试,代码中遗留的缺陷至少在每千行代码6个以上。
常见的导致软件中存有缺陷的根源有:
1、缺乏有效的沟通,或者没有进行沟通
2、软件复杂度
3、编程错误
4、不断变更的需求
5、时间的压力
6、缺乏文档的代码
7、软件开发工具
8、人员的自大
缺陷的类型及严重级别
软件错误(software error)
软件缺陷(software defect)
软件故障(software fault)
软件失效(software failure)
软件失效机理可描述为:软件错误->软件缺陷->软件故障->软件失效
软件错误:在整个软件生存周期的每个阶段,都贯穿着人的直接或间接地干预。然而,人难免犯错误,这必然给软件留下不良的痕迹。软件错误是指在软件生存期内的不希望或不可接受的认为错误,其结果是导致软件缺陷的产生。可见,软件错误是一种人为过程,相对于软件本身,是一种外部行为。
软件缺陷:软件缺陷是存在于软件(文档、数据、程序)之中的那些不希望或不可接受的偏差,如少一个逗号,多一个语句等,其结果是软件运行于某一特定条件时出现软件故障,这时称软件缺陷被激活。
软件故障:软件故障是指软件运行过程中出现的一种不希望或不接受的内部状态。比如,软件处于执行一个多余循环过程时,我们说软件出现故障。此时若无适当的措施(容错)加以及时处理,便产生软件失效。所以,软件故障是一种动态行为。
软件失效:软件失效是指软件运行时产生的一种不希望或不接受的外部行为结果。
综上所述,软件错误是一种人为错误。一个软件错误必定产生一个或多个软件缺陷。当一个软件缺陷被激活时,便产生一个软件故障;同一个软件缺陷在不同条件下被激活,可能产生不同的软件故障。软件故障如果没有及时的容错措施加以处理,便不可避免地导致软件失效;同一个软件故障在不同条件下可能产生不同的软件失效。
软件缺陷的严重性和优先级
严重性:
致命:系统崩溃、数据丢失、数据毁坏;
严重:操作性错误、错误结果、遗漏功能;
一般:提示信息错误、UI布局、操作时间过长;
轻微:不影响使用的错误或更好的实现。
优先级:
最高优先级:立即修复,停止一切测试;
次高优先级:在产品发布之间必须修复;
中等优先级:如果时间允许应该修复;
最低优先级:可能会修复,但是也能发布。
一般的严重性和优先级的划分使用数字1~4表示,有的小数字表示的级别最高;而有的用大数字表示级别高;
什么是测试用例?
测试用例(Test Case)就是设计一个情况,软件程序在这种情况下,必须能正常运行且达到程序设计的执行结果。
测试用例的好处主要体现在以下几个方面:
在开始实施测试之前设计好测试用例,可以避免盲目测试并提高测试效率;
测试用例的使用令软件测试的实施重点突出、目的明确;
在软件版本更新后只需要修正少部分测试用例便可开展测试工作,降低工作强度,缩短项目周期;
功能模块的通用化和复用化使软件易于开展,而测试用例的通用化和复用化则使软件测试易于开展,并随着测试用例的不断精华其效率也不断攀升。
什么是测试执行?
测试执行就是根据测试用例运行被测软件。
一个测试用例的测试执行
一个测试用例集的测试执行
测试工程师的主要工作是什么?
检视代码、评审开发文档;
进行测试设计、写作测试文档(测试计划、测试方案、测试用例等);
执行测试,发现软件缺陷,提交缺陷报告,并确认缺陷最终得到了修正;
通过测试度量软件的质量。
关于“软件缺陷”,按照一般定义,符合下列5种情况的任何一种,就叫做软件缺陷。
1、软件未达到需求说明书中标明的功能;
2、软件出现了需求说明书指明的不会出现的错误;
3、软件功能超出了需求说明书指明的范围;
4、软件未达到需求说明书虽未指出但应达到的目标;
5、软件测试人员认为软件难以理解、不易使用、运行速度慢、或最终用户认为不好使用。
目前软件测试界一般主要使用缺陷(defect)和错误(error)这两个词,而软件缺陷又常常被称为BUG。
来源:https://www.cnblogs.com/privilege/p/11184239.html