您的当前位置:首页正文

软件测试复习资料(带答案)

2020-08-02 来源:爱go旅游网
第1章

软件测试是由“验证(Verification)”和“有效性确认(Validation)”活动构成的整体:“验证”是检验软件是否已正确地实现了产品规格书所定义的系统功能和特性;“有效性确认”是确认所开发的软件是否满足用户真正需求的活动。

软件测试和软件开发的关系?软件测试盒软件开发构成一个全过程的交互、协作之关系,亮着自始至终一起工作,共同致力于同一个目标——按时、高质量的完成项目。

第2章

软件质量:软件产品具有满足规定的或隐含要求能力要求有关的特征与特征总和。 软件产品质量的属性:功能性、可用性(简单安装;轻松使用;界面友好)、可靠性(用户使用的根本)、性能、容量、可测量性、可维护性、兼容性、可扩展性。

软件缺陷的标准定义:从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背。 软件缺陷产生的主要原因:1.技术问题,2.软件本身,3.团队工作。 软件缺陷的构成:规格说明书,设计,代码,其他。

软件产品规格说明书为什么是软件缺陷存在最多的地方?开发人员和用户的沟通存在较大困难,对要开发的产品功能理解不一致;由于软件产品还没有设计、开发,完全靠想象去描述系统的实现结果,所以有些特性还不够清晰;需求变化的不一致性;对规格说明书不够重视;没有在整个开发队伍中进行充分沟通,有时只是设计师或项目经理得到比较多的信息。 软件评审的目的:就是通过软件评审尽量早地发现产品中的缺陷,因此软件评审可以看做软件测试的有机组成部分,两者之间有着密不可分的联系。

软件评审:是对软件元素或者项目状态的一种评估手段,以确定其是否与计划的结果保持一致,并使其得到改进。

软件评审的对象分为:管理评审,技术评审,文档评审和流程评审。 软件质量保证:是通过对软件产品和活动有计划的进行评审和审计来验证软件是否合乎标准的系统工程活动。

SQA(软件质量保证)与软件测试的关系和区别?SQA与软件测试之间相辅相成,存在包含和交叉的关系。SQA指导、监督软件测试的计划和执行,督促测试工作的结果客观、准确和有效,并协助测试流程的改进。而软件测试是SQA重要手段之一,为SQA提供所需的数据,作为质量评价的客观依据。它们的相同点在于两者都是贯穿整个软件开发生命周期的流程。它们的不同之处在于SQA是一项管理工作,侧重于对流程的评审和监控,而测试是一项技术性的工作,侧重对产品的评估和验证。

软件测试的分类:1.按测试的对象或范围分类,如单元测试、文档测试、系统测试等2.按测试目的分类,如功能测试、回归测试、性能测试、可靠性测试、安全性测试和兼容性测试等。3.根据测试过程中被测软件是否被执行,分为静态测试和动态测试。4.根据是否针对系统的内部结构和具体实现算法来完成测试,可分为白盒测试和黑盒测试。

软件测试的整个过程包括8个阶段:1.规格说明书审查。2.系统和程序设计审查。3.单元测试。4.集成测试。5.功能测试。6.系统测试。7.安装测试。8.验收测试。

软件测试工作范畴分为2个层次:1.软件测试工作的组织与管理:制定测试策略、测试计划,确认所采用的测试方法与规范,控制测试进度,管理测试资源。2.测试工作的实施:编制符合标准的测试文档,搭建测试环境,开发测试脚本、与开发组织协作实现各阶段的测试活动 。 软件测试工作流程概括为6个主要方面:(P28-29)1.测试组织和管理1.测试计划3.测试用例设计4.测试实施5.测试结果分析6.测试评审与报告。

1

第3章

白盒测试:也称结构测试或逻辑驱动测试,是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。 白盒测试的具体方法有:逻辑覆盖、循环覆盖、基本路径覆盖等。 白盒测试的基本原则:保证每个模块中所有独立路径至少被使用一次;完成所有逻辑值分别为真值和假值的条件下的测试;在上下边界及可操作范围内运行所有循环,完成循环覆盖测试;检查内部数据结构以确保其有效性,完成边界条件的测试。 黑盒测试:也称功能测试,在测试中,把程序看作一个不能打开的黑盒子,不考虑程序内部结构和特性,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。

黑盒测试的具体方法有:等价类划分法、边界值分析法、错误推测法、因果图法等。

静态测试:就是静态分析,对模块的源代码进行研读,查找错误或收集一些度量数据,并不需要对代码进行编译和仿真运行。

