1、一、 谈谈了解的测试流程及工具一般测试流程:1.需求分析阶段:只要就是对业务的学习,分析需求点。2.测试计划阶段:测试组长就要根据 SOW 开始编写测试计划,其中包括人员,软件硬件资源,测试点,集成顺序,进度安排和风险识别等内容。3.测试设计阶段:测试方案一般由对需求很熟的高资深的测试工程师设计,测试方案要求根据SRS上的每个需求点设计出包括需求点简介,测试思路和详细测试方法三部分的方案。测试方案编写完成后也需要进行评审。4.测试方案阶段:主要是对测试用例和规程的设计。测试用例是根据测试方案来编写的,通过测试方案阶段,测试人员对整个系统需求有了详细的理解。这时开始编写用例才能保证用例的可执行和
2、对需求的覆盖。测试用例需要包括测试项,用例级别,预置条件,操作步骤和预期结果。其中操作步骤和预期结果需要编写详细和明确。测试用例应该覆盖测试方案,而测试方案又覆盖了测试需求点,这样才能保证客户需求不遗漏。同样,测试用例也需要评审。5.测试执行阶段:执行测试用例,及时提交有质量的 Bug 和测试日报,测试报告等相关文档。流程:需求分析测试计划测试设计测试环境搭建测试执行测试记录缺陷管理软件评估RTM.测试工具:C/S 及 B/S 架构相关的软件产品,那么对不同操作系统,如 Windows 系列、unix、linux 甚至苹果 OS 等测试环境都是必须的常用的软件测试工具分为:开源测试工具:开源测
3、试管理工具:Bugfree、Bugzilla、TestLink、mantis开源功能自动化测试工具:Watir、Selenium、MaxQ、WebInject开源性能自动化测试工具:Jmeter、OpenSTA、DBMonster、TPTEST、Web ApplicationLoadSimulatorTestDirector:企业级测试管理工具,也是业界第一个基于 Web 的测试管理系统。Quality Center:基于 Web 的测试管理工具,可以组织和管理应用程序测试流程的所有阶段,包括指定测试需求、计划测试、执行测试和跟踪缺陷。QuickTest Professional:用于创建功能
4、和回归测试。LoadRunner:预测系统行为和性能的负载测试工具。二、套题一、选择 :1. 从是否需要被执行测试软件的角度,软件测试可分为哪两种?(B)A. 黑、白盒(软件测试用例设计方法角度) B.静、动态 C.单、集 (策略和过程)2. 下列哪一项不是白盒测试?(C)A.单元测试 B.集成测试 C.系统测试 D.回归测试3. 计算机环路复杂度(计算方法)(重点:选择 简答)V(G)=简单判定节点数+ 1 ; V(G) = E-N+2 ; V(G)=封闭区域数+ 1 (记住这三个公式)4. 属于黑盒测试的方法?(C)A.基于基本路径 B.控制流 C.基于用户需求测试 D.逻辑覆盖(基于用户
5、需求的测试,功能图分析方法,等价类划分方法,边界值分析方法,错误推测方法,因果图方法,判定表驱动分析方法,正交实验设计方法和功能图分析方法等。)5. 测试的报告由五部分。答:首页、引言部分、测试概要、测试结果及缺陷分析、测试结论与建议。6. 单元测试环境由三部分构成?答:所测模块和与它相关的驱动模块及桩模块共同构成了一个“测试环境”7. 单元测试中综合测试主要是考虑哪些方式?答:自顶向下的单元测试策略、自底向上的单元测试策略。8. 不是软件实施活动的进入准则? (D)A.需求工件已经被基线化 B.详细设计工件已经被基线化 C.构架工件已经被基线化 D. 项目阶段成果及被基线化9. 确定单元测试
6、指导的基本方针? () (3 个,选择其中不是的)答: 能够自身编译的最小程序块,单一过程/函数(独立),由一个人完成的小规模工作10. 对于自动化测试成本从高到底的排序 ,下列描述正确的是?(A)(PPT6 七章)(进行排序)A. GUI,编译器,用户图形11. 软件测试是软件开发的重要环节之一。按照软件开发过程可分为:单元测试、集成测试、系统测试、域测试等。12. 软件测试的任务 发现、改正软件错误(找错,修正)13. 下面哪一项测试步骤中需要进行局部数据结构测试?(A)A.单元测试 B.集成测试 C.确认测试 D.系统测试14. 白盒测试是根据程序的(C)来选设计测试用例?A.功能 B.
7、性能 C.内部逻辑 D.内部数据15. 单元测试的终止的标准(3 个 )(PPT47 三章)1.硬件资源不足或故障造成软件运行无法运行;2.软件运行后无法正确显示;3.所有功能测试均已经完成。16. 软件测试是对系统逆向求证的过程,集成测试对应的过程中单元测试的过程A.需求设计 B.概要设计 C.详细设计 D.编码实现17. 单元测试主要测试技术不包括?(B)(PPT12 三章)A.白盒 B.功能 C.静态 D.以上都不是18. 环路复杂度公式哪个不是?()V(G)=简单判定节点数+ 1 ; V(G) = E-N+2 ; V(G)=封闭区域数+ 1 (记住这三个公式)19. 如果一个产品中次严
8、重缺陷基本完成修复并且通过了复测,这个阶段的产品是(B)A.阿尔法版 B.beta 版 C.正版 D.以上都不是20. 自底向上方法需要写 ()A. 驱动程序 桩程序 驱动程序和桩程序 两个都不是21. (A)的目的是对最终软件系统进行全面的测试确保最终软件系统产品满足需求。系统测试 集成测试 单元测试 功能测试22. 测试用例的 4 个关键元素。(1) 被测单元模块初始状态声明,即测试用例的开始状态(仅适用于被测单元维持了调用中间状态的情况);(2) 被测单元的输入,包含由被测单元读入的任何外部数据值;(3) 该测试用例实际测试的代码,用被测单元的功能和测试用例设计中使用的分析来说明,如:单
9、元中哪一个决策条件被测试;(4) 测试用例的期望输出结果(在测试进行之前的测试说明中定义)。23. 目前主要的单元测试的方法(A.基本路径测试 B.等价类划分/边界值分析测试 C.覆盖测试 D.循环测试 E.数据流测试 F.程序插桩测试 G 变异测试)从中选。24. 哪个方法根据输出输入依赖关系设计的测试用例?(C)?A.路径 B.等价类 C.因果图 D.归纳25. 有一组测试用例使得每一个被测试用例的分支覆盖至少被执行一次,它满足的覆盖标准(B)。(PPT22 二章)A. 语句覆盖 B.判定覆盖 C.条件覆盖 D.路径覆盖二、填空:1. 单元测试中对类进行测试有 3 个“定义引用对”(方法内
10、部定义-引用对 方法间定义-引用对 类内部定义-引用对)。(PPt37 三章)2. 测试的主要目标,不再只是找出其缺陷,而是证明其(性能)。3. 压力测试又称强度测试,是在(各种资源超负荷)情况下,观察系统的运行情况。4. (缺陷跟踪工具)是管理工具使用最多的。5. 集成测试划分为 5 个阶段(制定集成测试的计划、设计集成测试、实施集成测试、执行集成测试、评估集成测试)。6. 根据软件生命周期中的定义,可以把自动化测试工具划分 3 大类(白盒测试工具、黑盒测试工具、测试管理工具)。7. 对类进行测试时,类之间的关系 6 类(关联 泛化 实现 依赖 聚合 组合)。每种不同符号来表示,并分别用(私
11、有的“-”、公有的“+”、保护的“#”)三个关键字来修饰类。8. 白盒测试工具针对代码进行的工具,测试中发现的缺陷可以定义到代码级,根据测试工具原理的不同,又可以分为静态测试工具和动态测试工具。9. 黑盒测试工具包括(功能测试工具、性能测试工具)。10. 软件开发的基本过程(需求分析、设计、实现、测试、维护)。11. 单元测试的策略(自顶向下的单元测试策略、自底向上的单元测试策略和孤立的单元测试策略)。12. 集成测试的工作开展更多站在测试工作人员的角度上; 系统测试站在用户的角度上。13. 对面向对象来说,按照集成的粒度不同,可把集成测试分为(类间集成测试 、 类内集成测试)。14. 类测试
12、用例中,基于 3 个标准(基于状态的覆盖率、基于限制的覆盖率和基于代码的覆盖率)。(PPT13 六章)15. 哪一个不属于增量式集成?答案:大爆炸集成17. 单元测试中对类进行三级测试(方法内部测试、方法间测试、类内部测试)PPT36 三章18. 目前单元测试主要的方法:基于路径测试,等价类划分/边界值分析测试,覆盖测试,循环测试,数据流测试,程序插桩测试,变异测试。三、判断:1. 发现错误是软件测试的目的。 (错)2. 白盒测试可以找出软件遗漏功能和代码错误功能。(PPT47 二章) (错)3. 在设计测试用例时,应包括合理的应用条件和不合理的应用条件。 (对)4. 软件缺陷一定是由编码引起
13、的错误。 (错)5. Bata 测试是软件多个用户在实际。多个测试。 (对)6. 系统测试属白盒测试。 (黑盒) (错)7. 手工测试可以达到好的系统化测试。 (对)8. 功能测试属于白盒测试的技术范畴。 (错)9. 文档测试是对系统提交给用户的文档进行验证,并不是一般性的审查活动。P35 5(对)四、大题1. 计算环路复杂度方法哪些 ? (要求写成 3 个公式,一个公式 2 分)答:V(G)=简单判定节点数+ 1 ; V(G) = E-N+2 ; V(G)=封闭区域数+ 12. 基于状态测试的主要步骤?(PPT32 三章)答: 依据设计文档,或者通过分析对象数据成员的取值空间(笛卡尔积),得
14、到被测试类的状态转移图;给被测试的类加入用于设置和检查对象状态的新方法,导出对象的逻辑状态;对于状态转移图中的每个状态,确定该状态是哪些方法的合法起始状态,即在该状态时,对象允许执行哪些操作;在每个状态,从类中方法的调用关系图最下层开始,逐一测试类中的方法;测试每个方法时,根据对象当前状态确定出对方法的执行路径有特殊影响的参数值,将各种可能组合作为参数进行测试。3. Bug 的种类有哪些?答:需求阶段的 BUG,分析设计阶段的 BUG,设计阶段的 BUG,实现阶段的BUG,配置阶段的 BUG,短视将来的 BUG,静态文档的 BUG 。4. 自动化测试的缺点?(5 点)答:1、自动化测试不能取代
15、手工测试, 测试主要还是要靠人工的。2、新缺陷越多,自动化测试失败的几率就越大。3、工具本身不具有想象力4、技术问题、组织问题、脚本维护5、测试工具与其他软件的互操作性5. 选择手动和自动化测试,为了作出一个合理的决定,需要做哪些方面假设?(7 个)答: 1拥有稳定的自动化测试技术支持。2两种极端的可能性:一种就是无需人工干预的完全自动化测试,另一种就是只运行一次就废弃的人工测试。3自动化测试和手工测试都可行(但事实并非如此)。4测试是通过外部接口完成的(黑盒测试)。5不要求必须进行自动化测试。6测试已经设计好之后,再决定是否进行自动化测试。7有一定的时间用于完成测试,并且在这段时间里完全有可
16、能把测试做好。6. 集成测试分析方法有哪些?答:体系结构分析 模块分析 接口分析 风险分析 可测试性分析 集成测试策略分析7. 编写类测试驱动程序的方法有很多种,以 Java 语言为例来说明,测试驱动程序设计的结构,并简要说明其优缺点。(PPT15 六章)答:1.在 main 方法中写入需要运行的测试用例,即实现 main 方法,然后编译、执行该类。缺点:不利于维护和复用,交付时,逐个剔除代码2.在类中实现一个静态测试方法,通过调用该测试方法来收集每个测试用例的执行结果。缺点:同 1.3.实现独立的测试类,它的职责是执行并收集每个测试用例的结果。优点:可复用,支持回归测试缺点:必须创建新类,关
17、注被测试类的变化8. 增量式集成和非增量式集成的概念和举例。?答:非增量式测试:就是分别对系统中每个模块进行单元测试,然后将所有模块按照层次结构组装到一起进行测试,最终得到所要求的软件。例如:大爆炸集成增量式集成(或组装):先对一个个模块进行模块测试,然后在组装过程中边连接边测试,以发现连接过程中产生的问题。例如:自顶向下集成和自底向上集成9. 制定集成测试计划时间,一般安排在概要设计评审通过后大约一个星期的时候一、计划阶段制定集成测试计划时间:一般安排在概要设计评审通过后大约一个星期的时候,参考需求规格说明书、概要设计文档、产品开发计划时间表来制定。二、设计阶段制定集成测试设计时间:一般在详
18、细设计开始时,就可以着手进行。可以把需要规格说明书、概要设计、集成测试计划文档作为参考依据。10. 列举出图中三个模块,写出全部模块执行路径,最后给出其 MM 路径(书162 页)1. 源节点: 程序中的源节点是指程序执行开始或重新开始处的语句片断。A:1,5 节点 B:1,3 节点 C:1 节点2汇节点: 汇节点是程序执行结束处的语句片断。这里转移控制到其它单元的节点也是汇节点。 A:4,6 节点 B:2,4 节点 C:5 节点3模块执行路径模块执行路径是以源节点开始、以汇节点结束的一系列语句,中间没有插入汇节点。在图 4-12 中有七条模块执行路径: 图 4-12 跨三个单元的 MM-路径
19、模块执行路径如下:MEP(A,1)=1,2,3,6MEP(A,2)=1,2,4MEP(A,3)=5,6MEP(B,1)=1,2MEP(B,2)=3,4MEP(C,1)=1,2,4,5MEP(C,1)=1,3,4,54. 消息消息是一种程序设计语言机制,通过这种机制可以把控制从一个单元转移到另一个单元。5. MM-路径(Method Message Path)是穿插出现模块执行路径和消息的序列。如图 4-12 中的粗线所示,代表模块 A 调用模块 B,模块 B 调用模块 C,这就是一个 MM-路径,可用图 4-13 表示。对于传统软件来说,MM-路径永远是从主程序开始,在主程序中结束。MM-路径
20、如下:11.设一个控制图如下,请给出其环路复杂度和基本路径。环路复杂度:5基本路径: 路径 1:12356121315路径 2:12456121315路径 3:1235781315路径 4:1245781315路径 5:12357910141315路径 6:12457910141315路径 7:12357911141315路径 8:1245791114131512.软件测试活动的生命周期测试周期分为计划、设计、实现、执行、总结。其中:计划:对整个测试周期中所有活动进行规划,估计工作量、风险,安排人力物力资源,安排进度等;设计:完成测试方案,从技术层面上对测试进行规划;实现:进行测试用例和测试规
21、程设计;执行:根据前期完成的计划、方案、用例、规程等文档,执行测试用例。总结:记录测试结果,进行测试分析,完成测试报告。13. 三明治集成方法答:1. 确定以哪一层为界来决定使用三明治集成策略(在 4-7 中,我们确定以B 模块为界);2. 对模块 B 及其所在层下面的各层使用自底向上的集成策略;3. 对模块 B 所在层上面的层次使用自顶向下的集成策略;4. 把模块 B 所在层各模块同相应的下层集成;5. 对系统进行整体测试。14. 集成测试可看着是体系结构分析工作基础之上的细化。可从哪几个角度进行模快分析。答: 1)确定本次要测试的模块;2)找出与该模块相关的所有模块,并且按优先级对这些模块
22、进行排列;3)从优先级别最高的相关模块开始,把被测模 块与其集成到一起;4)然后依次集成其他模块。三、性能测试需要注意的问题 性能测试即测试软件处理事务的速度,一是为了检验性能是否符合需求,二是为了得到某些性能数据供人们参考(例如用于宣传)。 有时人们关心测试的“绝对值”,如数据送输速率是每秒多少比特。有时人们关心测试的“相对值”,如某个软件比另一个软件快多少倍。 在获取测试的“绝对值”时,我们要充分考虑并记录运行环境对测试的影响。例如网络环境、计算机主频,总线结构和外部设备都可能影响软件的运行速度。 性能测试的一些注意事项: 不要试图让人拿着钟表去测时间,应当编写一段程序用于计算时间以及相关
23、数据。应当测试软件在标准配置和最低配置下的性能。为了排除干扰,应当关闭那些消耗内存、占用 CPU 的其它应用软件(如杀毒软件)。不同的输入情况会得到不同的性能数据,应当分档记录。例如传输文件的容量从 100K 到 1M 可以分成若干等级。由于环境的波动,同一种输入情况在不同的时间可能得到不同的性能数据,可以取其平均值。四、健壮性测试是什么?目的是什么?健壮性是指在异常情况下,软件还能正常运行的能力。健壮性有两层含义:一是容错能力,二是恢复能力。容错性测试通常构造一些不合理的输入来引诱软件出错,例如:(1)输入错误的数据类型。如“猴”年“马”月。(2)输入定义域之外的数值。如上海人常说的“十三点
24、”粗暴一些方式俗称“大猩猩”测试法。除了不能拳打脚踢嘴咬外,什么招术都可以使出来。例如在测试客户机服务器模式的软件时,把网络线拔掉,造成通信异常中断。恢复测试重点考察一下几项:(1)系统能否重新运行;(2)有无重要的数据丢失;(3)是否毁坏了其它相关的软件硬件。五、接口与路径测试都包括哪些内容? 数据一般通过接口输入和输出,所以接口测试是白盒测试的第一步。每个接口可能有多个输入参数,每个参数有“典型值”、“边界值”、“异常值”之分,所以输入的组合数可能并不少。根据接口的定义,可以推断某种输入应当产生什么样的输出。输出包括函数的返回值和输出参数。如果实际输出与期望的输出不一致,那么说明程序有错误
25、。白盒方式的接口测试和黑盒方式的功能测试,其方法十分相似。 一个函数体内的语句可能只有十几条,但逻辑路径可能有成千上万条。想遍历测试几乎是不可能的,不测试或者胡乱找几条路径测试却又不行。 对于非严格系统而言,在分析路径方面化费很多精力是不值得的。我认为在构造接口测试的同时已经建立了测试路径。因为每一种输入将产生唯一的输出,输入与输出之间的路径也是唯一的。由于接口测试中的输入是有代表性的,因此相应的路径也具有代表性,不用得着费煞苦心地去找测试路径。 路径测试的检查表 数据类型、变量值、逻辑判断、循环、内存管理、文件 I/O、错误处理 由于接口测试是枚举的,有可能漏掉某些状况,导致一些重要的路径没
26、有被测试。预防措施有: 观察是否有程序语句从来没有被执行过。如果发生在这种情况,要么是程序有错误,存在无用的代码;要么是接口测试不充分,漏掉了一些路径。 要特别留意函数体内的错误处理程序块(如果存在的话),这是最易被人疏忽的路径,隐患最多。 六、有了“黑盒”测试,为什么还要白盒测试呢?黑盒测试只能观察软件的外部表现,即使软件的输入输出都是正确的,却并不能说明软件就是正确的。因为程序有可能用错误的运算方式得出正确的结果,例如“负负得正,错错得对”,只有白盒测试才能发现真正的原因。白盒测试能发现程序里的隐患,象内存泄漏、误差累计问题。在这方面,黑盒测试存在严重的不足。七、alpha 测试和 bet
27、a 测试的区别定义:alpha 测试是在用户组织模拟软件系统的运行环境下的一种验收测试,由用户或第三方测试公司进行的测试,模拟各类用户行为对即将面市的软件产品进行测试,试图发现并修改错误。Beta 测试是用户公司组织各方面的典型终端用户在日常工作中实际使用 beta版本,并要求用户报告异常情况,提出批评意见。区别:两者的主要区别是测试的场所不同。Alpha 测试是指把用户请到开发方的场所来测试,beta 测试是指在一个或多个用户的场所进行的测试。Alpha 测试的环境是受开发方控制的,用户的数量相对比较少,时间比较集中。而 beta测试的环境是不受开发方控制的,谁也不知道用户如何折磨软件,用户
28、数量相对比较多,时间不集中。一般地,alpha 测试先于 beta 测试执行。通用的软件产品需要较大规模的 beta 测试,测试周期比较长。如果产品通过了 beta 测试,那么就可以正式发行了。八、回归测试的概念及过程回归测试:是指软件系统被修改或扩充(如系统功能增强或升级)后重新进行的测试,是为了保证对软件所做的修改没有引入新的错误而重新进行的测试。回归测试过程:识别出软件中被修改的部分从原基线测试用例库 T 中,排除所有不再适用的测试用例,确定对新版本依然有效的测试用例,建立新的基线测试用例库 TN依据一定的策略从 TN 中选择测试用例测试被修改的软件如果必要,生成新的测试用例集 T1,用
29、于测试 TN 无法充分测试的软件部分用 T1 执行修改后的软件第 2 和第 3 步测试验证修改是否破坏了现有的功能,第 4 和第 5 步测试验证修改工作本身回归测试的一些观念:回归测试是指重复以前的全部或部分的相同测试。新加入测试的模组,可能对其他模组产生副作用,故须进行某些程度的回归测试。回归测试的重心,以关键性模组为核心。九、系统验收测试的内容1)系统验收测试是在在系统测试完成后,项目最终交付前进行。2)系统验收测试不是对系统的全面覆盖,而是针对用户的核心业务流程进行测试。3)验收测试的执行人员不是开发方的测试组成员,是由用户方的使用人员完成。4)验收可以由第三方专业化全覆盖型技术测试团队测试。十、系统测试的定义及内涵系统测试定义:系统测试是将通过集成测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在实际或者模拟运行(使用)环境下,对计算机系统进行一系列测试。系统测试包含:功能测试、性能测试、压力测试、容量测试、安全性测试、GUI 测试、可用性测试(也叫易用性测试)、安装测试、配置测试、异常测试,备份测试、健壮性测试、文档测试、在线帮助测试、网络测试、稳定性测试。十一、测试人员在软件开发过程中的任务?