软件测试缺陷种类有哪些,软件缺陷有哪些表现
软件测试缺陷种类有哪些目录
软件测试BUG的种类和种类定义
复制的 希望对你有用。
、软件缺陷1、概念:软件缺陷简单说就是存在于软件(文档、数据、程序)之中的那些不希望,或不可接受的偏差,而导致软件产生的质量问题。
按照一般的定义,只要符合下面5个规则中的一个,就叫做软件缺陷。
软件未达到软件规格说明书中规定的功能; 软件超出软件规格说明书中指明的范围; 软件未达到软件规格说明书中指出的应达到的目标; 软件运行出现错误; 软件测试人员认为软件难于理解,不易使用,运行速度慢,或者最终用户认为软件使用效果不好。
2、软件缺陷的种类(1)功能不正常(2)软件在使用上不方便(3)软件的结构未做良好规划(4)功能不充分(5)与软件操作者的互动不良(6)使用性能不佳(7)未做好错误处理(8)边界错误(9)计算错误(10)使用一段时间所产生的错误(11)控制流程的错误(12)在大数据量压力之下所产生的错误(13)在不同硬件环境下产生的错误(14)版本控制不良所产生的错误(15)软件文档的错误3、正确面对软件缺陷在软件测试过程中,软件测试人员必须确保测试过程发现的软件缺陷得以关闭; 测试是为了证明程序有错,而不是证明程序没错。
不管测试计划多么完善和执行测试多么努力,也不能保证所有软件缺陷发现了就能修复。
有些软件缺陷可能会完全被忽略,还有一些可能推迟到软件后续版本中修复。
有些软件缺陷不被修复的原因如下。
(1)没有足够的时间(2)不算真正的软件缺陷(3)修复的风险太大(4)不值得修复(5)测试误登记 4、缺陷的分类按严重程度划分:严重、较严重、一般、建议 严重:系统崩溃、数据丢失、数据毁坏 较严重:操作性错误、错误结果、遗漏功能 一般:小问题、错别字、UI布局、罕见故障 建议:不影响使用的瑕疵或更好的实现按优先级划分:最高、次高、中等、最低 最高优先级:立即修复,停止进一步测试 次高优先级:在产品发布之前必须修复 中等优先级:如果时间允许应该修复 最低优先级:可能会修复,但是也能发布缺陷的分类按测试种类划分: 逻辑功能类性能类界面类 易用性类 兼容性类
软件缺陷有哪些表现
常见的软件缺陷有以下四种:第一,栈溢出。
就是在栈中申请一段内存,一般是数组或字符串,在对这段内存做操作的时候,错误的写操作可能导致栈中也特殊意义的地址被用户的输入内容所控制。
最早发现是一些字符串操作的函数中,比如strcat,后来又发现在Strncpy如果不正常操作的话也会出现这个问题。
最后有一个Windows UNicode处理的函数如果不正常使用也会出现这样的问题。
下面介绍的是整数溢出的问题。
整数溢出是多发于的情况,特别是一些加、乘的操作出现在内存前面就要特别注意了。
加或者乘出来的数不一定比原先两个数大。
还有一个正负数比较的问题,或者是符号扩展的问题。
即使现在这个问题仍存在于很多软件中。
但是在很多流行软件中已经很少出现了,比如微软的软件、国外大公司的软件。
但是在国内软件这个问题依然是很多的。
这个问题在JAVA软件中也经常存在。
例如银行系统,系统错误处理,把别人帐号上扣掉的金额,一个正的金额加到你的帐号上。
第二, heap overflow。
这是现代程序C语言主要申请分配方法,所以他比栈溢出比例大的多。
微软做了很多防护措施,所以它利用起来是非常复杂的。
尤其是 WindowsXP2之后的版本,比如vista。
堆管理主要利用两张表,freelist、lookaside,freelist[0]代表着一些不规则的可以利用的chunk,尤其是比较大的chunk。
freelist[1] - freelist[n]代表2的整数次方可以利用的堆中的chunk。
利用这样堆溢出的问题,你需要对Windows堆管理非常熟悉。
比如有人通过 freelist[0]这个链表成功利用。
目前有一个immdbg的程序对这种研究利用是很有帮助的。
因为他把堆分配的内容都可以显示出来。
对vista 软件的攻击,理论上应该是不存在的。
因为vista对堆管理有严格控制,但是有很多软件使用自己的内存管理方法,比如OFFICE,他们自己堆管理方法和内存方法是和vista不一样的,这些方法往往采用教科书的方法或者以前系统的方法,所以他们这些方法是有可能被利用起来。
第三,未初始化的问题。
栈上的问题由德国人在06年详细讨论过。
头一次压栈的时候,在栈上写需要内容,然后函数退出,导致栈顶上移,有问题的函数压栈时正好利用这段栈空间,如果函数中发现了未初始化问题,比如数组,那么其内容刚好是我们刚写入的内容的栈空间,就可能被利用。
先把堆里的大部分内容写成自己需要的内容,未初始问题发生时,比如堆里指针的内容就可能指向我们需要的内容。
目前这个问题是大量存在的,OFFICE存在了很多。
比如这个月微软补丁,excel那一个补丁里就包括很多这样的问题。
你可以对比新旧的OFFICE软件,你发现 OFFICE2007有一些新加的代码就是做初始化工作的。
第四,二次释放或者叫double free问题。
内存泄露是现代软件大敌,特别是服务器软件。
有很多程序员害怕发生这样的问题,申请内存时总是想释放它,结果释放多了几次,这样也会有安全问题。
曾经在linux上的方法很巧妙、经典,但是在目前Windows上比较难以利用。
很多软件采用自己管理内存方法,那么就很可能被利用到。
软件缺陷产生的原因包括
软件缺陷产生的原因包括以下几个方面:
1、人为设计缺陷:由于设计人员的疏忽、技术不足或设计过于复杂等原因造成的缺陷。
2、编码错误:编程员在编写源代码时的拼写错误、语法错误、大小写错误、数据类型错误等导致的缺陷。
3、重构问题:软件重构时,代码复用和代码改进时引发的缺陷。
4、软件未能满足需求:软件设计人员或测试人员没有充分理解用户需求或技术细节,以导致软件失效或不满足用户需求的缺陷。
5、工具和环境问题:使用的软件工具或应用程序环境可能存在缺陷,例如编译器、文本编辑器、操作系统等的功能失效。
6、规定和标准问题:软件设计人员或编程员未能按照编码、文档编写、命名风格等规范进行编码,导致缺陷。
7、硬件故障:硬件故障可以导致缺陷,例如I / O设备故障、存储器磁盘失败等。
8、环境和配置错误:软件的功能和关联的配置并不完全正确匹配时,可能导致缺陷。
例如,应用程序需要更高的内存或处理器速度以正常运行。
因此,制定正确的测试计划和准确识别缺陷原因,是软件开发中至关重要的一步,可以帮助开发人员及时修复缺陷并上线。
针对软件缺陷,通常有以下的处理流程:
1、发现缺陷:通过软件测试、运行、用户反馈等方式发现缺陷。
此时应及时记录缺陷,并将其转交给相关的责任人员进行处理。
2、缺陷分类:对发现的缺陷进行分类,确定其优先级和影响范围,以便后续的处理。
3、缺陷分析:进行缺陷分析,找出导致缺陷的根本原因和影响因素。
4、缺陷修复:根据分析结果,进行缺陷修复,包括修改代码、重新测试等。
5、缺陷验证:对修复后的缺陷进行验证,以确保缺陷得到了彻底修复。
6、缺陷关闭:缺陷验证通过后,关闭该缺陷,并记录缺陷的处理信息和修复情况。
7、缺陷分析总结:对缺陷分析结果进行总结,找出常见的缺陷原因和解决方案,进一步提高软件质量和效率。
(随机推荐阅读本站500篇优秀文章点击前往:500篇优秀随机文章)