软测复习
- 格式:doc
- 大小:1.44 MB
- 文档页数:26
软件测试复习资料软件测试复习资料软件测试是软件开发过程中至关重要的一环。
它的目的是为了发现并修复软件中的错误和缺陷,确保软件的质量和可靠性。
在软件测试的过程中,我们需要掌握一些基本的知识和技巧。
下面是一些软件测试的复习资料,希望对你的复习有所帮助。
一、软件测试的基本概念1. 软件测试的定义和目的:软件测试是指在软件开发过程中,通过运行软件系统,以发现系统中存在的错误和缺陷,并对其进行修复和验证的过程。
软件测试的目的是确保软件的质量和可靠性。
2. 软件测试的原则:软件测试应该具备独立性、全面性、可测性、可重复性、及时性和有效性等原则。
3. 软件测试的分类:软件测试可以分为静态测试和动态测试。
静态测试是指对软件系统的文档、源代码等进行检查和审查的过程,主要包括代码审查、文档审查等。
动态测试是指通过运行软件系统,模拟用户的操作和环境,以发现系统中的错误和缺陷的过程,主要包括黑盒测试、白盒测试等。
二、软件测试的方法和技术1. 黑盒测试:黑盒测试是一种基于需求规格说明书的测试方法,它不考虑软件的内部结构和实现细节,只关注软件的输入和输出。
黑盒测试主要包括等价类划分、边界值分析、决策表、状态转换图等技术。
2. 白盒测试:白盒测试是一种基于软件内部结构和实现细节的测试方法,它需要了解软件的源代码和程序逻辑。
白盒测试主要包括语句覆盖、分支覆盖、路径覆盖等技术。
3. 单元测试:单元测试是对软件系统中最小的可测试单元进行测试的过程,主要用于测试软件的各个模块和函数的功能是否正确。
4. 集成测试:集成测试是对软件系统中多个模块进行组合和测试的过程,主要用于测试模块之间的接口和交互是否正确。
5. 系统测试:系统测试是对整个软件系统进行测试的过程,主要用于测试系统的功能、性能、安全性等方面是否符合需求。
6. 验收测试:验收测试是在软件开发完成后,由用户或客户对软件进行测试的过程,主要用于确认软件是否满足用户的需求和期望。
1.软件缺陷是由很多方面造成的,以下哪个方面是造成软件缺陷的最多的地方〔A 〕A.规格说明书B.系统设计结果C.编写代码D.其他2.覆盖准那么最强的是〔D 〕A.语句覆盖B.判定覆盖C.条件覆盖D.路径覆盖3.实际的逻辑覆盖测试中,一般以〔C 〕为主设计测试用例。
A.条件覆盖B.判定覆盖C.条件组合覆盖D.路径覆盖4.发现错误能力最弱的覆盖准那么是〔A 〕。
A.语句覆盖B.判定覆盖C.条件覆盖D.路径覆盖5.单元测试所使用的主要测试方法是〔B 〕A.黑盒测试B.白盒测试C.集成测试D.验收测试6.对于软件缺陷的修复费用,在哪个阶段的费用花费最小〔A 〕A.分析阶段B.设计阶段C.编码阶段D.发布阶段7.静态测试的主要对象是〔AB 〕A.代码检查B.代码风格与标准C.软件的功能D.设计的合理性8.单元测试主要测试是模块在〔ABC 〕上的错误。
A.语法B.格式C.逻辑D.功能9.单元测试主要由〔C 〕完成?其中〔A 〕起主要作用。
A.开发人员B.测试人员C.开发人员和测试人员D.以上都不对10.集成测试所使用的主要测试方法是〔A 〕。
A.黑盒测试B.静态测试C.动态测试D.白盒测试11.系统测试主要包括包含了多种测试活动,主要分为〔AB 〕。
A.功能性测试B.非功能性测试C.回归测试D.单元测试12.系统集成测试常见的有哪几种不同模式〔AB 〕。
A.非渐增式测试模式B.渐增式测试模式C.独立测试模式D.非独立测试模式13.软件的兼容性测试包括〔AD 〕。
A.向前和向后兼容B.多语言测试C.多版本测试D.横向测试14.软件的缺陷通常集中在〔AB 〕阶段。
A.需求分析B.系统设计C.编写代码D.软件测试15.对于一些关键代码或新人写的代码,主要采取〔B 〕方式。
A.走查B.会议审查C.代码互评D.自查16.在集成测试中,主要的集成方法有〔ABCD 〕。
A.自顶向下B.自底向上C.大爆炸D.三明治17.文档测试主要检查文档的〔ABCD 〕。
软件测试复习题(附答案)一、单选题(共100题,每题1分,共100分)1.( )的优点是:对控制流程描述直观,便于初学者掌握。
A、盒图B、程序流程图C、PAD图D、判定表正确答案:B2.软件项目可行性分析的研究内容包括:技术可行性、经济可行性、运行可行性以及( )等。
A、环境可行性B、人员可行性C、法律可行性D、时间可行性正确答案:C3.( )是结构化系统分析的基本工具。
A、程序流程图B、对话图C、数据流图D、状态转化图正确答案:C4.在VC中,如果在Menu Item属性页中选择( )复选框,表示此菜单项是一个多级菜单,并且其右边将会出现一个新菜单框。
A、CheckedB、inactiveC、Pop-upD、Grayed正确答案:C5.( )是网络的核心,它的主要任务是为网络上的其它机器提供服务。
A、客户机B、服务器C、网络协议D、工作站正确答案:B6.虚拟机好似通用的计算机,有自己的指令系统,但本身没有( )。
A、翻译指令B、操作系统C、实际的硬件D、翻译程序正确答案:C7.所有的( )必须与业务需求一致。
A、用户需求B、系统需求C、产品需求D、功能需求正确答案:A8.软件测试是软件质量保证的重要手段()是软件测试的最基础环节A、单元测试B、验收测试C、确认测试D、系统测试正确答案:A9.( )也称为分支覆盖,是一种较强的逻辑覆盖。
A、路径覆盖B、判定覆盖C、条件组合覆盖D、条件覆盖正确答案:B10.下列有关测试说法中,正确的是()A、测试组的测试工作是在编码阶段开始的B、静态测试是不运行被测程序本身,而寻找程序代码中可能存在的错误或评估程序代码的过程C、所有的测试都适合引入测试工具辅助进行测试D、只要进行有效的测试,就能获得高质量的软件产品正确答案:B11.( )除提供身份证明外,还可指出所签的文档是否已被修改。
A、公开密钥B、传统签名C、私有密钥D、数字签名正确答案:D12.以下不用于单机版系统测试的是()。
软件测试技术复习资料⼀、填空题1. 完整的测试应包括(制定测试计划)(设计测试⽅案)(测试准备和测试环境的搭建)(执⾏测试)(测试评估)。
2. 设计测试⽤例时应包括(输⼊数据)和(预期结果)。
6.对⾯向过程的系统采⽤的集成策略有_____⾃顶向下集成______________、_________________⾃底向上集成__两种。
7.软件测试主要分为__单元测试、集成测试、系统测试、验收测试_四类测试。
8.⿊盒测试⽤例设计⽅法包括等价类划分、边界值分析、_以及_____因果图,错误推测法等。
9.测试⼯作就是进⾏输⼊、接受输出、检验结果,不深⼊代码细节,这样的测试⽅法称为________⿊盒测试________,10.⽩盒测试是根据程序的(内部逻辑)来设计测试⽤例1、在测试执⾏结束后应该提交的⽂档有:测试问题报告、测试记录报告、阶段问题统计报告。
2、在测试总结后应该提交的⽂档有:测试问题分析报告、测试总结报告。
3、RAD⽅法中由于根本的需求没有被冻结,所以⽤户在设计的过程中是迭代的。
4、在RAD环境的测试是基于开发过程中的⽤户改进迭代。
5、在RAD⽅法中由于设计、编码和集成的反复循环性,导致了测试的设计、执⾏等的循环性。
6、测试项⽬的流程中⼀般有测试策划、测试设计、测试准备、测试执⾏、测试总结五个阶段。
7、在测试规划过程中,应对测试内容、测试需求的资源、测试通过的标准、测试进度和风险进⾏计划。
8、在测试设计过程中,应做出测试计划、测试⽤例,并要经过评审。
9、在执⾏测试的过程中应该注重⽤例执⾏时系统的实际动作和输出的真实准确记录。
10、所有的测试都应追溯到⽤户需求。
11、在集成测试的过程中,由于采⽤的测试策略不同,需要集成测试⼈员⾃⼰去编写驱动器和桩模块。
12、软件=程序+数据+⽂档+服务。
13、代码评审主要做代码审查⼯作。
14、软件测试主要分为单元,集成,系统,验收四类测试。
15、测试⼈员A在测试中发现系统20个缺陷,测试⼈员B在系统中发现了30缺陷,他们有5个缺陷是⼀样的,从理论上分析,系统⼤概存在120个缺陷?测试员A发现n个缺陷,B发现m个缺陷,共同缺陷m1个,理论上总的缺陷N=m/m1*n16、⽹络通讯三个要素,包括协议、IP、端⼝。
1.软件及其分类软件是计算机中与硬件相结合的一部分,包括程序和文档。
按照功能划分:系统软件;应用软件按照技术架构划分:单机软件;C/S软件;B/S软件按照用户划分:产品软件;项目软件按照开发规模划分:小型;中型;大型2.软件测试定义以及过程模型使用人工和自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清楚预期结果与实际结果之间的差别。
1.按测试方法分类(是否查看源代码)⏹白盒测试⏹黑盒测试2.按测试方式分类(是否运行程序)⏹静态测试⏹动态测试3.按测试过程分类(软件测试阶段)⏹单元测试⏹集成测试⏹系统测试⏹验收测试4.黑盒测试细分⏹功能测试(用户需求)⏹逻辑功能测试⏹界面测试⏹易用性测试⏹安装测试⏹兼容性测试⏹性能测试(软件的寿命)⏹一般性能测试⏹稳定性测试⏹负载测试⏹压力测试软件测试过程模型是对测试过程一种抽象,用于定义软件测试的流程和方法;1.V模型◆V模型是最具有代表意义的测试模型,反映测试活动与分析设计活动的关系。
◆V模型指出,单元和集成测试应检测程序的执行是否满足软件设计的要求;系统测试应检测系统功能、性能的质量特性是否达到系统要求的指标;验收测试确定软件的实现是否满足用户需要或合同的要求。
2.W模型◆W模型由两个V字型模型组成,分别代表测试与开发过程。
相比V模型,增加了同步验证和确认活动。
◆W模型强调:测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、设计等同样要测试,也就是说,测试与开发是同步进行的。
3.H模型◆H模型将测试活动完全独立出来,形成了一个完全独立的流程,将测试准备活动和测试执行活动清晰地体现出来。
◆H模型揭示了软件测试是一个独立的流程,贯穿产品整个生命周期,与其他流程并发地进行。
4.其他模型除上述几种常见模型外,还流传着其他几种模型,例如X模型、前置测试模型等。
◆X模型提出针对单独的程序片段进行相互分离的编码和测试,此后通过频繁的交接,通过集成最综合成为可执行的程序。
第一章第二节1.软件=程序+文档+数据2.软件测试:使用人工或自动化手段,来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别(IEEE)3.测试结果:找出缺陷和故障,显示软件执行正确4.测试用例:◆测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果。
◆测试用例=测试数据+对应预期结果◆测试用例是执行测试的最小实体5.测试根本目的:(查找错误+满足需求+发现新大陆)◆发现\修改缺陷◆满足需求提高用户的满意程度◆优化软件品质6.冒烟测试:是指在对一个新版本进行系统大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测性。
(其他:回归测试,随机测试)7.软件测试分类◆测试组织:开发方+用户方+第三方◆测试用例设计方法:黑盒+白盒+灰盒◆测试策略与过程:单元—>集成—>系统—>验收◆基本要求和适用要求:功能、性能8.测试时间:软件测试覆盖整个软件生命周期。
软件测试尽早开展。
9.测试环境分类:硬件:服务器、客户端、交换机、防火墙等软件:数据库、中间件、被测软件、操作系统、防火墙等网络:有线无线、带宽、网络协议10.软件测试的停止依据:(第五类标准:根据单位时间内查出故障的数量和严重程度决定是否停止测试。
)较严格。
第三节1.常见的软件开发模型:◆大棒开发法(开发者的“突发奇想”)◆边写边改法◆瀑布模式(是将软件生命周期的各项活动,规定为按照固定顺序相连的若干个阶段性工作,形如瀑布流水,最终得到软件产品。
测试工作被定义为在开发后才开始进行)◆快速原型法(根据客户需求在较短的时间内解决用户最迫切解决的问题,完成可演示的产品。
这个产品只实现最重要功能,在得到用户的更加明确的需求之后,原型将丢弃。
)◆螺旋式开发= 瀑布模型+边写边改模型+风险评估2.软件测试模型介绍:第四节1.软件质量是软件符合明确叙述的功能和性能需求、文档中明确描述的开发标准、以及所有专业开发的软件都应具有的隐含特征的程度2.软件质量范围-3A(3A会用-有用-好用)Accountability (可说明性)用户可以基于产品或服务的描述和定义进行使用Availability (有效性)产品或服务对于99.999% 客户总是有效的Accessibility (易用性) 对于用户,产品或服务非常容易使用并且一定是非常有用的功能3.软件质量标准:就是评价一个软件质量好坏的准则。
《软件测试》复习提纲用答案(dáàn)1.什么是软件测试?为何(wèihé)要进行软件测试?软件测试是为了尽快尽早地发现在软件产品中所存在的各种软件缺陷而展开的贯穿整个软件开发生命周期、对软件产品(包括(bāokuò)阶段性产品)进行验证和确认的活动过程。
确保软件的功能符合(fúhé)用户的需求,把尽可能多的问题在发布或交付前发现并改正。
2.什么是软件缺陷?请举例。
哪里(nǎ li)出现的缺陷最多?软件缺陷就是软件产品中所存在的问题,最终表现为用户所需要的功能没有完全实现,未满足用户的需求。
术语:缺点(defect)异常(anomaly)偏差(variance)失败(failure)缺陷(bug)故障(fault)问题(problt)错误(error)规格说明书出现的最多。
3.软件测试是否就是程序测试?哪些可以作为软件测试的对象?不是。
对象:程序、数据(库)、文档、服务4.软件测试的目的是什么?软件测试的目标是什么?软件测试的原则是什么?目的:测试的目的就是发现软件中的各种错误和缺陷;测试只能证明软件存在缺陷,不能证明软件不存在缺陷;测试可以使软件中缺陷降低到一定程度,而不是彻底消灭;以较少的用例、时间和人力找出软件中的各种错误和缺陷,以确保软件的质量,回避软件发布后由于潜在的软件缺陷和错误造成的隐患所带来的商业风险。
目标:确保软件完成了它所承诺或公布的功能;为软件的质量评估提供依据;确保软件满足性能的要求;确保软件是健壮的和适应用户环境,为软件质量改进和管理提供帮助原则:所有的测试都应追溯到用户需求;保证测试的覆盖程度,但穷举测试是不可能的;越早测试越好,测试过程与开发过程应是相结合的;Pareto原则:测试中发现的80%的错误可能来自于20%的程序代码;测试的规模由小而大,从单元测试到系统测试;为了尽可能地发现错误,应该由独立的第三方来测试;不能为了便于测试擅自修改程序;既应该测试软件该做什么也应该测试软件不该做什么5.软件测试如何分类?按照程序是否执行:静态测试(审查、评审和走查)、动态测试按照测试用例的设计方法:白盒测试、黑盒测试按照(ànzhào)开发阶段划分:单元测试、集成测试、系统测试、验收测试按照(ànzhào)测试实施的组织划分:开发方测试、用户测试(β测试(cèshì))、第三方测试按照是否使用工具(gōngjù):手工测试、自动化测试6.常见(chánɡ jiàn)的软件测试模型有哪些?各有什么优缺点?V模型从左到右,描述了基本的开发过程和测试行为,明确地标明了测试工程中存在的不同级别,清楚地描述了这些测试阶段和开发过程期间各阶段的对应关系。
名词解释题1.软件生命周期从软件项目提出直至不再使用、需要重新开发的生命周期。
包括需求、概要设计、详细设计、代码实现、软件测试、维护等阶段。
2.软件质量软件质量就是指软件系统或系统中的软件部分的质量,即满足用户需求,包括功能需求和性能需求的程度。
3.软件测试软件测试是一种作为主体的人通过各种手段对客体软件的某种固有属性进行的一种以认知,和改造为目的的活动4.软件错误也称故障,导致失效的原因,或者程序内部的一个错误。
5.软件缺陷在程序中存在的,有可能诱发软件故障或导致软件失效的潜在因素。
6.动态测试动态测试是在抽样测试数据上执行程序并分析输出以及发现错误的过程。
包括白盒测试技术和黑盒测试技术7.静态测试静态测试是不执行程序代码而寻找文档、程序代码中可能存在的错误的过程。
8.黑盒测试黑盒测试也称功能测试或数据驱动测试,前提是已知产品所具有的功能,通过测试来检测每个功能是否都正常使用。
黑盒测试法常用的技术包括:功能分解法、等价类划分法、边界值解析法、因果图法、随机测试、猜错法等。
9.白盒测试白盒测试是吧测试对象看做一个打开的盒子。
利用白盒测试法进行动态测试时,除了要验证软件的功能特性之外,还特别需要测试软件产品内部结构和处理过程。
白盒测试法的覆盖标准由逻辑覆盖测试、基本路径测试和循环结构覆盖测试。
10.单元测试单元测试的对象是程序系统中的最小单元---模块。
单元测试的依据是详细设喵叔,单元测试应对模块内所有重要的控制路径测试测试用例,以便发现模块内部的错误。
单元测试多采用白盒测试技术,对系统内多个模块可以进行并行测试。
11.集成测试集成测试,也称组装测试、联合测试、子系统测试,在单元测试的基础上,将模块按照设计要求组装起来同时进行测试,主要目标是发现与接口有关的模块之间问题。
两种集成方式:一次性集成方式和增殖式集成方式。
12.系统测试系统测试是将软件放在整个计算机环境下,包括软硬件平台、某些支持软件、数据和人员等,在实际运行环境下进行一系列的测试,包括恢复测试、安全测试、强度测试和性能测试等。
《软件测试》期末复习试题及答案阶段测试一一. 单选题(共16题,65.6分)1. (单选题)(D )不是正确的软件测试目的。
A. 尽最大的可能找出最多的错误B. 设计一个好的测试用例对用户需求的覆盖度达到100%C. 对软件质量进行度量和评估,以提高软件的质量D. 发现开发所采用的软件过程的缺陷,进行软件过程改进2. (单选题)下面说法正确的是(C)。
A. 经过测试没有发现错误,说明程序正确B. 测试的目标是证明程序没有错误C. 成功的测试是发现了迄今尚未发现的错误的测试D. 成功的测试是没有发现错误的测试3. (单选题)下列选项中,不属于软件测试工程师职责范围的是(C)。
A. 测试方案设计B. 测试用例设计C. 进行代码调优D. 测试实施4. (单选题)下面属于软件测试模型的是(A)A. W模型B. 瀑布模型C. L模型D. G模型5. (单选题)下面关于软件测试模型的描述中,不正确的是(A)。
①V模型的软件测试策略既包括低层测试,又包括高层测试,高层测试是为了确保源码的正确性,低层测试是为了使整个系统满足用户的需求②V模型存在一定的局限性,它仅仅将测试过程作为在需求分析、概要设计、详细设计及编码之后的一个阶段③W模型可以说是V模型自然而然的发展,它强调:测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、功能和设计同样要测试④H模型中,软件测试是一个独立的流程,贯穿产品的整个生命周期,与其他流程并发地进行⑤H模型中,测试准备和测试实施紧密结合,有利于资源调配A. ①⑤B. ②④C. ③④6. (单选题)下列关于W模型的描述中正确的是(A)A. W模型强调测试伴随着整个软件开发周期,测试对象不仅仅是程序,需求、功能和文档同样需要测试B. 所有开发活动完成后,才可执行测试C. W模型将软件的开发视为合同签订、需求、设计、编码等一系列串行活动D. 在W模型中,需求、设计、编码串行进行,也可以并行工作7. (单选题)V模型描述了软件基本的开发过程和测试行为,描述了不同测试阶段与开发过程各段的对应关系。
注释:黄色表示重复或相似一、选择题1.软件测试的目的是(B )A.避免软件开发中出现的错误B.发现软件中出现的错误C.容忍软件中出现的错误D.修改软件中出现的错误2.对于逻辑表达式((a&b)| |c),需要(C )个测试用例才能完成条件组合覆盖。
A.2B.3C.4D.53.逻辑覆盖法不包括(C )。
A.分支覆盖B.语句覆盖C.需求覆盖D.修正条件判定覆盖4.如果某测试用例集实现了某软件的路径覆盖,那么它一定同事实现了该软件的(A )。
A.判定覆盖B.条件覆盖C.判定/条件覆盖D.组合覆盖5.使用白盒测试方法时,确定测试数据的依据是指定覆盖标准和(B )。
A.程序的注释B.程序的内部逻辑C.用户使用说明书D.程序的需求说明6.划分软件测试属于白盒测试还是黑盒测试的依据是(C )。
A.是否执行程序代码B.是否能看到软件设计文档C.是否能看到被测源程序D.运行结果是否确定7.单元测试中用来模拟被测模块调用者的模块是(C )A.父模块B.子模块C.驱动模块D.桩模块8.不属于单元测试内容的是(A )A.模块接口测试B.局部数据结构测试C.路经测试D.用户界面测试9.客户端交易处理性能指标是一类重要的负载压力测试指标,以下不属于客户端交易处理性能指标的是(C )A.负载测试B.压力测试C.疲劳强度测试D.大数据量测试10.以下不属于易用性而的是(D )A.功能易用性测试B.用户界面测试C.辅助功能测试D.可靠性测试11.软件测试的目的是(F )E.避免软件开发中出现的错误F.发现软件中出现的错误G.容忍软件中出现的错误H.修改软件中出现的错误12.软件的测试对象包括(D )。
A.软件代码B.文档C.数据D.以上全选13.对于逻辑表达式((a&b)| |c),需要(G )个测试用例才能完成条件组合覆盖。
E.2F.3G.4H.514.如果某测试用例集实现了某软件的路径覆盖,那么它一定同事实现了该软件的(E )。
软件测试与质量保证复习提纲提要:【复习重点】单元测试(黑盒测试:边界值、等价类、决策表;白盒测试:语句覆盖、条件覆盖、判定(分支)覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖、基路径法、数据流测试——定义节点、使用节点)【复习方法】立足于教材,重点看讲课课件及所讲过的习题【复习题目】黑盒测试:边界值一般边界条件法(4n+1)健壮性边界条件法(6n+1)最坏边界条件法(5(n))健壮最坏边界条件法(7(n))等价类:注意无效等价类决策表:先得到等价类,简化决策表白盒测试(程序流程图):语句路径覆盖:被测程序的每个语句至少被执行一次P93判定(分支)路径覆盖:设计足够的测试用例,使得程序中的每一个判定至少都获得一次“真值”和“假值”,或者说使得程序中的每一个分支都至少通过一次P94条件路径覆盖:对每个判定中所包含的若干个条件,应设计足够多的测试用例,使得判定中的每个条件都至少取到一次“真值”和“假值”的机会,也就是说,判定中的每个条件的所有可能结果至少出现一次。
(先列出判定中全部条件的所有可能取值范围,根据所有可能的取值范围设置测试用例)(注:满足条件路径覆盖度量标准的测试用例不一定满足判定路径覆盖度量标准)判定/条件路径覆盖:通过设计足够多的测试用例,使得运行这些测试用例时,判定中的每个条件的所有可能结果至少出现一次,并且每个判定本身的所有可能结果也至少出现一次。
(满足判定/条件路径覆盖的测试用例一定也满足判定路径覆盖、条件路径覆盖以及语句路径覆盖度量标准)条件组合路径覆盖:通过设计足够多的测试用例,使得运行这些测试用例时,每个判定中条件结果的所有可能组合至少出现一次。
(注:条件组合路径覆盖是对每个判定分别考虑它们的条件组合,而不是对整个程序中所有判定的所有条件的组合)(满足条件组合路径覆盖的测试用例,一定都满足前面4中覆盖方法)基本路径法:包含一组以前没有处理的语句或条件的一条路径(画控制流程图,节点用标有编号的圆圈表示)节点:一般代表了程序流程图中矩形框所表示的处理、菱形框所表示的判定条件,以及两条或多条节点的汇合点等控制流:用带箭头的弧线表示,用来连接相关的两个节点,指示了程序控制的转移过程圈复杂度V(G)= e –n +2 = 判定节点数+ 1 (每一个elseif以及每个case语句都算为一个判定节点)其中e表示程序控制流图中边的数量n表示节点的数量定义/使用法:按照程序中变量定义和使用的位置来选择程序的测试路径的一种测试方法。
在程序设计中,程序的变量有两种不同作用:1、将数据存储起来(变量出现在赋值语句的左边)2、将所存储的数据取出来(变量出现在赋值语句的右边)常见的定义/使用路径错误包括: 1、引用一个未初始化的变量 2、一个变量的死(无用)定义 3、等待一个还没有安排的进程 4、安排了一个与自身相同的进程5、等待一个先前已经被中止了的进程6、引用一个在并行进程中被定义的变量7、引用一个值不确定的变量定义节点:变量关联的存款单元的内容变化使用节点:变量关联的存储单元的内容保持不变注:一个变量节点不是定义节点就是使用节点,也可能两者都是。
如 a = a + 1 或 a ++关于变量V :定义/使用路径:路径的最初节点是定义节点,最终节点是使用节点定义清晰(清除)路径:只有路径的最初节点是定义节点,中间没有定义节点 注:定义清晰路径一定是定义/使用路径一、简答题1、简述软件测试的基本职责 1.、以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷2、证明3、检测4、预防2、试论述自底向上集成测试的实施步骤及其优缺点 实施步骤:1、由驱动模块控制最低层模块的并行测试,也可以把最低层模块组合成实现某一特定软件功能的簇,由驱动模块控制它进行测试2、用实际模块代替驱动模块,与它已测试的直属子模块组装成为子系统3、为子系统配备驱动模块,进行新的测试4、判断是否已组装到达主模块,是则结束测试;否则执行2优点:任意的叶子级构件一准备好,就可以开始自底向上集成和测试。
各子树的集成和测试工作可以并行的进行缺点:驱动器的开发时自底向上集成中耗费最大的,需要编写的代码量很可能就达到被测系统代谓词使用:节点外度(出度)>=2计算使用:节点外度(出度)<=1码量的两倍。
3、什么是集成测试,一般在何时进行;请论述其集成测试方法的分类集成测试,也叫组装测试、联合测试、子系统测试和部件测试。
它是单元测试的逻辑扩展,即在单元测试基础之上,将所有模块按照概要设计要求组装成为子系统或系统,进行测试。
集成测试一般在单元测试之后、系统测试之前进行分类:集成测试基本可以概括为以下两种,非渐增式测试模式和渐增式测试模块。
非渐增式测试模式即先分别测试每个模块,再把所有模块按设计要求放在一起结合成所要程序,如大爆炸模式;渐增式测试模式即把下一个要测试的模块同已经测试好的模块结合起来进行测试,测试完以后再把下一个应该测试的模块结合进来测试4、什么是维恩图,如何通过维恩图来理解软件测试维恩图:也叫文氏图,用于显示元素集合重叠区域的图示给定一段程序及其规格说明,集合S是所描述的行为,集合P是用程序实现的行为。
1测试就是确定既被描述又被实现的程序行为的范围,同时尽量找出缺陷。
S 和P2和5,可能会有没有测试的已描述行为。
1和4,经过测试的已描述行为。
3和7,对应于未描述行为的测试用例。
2和6,可能会有没有测试的程序行为。
1和3,经过测试的程序行为。
4和7,未通过程序实现的行为测试的目标:测试人员怎样才能使这些集合的相交区域(区域1)尽可能地大。
5、试叙述V、W、H、X测试模型,给出其示意图,并说明其局限性和改进途径测试传统模型-V模型⏹V模型是最广为人知的测试模型⏹从左到右,描述了基本的开发过程和测试行为⏹非常明确地标明了测试过程中存在的不同级别,描述了这些测试阶段和开发过程期间各阶段的对应关系V模型(测试与开发阶段对应关系)⏹单元和集成测试应检测程序的执行是否满足软件设计的要求;⏹系统测试应检测系统功能、性能的质量特性是否达到系统要求的指标;⏹验收测试确定软件的实现是否满足用户需要或合同的要求。
V模型的缺陷存在局限性,仅仅把测试过程作为在需求分析、系统设计及编码之后的一个阶段,只针对程序进行的寻找错误的活动,忽视了测试活动对需求分析,系统设计等活动的验证和确认的功能,直到后期的验收测试才被发现。
W模型⏹W模型由Evolutif公司提出。
⏹W模型从V模型演化过来,实际上开发是V,测试也是与此并行的V。
⏹相对于V模型,W模型增加了软件各开发阶段中应同步进行的验证和确认活动。
W 模型的缺点⏹ W 模型也存在局限性。
在W 模型中,需求、设计、编码等活动被视为串行的,同时,测试和开发活动也保持着一种线性的前后关系,上一阶段完全结束,才可正式开始下一个阶段工作。
这样就无法支持迭代的开发模型。
⏹ 对于当前软件开发复杂多变的情况,W 模型并不能解除测试管理面临着困惑。
W 模型⏹ 测试伴随整个软件开发周期,而且测试的对象不仅仅是程序,需求、设计等同样要测试,测试与开发是同步进行的。
⏹ W 模型有利于尽早地全面的发现问题。
X 模型⏹很好地处理测试与开发的交接过程(交接的过程是一个时间段,而不是一个点)⏹左边描述的是针对单独程序片段所进行的相互分离的编码和测试,此后将进行频繁的交接,通过集成最终合成为可执行的程序,然后再对这些可执行程序进行测试。
⏹己通过集成测试的成品可以进行封装并提交给用户,也可以作为更大规模和范围内集成的一部分。
多根并行的曲线表示变更可以在各个部分发生。
⏹X 模型还定位了探索性测试,这是不进行事先计划的特殊类型的测试,给有经验的测试人员在测试计划之外发现更多的软件缺陷。
H模型H模型⏹在H模型中,软件测试过程是一个独立的流程,贯穿于整个产品周期,与其他流程并发地进行。
⏹H模型指出软件测试要尽早准备,尽早执行。
⏹当某个测试时间点就绪时,软件测试即从测试准备阶段进入测试执行阶段。
⏹软件测试可以根据被测物的不同而分层次进行。
不同的测试活动可以是按照某个次序先后进行的。
但也可能是反复的,只要某个测试达到准备就绪点,测试执行活动就可以开展。
6、简述等价类的划分原则及测试用例的设计原则等价类划分原则:♦如果输入条件规定了取值范围,或者值的个数,则可以确定一个有效等价类和两个无效等价类♦如果输入条件规定了输入值的集合,或者是规定了“必须如何”的条件,这时可以确立一个有效等价类和一个无效等价类♦如果输入条件是一个布尔量,则可以确立一个有效等价类和一个无效等价类考虑有效等价类的同时要更多的考虑无效等价类(因为设计开发人员往往在设计开发阶段注重的是功能实现,还少注意容错和非法)♦等价类的划分既要细致,又不能遗漏(等价类的划分的目的就是最大覆盖(完备性)和最少测试用例(无冗余性))♦如果规定了输入数据的一组值,而且程序要对每一个输入值分别进行处理,这时要对每一个规定的输入值确立一个等价类,而对于这组值之外的所有值确立一个等价类♦如果规定了输入数据必须遵守的规则,则可以确立一个有效等件类(即遵守规则的数据)和若干无效等价类(从不同角度违反规则的数据)♦如果确知以划分的等价类中的各元素在程序中的处理方式不同,则应进一步划分成更小的等价类测试用例设计原则:♦为每一个等价类规定一个唯一的编号♦设计一个新的测试用例,使其尽可能多的覆盖尚未被覆盖的有效等价类,重复这一步,直至所有的有效等价类都被覆盖过♦设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直至所有的无效等价类都被覆盖为止7、功能性测试有哪几种方法?请简单描述各种方法的特点方法:等价类划分、边界条件、决策表、因果图法、正交表测试法等特点:等价类划分法测试技术是依据软件系统输入集合、输出集合或操作集合实现功能的相同性为依据,对其进行的子集划分,并对每个子集产生一个测试用例的设计方法。
边界条件分析法是对等价类划分方法的扩张,长期的测试工作已发现大量错误时发生在边界条件上,而不是发生在内部。
决策表法测试用例适用于具有以下特征的应用系统:if-then-else逻辑突出;输入变量之间存在逻辑关系;输入变量需要做等价类划分的;输入和输出之间存在因果关系;程序复杂度圈数比较高的。
因果图法提供了一种把需求规格说明书转化为决策表的系统化方法8、简述G.Myers阐述的测试目标1、测试其实是找出执行程序中错误的过程2、一个好的测试用例能发现一个隐藏的错误3、一个成功的测试是揭示了一个还未发现的错误9、简述白盒测试的优缺点1. 优点·迫使测试人员去仔细思考软件的实现·可以检测代码中的每条分支和路径·揭示隐藏在代码中的错误·对代码的测试比较彻底·最优化2. 缺点·昂贵·无法检测代码中遗漏的路径和数据敏感性错误·不验证规格的正确性10、什么是软件缺陷,产生软件缺陷的原因有哪些定义:软件缺陷是软件在生命周期各个阶段存在的一种不满足给定需求属性的问题(1)软件未实现说明书要求的功能(2)软件出现了说明书指明不应该出现的错误(3)软件实现了说明书未提到的功能(4)软件未实现说明书虽未明确提及但应该实现的目标(5)软件难以理解,不易使用,运行速度缓慢或者最终用户会认为不好原因:1、用户一般是非计算机专业人士,软件开发人员和用户的沟通存在较大困难,对要开发的软件产品功能理解不一致2、由于软件产品还没有设计、开发,完全靠想象去描述软件系统的实际情况,所有有些特性思考得还不够清晰3、需求变化的不一致性。