软件测试重点试题及答案_第1页
软件测试重点试题及答案_第2页
软件测试重点试题及答案_第3页
软件测试重点试题及答案_第4页
软件测试重点试题及答案_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

程序员所做的测试工作并非真正意义上的软件测试,从本质上来说,应该称作“调试“。调试就是,在已知错误的情况下,对软件程序代码作出一系列检查,校正的过程。而软件测试则是在未知错误的情况下,检查程序代码是否有问题的过程。1。2.2软件测试的定义a。 软件是一个集合,包括三部分:程序代码,文档,数据。b。 软件测试就是为了发现错误而审查软件文档、检查软件数据和执行程序代码的过程,其目的在于在软件交付使用前充分发现缺陷并协助相关部门定位、解决缺陷,最后交付一个高质量的软件给用户.c。 从广义上讲,软件测试是指软件产品生存周期内的所有检查、评审和确认活动。如设计评审、文档审查、单元测试、集成测试、系统测试、验收测试等。do软件测试中称找缺陷的过程为找Bug.Bug表示电脑系统或程序中隐藏的错误、缺陷和问题.一切不完美的地方,我们都可以认为其实一个Bugo1o2o3软件测试分类(1)一般的,我们将软件测试活动分为以下几类:黑盒测试、白盒测试、灰盒测试、静态测试、动态测试、手动测试、自动测试等。1) 黑盒测试黑盒测试又叫做功能测试、数据驱动测试或基于需求规格说明书的功能测试。该测试类型注重于测试软件的功能性需求。测试工程师无需了解程序代码内部结构,完全模拟软件产品的最终用户使用该软件,检查软件产品是否达到了用户的需求。2) 白盒测试白盒测试又称为结构测试、逻辑驱动测试或基于程序代码内部构成的测试.测试工程师将深入考察程序代码的内部结构,逻辑设计等。3) 灰盒测试灰盒测试是前两种测试的集合,一方面考虑程序代码的功能性表现,另一方面又要考虑程序代码内部结构。像我们的功能测试,自动化功能测试就采用了灰盒测试的方法。4) 静态测试静态测试,顾名思义,就是静态的、不执行被测对象程序代码而寻找缺陷的过程。通俗的讲,静态测试就是用眼睛看,阅读程序代码、文档资料等,与需求规格说明书中的客户需求进行比较,找出程序代码中设计不合理以及文档资料有错误的地方。一般在企业、公司里召开正规的评审会,通过评审的方式,找出文档资料、程序代码中存在缺陷的地方,并加以修改.在进行代码静态测试时,可以使用代码走查工具,如QAC++、C++Test等.5) 动态测试动态测试即为实际的执行被测试对象代码,输入事先设计好的测试用例,检查程序代码运行的结果与测试用例中设计的预期结果之间是否有差异,判定实际结果与预期结果是否一致,从而检查程序的正确性、可靠性和有效性,并分析系统运行效率和健壮性等性能状况。动态测试由四部分组成:设计测试用例、执行测试用例、分析比较输出结果、输出测试报告。6) 手动测试手动测试是最传统的测试方法。它是测试人员设计测试用例并且执行测试用例,然后根据实际的结果去和预期的结果相比较并记录测试结果,最终输出测试报告的测试活动.7)自动化测试随着测试技术的不断更新,出现了很多自动化测试工具,如HP的QuickTestProfessional、LoadRunner,微软的WAS,IBM的Rational等。所谓的自动化测试就是利用一些测试工具,模拟用户的业务使用流程,让它们自动运行来查找缺陷。也可以编写一些代码,设定特定的测试场景,来自动寻找缺陷.自动化测试的优点是能够很快、很广泛的查找缺陷,同时可以做很多重复性的工作,在回归测试阶段,可以利用QuickTestProfessional自动化功能测试工具进行。有时候我们常常需要做一种压力测试,需要几万甚至几十万个用户同时访问某个站点,以保证网站的服务器不回出现死机或者崩溃的现象.一般来说,找几万人同时打开网页是不现实的,就算能够找到那么多的测试者,成本也很高。但是,利用测试工具,比如LoadRunner,就可以非常容易得做到,并且测试工具还可以自动判断浏览结果是否正确。1。3软件测试流程测试计划的编写从分析和设计阶段就开始了。在实际工作中,测试环节可分为明显的、同等重要的几个阶段:需求测试、单元测试、集成测试(又称组装测试)和系统测试.第六阶段是验收测试阶段,验收测试无论是在规模上或性质上都和系统测试很相似,它们的根本区别在于:前者是内部的,而后者是手“客户“控制的.软件测试流程图单元测试:是对软件中的基本组成单位进行的测试,如一个模块、一个过程等等。她是软件动态测试的最基本部分,也是最重要部分,其目的是检验软件基本组成单位的正确性。8、既可以用于黑盒测试,也可以用于白盒测试的方法的是()逻辑覆盖法B。 边界值法Co基本路径法D.正交试验设计法逻辑覆盖法和基本路径测试是白盒测试的大分类;正交实验设计法:也是不涉及代码内部结构的典型的黑盒测试方法;边界值法在黑盒测试中,我们可以不涉及代码来取边界值;但是也可以在设计代码时,比如在条件覆盖等白盒测试方法中取到边界值,因为往往边界值的位置容易出错。•。所以是两种测试都可以用9、验收测试是由最终用户来实施的。请判断这句话的正确与否.AoTBoFAcceptaneetesting(验收测试),系统开发生命周期方法论的一个阶段,这时相关的用户和/或独立测试人员根据测试计划和结果对系统进行测试和接收。它让系统用户决定是否接收系统•它是一项确定产品是否能够满足合同或用户所规定需求的测试•这是管理性和防御性控制。验收测试有alpha和beta两种,且都由用户来实施,区别在于是否为最终用户alpha测试是由一个用户在开发环境下进行的测试,也可以是公司内部用户在模拟实际操作环境进行的受控测试beta测试是由软件的多个用户在一个或多个实际使用环境下进行的测试验收测试有alpha和beta两种,且都由用户来实施,区别在于是否为最终用户alpha测试是由一个用户在开发环境下进行的测试,也可以是公司内部用户在模拟实际操作环境进行的受控测试beta测试是由软件的多个用户在一个或多个实际使用环境下进行的测试10、 如果某测试用例集实现了某软件的路径覆盖,那么它一定同时实现了该软件的判定覆盖11、 在下面说列举的逻辑测试覆盖中,测试覆盖最强的是?条件覆盖条件组合覆盖语句覆盖判定/条件覆盖条件覆盖CC(ConditionCoverage),设计足够多的测试用例,运行被测程序,使得每一判定语句中每个逻辑条件的可能取值至少满足一次。条件覆盖率的公式:条件覆盖率=被评价到的条件取值的数量/条件取值的总数X100%[1]条件覆盖的缺点:只考虑到每个判定语句中的每个表达式,没有考虑到各个条件分支(或者涉及不到全部分支),即不能够满足判定覆盖.条件组合覆盖,也称多条件覆盖MCC(MultipleConditionCoverage),设计足够多的测试用例,使得每个判定中条件的各种可能组合都至少出现一次(以数轴形式划分区域,提取交集,建立最少的测试用例)•这种方法包含了“分支覆盖”和“条件覆盖”的各种要求。满足条件组合覆盖一定满足判定覆盖、条件覆盖、判定条件覆盖。条件组合覆盖率的公式:条件组合覆盖率=被评价到的条件取值组合的数量/条件取值组合的总数条件组合覆盖的缺点:判定语句较多时,条件组合值比较多。语句覆盖SC(StatementCoverage),就是设计若干个测试用例,运行被测程序,使得程序中每一可执行语句至少执行一次•这里的“若干个”,意味着使用测试用例越少越好。语句覆盖在测试中主要发现缺陷或错误语句.判定条件覆盖CDC(Condition/DecisionCoverage),设计足够多的测试用例,使得判定中的每个条件的所有可能(真/假)至少出现一次,并且每个判定本身的判定结果也至少出现一次.[1]判定条件覆盖率的公式:条件判定覆盖率=被评价到的条件取值和判定分支的数量/(条件取值总数+判定分支总数)•判定条件覆盖的缺点:没有考虑单个判定对整体结果的影响,无法发现逻辑错误。正确答案:B解析:逻辑测试覆盖是白盒测试法常用的技术•主要的覆盖标准有6种,强度由弱到强依次是:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖12、 [不定项选择题]有关"测试驱动开发”,下列说法正确的有?TDD的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码TDD的基本思路就是通过测试来推动整个开发得进行,但测试驱动开发并不只是单纯的测试工作,而是把需求分析,设计,质量控制量化的过程.TDD的重要目的不仅仅是测试软件,测试工作保证代码质量仅仅是其中一部分,而且是在开发过程中帮助客户和程序员去除模棱两可的需求。TDD首先考虑使用需求(对象、功能、过程、接口等),主要是编写测试用例框架对功能的过程和接口进行设计,而测试框架可以持续进行验证.测试驱动开发,英文全称Test—DrivenDevelopment,简称TDD,是一种不同于传统软件开发流程的新型的开发方法。它要求在编写某个功能的代码之前先编写测试代码然后只编写使测试通过的功能代码,通过测试来推动整个开发的进行。这有助于编写简洁可用和高质量的代码,并加速开发过程.测试驱动开发是敏捷开发中的一项核心实践和技术,也是一种设计方法论。TDD得原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码.TDD虽是敏捷方法的核心实践,但不只适用于XP(ExtremeProgramming),同样可以适用于敏感词开发方法和过程。TDD得基本思路就是通过测试来推动整个开发得进行,但测试驱动开发并不只是单纯的测试工作,而是把需求分析,设计,质量控制量化的过程oTDD的重要目的不仅仅是测试软件,测试工作保证代码质量仅仅是其中一部分,而且是在开发过程中帮助客户和程序员去除模棱两可的需求.TDD首先考虑使用需求(对象、功能、过程、接口等),主要是编写测试用例框架对功能的过程和接口进行设计,而测试框架可以持续进行验证。优点:在任意一个开发节点都可以拿出一个可以使用,含少量bug并具一定功能的产品。缺点:增加代码量。测试代码是系统代码的两倍或更多13、 测试方法可以分成哪几种?A个人复查B抽查和会审C黑盒测试D白盒测试人工测试:个人复查、抽查和会审,机器测试:黑盒测试和白盒测试85、项目立项前测试人员不需要提交任何工件。请判断这句话的正确与否正确答案:A你的答案:B(错误)AoTBoF工件是加工过程中的生产对象•项目立项前,测试人员是不需要提供任何工件的。所以该说法正确,故选A。86、 测试的关键问题是()正确答案:D你的答案:D(正确)A。 如何组织对软件的评审B。 如何验证程序的正确性C。 如何采用综合策略D。 如何选择测试用例测试用例是测试程序正确性与否的关键。一个覆盖完全的测试用例可以测试出程序是否正确运行,是否有bug等等,是最重要的。87、 单元测试能发现约80%的软件缺陷。请判断这句话的正确与否。正确答案:A你的答案:A(正确)AoTBoF因为缺陷放大理论,在单元测试阶段发现的bug会在系统测试阶段被放大,放大倍数完全符合80/20理论单元测试(unittesting),是指对软件中的最小可测试单元进行检查和验证对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等.总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。88、 自底向上集成需要测试员编写驱动程序。请判断这句话的正确与否。正确答案:A你的答案:A(正确)TF自底向上测试是从原子"模块(即软件结构最低层的模块)开始组装测试,因测试到较高层模块时,所需的下层模块功能均已具备,所以不再需要桩模块.自底向上集成方法不用桩模块,测试用例的设计亦相对简单,但缺点是程序最后一个模块加入时才具有整体形象,需要开发驱动模块。自底向上集成是从最低层的模块开始集成,因测试到较高层模块时,所需求的下层模块功能均已具备,所以不再需要桩模块,测试用例的设计也相对简单,缺点是程序最后一个查勘块加入时才具有整体形象.自底向上集成测试的步骤为:1。把低层模块组织成实现某个子功能的模块群;2o开发一个测试驱动模块,控制测试数据的输入和测试结果的输出;3。 对每个模块群进行测试;4。 删除测试使用的驱动模块,用较高层模块把模块群组织成为完成更大功能的新模块群。89、 下面属于白盒测试方法的是正确答案:B你的答案:A(错误)等价划分方法逻辑覆盖边界值分析错误推测法【解析】白盒测试法主要有逻辑覆盖、基本路径测试等。逻辑覆盖测试包括语句覆盖、路径覆盖、判定覆盖、判断-条件覆盖,选择B。其余为黑盒测试法。白盒测试并不是简单的按照代码设计用例,而是需要根据不同的测试需求结合不同的测试对象,使用适合的方法进行测试•因为对于不同复杂度的代码逻辑,可以衍生出许多种执行路径,只有适当的测试方法,才能帮助我们从代码的迷雾森林中找到正确的方向.白盒子测试方法:(强度由低到高)语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。90、软件测试类型按开发阶段划分是?正确答案:B你的答案:B(正确)A。 需求测试、单元测试、集成测试、验证测试B。 单元测试、集成测试、确认测试、系统测试、验收测试C。 单元测试、集成测试、验证测试、确认测试、验收测试D。 调试、单元测试、集成测试、用户测试单元测试:单元测试又称为模块测试,是针对软件设计的最小单位程序模块进行正确性检查的测试工作,单元测试需要从程序内部结构出发设计测试用例,多个模块可以平行地独立进行单元测试.集成测试又称为组装测试或联合测试,在单元测试的基础上,需要将所有模块按照概要设计说明书和详细设计说明书的要求进行组装。(3)确认测试确认测试的目标是验证软件的功能和性能以及其他特性是否与用户的要求一致。确认测试一般包括有效性测试和软件配置复查。一般有第三方测试机构进行.(4)系统测试软件作为计算机系统的一部分,与硬件、网络、外设、支撑软件、数据以及人员结合在一起,在实际或模拟环境下,对计算机系统进行测试,目的在于与系统需求比较,发现问题(5)验收测试以用户为主的测试,软件开发人员和质量保证人员参加,由用户设计测试用例.不是对系统进行全覆盖测试,而是对核心业务流程进行测试。所以软件测试类型按开发阶段分为单元测试,集成测试,确认测试,系统测试,验收测试.91、 软件验收测试的合格通过准则是:正确答案:ABCD你的答案:ABCD(正确)A。 软件需求分析说明书中定义的所有功能已全部实现,性能指标全部达到要求。B。 所有测试项没有残余一级、二级和三级错误.C。 立项审批表、需求分析文档、设计文档和编码实现一致。D。 验收测试工件齐全(测试计划,测试用例,测试日志,测试通知单,测试分析报告)。92、 做好文档测试需要注意的点有哪些?正确答案:ABCD你的答案:ABCD(正确)A。 仔细阅读,跟随每个步骤,检查每个图形,尝试每个示例B。 检查文档的编写是否满足文档编写的目的C。 内容是否齐全,正确,完善D。 标记是否正确93、 下列关于alpha测试的描述中正确的是哪些?正确答案:AD你的答案:AD(正确)A。alpha测试需要用户代表参加Boalpha测试不需要用户代表参加Coalpha测试是系统测试的一种D.alpha测试是验收测试的一种a测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,a测试不能由程序员或测试员完成。a测试发现的错误,可以在测a测试性能测试试现场立刻反馈给开发人员,由开发人员及时分析和处理。目的是评价软件产品的功能、可使用性、可靠性、性能和支持。尤其注重产品的界面和特色.Alpha测试可以从软件产品编码结束之后开始,或在模块(子系统)测试完成后开始,也可以在确认测试过程中产品达到一定的稳定和可靠程度之后再开始.所以选ADo94、 软件测试的对象包括()正确答案:B你的答案:C(错误)Ao目标程序和相关文档Bo源程序、目标程序、数据及相关文档Co目标程序、操作系统和平台软件D。源程序和目标程序软件测试的对象包括:程序、数据、文档•目标程序和源程序都属于程序。95、 判断对错•系统测试计划属于项目阶段性关键文档,因此需要同行评审。正确答案:A你的答案:A(正确)A。 正确B。 错误同行评审目的:发现小规模工作产品的错误,系统测试计划属于项目阶段性关键文档,同行评审是必须的96、 对于软件的B测试,下列描述正确的是().正确答案:D你的答案:D(正确)B测试就是在软件公司内部展开的测试,由公司专业的测试人员执行的测试B。 &测试就是在软件公司内部展开的测试,由公司的非专业测试人员执行的测试c.p测试就是在软件公司外部展开的测试,由专业的测试人员执行的测试D.&测试就是在软件公司外部展开的测试,可以由非专业的测试人员执行的测试a、队入常用来表示软件测试过程中的三个阶段,a是第一阶段,一般只供内部测试使用;B是第二个阶段,已经消除了软件中大部分的不完善之处,但仍有可能还存在缺陷和漏洞一般只提供给特定的用户群来测试使用;入是第三个阶段,此时产品已经相当成熟,只需在个别地方再做进一步的优化处理即可上市发行。Beta测试是一种验收测试。所谓验收测试是软件产品完成了功能测试和系统测试之后,在产品发布之前所进行的软件测试活动,它是技术测试的最后一个阶段通过了验收测试,产品就会进入发布阶段。验收测试一般根据产品规格说明书严格检查产品,逐行逐字地对照说明书上对软件产品所做出的各方面要求,确保所开发的软件产品符合用户的各项要求.通过综合测试之后,软件已完全组装起来,接口方面的错误也已排除,软件测试的最后一步-一验收测试即可开始.验收测试应检查软件能否按合同要求进行工作,即是否满足软件需求说明书中的确认标准.Beta测试由软件的最终用户们在一个或多个客房场所进行.与Alpha测试不同,开发者通常不在Beta测试的现场,因Beta测试是软件在开发者不能控制的环境中的“真实”应用。用户Beta测试过程中遇到的一切问题(真实在或想像的),并且定期把这些问题报告给开发者。接收到在Beta测试期间报告的问题之后,开发者对软件产品进行必要的修改,并准备向全体客户发布最终的软件产品。97、 代码评审员一般由测试员担任。请判断这句话的正确与否。正确答案:B你的答案:B(正确)AoTB.F一般都是开发人员评审代码评审的内容:编码规范问题:命名不规范、magicnumber、System.out 代码结构问题:重复代码、巨大的方法和类、分层不当、紧耦合工具、框架使用不当:Spring、Hibernate、AJAX实现问题:错误验证、异常处理、事务划分、线程、性能、安全、实现过于复杂、代码可读性不佳、扩展性不好测试问题:测试覆盖度不够、可测试性不好代码评审不负责检查功能、逻辑是否正确,这些要靠单元测试和QA工作来解决98、 对手机软件的压力测试通常可以包括【多选】()正确答案:ABC你的答案:ABCD(错误)A。 存储压力B。 响应能力压力C。 网络流量压力D。 并发压力针对手机应用软件的系统测试,我们通常从如下几个角度开展:功能模块测试,交叉事件测试,压力测试,容量测试,兼容性测试,易用性/用户体验测试等。对手机可以施加的压力测试类型主要有:存储压力、边界压力、响应能力压力、网络流量压力99、 下面属于白盒测试方法的有哪些?正确答案:AD你的答案:ACD(错误)A。 语句覆盖B。 等价类划分C。 边界值分析D。 判定条件覆盖黑盒测试方法、白盒测试方法:具体的黑盒测试用例设计方法包括等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法、场景法等。白盒测试的测试方法有代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、域测试、符号测试、路径覆盖和程序变异白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。其中逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖.100、 软件验收测试分为三类:正式验收测试;非正式验收测试:其中包括a测试(由用户、测试人员、开发人员共同参与的内部测试。)和B测试(内测后的公测,即完全交给最终用户测试。)101、 软件测试计划评审会需要哪些人员参加?正确答案:ABCD你的答案:ABCD(正确)A。 项目经理SQA负责人配置负责人D。 测试组软件测试计划评审会需要有项目经理、客户(可选)、配置管理员、测试经理、开发组长等人的参加。所以ABCD都需要参加.所以选ABCD.软件质量保证(SQA—SoftwareQualityAssurance)是建立一套有计划,有系统的方法,来向管理层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目所采用•软件质量保证的目的是使软件过程对于管理人员来说是可见的。它通过对软件产品和活动进行评审和审计来验证软件是合乎标准的。软件质量保证组在项目开始时就一起参与建立计划、标准和过程•这些将使软件项目满足机构方针的要求。目标1:软件质量保证[1]工作是有计划进行的.目标2:客观地验证软件项目产品和工作是否遵循恰当的标准、步骤和需求。目标3:将软件质量保证工作及结果通知给相关组别和个人。目标4:高级管理层接触到在项目内部不能解决的不符合类问题。目标5:软件质量需要全面的测试工作来保证.102、下面描述测试工具的功能正确的有?正确答案:ABCD你的答案:ABCD(正确)AoJMeter:基于JAVA的压力测试工具,Badboy用来进行脚本的录制Junit:白盒测试工具:针对代码测试LoadRunner:负载压力测试TestLink:用例管理工具LoadRunner-负载压力测试:预测系统性能。JMeter+Badboy:基于JAVA的压力测试工具,Badboy用来进行脚本的录制功能测试:通过自动录制、检测和回放用户的应用操作•将输出记录同预先给定的记录比较。Junit:白盒测试工具:针对代码测试测试管理工具:对测试需求、计划、用例、实施进行管理测试辅助工具:本身不执行,可以生成测试数据,为测试提供数据准备负载压力测试:LoadRunner:预测系统行为和性能的工业标准级负载测试工具模拟上千万用户同时实施并发操作,来实时监控可能发生的问题。功能测试:QTP(quicktestprofessiona

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论