软件缺陷有哪些表现
常见的软件缺陷有以下四种:第一,栈溢出。
就是在栈中申请一段内存,一般是数组或字符串,在对这段内存做操作的时候,错误的写操作可能导致栈中也特殊意义的地址被用户的输入内容所控制。
最早发现是一些字符串操作的函数中,比如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上比较难以利用。
很多软件采用自己管理内存方法,那么就很可能被利用到。
软件测试 缺陷报告都要包括什么内容
软件工程专业旨在培养能从事计算机系统软件、应用软件的设计、研制和开发的高级工程技术人才。
本专业培养具有良好的科学素养,系统地掌握计算机科学与技术基础知识、规范的软件设计与开发能力、良好的组织与交流能力,能在科研部门、教育单位、企业、事业和行政管理部门等单位从事复合型、实用型高层次软件设计、系统分析和工程应用的高级专门技术人才。
近几年,我国软件产业不断发展,对软件从业人员的需求也在不断增加中,新增的软件工程专业,对培养这方面的人才起很大的作用。
可以看出来软件工程专业的培养目标是运用先进的工程化方法、技术和工具从事软件分析、设计、开发、维护等工作能力,以及工程项目的组织与管理能力的实用型、复合型软件工程技术与管理的高级人才。
专业学习的主要课程有:面向对象系统分析与设计、软件体系结构、软件项目管理、软件需求工程、软件质量保证与软件测试技术、先进软件开发与工具、软件过程改进与管理。
就这些吧,希望能对你有所帮助。
软件测试报告包含哪些内容
网页链接测试报告是把测试的过程和结果写成文档,并对发现的问题和缺陷进行分析,为纠正软件的存在的质量问题提供依据,同时为软件验收和交付打下基础。
测试模块(每个模块里需要记录测试的开始时间、结束时间、设计多少用例、通过多少、失败多少、有多少BUG、遗留多少BUG、解决多少BUG、追后对这个模块总结一下)BUG的统计,根据时间轴来统计BUG的数量,例如:XXXX年X月X日,发现BUG多少,关闭BUG多少,剩余BUG多少,高级的BUG有多少,中级的BUG有多少,低级和建议的BUG有多少,一直罗列到项目完结项目总结,汇报一下测试的大致结果。
遗留和风险,该软件还有什么遗留问题,还有什么风险,都要一一说明最后评判该软件是否符合上线标准,日期,签字,加盖章等...
现代软件测试活动都包括什么内容?
测试报告的版本 测试的人员和时间 测试所覆盖的缺陷——测试组在这轮测试中所有处理的缺陷,报告了测试组长处理的缺陷和实施工程师验证的缺陷。
不仅要写出覆盖缺陷的总数,还要写明这些缺陷的去向 测试新发现的缺陷数量 上一版本活动缺陷的数量 经过此轮测试,所有活动缺陷的数量及其状态分类 测试评估——写明在这一版本中,那些功能被实现了,那些还没有实现,这里只需写明和上一版本不同之处即可 急待解决的问题——写明当前项目组中面临的最优先的问题,可以重复提出另外一种测试报告的内容:l 测试资源概述——多少人、多长时间l 测试结果摘要——分别描述各个测试需求的测试结果,产品实现了哪些功能点,哪些还没有实现l 缺陷分析——按照缺陷的属性分类进行分析l 测试需求覆盖率——原先列举的测试需求的测试覆盖率,可能一部分测试需求因为资源和优先级的因素没有进行测试,那么在这里要进行说明l 测试评估——从总体对项目质量进行评估测试组建议——从测试组的角度为项目组提出工作建议...
管理风险包括了哪些内容?
由于管理不善造成的项目风险。
其原因有:工 程管理水平低下;工程地址偏僻或条件恶劣导致难 以吸引和保有优秀的技术和管理人员经营该工程项 目;参与工程建设、经营人员的国籍不同,文化、知 识、社会背景不同而造成的差异,带来管理、协调上 的困难等。
防范措施:选择掌握科学管理知识和技 能并具有较高管理艺术的领导;制订优化的管理目 标;发挥有效的管理职能;改善外部条件;做好协调 工作等。
哪些是测试人员提交缺陷时应该填写的内容
又称变动预算。
企业按不同的预期经营活动水 平编制的,具有几个业务量水平的多栏式费用计划。
业务量可以产量、劳动量、机械小时、人工小时等表 示。
按照成本与业务量变化的依存关系,把成本分 为固定费用栏和变动费用栏,计算出不同业务量的 固定费用、变动费用和费用总额。
这种预算方法克 服了只能适应一种生产经营情况的缺陷,便于根据 各种业务量的变化来控制成本。
转载请注明出处51数据库 » 软件缺陷包括哪些内容