软件测试 期末 个人复习笔记(部分)
Posted 霜序0.2℃
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件测试 期末 个人复习笔记(部分)相关的知识,希望对你有一定的参考价值。
文章目录
- 软件测试复习
- 1.软件缺陷
- 2.软件质量
- 3.软件测试
- 4.软件测试规范
- 5.单元测试
- 6.集成测试
- 7.系统测试
- 8.测试用例
- 9.请描述软件缺陷的现象和产生的原因
- 10.请描述软件测试的分类
- 11. 什么是基于组合技术和组合优化的方法,及具体方法有哪些?
- 12.测试用例包括哪些要素,如何组织测试套件?
- 13.什么是软件测试规范,包括哪些内容?如何制定?
- 14.请描述下一代测试过程改进模型TPI NEXT,并说明其关键域(key areas),每个关键域的检查点(checkpoint)的作用是什么?
- 15. 基于输入域的测试方法定义及其具体方法有哪些,并具体说明
- 16.请描述测试成熟度模型集成(TMMi),并说明成熟度级别和过程域。
- 17.请论述单元测试的背景、目标、依据、活动、结束准则和典型工具
- 18.请描述系统测试的背景、定义和目标,并对主要测试类型和典型工具进行说明。
- 19. 请描述基于逻辑覆盖的方法和具体覆盖标准
软件测试复习
1.软件缺陷
答:软件缺陷是任何程序、系统中的问题,和产品设计书的不一致性,不能满足用户的需求。从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背
2.软件质量
答:软件通过满足或超出认定的一组需求,并使用经过认可的评测方法和标准评估,使用认定的流程来生产得到的软件特性和要求。这些特性包括功能性 Functionality、可用性 Usability、可靠性 Reliability 、性能 Performance、容量 Capacity、 可伸缩性 Scalability、可维护性 Service manageability、 兼容性 Compatibility、可扩展性 Extensibility等。
3.软件测试
答:软件测试是由“验证(Verification)”和“有效性确认(Validation)”活动构成的整体。“验证”是检验软件是否已正确地实现了产品规格书所定义的系统功能和特性;“有效性确认”是确认所开发的软件是否满足用户真正需求的活动。
4.软件测试规范
答:对软件测试的流程过程化并对每一过程元素进行明确的界定,形成完整的规范体系。 内容包括:规范目的、范围、文档结构、词汇表、参考信息、可追溯性、方针、过程/规范、指南、模板、检查表、培训、工具、参考资料等;需要考虑以下内容:角色的确定、进入的准则、输入项、活动过程、输出项、验证与确认、退出的准则、度量
5.单元测试
答:单元测试是对软件基本的组成单元进行独立的测试,单元测试和编码是同步进行,但在TDD中,强调测试在先,编码在后。单元测试一般由开发人员完成,QA人员辅助。目的是尽早发现错误,检查代码是否符合设计和规范,有利于将来代码的维护。
6.集成测试
答:集成测试是在单元测试的基础上,测试在将所有的软件单元按照概要设计规格说明的要求组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求的活动,是单元测试的逻辑扩展。最简单的形式是把两个已经测试过的单元组合成一个组件,测试它们之间的接口。从这一层意义上讲,组件是指多个单元的集成聚合。
7.系统测试
答:系统测试是将经过集成测试过后的软件,作为计算机系统的一个部分,与硬件、支持软件、数据和平台等系统元素结合起来,在真实运行环境下对计算机系统进行一系列的严格有效的测试来发现软件的潜在问题,保证系统的正常运行。
8.测试用例
答:测试用例是可以独立进行测试执行的最小场景单元,测试内容的一系列情景和每个情景中必须依靠输入和输出,对每一次完整输入与输出进行软件正确性判断测试形成的测试活动定义与记录即是测试用例。
9.请描述软件缺陷的现象和产生的原因
答:现象:功能、特性没有实现或部分实现;设计不合理,存在缺陷;实际结果和预期结果不一致;运行出错,包括运行中断、系统崩溃、界面混乱;数据结果不正确、精度不够;用户不能接受的其他问题,如存取时间过长、界面不美观.
产生的原因:1)技术问题:人员技术问题,新技术问题、逻辑问题、结构设计问题、技术实现问题、恢复备份、可靠性安全性问题,算法错误,语法错误,计算和精度问题,接口参数传递不匹配;2)团队工作:团队文化、沟通问题、不同阶段文档对接误差问题、团队管理问题;3)软件本身:开发流程或标准,文档错误、数据规模问题、程序逻辑或数据边界、实时系统、与硬件或第三方接口问题
10.请描述软件测试的分类
答:分别按照测试阶段、测试对象和测试目标或特性、执行情况、内外结构及执行手段分类如下:
根据测试过程中被测软件是否被执行,分为静态测试和动态测试;根据是否针对系统的内部结构和具体实现算法来完成测试,可分为白盒测试和黑盒测试;手工与自动化测试
11. 什么是基于组合技术和组合优化的方法,及具体方法有哪些?
答:对输入条件或输入路径进行组合及优化,以减少测试成本的测试方法—一种是条件的组合,另一种是操作路径的组合,或者是条件与路径的组合,每种组合都是一个测试用例,具体方法包括:判定表/决策表方法、因果图、两两组合方法、正交实验法。
判定表由“条件和活动”两部分组成,即列出一个测试活动执行所需的条件组合,所有可能的条件组合定义了一系列的选择,而测试活动需要考虑每一个选择
因果图:多种输入条件的组合,产生多种结果设计测试用例
正交实验法:确定影响功能的因子与状态;选择一个合适的正交表;利用正交表构造测试数据集
12.测试用例包括哪些要素,如何组织测试套件?
答:测试用例要素包括:标识、测试环境、测试项目、输入数据、操作、期望输出、优先级、类型、结果等;测试套件是为建立合适的、可扩展的测试用例框架,有效地组织众多的测试用例,包括对测试用例的分类、清晰的层次结构等 ,测试套件(Test Suite)是由一系列测试用例并与之关联的测试环境组合而构成的集合,已满足测试执行的特定要求。通过测试套件,将服务于同一个测试目标、特定的测试任务或某一运行环境下的一系列测试用例有机地组合起来 可以按照1) 按程序功能模块组织;2) 按测试用例的类型组织;3) 按测试用例的优先级组织
13.什么是软件测试规范,包括哪些内容?如何制定?
答:对软件测试的流程过程化并对每一过程元素进行明确的界定,形成完整的规范体系。
内容包括:规范目的、范围、文档结构、词汇表、参考信息、可追溯性、方针、过程/规范、指南、模板、检查表、培训、工具、参考资料等;需要考虑以下内容:角色的确定、进入的准则、输入项、活动过程、输出项、验证与确认、退出的准则、度量
14.请描述下一代测试过程改进模型TPI NEXT,并说明其关键域(key areas),每个关键域的检查点(checkpoint)的作用是什么?
答:TPI NEXT以商业驱动作为测试过程提升的基础,为改进目标和度量设定优先级,确保商业可以引导和控制改进的过程。检查点(checkpoint)的作用是评估达到的等级。
15. 基于输入域的测试方法定义及其具体方法有哪些,并具体说明
答:从对软件系统的各种输入到期望系统的输出行为角度进行测试的方法,包括等价类划分法和边界值分析法;等价类是某个输入域的子集,在该子集中每个输入数据的作用是等效的.将输入数据分成若干个子集,从每个子集选取一个代表性的数据作为测试用例,分为有效等价类和无效等价类。在分析需求规格说明的基础上划分等价类,列出等价类表;设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经受异常数据的考验。经过正反的测试才能确保软件具有更高的可靠性。
边界值分析法:很多错误发生在输入或输出范围的边界上,因此针对各种边界情况设置测试用例,可以更有效地发现缺陷;设计方法:确定边界情况(输入或输出等价类的边界)然后选取正好等于、刚刚大于或小于边界值作为测试数据
16.请描述测试成熟度模型集成(TMMi),并说明成熟度级别和过程域。
答:1)TMMi 是一个过程改进的阶段型架构。它包含阶段或级别,组织可以通过它们使组织的测试过程从临时的和未管理的, 进化为已管理、已定义、已测量和最终达到了持续改进的状态,即优化的过程。实现每个阶段,需要确保有足够的改 进,使其成为下一阶段的基础。
2)TMMi 内部结构有丰富的测试实践可以被系统的学习和应用来支持质量测试过程,这些过程是通过增量的步骤来进行改进的。
3)在TMMi 中有五个级别,规定了成熟度级别和测试过程改进的路径。每个级别都有一组过程域,组织需要实施这些过程域来达到对应的成熟度级别。
4)实践证明:组织每次关注测试过程改进中可 控数量的过程域上的投入可以使之竭尽全力,并且随着组织的改进这些域也日益成熟。因为每个成熟度级别都是下一个级别的基础,试图跳过一个成熟度级别往往适得其反。然而,你必须牢记测试过程改进的努力应集中于组织的经营环境需要,较高的成熟度级别过程域可能涉及组织或项目当前的需要。例如,组织寻求从成熟度 1 级提升到成熟度 2 级,经常被要求建立一个测试组,这是成熟度 3 级的测试组织过程域所要求的。虽然测试组不是一个 TMMi 成熟度 2 级的必要特性,但是它可以是组织达到 TMMi 成熟度 2 级的方法中有效途径的一部分。
TMMI成熟度级别和过程域如下图所示:
17.请论述单元测试的背景、目标、依据、活动、结束准则和典型工具
答:1)背景:编程过程中,每写1000行代码会犯几十个错误;编程与编译运行结束后,每1000行代码中大约残留有2-6个Bug;寻找与修改程序错误的代价占总体开发投资的30% -60%;Bug在整个研发流程中被发现的越早,修改的代价就越低。
2)目标:对软件单元的代码规范性(可靠性、可读性和可维护性、可移植性)、正确性(输入输出、逻辑覆盖、数据边界处理、数据结构及作用范围)、可靠性(垃圾回收)、健壮性(异常操作或异常数据处理) 、安全性(内存泄漏、或被窃指针等)和性能(内存占用率、时间性能)等进行验证。
3)依据:需求规格说明书、详细设计说明书、测试计划与集成测试方案。
4)活动:建立单元测试环境:包括在集成开发环境中安装与设置单元测试工具;测试脚本的开发与调试;测试执行及结果分析;活动的执行者:开发人员与测试人员共同完成测试方法:代码逻辑覆盖、数据流分析、参数输入域;测试脚本管理:和代码管理一样的配置管理;测试评估:覆盖率评估工具
5)结束准则:软件单元的功能、接口与设计需求一致;能正确处理输入和运行中的错误;发现的错误得到修改并通过测试;达到相关覆盖率要求;完成软件单元测试报告。
6)典型工具:
代码质量工具:findbugs是一个基于Bug Patterns概念的静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题,可寻找真正的缺陷或者潜在的性能问题,主要检查bytecode中的bug patterns,如NullPoint空指针检查、没有合理关闭资源、字符串相同判断错(==,而不是equals)等
Java单元测试工具:Junit5用在编写和运行可重复的的测试上,提供全新的断言和测试注解,支持测试类内嵌;更丰富的测试方式:支持动态测试,重复测试,参数化测试等
代码规范检查工具:CheckStyle提供一个帮助JAVA开发人员遵守某些编码规范的工具。它能够自动化代码规范检查过程,CheckStyle检查的主要内容包括:Javadoc注释、命名约定、标题 、Import语句 、体积大小、空白、修饰符、块、代码问题、类设计、重复代码;
PMD:检查Java源文件中的潜在问题,PMD附带了许多可以直接使用的规则,利用这些规则可以找出Java源程序的许多问题,例如:潜在的bug:空的try/catch/finally/switch语句;未使用的代码:未使用的局部变量、参数、私有方法等;可选的代码:String/StringBuffer的滥用;复杂的表达式:不必须的if语句、可以使用while循环完成的for循环;重复的代码:拷贝/粘贴代码意味着拷贝/粘贴bugs;循环体创建新对象:尽量不要再for或while循环体内实例化一个新对象;资源关闭:Connect,Result,Statement等使用之后确保关闭掉。此外,用户还可以自己定义规则,检查Java代码是否符合某些特定的编码规范。例如,你可以编写一个规则,要求PMD找出所有创建Thread和Socket对象的操作。
18.请描述系统测试的背景、定义和目标,并对主要测试类型和典型工具进行说明。
答:1)背景:经过集成测试后,分散开发的模块被集成相对完整的系统,其中各模块内部及之间接口的问题已经测试,测试开始进入系统测试阶段
2)定义:系统测试是将经过集成测试过后的软件,作为计算机系统的一个部分,与硬件、支持软件、数据和平台等系统元素结合起来,在真实运行环境下对计算机系统进行一系列的严格有效的测试来发现软件的潜在问题,保证系统的正常运行。
3)目标:充分运行系统,验证系统是否满足功能性和非功能性的质量需求
4)测试类型和自动化测试工具如下:
4.1功能性测试
功能测试根据产品规格说明书检验被测试的系统是否满足相关特性和功能,包括界面、数据、操作、逻辑和接口等方面。基于BS架构的应用测试工具主要采用Selenium自动化测试工具集,包括Selenium WebDriver(开发测试脚本)和Selenium IDE(支持自动录制动作和自动生成测试脚本)、Selenium Grid(分布式测试)
4.2回归测试
在进行系统测试过程中,当发现一些严重的缺陷而需要修正时(包括版本升级),修正后会构造新的软件包或补丁,这时不仅需要保证缺陷是否修复,而且要保证之前所有测试过正常运行的功能仍旧保持正常,不会受到这次修改的影响。回归测试就是为了发现回归缺陷而进行的测试,适合采用自动化测试手段,可采用的工具如selenium测试工具集,JMeter等
4.3性能测试
是为了发现系统性能问题或获取系统运行性能相关指标而进行的测试,目标包括:获取系统运行性能某些指标数据,如系统资源的使用率和系统行为表现-系统资源使用率是分析系统性能指标进而改善性能的重要依据;为了验证系统是否达到用户提出的性能指标;发现系统中存在的性能瓶颈,优化系统的性能。具体包括服务端压力测试(并发性能测试、疲劳强度测试、大数据量测试)、客户端性能测试等,测试的工具主要有:jmeter和loadRunner,其中jmeter可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。性能测试执行与监控的环境如下图,性能监控的内容:Web/应用/数据库服务器;系统资源、应用资源、硬件资源
4.4安全性测试
检验系统权限设置有效性、防范非法入侵的能力、数据备份和恢复能力等,设法找出上述各种安全性漏洞,测试范围包括:系统级别的安全性;应用程序级别的安全性:用户权限、数据输入验证、敏感数据加密、数据存储安全性、用户口令、验证系统的日志文件是否得到保护等;安全功能测试 (Security Functional Testing):数据机密性、完整性、可用性、不可否认性、身份认证、授权、访问控制、审计跟踪、委托、隐私保护、安全管理等;安全漏洞测试 (Security Vulnerability Testing):从攻击者的角度, 以发现软件的安全漏洞为目的。安全漏洞是指系统在设计、实现、操作、管理上存在的可被利用的缺陷或弱点。测试工具主要包括Burp suite用于攻击Web应用程序的集成平台,Appscan是web应用程序渗透测试使用最广泛的工具之一
4.5 其他测试类型包括:容错性测试、兼容性测试、可靠性测试等。
19. 请描述基于逻辑覆盖的方法和具体覆盖标准
答:从代码、业务、数据流程逻辑的角度,给出测试用例,有选择地执行程序中某些最有代表性的通路是对穷尽测试的惟一可行的替代办法。从覆盖源程序语句的详尽程度分析,大致有以下一些不同的覆盖标准:
(1)内部逻辑覆盖:以程序或系统的内部逻辑结构为基础,分为语句覆盖、判定覆盖、判定-条件覆盖、条件组合覆盖等(2)业务路径测试:在程序或业务控制流程的基础上,分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例。具体覆盖标准如下:
1)语句覆盖:设计若干测试用例,运行被测程序,使程序中的每个可执行语句至少被执行一次
2)判定覆盖: 设计若干用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次,即判断真假值均曾被满足
3)条件覆盖:设计若干测试用例,执行被测程序以后,要使每个判断中每个条件的可能取值至少满足一次
4)判定条件覆盖:是判定和条件覆盖设计方法的交集,即设计足够的测试用例,使得判断条件中的所有条件可能取值至少执行一次,同时,所有判断的可能结果至少执行一次
5)条件组合覆盖:是设计足够的测试用例,使得判断中每个条件的所有可能至少出现一次,并且每个判断本身的判定结果也至少出现一次
6)基本路径测试法:设计所有的测试用例,来覆盖程序中的所有可能的执行路径
以上是关于软件测试 期末 个人复习笔记(部分)的主要内容,如果未能解决你的问题,请参考以下文章