您的当前位置:首页软件测试复习

软件测试复习

2021-06-15 来源:爱问旅游网
第一部分 基本概念 1、名词解释:软件测试、SQA、BUG、错误、缺陷、黑盒测试、白盒测试、功能测试、性能测试、压力测试 答: 软件测试: 定义(IEEE):由人工或自动方法来执行或评价系统或系统部件的过程,以验证它是否满足规定的需求.或识别期望的结果和实际结果之间的差别。 软件测试是软件质量保证的关键元素,代表了规约、设计和编码的最终检查。 SQA:质量保证是一个活动,它向所有有关的人提供证据以确立质量功能正在按需求运行的信心。并提供开发出满足使用要求产品的软件过程的能力证据. BUG:软件使用过程中所出现的任何一个可疑问题或者导致软件不能符合设计要求或满足消费者需要的问题。 错误:也即是软件bug或缺陷Defect 黑盒测试:指的是把被测得软件看作是一个黑盒子,我 们不去关心盒子里面的结构是什么样子的,只关心软件 的输入数据和输出结果。 白盒测试:又叫做玻璃盒测试(Glass Box Testing)。 在软件编码阶段,开发人员根据自己对代码的理解和接 触所进行的软件测试叫作白盒测试。 功能测试:按照软件的功能或特性逐个进行测试。 性能测试:用来测试软件在系统中的运行性能,性能测 试可以发生在测试过程的所有步骤中。 压力测试:在各种极限情况下对产品进行测试 (如很多人同时使用该软件,或者反复运行该软件),以检查产 品的长期稳定性 。 2、简述测试的目的、原则与对象 答: 测试的目的: a、从用户的角度出发,希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可接受该产品。 b、从软件开发者的角度出发,验证该软件已正确地实现了用户的要求并且证明软件的功能和性能与需求 c、为了能够给开发人员或程序经理提供反馈信息,并为风险评估准备所需要信息。 d、保证整个软件开发过程是高质量的。 测试的原则:尽早和不断的测试;测试前要认定被测试软件有错;预先确定被测试软件的测试结果;测试工作应该由独立的专业的软件测试机构来完成;测试要以软件需求规格说明书为标准;测试后程序中残存的错误数目与该程序中已发现的错误数目成正比;对测试错误结果一定要有一个确认的过程; 制定严格的测试计划,排除测试的随意性;回归测试的关联性-修改一个错误而引起更多的错误出现的现象并不少见;完全测试程序是不可能的; 并非所有软件缺陷都能修 复;应当对每一个测试结果做全面检查。 测试对象:需求规格说明、概要设计规格说明、详细设 计规格说明、源程序、可执行程序 。 3、什么是V模型?简述V模型在软件测试过程中的作用,以及在V模型中各个测试阶段和开发过程的对应关系 。 答: 参见下图:V模型中的过程从左到右,描述了基本的开发过程和测试行为 ;明确标明了测试过程中存在的不同级别 ;体现了测试阶段和开发过程期间各阶段的对应关系; 4、简述软件测试的分类 答: 按照开发阶段划分软件测试可分为:单元测试、集成测试、系统测试、确认测试和验收测试。 单元测试:单元测试又称模块测试,是针对软件设计的最小单位——程序模块进行正确性检验的测试工作。其目的在于检查每个程序单元能否正确实现详细设计说明中的模块功能、性能、接口和设计约束等要求,发现模块内部可能存在的各种错误。单元测试需要从程序的内部结构出发设计测试用例。多个模块可以平行地独立进行单元测试。 集成测试:集成测试也叫做组装测试。通常在单元测试的基础上,将所有的程序模块进行有序的、递增的测试。集成测试是检验程序单元或部件的接口关系,逐步集成为符合概要设计要求的程序部件或整个系统。 软件集成的过程是一个持续的过程,会形成很多个临时版本,在不断的集成过程中,功能集成的稳定性是真正的挑战。在每个版本提交时,都需要进行冒烟测试,即对程序主要功能进行验证。冒烟测试也叫版本验证测试、提交测试。 确认测试:确认测试是通过检验和提供客观证据,证实软件是否满足特定预期用途的需求。确认测试是检测与证实软件是否满足软件需求说明书中规定的要求。 系统测试:系统测试是为验证和确认系统是否达到其原始目标,而对集成的硬件和软件系统进行的测试。系统测试是在真实或模拟系统运行的环境下,检查完整的程序系统能否和系统(包括硬件、外设、网络和系统软件、支持平台等)正确配置、连接,并满足用户需求。 验收测试:按照项目任务书或合同、供需双方约定的验收依据文档进行的对整个系统的测试与评审,决定是否接收或拒收系统。 按照测试实施组织划分,软件测试可分为开发方测试、用户测试(β测试)、第三方测试。 开发方测试:通常也叫“验证测试”或“α测试”。开发方通过检测和提供客观证据,证实软件的实现是否满足规定的需求。验证测试是在软件开发环境下,由开发者检测与证实软件的实现是否满足软件设计说明或软件需求说明的要求。主要是指在软件开发完成以后,开发方对要提交的软件进行全面的自我检查与验证,可以和软件的“系统测试”一并进行。α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,α测试不能由程序员或测试员完成。α测试发现的错误,可以在测 试现场立刻反馈给开发人员,由开发人员及时分析和处理。 用户测试:在用户的应用环境下,用户通过运行和使用软件,检测与核实软件实现是否符台自己预期的要求。通常情况用户测试不是指用户的“验收测试”,而是指用户的使用性测试,由用户找出软件的应用过程中发现的软件的缺陷与问题,并对使用质量进行评价。 β测试通常被看成是一种“用户测试”。β测试主要是把软件产品有计划地免费分发到目标市场,让用户大量使用,并评价、检查软件。通过用户各种方式的大量使用,来发现软件存在的问题与错误,把信息反馈给开发者修改。β测试中厂商获取的信息,可以有助于软件产品的成功发布。 第三方测试:介于软件开发方和用户方之间的测试组织的测试。第三方测试也称为独立测试。软件质量工程强调开展独立验证和确认(IV&V)活动。IV&V是由在技术、管理和财务上与开发组织具有规定程度独立的组织执行验证和确认过程。软件第三方测试也就是由在技术、管理和财务上与开发方和用户方相对独立的组织进行的软件测试。一般情况下是在模拟用户真实应用环境下,进行软件确认测试。 按照测试技术划分:白盒测试、黑盒测试、灰盒测试。也可划分为静态测试和动态测试。 静态测试是指不运行程序,通过人工对程序和文档进行分析与检查;静态测试技术又称为静态分析技术,静态测试实际上是对软件中的需求说明书、设计说明书、程序源代码等进行非运行的检查,静态测试包括:走查、富豪执行、需求确认等。动态测试是指通过人工或使用工具运行程序进行检查、分析程序的执行状态和程序的外部表现。我们这里讨论的白盒测试、黑盒测试、灰盒测试,在实现测试方法上既包括了动态测试也包括了静态测试。 白盒测试:通过对程序内部结构的分析、检测来寻找问题。白盒测试可以把程序看成装在一个透明的白盒子里,也就是清楚了解程序结构和处理过程,检查是否所有的结构及路径都是正确的,检查软件内部动作是否按照设计说明的规定正常进行。白盒测试又称结构测试。 黑盒测试:通过软件的外部表现来发现其缺陷和错误。黑盒测试法把测试对象看成一个黑盒子,完全不考虑程序内部结构和处理过程。黑盒测试是在程序界面处进行测试,它只是检查样序是否按照需求规格说明书的规定正常实现。 灰盒测试:介于白盒测试与黑盒测试之间的测试。灰盒测试关注输出对于输入的正确性;同时也关注内部表现,但这种关注不像白盒测试那样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态。灰盒测试结合了白盒测试和黑盒测试的要素。它考虑了用户端、特定的系统知识和操作环境。它在系统组件的协同性环境中评价应用贯穿了整个软件生命周期。走查、单元测试、集成测试、系统测试用于整个开发过程中的不同阶段。开发文档和源程序可以应用单元测试应用走查的方法;单元测试可应用白盒测试方法;集成测试应用近似灰盒测试方法:而系统测试和确认测试应用黑盒测试方法。 5、比较传统软件测试过程与Rational软件测试过程的异同点? 答:传统的软件测试流程一般是先在软件开发过程中进行少量的单元测试,然后在整个软件开发结束阶段,集中进行大量的测试,包括功能和性能的集成测试和系统测试。随着开发的软件项目越来越复杂。而Rational软件测试过程则强调尽早测试、连续测试、自动化测试。 6、简述软件测试的流程。 答:软件测试分为如下几个阶段:需求分析、测试计划、测试设计、测试环境搭建、测试执行、测试记录、缺陷管理、软件评估、测试维护。 7、如何判断一个问题是否是缺陷? 答: 定义:软件缺陷(Defect),常常又被叫做Bug。所谓软件缺陷,即为计算机软件或程序中存在的某种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷。缺陷的存在会导致软件产品在某种程度上不能满足用户的需要。 符合以下5 个规则的才能叫做软件缺陷。 1.软件未达到产品说明书标明的功能。 2.软件出现了产品说明书指明不会出现的错误。 3.软件功能超出产品说明书指明范围。 4.软件未达到产品说明书虽未指出但应达到的目标。 5.软件测试员认为软件难以理解、不易使用、运行速度缓慢,或者最终用户认为不好。 8、软件运行时产生的错误是bug,这句话对吗? 答:不对,bug是软件缺陷,在软件运行过程中产生的错误有可能是其他原因引起的,不一定是bug。 9、解释为什么测试只能检测错误的存在而不能检测它的不存在? 答:当我们开发测试用例进行测试时如果出现错误我们可以判断相应错误存在,但如果运行通过并不能说错误不存在,因为这并不表示其他的用例不会产生错误。由于测试的不完备性,我们不能验证错误的不存在。 10、解释测试自动化的含义? 答:自动化测试主要是指利用软件测试工具提供完整的软件测试流程的支持和各种测试的自动化实现。 11、为什么不能彻底测试一个软件?为什么在不同发现错误的阶段,费用有很大的不同? 答:一个软件的所有输入可能非常大,在有限的时间里不可能对所有的情况进行枚举测试。在不同的阶段发现缺陷,修复费用是不同的。越晚发现修复费用越高。这是由于在后期发现缺陷要修改软件的相关联模块越多甚至软件的体系结构要重新设计,这将导致费用急剧增加。 12、影响软件测试的效率有哪些? 答:影响测试效率的因素很多,除了测试方法之外,主要因素还有人为因素、软件类型、错误类型、测试充分度等等。 第二部分 有关测试计划的内容 1、名词解释: 测试计划、测试环境、测试风险、测试流程 答: 测试计划:测试计划应该作为测试的起始步骤和重要环节。大致包括:产品基本情况调研,测试需求说明,测试策略和记录,测试资源配置,计划表,问题跟踪报告,测试计划的评审,结果等。测试计划概要说明测试组的任务和职责,测试目标 、测试设计活动、测试环境准备、测试风险和偶发事件以及可接受的彻底测试的程序。 测试环境:硬件、软件、网络和设施的需求等。测试环境计划应确定访问和使用测试环境的各种人员及其数量,以保证计划足够数量的计算机适应这种要求。 测试风险:测试中可能出现问题的风险 测试流程:测试计划 、测试设计 、测试实施 、测试执行 、测试评估。 2、测试计划包含哪些内容,如何写好测试计划? 答: 软件测试计划 是指导测试过程的纲领性文件,包含了产品概述,测试策略,测试方法,测试区域,测试配置,测试周期,测试资源,风险分析等内容;借助软件测试计划,参与测试的项目成员,可以明确测试任务和测试方法,保持测试实施过程的顺畅沟通,跟踪和控制测试进度,应对测试过程中的各种变更。 测试计划工作的关键是: 1.明确测试的目标,增强测试计划的实用性 2. 坚持“5W”规则,明确内容与过程 3. 采用评审和更新机制,保证测试计划满足实际需求 3、测试计划的用途有哪些?一个好的测试计划应该起 到哪些作用? 答: 1) 提高测试工作的效率以及准确性,让测试工作有条理,有计划的进行,避免测试的“事件驱动”。 2) 使测试工作与整个开发活动更好的融合 。 3)规避风险,使资源和变更事先作为一个可控制的风险。 4、查阅相关资料,总结目前测试过程中都使用哪些测试策略,如何在测试中应用它们? 答: 测试策略是关于如何测试系统的正式描述,要求开发针对所有测试级别的测试策略。测试小组分析需求,编写测试策略并且和项目小组一起复审计划。 测试计划应该包括测试用例和条件,测试环境,与任务相关的测试,通过对失败的准则和测试风险评估。测试进度表将识别出所有要求成功的测试成果,活动的进度和资源要求。 5、如果你是一名测试人员,现在要对Windows 操作系统附件中的计算器程序进行测试,请参照测试计划模版,制订其完整的测试计划。 提示: 参照实验课程所编写的完整的测试计划。 6、按照软件需求分析与设计的方法,对Windows 操作系统附件中的计算器程序进行测试需求分析与设计。 7、执行第6 题中设计的测试用例,完成测试报告,并对测试结果进行分析与评估。 8、怎样制定软件测试计划? 答: 作为测试人员,在制定测试计划之前,应该很好的掌握测试需求,这是软件测试的第一步。而测试需求有耐于开发人员提供完整的需求文档和接口文档。根据需求文档中描述的每个功能项目的输入,处理过程和输出,来设计测试用例。除此之外,软件测试人员还要很好的与软件开发人员,项目经理进行沟通和交流,了解软件实现的主要功能是什么,并记录收集到的信息。与技术支持人员交流,他们是最贴近用户的人,通过交流可以获取第一手的用户使用感觉,在制定测试计划时会更加贴近用户。测试过程中,还要考虑到测试用例的优先级。一般情况下,测试人员要优先测试级别高的需求项,按照级别的先后顺序进行测试,这样一来,如果进度不允许,就放弃测试级别低的需求项。 9、如何确定软件测试范围? 答:确定测试范围的步骤: • 测试组审查系统需求或使用的用例。 • 测试组可以审查的设计文档系统。 • 测试工程师评审任务说明,确定关键系统功能和高风险系统功能。 • 测试工程师必须对系统有一个清晰的定义并理解系统需求或使用的用例,这样才能够确定测试目标、测试目的和测试策略。 • 需要确定用于项目的自动测试工具。 • 将测试参数形成文档,其中包括确定测试目标、测试目的和测试策略时所做的所有假设。还需将先决事件、文档及支持各种测试活动的产品罗列出来。 • 确定系统验收准则,估计测试风险,制订降低风险的计划。 10、如果要测试一个电子商务网站,如何搭建测试环境? 提示:从硬件环境、软件环境、网络等方面考虑搭建测试环境。 11、10题中如何确定测试风险以及怎样管理该测试风险? 提示:从软件测试的七类风险考虑枚举可能的风险 第三部分 有关测试技术和方法、测试用例的设计 1、名词解释: 测试需求、测试用例、单元测试、集成测试、系统测试、验收测试、回归测试、冒烟测试、 答: 测试需求:测试需求通俗的讲,就是定义对产品项目所要测试的内容 。 测试用例:是关于具体测试步骤的文档,它描述了测试的输入参数、条件、配置以及预期的输出结果等 单元测试:单元测试是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。 集成测试:集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求(如根据结构图)组装成为子系统或系统,进行集成测试。 系统测试:是将经过测试的子系统装配成一个完整系统来测试。它是检验系统是否确实能提供系统方案说明书中指定功能的有效方法。 验收测试:是部署软件之前的最后一个测试操作。验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。 回归测试:为了验证修改的正确性及其影响 冒烟测试:描述的是在将代码更改签入到产品的源树中之前对这些更改进行验证的过程。 2、怎么确定测试需求? 答: 确定测试需求:测试阶段需求分析更注重于技术层面,即软件是否实现了需求所示的功能;针对待测软件的特性差异,除了需要确保要求实现的基本功能正确之外,各种业务软件还需要达到各自的一些非功能性标准;明确测试焦点,对所测的功能进行分析、分解,进行着重于某一方面的测试;明确测试的优先级;测试的覆盖率和覆盖程度。 3、 怎样做好文档测试? 答: 文档测试要注意一下几点:文档的读者群、文档的术语、文档的正确性、文档的完整性、文档的一致性、文档的易用性、样例与示例、文档的语言 4、什么是测试用例?怎么设计测试用例?如何评估测试用例的好坏? 答: 测试用例:就是一个文档,描述输入、动作、或者时间和一个期望的结果,其目的是确定应用程序的某个特性是否正常的工作。 测试用例设计内容和原则: 测试用例应包括软件测试用表、测试用例清单、测试结果统计表、测试问题表和测试问题统计表、测试进度表和测试总结表。各表样式无规定模板,用户可以自行设计,但各表均应包含的内容。原则如下: 1.测试用例的代表性:能够代表并覆盖各种合理的和不合理的、合法的和非法的、边界的和越界的以及极限的输入数据、操作和环境设置等。 2.测试结果的可判定性:即测试执行结果的正确性是可判定的,每一个测试用例都应有相应的期望结果。 3.测试结果的可再现性:即对同样的测试用例,系统的执行结果应当是相同的。 好的测试用例的特点:完整、准确、简洁、清晰、可维护性、适当性、可复用性 。 5、分别解释什么是白盒测试、黑盒测试,以及他们之间的关系。 答: 白盒测试:又称结构测试,透明盒测试、逻辑驱动测试或基于代码的测试 。 黑盒测试:也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。 6、 白盒测试有那几种方法? 答: 白盒测试方法分为:静态测试和动态测试 静态测试方法:①编码标准与准则 ②走查 ③审查 ④评审 动态测试方法:①语句覆盖 ②判定覆盖 ③条件覆盖 ④判定-条件覆盖 ⑤条件组合覆盖 ⑥路径覆盖 ⑦独立路径测试 7、什么是驱动模块和桩模块?为下面的函数构造一个驱动模块和条件桩模块、并至少设计3条测试用例。 public int divide(a,b) { int temp =abs(a); Return a/b; } 答: //驱动模块 public static void main(String args[]) { System.out.println(“case 1:”+divide(1,0)); System.out.println(“case 2:”+divide(1,2)); System.out.println(“case 3:”+divide(4,2)); } //条件桩模块 int abs(int x) { Return x; } 驱动模块:在大多数场合称为“主程序”,它接收测试数据并将这些数据传递到被测试模块。 桩模块:为被测模块编制一些模拟其下级模块功能的“替身”模块,以代替被测模块的接口,接受或传递被测模块的数据,这些专供测试用的“假”模块称为被测模块的桩模块。 测试用例a,b分别取:(1,0);(1,2);(4,2)等用例均可 。 8、什么是覆盖测试?覆盖测试的类型有哪些? 答: 覆盖测试:是动态分析方法,通过程序执行过程中覆盖的比例来分析软件。常用六种覆盖方法:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖。 9、基于需求的测试覆盖如何计算? 答:测试需求的覆盖率通常是由与软件需求所建立的对应关系来确定的。如果一个测试需求已经跟软件需求存在着一对一或一对多的对应关系,可以说测试需求已经覆盖了该功能点。 10、基于代码的测试覆盖如何计算? 答:执行代码占总代码比例。 11、什么是性能测试?主要的性能测试有哪些?分别详细予以说明。 答: 性能测试:是为描述测试对象与性能相关的特征并对其进行评价,而实施和执行的一类测试。 • 基准测试- 比较新的或未知测试对象与已知参照标准(如现有软件或测试标准)的性能。 • 争用测试: - 核实测试对象对于多个主角对相同资源(数据记录、内存等)的请求的处理是否可以接受 • 性能配置 - 核实在操作条件保持不变的情况下,测试对象在使用不同配置时其性能行为的可接受性。 • 负载测试 - 核实在保持配置不变的情况下,测试对象在不同操作条件(如不同用户数、事务数等)下性能行为的可接受性。 • 强度测试 - 核实测试对象性能行为在异常或极端条件(如资源减少或用户数过多)之下的可接受性。 12、单元测试、集成测试、系统测试、验收测试之间有什么联系? 提示:结合概念、内容、方法、过程、目的比较这四者之间的关系与联系。 13、什么是冒烟测试,为什么要进行冒烟测试? 答:在软件中,“冒烟测试”这一术语描述的是在将代码更改签入到产品的源树中之前对这些更改进行验证的过程。在检查了代码后,冒烟测试是确定和修复软件缺陷的最经济有效的方法。冒烟测试设计用于确认代码中的更改会按预期运行,且不会破坏整个版本的稳定性。 14、查阅资料,市场常用的测试软件有哪些?他们各有什么特点? 答: IBM测试工具:Rational TestManager,Robot,ClearQuest,PurifyPlus,RFT,RPT等; MI公司:loadRunner,QTP,winRunner 15、写出下列输入中需要测试的边界值: (1)、一个文件最多允许输入255个字符。 (2)、一个文本框允许输入0至100之间的实数 (3)、在软盘中保存文件,要求文件不多于50个,每个文件字节数小于1Mbyte。 答: (1)255、256 (2)100、101、0、-1 (3) 文件数:0、49、50、51;文件大小:0.1M、0.9M、1M、1.1M 16、做出下列软件功能说明的因果图: 某软件规格说明书包含这样的要求:第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改,但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息M。 提示: 原因: 1——第一列字符是A; 2——第一列字符是B; 3——第二列字符是一数字。 结果: 21——修改文件; 22 ——给出信息L; 23——给出信息M。 17、简述Junit进行单元测试的原则与特征。 第四部分 测试的实施内容 1、什么是测试的实施,测试实施包括哪些方面?以及如何实施测试? 答:实施测试用例是通过创建一个测试脚本并建立测试脚本与测试用例的关联来实现。 测试实施包括测试开发、测试环境搭建。通过创建测试脚本、用例、套件来实施测试。 2、测试脚本、测试用例以及测试套件之间有什么关系联系?详细阐述如何实施这些测试 答: 测试脚本是最基本的,包括自动脚本、手工脚本;测试用例可有多个脚本组成;而测试套件既可以包括测试用例也可以包括测试脚本。这些测试的实施方法参见教材。 第五部分 测试的执行 1、简述软件测试执行过程。 答: 2、简述软件测试缺陷跟踪过程。 答: 3、如何执行软件测试? 答:执行测试的目的是确保整个系统按既定意图运行。系统各个组成部分在各迭代中编译并链接系统。每个迭代都需要测试增加的功能,并重复执行以前版本测试过的所有测试用例(回归测试)。测试的执行活动包含了测试实施的执行,以确保系统功能的正确性。 4、如何评估测试的好坏? 答: 测试的主要度量方法包括覆盖度量和质量度量。 测试覆盖用于评价测试的完备性,是通过测试需求覆盖和测试用例的覆盖或已执行代码的覆盖表示的。 质量度量是对测试对象(系统或测试的应用程序)的可靠性、稳定性以及性能的度量。质量建立在对测试结果的评估和对测试过程中确定的变更请求(缺陷)的分析基础之上。 5、某程序读入三个整数值,这三个整数值表示三角形的三条边长。该程序打印信息标明三角形是不等边三角形、等腰三角形或等边三角形。 设计程并从程序中导出流图,并用基本路径测试方法开发保证测试所有程序语句的测试用例。 答: void judgeTri(int a,int b,int c) { } 1分析路径覆盖。流程图如下 if(!(a+b>c&&a+c>b&&b+c>a)) else { if(a==b==c) else } System.out.println( “不等边三角形”); System.out.println(“等边三角形”); System.out.println( “等腰三角形”); else if(a==b||a==c||b==c) System.out.println(“a,b,c不能构成三角形”); 2根据流程图,导出流图如下: 3计算程序环形复杂度: 4导出独立路径(用语句编号表示): 5设计测试用例: 用例编号 6、测试脚本、测试用例、测试套件的执行有什么区别联系? 答:测试脚本是最基本的,包括自动脚本、手工脚本;测试用例可有多个脚本组成;而测试套件既可以包括测试用例也可以包括测试脚本。 7、为什么不能测试一个软件?即便可能是非常小的程序穷尽测试是否能够保证程序100%正确。 答:软件测试只能测试错误缺陷的存在,不能测试错误缺陷的不存在。即使是很小的软件也不能。这也是由于测试的不完备性确定的。 输入 预期输出 第六部分 缺陷的管理 1、什么是软件缺陷? 答: 满足下列五个规则之一才称为软件缺陷: 1)软件未达到产品说明书标明的功能。 2)软件出现了产品说明书指明不会出现的错误。 3)软件功能超出产品说明书指明的范围。 4)软件未达到产品说明书虽未指出但应该达到的目标。 5)软件测试人员认为软件难以理解、不易使用、运行速度缓慢,或者最终用户认为不好。 2、缺陷的来源与影响。 答: 缺陷主要来源于需求阶段、设计阶段、编码阶段。越在前期产生的缺陷维护费用越高。 3、缺陷的种类有哪些?并通过对实际案例的测试,分析缺陷都是软件开发生命周期的哪个阶段产生的? 答: 缺陷的分类方法很多。以下是常用分类方法: putnam:需求缺陷、设计缺陷、文档缺陷、算法缺陷、界面缺陷、性能缺陷。 thayer:以软件过程反馈的问题报告作为错误分类法,有计算错误、逻辑错误、I/O错误、数据加工错误等。 缺陷正交分类:赋值、检验、算法、时序、接口、功能、关联。 4、缺陷管理报告单包括哪些内容、具有什么特点。填写一份报告单。 答:缺陷名字、ID、状态、来源、类别、所属项目、优先级、严重程度、发现者、关键字、描述、症状等。在试验中必须认真填写每种缺陷。 5、根据自己的理解,画出缺陷管理流程图。 缺陷管理流程图 缺陷状态图 6、发现缺陷的方法有哪些? 答:通过各个阶段各种测试方法来发现缺陷。在整个软件开发生命周期中对于不同阶段的不同测试来寻找缺陷。如单元测试、集成测试、系统测试、验收测试。以及其他针对性测试如功能测试、性能测试、随机测试、冒烟测试等。 7、缺陷的分类有何意义?如何预防缺陷? 答:缺陷分类有利于缺陷管理和修复,避免重复也可更好的预防缺陷。预防缺陷应贯穿于整个软件开发生命周期。 8、回忆一下,在你开发的软件中,是否存在安全漏洞故障?列举至少三种安全漏洞故障。 答:安全漏洞在软件开发过程中经常产生。如:缓冲区溢出、SQL注入、跨站脚本攻击、DOS、会话攻击等。 第七部分 典型案例 白盒法 1. 对以下条件语句设计测试用例(使用条件组合覆盖): if(a&&(b||c))) {return x;} 答: 1条件:c1 (a);c2 (b||c) 2用例: 测试用例编号 Test Case 1 Test Case 2 Test Case 3 Test Case 4 2.根据以下代码设计测试用例(使用独立路径分析方法) void Sort ( int iRecordNum, int iType ) 1 { 2 int x=0; 3 int y=0; 4 while ( iRecordNum-- > 0 ) 5 { 6 7 9 If ( iType==0 ) x=y+2; 测试输入(a,b,c) true,true,false true, false,false false, true,false false,false,false 测试输出 x 1 0 0 0 c1 T T F F c2 预期结果 T F T F 1 0 0 0 8 else If ( iType==1 ) 10 x=y+10; 11 else 12 x=y+20; 13 } 14 } 答: 1.导出流图 2计算程序环形复杂度 V(G)=10(条边)- 8(个节点)+ 2 = 4 3导出独立路径(用语句编号表示) 路径1:4→14 路径2:4→6→7→13 →4→14 路径3:4→6→9→10→13→4→14 路径4:4→6→9→12→13→4→14 4设计测试用例 测试用例编号 输入数据 预期输出 测试用例1 irecordnum = 0 itype = 0 x = 0 y = 0 测试用例2 irecordnum = 1 itype = 0 x = 0 y = 0 测试用例3 irecordnum = 1 itype = 1 x = 10 y = 0 测试用例4 irecordnum = 1 itype = 2 x = 0 y = 20 3. 将下图所示的流程图转换为流图,并估算至少需要多少个测试用例完成逻辑覆盖? 黑盒法 1. 设有一个档案管理系统,要求用户输入以年月表示的日期。假设日期限定在1990年1月~2049年12月,并规定日期由6位数字字符组成,前4位表示年,后2位表示月。请做出等价类划分表 答: 输入条件 有效等价类 无效等价类 ②有非数字字符 ③少于6位数字字符 ④多于6位数字字符 ⑥小于1990 ⑦大于2049 ⑨等于00 ⑩大于12 日期的类型及长度 ①6位数字字符 年份范围 ⑤在1990~2049之间 月份范围 ⑧在01~12之间 2. NextDate 函数包含三个变量:month 、 day 和 year ,函数的输出为输入日期后一天的日期。 例如,输入为 2006年3月 7日,则函数的输出为 2006年3月8日 。要求输入变量 month 、 day 和 year 均为整数值,并且满足下列条件: ①1≤month≤12 ②1≤day≤31 ③1920≤year≤2050 请设计出等价类表 答: 输入条件 足: A>0,B>0,C>0,且A+B>C,B+C>A,A+C>B; 如果是等腰的,还要判断A=B,或B=C,或A=C; 如果是等边的,则需判断是否A=B,且B=C,且A=C。 请设计出等价类表 答: 输入条件 有效等价类 无效等价类 有效等价类 无效等价类 3.设三角形的3条边分别为A,B,C。如果它们能够构成三角形的3条边,必须满是否三角形的三条边 (A>0), (1) (B>0), (2) (C>0), (3) (A+B>C), (4) (B+C>A), (5) (A+C>B), (6) (A≤0), (7) (B≤0), (8) (C≤0), (9) (A+B≤C), (10) (B+C≤A), (11) (A+C≤B), (12) 是否等腰三角形 (A=B), (13) (B=C), (14) (C=A), (15) (A=B)and(B=C)and(C=A) (17) (A≠B)and(B≠C)and(C≠A) (16) 是否等边三角形 (A≠B), (18) (B≠C), (19) (C≠A), (20) 4. 有一个处理单价为5角钱的饮料的自动售货机,相应规格说明如下: 1. 若投入5角钱或1元钱的硬币,按下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。(每次只投入一个硬币,只押下一种饮料的按钮) 2. 如投入5角的硬币,按下按钮后,总有饮料送出。 3. 若售货机没有零钱找,则一个显示〖零钱找完〗的红灯会亮,这时再投入1元硬币并按下按钮后,饮料不送出来而且1元硬币也退出来。 4. 若有零钱找,则显示〖零钱找完〗的红灯不会亮,若投入 1元硬币及按饮料按钮,则送出饮料的同时找回5角硬币。 请设计出以上问题描述的因果图。 答:

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