- 相关推荐
软件测试的目的
软件测试是为了发现错误而执行程序或系统的过程。以下是小编为大家整理的软件测试的目的相关内容,仅供参考,希望能够帮助大家。
问题:
软件测试的目的
答案:
软件测试的目的是尽可能发现并改正被测试软件中的错误,提高软件的可靠性。
基于不一样的立场,存在着两种完全不一样的测试目的。从用户的角度出发,普遍期望通过软件测试暴露出软件中陷藏的错误和缺陷,以思考是否能够理解该产品。而从软件开发者的角度出发,则期望测试成为证明软件产品中不存在错误的过程,验证该软件已正确地实现了用户的要求,确立用户对软件质量的信心。
因为在程序中往往存在着许多预料不到的问题,可能会被疏漏,许多隐藏的错误只有在特定的环境下才可能暴露出来。如果不把着眼点放在尽可能查找错误这样一个基础上,这些隐藏的错误和缺陷就查不出来,会遗留到运行阶段中去。如果站在用户的角度替他们设想,就应当把测试活动的目标对准揭露程序中存在的错误。在选取测试用例时,思考那些易于发现程序错误的数据。
下面这些规则也能够看作是测试的目的或定义:
1、测试是为了发现程序中的错误而执行程序的过程;
2、好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;
3、成功的测试是发现了至今为止尚未发现的错误的测试。
从上述规则能够看出,测试的正确定义是“为了发现程序中的错误而执行程序的过程”。这和某些人通常想象的“测试是为了证明程序是正确的”,“成功的测试是没有发现错误的测试”等等是完全相反的。正确认识测试的目标是十分重要的,测试目标决定了测试方案的设计。如果为了证明程序是正确的而进行测试,就会设计一些不易暴露错误的测试方案;相反,如果测试是为了发现程序中的错误,就会力求设计出最能暴露错误的测试方案。
由于测试的目标是暴露程序中的错误,从心理学角度看,由程序的编写者自己进行测试是不恰当的。因此,在综合测试阶段通常由其他人员组成测试小组来完成测试工作。此外,就应认识到测试决不能证明程序是正确的。即使经过了最严格的测试之后,仍然可能还有没被发现的错误潜藏在程序中。测试只能查找出程序中的错误,不能证明程序中没有错误。
一、什么是软件测试?
1979年,myer:软件测试就是为了发现错误而执行程序或系统的过程。
1983年,IEEE:软件测试即使用人工或自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。
二、现代软件测试活动的内容?
制定测试计划、设计测试用例、实施测试、提交缺陷报告、测试总结
三、软件测试的目的?
GrenfordJ.Myers在《The Artof Software Testing》一书中的观点:
1、测试是程序的执行过程,目的在于发现错误
2、一个成功的测试用例在于发现至今未发现的错误
3、一个成功的测试是发现了至今未发现的错误的测试
简单的说,测试的根本目的就是确保最终交给用户的产品符合用户的需求,在产品交给用户之前尽可能多的发现并改正问题。
四、测试一般要达到的目标?
确保产品完成了它所承诺或公布的功能,并且用户可以访问到的功能都有明确的书面说明;
确保产品满足性能和效率的要求;确保产品是健壮的和适应用户环境的。
五、软件测试分类?
1、按测试策略分类:a静态测试与动态测试
静态测试
定义:不运行被测程序本身而寻找程序代码中可能存在的错误或评估程序代码的过程。Ps:通过分析或检查源程序的文法、结构、过程、接口等来检验程序的正确性,找出缺陷和可疑之处,例如不匹配的参数、不适当的分支嵌套和循环嵌套、未使用过的变量、空指针的引用等;可采用人工和软件工具进行;静态测试工具的代表:telelogic公司的logiscope软件、PR公司的PRQA软件等。
静态测试特点:
不必动态地运行程序,也不必进行测试用例设计和结果判断等工作;可由人工进行,充分发挥人得逻辑思维优势;不需要特别的条件,容易展开。
静态测试要点:
代码审查(code in spection或code review)、代码走查(walk through)、桌面检查、技术评审(软件需求分析和设计评审)、静态分析(使用软件工具,包括控制流分析、数据流分析、接口分析和表达式分析)
动态测试
定义:实际运行被测程序,输入相应的测试实例,检查运行结果和预期结果的差异,判断执行结果是否符合要求,从而检验程序的正确性、可靠性和有效性,并分析系统运行效率和健壮性等性能。
组成:构造测试实例、根据测试实例运行程序、分析程序的输出结果。主要方法:黑盒测试和白盒测试。
动态测试特点:
实际运行被测试程序,取得程序运行的真实情况、动态情况,并进行分析;必须生成测试数据来运行程序,测试质量依赖于测试数据;生成测试数据、分析测试结果工作量大,使开展测试工作费时、费力、费人;
动态测试中涉及多方面工作,人员多、设备多、数据多,要求有较好的管理和工作规程。
b黑盒测试和白盒测试
黑盒测试(black-box testing)又称功能测试、数据驱动测试、基于规格说明书的测试。定义:测试者把被测程序看成一个黑盒,不考虑程序的内部结构和特性,只需知道该程序输入和输出之间的关系和程序功能,依靠能够反映这一关系和程序功能的需求规格说明书,来确定测试用例和推断测试结果的正确性。
白盒测试(white-box testing)又称结构测试、逻辑驱动测试、基于程序本身的测试。定义:从程序的内部逻辑结构入手,按照一定的原则设计测试用例,对软件的逻辑路径进行测试,在程序的不同点检查程序的状态,来判定其实际情况是否和预期的状态一致。规划方面适用范围优势缺陷黑盒测试针对功能的测试进行确认测试和系统测试时使用能确保从用户使用的角度出发进行测试无法测试程序内部特定部位;如果需求说明有误,则无法发现问题等价类划分(将所有可能的输入数据划分为若干等价类,选择有代表性的当做测试用例进行测试);边界值分析法(对输入或输出的边界值进行测试);因果图法(利用图解法分析输入的各种组合的情况,从而设计测试用例的方法。“因”即输入条件,“果”即输出或程序状态的改变);比较测试法白盒测试针对结构的测试进行单元测试时使用能够对程序内部的特定部位进行覆盖测试无法检验程序的外部特性;无法对未实现规格说明的程序内部欠缺部分进行测试语句覆盖(程序中每条语句至少被执行一次);判断覆盖(或分支覆盖,程序中每个分支至少走查过一次);条件覆盖(判定式中若含多个条件,则每个条件的取值均要得到检验);判断/条件覆盖(同时考虑条件的组合值及判定结果的检验);基本路径的覆盖(使程序沿所有可能的路径执行);循环覆盖;模块接口测试应用举例
C手工测试与自动测试
手工测试定义:由测试人员来执行测试用例,然后根据实际的结果去和预期的结果相比较并记录测试结果。手工测试时现在多数公司使用的测试形式。
自动测试
定义:引入自动测试工具。
通常以手工测试为主,自动测试为辅。d冒烟测试(smoketest):在版本投入正式测试前,对其重要的步伐先进行大概的测试,看系统重要的功能是否正确,再进行彻底的测试。e回归测试(regressiontest):一段时间以后对以前修复过的缺陷重新进行测试,看该缺陷是否会重新出现。
2、按测试阶段分类
单元测试又称模块测试定义:针对每一个程序模块进行正确性检验,检查各个程序模块是否正确的实现了规定的功能。如一个窗口、函数、菜单、报表或一个存储过程。
依据是详细设计,应对所有重要的控制路径设计测试用例。集成测试又称综合测试。定义:在单元测试的基础上,将已经通过测试的单元模块按照设计要求组装成系统或子系统,再进行的测试。
系统测试定义:是将通过确认测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在实际运行环境下,对计算机系统进行全面的功能覆盖。
单元测试集成测试确认测试(有效性测试、软件配置审查)系统测试验收测试(以用户为主)测试类型单元测试对象模块内部的程序错误模块间的集成和调用关系目的清除局部模块的逻辑和功能上的错误和缺陷找出与软件设计相关的程序结构,模块调用关系,模块间接口方面的问题测试依据测试方法模块逻辑设计,大量采用白盒测模块外部说明试方法程序结构设计白盒与黑盒相结合的测试方法,较多用黑盒方法构造测试用例集成测试系统测试整个系统,包括系统中的软、硬件对整个系统进行一系系统结构设计,黑盒测试列的整体、有效性测试目标说明书,需求说明书3、其他常见测试方法
功能测试(functiong testing)又称正确性测试,软件的功能是否符合规格说明;
性能测试(performance testing),系统是否满足需求说明书中规定的性能,通常使用自动化测试工具;
压力测试(stress testing):检查系统在瞬间峰值负荷下正确执行的能力,通常用测试工具测试;
负载测试(volume testing):用于检查系统在使用大量数据时正确工作的能力;
易用性测试(usability testing):合理性、方便性;
安装测试(installation testing):对软件的全部、部分或升级安装/卸载处理过程的测试;界面测试:包括窗口测试、下拉式菜单和鼠标操作、数据项测试;
配置测试(configuration testing):主要检查计算机系统内各个设备或各种资源之间的相互连接和功能分配中的错误。包括验证全部配置命令的可操作性,软件配置,硬件配置,利用手动或自动方式惊喜配置状态间的转换;
文档测试(documentation testing):文档的正确性、完备性、可理解性;
兼容性测试(compatibility testing):产品在不同产品之间的兼容性;
安全性测试(security testing):非法侵入的防范能力,已存在的安全性、保密性,有无漏洞;
恢复测试(recovery testing):容错能力,在指定的时间内修正错误并恢复正常,又不伤害系统。
六:软件的开发周期(软件生命周期)和模型?瀑布模型:
计划需求分析设计编码测试运行、维护
严格按照固定顺序,每个阶段结束,经过项目小组审查,决定是否进入下一步。
螺旋模型:确定目标、可选方案和现在条件指出并解决风险评估方案本阶段开发和测试计划下一阶段确定进入下一阶段的方法(该过程重复进行)螺旋模型是瀑布模型的发展,较常用。
七、软件测试生命周期?
制定测试计划测试设计和开发实施软件测试评审版本发布
八、什么是软件的缺陷(bug)?
定义:在软件使用过程中所出现的任何问题,或者导致软件不能符合设计要求或满足消费者需求的问题。包括程序错误等等。
九、书写缺陷报告的准则?
保证重现缺陷;分析故障,使用最少步骤重现缺陷;包含所有重现缺陷的必要步骤;方便阅读(编号,分步骤);尽量简单(一个缺陷一个报告);注意语气。
识别和判断缺陷的辅助工具:软件需求说明书、用户手册、联机帮助。
十、bug的生命周期?有效地记录BUG;
使用BUG模板;
评价BUG优先级和严重性;BUG的生命;
维护BUG数据库。
十一、bug的类型?
软件没有实现产品规格说明所要求的功能模块;
软件中出现了产品规格说明指明不应该出现的错误;软件实现了产品规格说明没有提到的功能模块;
软件没有实现虽然产品规格说明没有明确提及但应该实现的目标;
软件难以理解,不容易使用,运行缓慢,或从测试员的角度看,最终用户会认为不好。功能缺陷:规格说明书、能功、测试
系统缺陷:内部接口、硬件、操作系统、软件结构、控制与顺序、资源加工缺陷:算术、初始化、控制与次序、静态逻辑、其他数据缺陷:类型、结构、初始值、其他代码缺陷:程序编写、文档、其他
十二、bug中通常包含的内容
硬件平台和操作系统版本
Bug报告优先级Bug状态
报告人reporter
指定处理人assignedto概述summary
邮件抄送列表CClist从属关系(bug“ID”dependson,bug“ID”block)附加描述additionalcomments
十三、bug中的优先级的定义?
优先级表示修复缺陷的重要程度和应该何时修复:1应立即修复的问题
2在产品发布之前必须修复的问题3如果时间允许应该修复的问题4可以在发布版本中存在的问题
缺陷的二八定理:一般情况下,在分析、设计、实现阶段的复查和测试工作能够发现和避免80%的缺陷,而系统测试又能找到剩余缺陷的80%,最后的4%的缺陷可能只有在用户大范围、长时间使用后才会暴露出来。
十四、什么是测试用例?
定义:指为实施测试而向被测试系统提供的输入数据、操作或各种环境设置以及期望结果的一个特定的集合。换句话说,测试用例就是记下要进行什么测试,进行测试的具体步骤,以及测试执行是否正确的标准。
测试用例控制软件测试的执行过程。
十五、测试用例包含的内容?
项目名称:指明本测试用例是用例测试什么软件项目的功能模块名:指明要测试的内容
测试目的:描述被测试功能的详细的特性及要测试的目标预置条件:执行测试用例之前所做的操作,如启动程序等用例编号:唯一编号
相关用例:列出必须先于本测试用例执行的测试用例用例说明:描述实现用例的步骤
输入数据:描述测试用例所需的输入数据或条件预期结果:输入后应该输出的结果
测试结果:此项在测试执行时填写,说明测试用例是否通过,如果不通过,就要生成缺陷报告,并注明缺陷的编号,这里的缺陷编号要与缺陷跟踪系统中的编号一致。
十六、设计测试用例的方法?
1等价类划分法
定义:测试人员要对需求规格说明书中的各项需求,尤其是功能需求进行细致分析,然后把程序的输入域划分为若干个部分,从每个部分中选取少数代表性数据作为测试用例。经过这种划分后,每一类的代表性数据在测试中的作用都等价于这一类中的其他值。
等价类划分法是一种最典型的黑盒测试法。
步骤:在进行等价类划分之前,首先从程序的功能说明中找出各个输入条件,然后为每个输入条件划分两个或更多个等价类。确定了等价类划分后,给出相应的等价类表,再根据等价类表给出测试用例。
要同时考虑有效等价类和无效等价类。
2边界值方法
定义:对输入和输出的边界值进行测试的黑盒测试方法。
确定边界值:选取正好等于、刚刚大于、刚刚小于边界的值作为测试数据,即中的测试最后一个肯定合法的数据和刚刚超过边界的非法数据。
边界值法是等价类划分方法的补充。3因果图定义:考虑输入条件之间的联系、相互组合。
步骤:
分析软件需求说明的描述中的原因(即输入条件或输入条件的等价类)、结果(即输出条件),并给每个原因和结果附一个标识符;
分析因果关系,画因果图
对于不可能出现的组合情况,做出记号表明约束或限制条件;因果图转化成判定表;
把判定表的每一列作为依据,设计测试用例。4其他方法
通过测试和失败测试错误猜测随机测试
十七、测试用例中优先级的定义?
1小版本确认测试(buildverificationtests,BVTs):也叫“冒烟测试”,开发人员在个人版本的软件上执行目前的冒烟测试项目,确定新的程序代码不出故障。
2高(highs):最常执行以保障功能性是稳定的,目标的行为和能力可以正常的工作,和重要的错误和边界被测试的测试用例的集合。
3中(mediums)是使给出的功能区域或功能变得更详细,检查功能的多数方面包括边界,错误和配置测试的测试用例。
4低(lows):通常最少被执行的测试用例。在项目的生命期间里不是常常被运行,如GUI,错误信息,可用性,压力和性能测试。
十八、什么是测试计划,测试计划中通常包含什么内容?
定义:软件测试计划指在软件测试工作正式实施之前明确测试的对象,并且通过对资源、时间、风险、测试范围和预算等方面的综合分析和规划,保障有效地实施软件测试。
内容:
测试计划的简介测试项目说明
需要测试的项目清单测试手段和策略
项目通过或失败的标准暂停和重新启动测试的标准测试的可交付性测试任务环境的需求职责
【软件测试的目的】相关文章:
软件测试总结03-22
软件测试实习总结04-13
软件测试个人总结01-16
软件测试学习总结11-23
软件测试的实习报告05-16
软件测试实习心得04-20
软件测试总结(15篇)05-20
软件测试总结15篇03-22
软件测试述职报告01-30