下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1.软件测试的概念软件测试被定义为:“使用人工或者自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清楚预期结果与实际结果之间的差别。”2.软件测试目的软件测试的目的是为了保证软件产品的最终质量,在软件开发的过程中,对软件产品进行质量控制。测试可以达到很多目的,但最重要的是可以衡量正在开发的软件的质量。3.软件测试的原则(写4到5个即可)软件测试应力求遵循以下几条原则:1所有的测试都应追溯到用户需求2应尽早地和不断地进行软件测试3在有限的时间和资源下进行完全测试找出软件所有的错误和缺陷是不可能的,软件测试不能无限进行下去,应适时终止4测试只能证明软件存在错误而不能证明软件没有错误,测试无法显示潜在的错误和缺陷,继续进一步测试可能还会找到其他错误和缺陷。5充分关注测试中的集群现象。6程序员应避免检查自己的程序7尽量避免测试的随意性8设计测试用例时应该考虑到合法的输入和不合法的输入以及各种边界条件,特殊情况下要制造极端状态和意外状态,比如网络异常中断、电源断电等情况9对测试错误结果一定要有一个确认的过程,一般由A测试出来的错误,一定要有一个B来确认,严重的错误可以召开评审会进行讨论和分析10回归测试的关联性一定要引起充分的注意,修改一个错误而引起更多的错误出现的现象并不少见11妥善保存一切测试过程文档,意义是不言而喻的,测试的重现性往往要靠测试文档12为了发现更多的错误让系统更完善,设计测试用例时不但要选择合理的输入数据作为测试用例,而且要选择不合理的输入数据作为测试用例,使得系统能应付各种情况13测试过程不但要求软件开发人员参与,而且一般要求有专门的测试人员进行测试,并且还要求用户参与,特别是验收测试阶段,用户是主要的参与者4.软件测试的基本步骤软件测试是一个极为复杂的过程。一个规范化的软件测试过程通常包括以下基本的测试过程:拟订软件测试计划,编制软件测试大纲,确定软件测试环境,设计和生成测试用例,实施测试,生成软件测试报告5.软件测试与调试的区别简单地说测试是为了发现问题,调试是解决问题。具体来看,有如下区别:(1.测试的目的是找出存在的错误,尽可能地发现软件中隐藏的bug;而调试的目的是定位错误,找到软件的bug的确切位置,找出错误的原因并修改程序以修正错误。测试活动中发现的缺陷需要通过调试来进行定位,两者在目标、方法和思路上有所不同。(2.调试是编码阶段和缺陷修复阶段的活动,测试活动则可以贯穿整个软件的生命周期。(3.测试是从已知的条件开始,使用预先定义的过程和步骤,有预知的结果,软件测试能确切地知道软件要去往何方;调试从未知的条件开始,结束时间无法预计,不知道软件是否真正地被修复。(4.测试过程可以事先设计,可以预先制订测试用例和过程,工作进度可以度量。调试过程无法描述过程和持续时间(5.测试过程是可重复的,调试的过程是随机的、不可重复的。(6.测试的对象可以是文档和代码,而调试的对象只能是代码。(7.调试是随机性的,由程序员自己完成,为了程序可运行;测试是有目的性的,由测试人员(非设计人员)完成,为了程序可完成指定功能。6.黑盒测试的概念黑盒测试(Black-boxTesting)又称为功能测试或数据驱动测试,是把测试对象看做一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。7.黑盒测试的设计方法(1).等价类划分法,等价类划分是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。(2).边界值分析法(3).错误推测法(4).因果图方法(5)判定表驱动分析方法(6)正交实验设计方法(7)功能图分析方法和综合策略等。8.黑盒测试的优缺点(1)黑盒测试的优点1对比较大的代码单元来说,黑盒测试比白盒测试效率要高2测试人员不需要了解实现的细节,包括特定的编程语言3测试人员和编码人员是彼此独立的4从用户的视角进行测试,很容易被理解和接受5有助于暴露任何规格不一致或者有歧义的问题6测试用力可以在规格完成之后马上执行。(2)黑盒测试的缺点1结果取决于测试用例的设计,测试用例的设计部分来源于经验2没有状态转换的概念,目前一些成功的例子还做不到针对被测试程序的状态转换3就没有状态概念的测试来说,寻找和确定造成程序停止的测试用例是很麻烦的事情,必须把周围可能的测试用例单独确认一遍。而就有状态的测试来说,就更麻烦了,尤其不是一个单独的测试用例造成的问题4只有一小部分可能的输入被测试到,要测试每个可能的输入流几乎是不可能的5没有清晰的和简明的规格,测试用例是很难设计的6如果测试人员不被告知开发人员已经执行过的用例,在测试数据上会存在不必要的重复7会有很多程序路径没有被测试到8不能直接针对特定程序段测试,该程序段可能隐藏更多错误。9.白盒测试的概念白盒测试把测试对象看做一个透明的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。10.白盒测试的设计方法白盒测试的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。其中逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。11.白盒测试的优缺点(1).优点迫使测试人员去仔细思考软件的实现;可以检测代码中的每条分支和路径;揭示隐藏在代码中的错误;对代码的测试比较彻底;让软件最优化;可构成测试数据使特定程序部分得到测试;有一定的充分性度量手段;可获得较多工具支持。(2).缺点昂贵;无法检测代码中遗漏的路径和数据敏感性错误;不验证规格的正确性;不易生成测试数据(通常;无法对未实现规格说明的部分进行测试;工作量大,通常只用于单元测试,有应用局限。12.灰盒测试的概念灰盒测试,是介于白盒测试与黑盒测试之间的,可以这样理解,灰盒测试关注输出对于输入的正确性,同时也关注内部表现,结合了白盒测试和黑盒测试的要素,它考虑了用户端、特定的系统知识和操作环境。它在系统组件的协同性环境中评价应用软件的设计。14.什么时候进行单元测试单元测试越早越好。XP开发理论讲究测试驱动开发(即TDD,先编写测试代码,再进行开发。从经验来看,先编写产品函数的框架,然后编写测试函数,针对产品函数的功能编写测试用例,然后编写产品函数的代码,每写一个功能点都运行测试,随时补充测试用例。15.单元测试的优点(1)它是一种验证行为。程序中的每一项功能都是测试来验证它的正确性。它为以后的开发提供支缓。就算是开发后期,我们也可以轻松的增加功能或更改程序结构,而不用担心这个过程中会破坏重要的东西。而且它为代码的重构提供了保障。这样,我们就可以更自由地对程序进行改进。(2)它是一种设计行为。编写单元测试将使我们从调用者角度来观察、思考。特别是先写测试,迫使我们把程序设计成易于调用和可测试的,即迫使我们解除软件中的耦合。(3)它是一种编写文档的行为。单元测试是一种无价的文档,它是展示函数或类如何使用的最佳文档。这份文档是可编译、可运行的,并且它保持最新,永远与代码同步。(4)它具有回归性。自动化的单元测试避免了代码出现回归的可能,编写完成之后,可以随时随地快速运行测试。17.集成测试常用方案选型集成测试的实施方案有很多种,如自底向上集成测试、自顶向下集成测试、核心集成测试、分层集成测试、基于使用的集成测试等(1自底向上集成测试自底向上的集成(Bottom-UpIntegration)方式是最常使用的方法自底向上集成测试的步骤大致如下:步骤一:按照概要设计规格说明,明确有哪些被测模块。步骤二:在步骤一的基础上,按时间线序关系,将软件单元集成为模块,并测试在集成过程中出现的问题。这里,可能需要测试人员开发一些驱动模块来驱动集成活动中形成的被测模块。对于比较大的模块,可以先将其中的某几个软件单元集成为子模块,然后再集成为一个较大的模块。步骤三:将各软件模块集成为子系统(或分系统)。检测各自子系统是否能正常工作。同样,可能需要测试人员开发少量的驱动模块来驱动被测子系统。步骤四:将各子系统集成为最终用户系统,测试各分系统能否在最终用户系统中正常工作。(2核心系统先行集成测试核心系统先行集成测试法的思想是先对核心软件部件进行集成测试,在测试通过的基础上再按各外围软件部件的重要程度逐个集成到核心系统中。其步骤如下:步骤一:对核心系统中的每个模块进行单独地、充分地测试,必要时使用驱动模块和桩模块。步骤二:对于核心系统中的所有模块一次性集合到被测系统中,解决集成中出现的各类问题。在核心系统规模相对较大的情况下,也可以按照自底向上的步骤,集成核心系统的各组成模块。步骤三:按照各外围软件部件的重要程度以及模块间的相互制约关系,拟定外围软件部件集成到核心系统中的顺序方案。方案经评审以后,即可进行外围软件部件的集成。步骤四:在外围软件部件添加到核心系统以前,外围软件部件应先完成内部的模块级集成测试。步骤五:按顺序不断加入外围软件部件,排除外围软件部件集成中出现的问题,形成最终的用户系统。21.测试用例的重要性(1)有效性:测试用例是测试人员测试过程中的重要参考依据。不同的测试人员根据相同的测试用例所得到的输出应该是一致的,对于准确的测试用例的计划、执行和跟踪是测试的有效性的有力证明。(2)可复用性:良好的测试用例具有重复使用的功能,使得测试过程事半功倍,在前面的章节中,我们提到测试是不可能进行穷举测试的,因此,设计良好的测试用例将大大节约时间,提高测试效率。(3)易组织性:即使是很小的项目,也可能会有几千甚至更多的测试用例,测试用例可能在数月甚至几年的测试过程中被创建和使用,正确的测试计划会很好地组织这些测试用例并提供给测试人员或者其他项目的人参考和有效地使用。(4)可评估性:从测试的项目管理角度来说,测试用例的通过率是检验代码质量的保证。经常说代码的质量不高或者代码的质量很好,量化的标准应该是测试用例的通过率和软件错误(bug)的数目。(5)可管理性:测试用例也可以作为检验测试人员进度、工作量以及跟踪/管理测试人员的工作效率的因素,尤其是比较适用于对于新的测试人员的检验,从而更加合理作出测试安排和计划。因此,测试用例将会使得测试的成本降低,并具有可重复使用功能,也是作为检测测试效果的重要因素,设计良好的测试用例将事半功倍。21.测试用例的基本原则22.软件测试自动化的意义由于手工测试的局限性,软件测试借助测试工具极为必要,并向软件测试全面自动化方向发展,将测试工具和软件测试自动化结合起来,可以解决上述局限性,并且会带来一些好处:缩短软件开发测试周期。测试效率高,充分利用硬件资源节省人力资源,降低测试成本增强测试的稳定性和可靠性。提高软件测试的准确度和精确度。软件测试工具使测试工作相对比较容易,但能产生更高质量的测试结果。手工不能做的事情,软件测试自动化能做,如负载、性能测试。23.测试自动化的原理和方法软件测试自动化实现的原理和方法主要有:直接对代码进行静态和动态分析、测试过程的捕获和回放、测试脚本技术、虚拟用户技术和测试管理技术。4.软件测试级别是什么?这些测试之间的区别是什么?测试的级别可以分为单元测试、集成测试、系统测试,有时要增加用户的接收测试,而每次测试过程中可能伴随着回归测试。5.软件测试有几种方法?每种方法的特点是什么?黑盒测试,白盒测试,灰盒测试黑盒测试注重于测试软件的功能性需求,不需要测试软件产品的内部结构和处理过程。白盒测试全面了解程序内部逻辑结构、对所有逻辑路径进行测试,又称为结构测试或逻辑驱动测试。灰盒测试关注输出对于输入的正确性,同时也关注内部表现。结合了白盒测试和黑盒测试的要素,它考虑了用户端、特定的系统知识和操作环境。6.单个组件经过代码审查和测试,请解释为什么仍然需要进行集成测试。软件单元只有经过集成才能形成一个有机的整体,只要有集成,总会出现一些常见问题,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常工作。程序在某些局部反映不出来的问题,有可能在全局上会暴露出来,影响功能的实现。因此仍然需要进行集成测试。13.什么是单元测试单元测试也称为模块测试,是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件或者场景下某个特定函数的行为。16.何为集成测试集成测试也叫组装测试、联合测试,是单元测试的逻辑扩展。它的最简单的形式是:两个已经测试过的单元组合成一个组件,并且测试它们之间的接口。18.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年一般货物进口合同
- 2024年保洁服务承包协议其一
- 2024年天津客运实操试题库及答案
- 直面青春期初中心理健康教育课件
- 2024年梅州资格证客运题库
- 2024年机构代理商合作合同
- 2024年保证担保借款合同(连带责任)
- 2024年门面转租赁合同范本
- 2019年江苏宿迁中考满分作文《我给未来留下的》
- 2024年黔西南道路客运输从业资格证2024年考试题
- 2024年车路云一体化系统建设与应用指南报告
- 教育集团教师培养方案
- 一例登革热合并凝血功能障碍患者的个案护理20190-7
- 小儿重症肺炎课件
- 啤酒终端销售培训课件
- 门诊病历书写模板全
- 19秋《西方行政学说》复习提示(仅供参考)(经典实用)
- 个人轮岗工作总结教学提纲
- 次氯酸钠溶液稳定性研究进展
- 监理单位质量控制体系(word版)范本
- 江苏省建设工程费用定额(最新版)
评论
0/150
提交评论