动态测试:是通过真正运行程序发现错误,通过观察代码运行过程,来获取系统行为、变量实时结果、内存、堆栈、线程以及测试覆盖度等各方面的信息,来判断系统是否存在问题,或者通过有效的测试用例,对应的输入输出关系来分析被测程序的运行情况,来发现缺陷。

主动测试方法:测试人员主动向被测试对象发送请求、或借助数据、事件驱动被测试对象的行为,从而验证被测试对象的反应或输出结果。

被动测试方法:测试人员不干预产品的运行,而是被动地监控产品在实际环境中运行,通过一定的被动机制来获得系统运行的数据,包括输入、输出数据。

第4章

IBM统一过程(RUP):是以用例驱动、以体系结构为中心的软件开发迭代过程。

RUP把软件的生命周期划分为4个阶段:初始阶段、细化阶段、构造阶段和交付阶段。 TMap (测试管理方法):是一种结构化的、基于风险策略的测试方法体系,目的能更早地发现缺陷,以最小的成本、有效地、彻底地完成测试任务,以减少软件发布后的支持成本。 TMap所定义的测试生命周期:计划和控制、准备、说明、执行和完成等阶段。 TMap的基石:1.与软件开发生命周期一致的测试活动生命周期(L);2.坚实的组织融合(O); 3.正确的基础设施和工具(I);4.可用的技术(T)。

软件测试的标准级别:国际标准,国家标准,行业标准,企业(机构)规范,项目规范。

软件测试规范:对软件测试的流程过程化并对每一个过程元素进行明确的界定,形成完整的规范体系。 软件测试规范的内容:1.角色的确定,2.进入的准则,3.输入项,4.活动过程,5.输出项,6.验证与确认,7.退出的准则,8.度量。

软件测试管理与评价体系的目标:1.监视和测量软件产品;2.识别和控制不符合要求的产品;3.验证产品设计和开发;4.监视和测量软件过程。

建立软件测试管理体系的步骤:1.测试规划;2.测试设计;3.测试实施;4.配置管理;5.资源管理;6.测试管理。

第5章

单元测试:是对软件基本组成单元进行的测试。

单元测试的基本过程:1.在详细设计阶段完成单元测试计划2.建立单元测试环境,完成测试设计和开发3.执行单元测试用例,并详细记录测试结果4.判定测试用例是否通过5.提交《单元测试报告》。 为什么要进行单元测试?1.尽早发现错误,错误发现越早,成本越低;开发人员过于自信,后期复杂度高,发现解决BUG困难。2.检查代码是否符合设计和规范。 单元测试的主要目标:确保各单元模块被正确地编码。

2

单元测试的任务:1.单元中所有独立执行路径测试2.单元局部数据结构测试3.单元接口测试4.单元边界条件测试5.单元的各条错误处理通路测试6.内存分析

静态测试技术:是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。 走查和审查的对比: 准备 形式 参加人员 注意事项 生成文档 目标 走 查 通读设计和编码 审 查 应准备好需求描述文档、程序设计文档、程序的源代码清单、代码编码标准和代码缺陷检查表 正式会议 项目组成员包括测试人员 缺陷检查表 限时、不要现场修改代码 静态分析错误报告 非正式会议 开发人员为主 限时、不要现场修改代码 会议记录 主要技术方法 无 代码标准规范,无逻辑错误 代码标准规范,无逻辑错误 驱动程序:也称驱动模块,用以模拟被测模块的上级模块,能够调用被测模块。 桩程序:也称桩模块,用以模拟被测模块工作过程中所调用的下层模块。

单元测试管理的5个阶段:1.计划阶段2.设计阶段3.执行阶段4.评估阶段5.提交阶段。

Junit的优点:1.可以使测试代码与产品代码分开,这更有利于代码的打包发布和测试代码的管理。 2.针对某一个类的测试代码,通地较少的改动便可以应用另一个类的测试,JUnit提供了一个编写测试类的框架,使测试代码的编写更加方便。3.易于集成到程序中的构建过程中,JUnit和Ant的结合还可以实施增量开发。4.JUnit的源代码是公开的,故而可以进行二次开发。5.JUnit具有很强的扩展性,可以方便地对JUnit进行扩展。

第6章

集成测试定义:集成测试是将已分别通过测试的单元按设计要求组合起来再进行的测试,以检查这些单元之间的接口是否存在问题。

集成测试前的准备:1.人员安排2.测试计划3.测试内容4.集成模式5.测试方法

集成测试的模式:1.非渐增式测试模式:先分别测试每个模块,再把所有模块按设计要求放在一起结合成所要的程序,如大棒模式。2.渐增式测试模式:把下一个要测试的模块同已经测试好的模块结合起来进行测试,测试完以后再把下一个应该测试的模块结合进来测试。

非渐增式渐增式两种模式的优缺点:1.渐增式测试模式需要编写的软件较多,工作量较大,非渐增式测试开销小。2.渐增式测试模型发现模块间接口错误早,非渐增式测试模式晚。3.非渐增式测试模式发现错误较难诊断,使用渐增式测试模式,如果发生错误则往往和最近加进来的模块有关。4.渐增式测试模式测试更彻底。5.渐增式测试模式需要较多的机器时间。6.使用非渐增式测试模式,可以并行测试。 回归测试的目的:在程序有修改的情况下保证原有功能正常,不需要进行全面测试,而是根据修改的情况进行有效测试,保证改动不会带来新的严重的错误。 回归测试的方法:1.再测试全部用例2.基于风险选择测试3.基于操作剖面选择测试4.再测试修改的部分。

性能测试步骤:1.确定性能测试需求2.根据测试需求,选择测试工具和开发相应的测试脚本3.建立性能测试负载模型,就是确定并发虚拟用户的数量、每次请求的数据量、思考时间、加载方式和持续加载的时间等4.执行性能测试5.结果分析,并提交性能测试报告 压力测试(Stress test):也称为强度测试、负载测试。压力测试是模拟实际应用的软硬件环境及用户使用过程的系统负荷,长时间或超大负荷地运行测试软件,来测试被测系统的性能、可靠性、稳定性

3

等。

容量测试目的:通过容量测试可以确定软件系统还能保持主要功能正常运行的某项指标的极限值(如最大并发用户数、数据库记录数等),或者说能够确定测试对象在给定时间内能够持续处理的最大负载或工作量。

安全性测试:是检查系统对非法侵入的防范能力。

安全性测试方法:1..静态的代码安全测试2.动态的渗透测试3.程序数据扫描。

软件可靠性主要包括以下三个要素:1.规定的时间;2.规定的环境条件;3.规定的功能。 容错性测试:主要检查系统的容错能力,检查软件在异常条件下自身是否具有防护性的措施或者某种灾难性恢复的手段。

容错性测试包括两个方面:1.输入异常数据或进行异常操作,以检验系统的保护性。如果系统的容错性好的话,系统只给出提示或内部消化掉,而不会导致系统出错甚至崩溃。2.灾难恢复性测试。通过各种手段,让软件强制性地发生故障,然后验证系统已保存的用户数据是否丢失、系统和数据是否能尽快恢复。

第7章

验收测试(Acceptance Test):在软件产品完成了功能测试和系统测试之后、产品发布之前所进行的软件测试活动,它是技术测试的最后一个阶段,也称为交付测试。

验收测试的测试内容:验证系统是否达到了用户需求规格说明书(可能包括项目或产品验收准则)中的要求,测试试图尽可能地发现软件中存留的缺陷,从而为软件进一步改善提供帮助,并保证系统或软件产品最终被用户接受。主要包括易用性测试、兼容性测试、安装测试、文档(如用户手册、操作手册等)测试等几个方面的内容。

验收测试的测试步骤:1.制定测试计划,测试项,测试策略及验收通过准则,并经过客户参与的计划评审。2.建立测试环境,设计测试用例,并经过评审。3.准备测试数据,执行测试用例,记录测试结果。4.分析测试结果,根据验收通过准则分析测试结果,作出验收是否通过及测试评价。5.提交测试报告。 验收测试通过标准:1.完全执行了验收测试计划中的每个测试用例。2.在验收测试中发现的错误已经得到修改并且通过了测试或者经过评估留待下一版本中修改。 3.完成软件验收测试报告。

用户界面的7个要素:符合标准和规范,直观性,一致性,灵活性,舒适性,正确性,实用性。 兼容性测试包括:软件兼容性、数据共享兼容性、硬件兼容性。 软件兼容性测试:是指验证软件之间是否正确地交互和共享信息。

数据共享兼容性表现在以下方面:1.剪切、复制和粘贴2.文件的存取3.文件导入和导出。 恢复测试:主要检查系统的容错能力。当系统出错时,能否在指定时间间隔内修正错误或重新启动系统。 文档的种类:1.联机帮助文档或用户手册;2.指南和向导;3.安装、设置指南;4.示例及模板;5.错误提示信息;6.用于演示的图像和声音;7.授权/注册登记表及用户许可协议;8.软件的包装、广告宣传材料。

文档测试主要检查文档的正确性、完备性、易理解性和一致性。

第8章

面向对象层次结构测试重点:1.对认定对象的测试2.对认定结构的测试3.构造的类层次结构的测试 线程:是一个操作系统进程内能够独立运行的内容,拥有自己的计数器和本地数据。线程是能够被调度执行的最小单位。

第10章

软件国际化:一些大型软件或者热门软件,不但要提供一国语言的版本,还要提供其他国家语言的版本,这就是软件国际化。

软件本土化:是将一个软件产品按特定国家或语言市场的需要进行全面定制的过程。 为什么要进行软件本地化?为了使软件产品可以满足不同国家或地区的用户的使用要求。

4

软件本地化和软件国际化的关系?本地化要适应国际化的规定,而国际化是本地化的基础和前提,为本地化做准备,使本地化过程不需要对代码做出改动就能完成,或将代码修改降到最低限度。 字符集:是操作系统中所使用的字符映射表。

软件国际化的规范:1.切换语言的机制。2.与语言无关的输出接口。3.与语言无关的输入接口和标准的输入协议。4.资源文件的国际化。5.支持和包容本地化数据格式。 软件本地化的基本步骤:1.建立配置管理体系,跟踪目标语言各个版本的源代码;2.创造和维护术语表;3.源语言代码和资源文件分离、或提取需要本地化的文本;4.把分离或提取的文本、图片等翻译成目标语言;5.把翻译好的文本、图片重新检入目标语言的源代码版本;6.如果需要,编译目标语言的源代码;7.测试翻译后的软件,调整UI 以适应翻译后的文本;8.测试本地化后的软件,确保格式和内容都正确。 本地化测试包括6个方面:1.功能性测试,所有基本功能、安装、升级等测试;2.翻译测试,包括语言完整性、术语准确性等的检查;3.可用性测试,包括用户界面、度量衡和时区等;4.兼容性调试,包括硬件兼容性、版本兼容性等测试;5.文化、宗教、喜好等适用性测试; 6手册验证,包括联机文件、在线帮助、PDF文件等测试。

本地化测试的技术问题有:1.数据格式2.页面显示和布局3.配置和兼容性问题。

第11章

自动化测试(automated test):是把人为驱动的测试行为转化为机器执行的一种过程,即模拟手工测试步骤,通过执行由程序语言编制的测试脚本,自动地完成如软件的单元测试、功能测试、负载测试或性能测试等全部工作。

自动化测试的优势:1.自动运行的速度快,执行效率高,是手工无法相比的。2.永不疲劳3.测试结果准确。4.可靠。5.可复用性。一旦完成所用的测试脚本,可以一劳永逸运行很多遍。6特别的能力。 自动化测试带来的好处:1.缩短软件开发测试周期2.更高质量的产品3.软件过程更规范4.测试效率高,充分利用硬件资源5.节省人力资源,降低测试成本6.增强测试的稳定性和可靠性7.提高软件测试的准确度和精确度8.手工不能做的事情,软件测试工具可以完成9.高昂的团队士气

第12章

软件测试的人员的责任:1.发现软件程序、系统或产品中所有的问题;2.尽早地发现问题;3.督促开发人员尽快地解决程序中的缺陷;4.帮助项目管理人员制定合理的开发计划;5.并对问题进行分析、分类总结和跟踪;6.帮助改善开发流程、提高产品开发效率;7.提高程序编写的规范性、易读性、可维护性。 测试团队的基本构成:1.QA/测试经理:人员管理,资源调配、测试方法改进等;2.实验室管理人员:设置、配置和维护实验室的测试环境3.内审员:审查流程,建立测试模板,跟踪缺陷测试报告的质量等;4.测试组长:负责项目的管理、测试计划、测试用例、任务安排等;5.测试设计人员/资深测试工程师:产品设计规格说明书的审查、测试用例的设计、技术难题的解决、培训和指导、实际测试任务的执行;6.一般(初级)测试工程师:执行测试用例和相关的测试任务。

优秀测试工程师应具备的素质:1.高度的责任感2.非常好的沟通能力、幽默感3.技术能力4.自信心 5.耐心6.怀疑一切的精神7.适度的好奇心8 .洞察力9.反向思维和发散思维能力10记忆力。

第14章

测试用例的作用:1.有效性2.可复用性3.易组织性4.可评估性5.可管理性

测试用例的标准模板中主要元素如下:1.标志符(Identification)2.测试项(Test Items)3.测试环境要求4.输入标准(Input Criteria)5.输出标准(Output Criteria)6.测试用例之间的关联。 测试用例设计中考虑因素:1.必须具有代表性、典型性。2.寻求系统设计、功能设计的弱点。3.测试用例需要考虑到正确的输入,也需要考虑错误的或者异常的输入,以及需要分析怎样使得这样的错误或者异常能够发生。4.考虑用户实际使用场景。 测试用例设计的基本原则:1.尽量避免含糊的测试用例。2.尽量将具有相类似功能的测试用例抽象并归类。3.尽量避免冗长和复杂的测试用例。

5

测试套件:是根据特定的测试目的和任务而构造的某个测试用例的集合。

测试用例的组织方法:1.按照程序的功能模块2.按照测试用例的类型3.按照测试用例的优先级。 跟踪测试用例包括两个方面:1.测试用例执行的跟踪;2.测试用例覆盖率的跟踪。 跟踪测试用例的方法:1.书面文档2.电子表格3.数据库 测试用例的覆盖率:是评估测试过程以及测试计划的一个参考依据,它根据测试用例进行测试的执行结果与软件实际存在的问题进行比较,从而获得测试有效性的评估结果。

第15章

软件缺陷生命周期指的是一个软件缺陷被发现、报告到这个缺陷被修复、验证直至最后关闭的完整过程。 一个基本的软件缺陷生命周期包含了3个状态:“新打开的”、“已修正”和“已关闭”。

软件缺陷的严重性级别:1.致命的(fatal)2.严重的(critical)3.一般的(major)4.微小的(minor) 软件缺陷的优先级级别:1.立即解决2.高优先级3.正常排队4.低优先级

缺陷描述的基本要求:1.单一准确2.可以再现3.完整统一4.短小简练5.特定条件6.补充完善7.不做评价

优秀的缺陷报告和散漫的缺陷报告的主要区别?优秀的缺陷报告:记录下最少的重现步骤,不仅包括了期望结果、实际结果和必要的数据、附件、测试环境或条件,还包括了简单的分析。散漫的缺陷报告:无关的重现步骤,以及对开发人员理解这个错误毫无帮助的结果信息。

分离和再现软件缺陷的步骤?确保所有的步骤都被记录。特定条件和时间。压力和负荷、内存和数据溢出相关的边界条件。考虑资源依赖性包括内存和硬件共享的相互作用等。不能忽视硬件。

第17章

软件测试项目管理的内容:1.软件项目的测试过程管理;2.软件自动化解决方案和实施;3.软件项目的测试资源分配和进度控制;4.软件测试工作和产品质量的风险评估和控制;5.软件版本定义、测试范围变化的控制等;6.软件构建和发布等监控。

测试项目管理的特点:1.软件测试存在较大风险,质量标准定义不准确、任务边界模糊2.软件测试项目的变化控制和预警分析要求高。3.软件测试管理要求更严格和细致4.测试任务的分配难 5.测试要求人力资源十分稳定6.测试人员在待遇、地位可能受到一些不公正的待遇。

测试项目进入的准则:1.清楚了解项目的整体计划框架;2.完成需求规格说明书评审;3.技术知识或业务知识的储备;4.标准环境;5.技术设计文档是测试用例设计的重要参考资料;6.足够的资源;7.人员组织结构、成员及其责任已确定。

软件测试计划是指导测试过程的纲领性文件,描述测试活动的范围、方法、策略、资源、任务安排和进度等,并确定测试项、哪些功能特性将被测试、哪些功能特性将无需测试,识别测试过程中的风险。 测试设计分为2个层次:(P364)1.高层次的设计2.低层次的设计

有效管理Bug的规则和流程:1.设计好每个BUG应该包含的信息条目、状态分类等;2.通过系统自动发出邮件给相应的开发人员和测试人员,使得任何BUG都不会错过,并能得到及时处理;3.通过日报、周报等各类报告来跟踪项目的当前状态;4.在各个大小里程碑之前,召开有关人员的会议,对BUG进行集体会审;5.通过缺陷时间曲线等进行趋势分析,更好地控制、调整项目。 里程碑:是项目中完成阶段性工作的标志,即讲一个过程性的任务用一个结论性的标志来描述任务结束的、明确的起止点,一系列的起止点就构成应道整个项目发展的里程碑。

测试文档存储的规划、设计考虑因素:1.强大的搜索功能2.安全性3.目录结构4.操作要灵活。

6

因篇幅问题不能全部显示,请点此查看更多更全内容