第一篇:软件测试计算公式总结
软件测试计算公式总结
通用公式:
计算平均的并发用户数: C = nL/T
C是平均的并发用户数;n是login session的数量;L是login session的平均长度;T指考察的时间段长度。
并发用户数峰值: C’ ≈ C+3根号C
C’指并发用户数的峰值,C就是公式(1)中得到的平均的并发用户数。该公式的得出是假设用户的login session产生符合泊松分布而估算得到的。
实例:
假设有一个OA系统,该系统有3000个用户,平均每天大约有400个用户要访问该系统,对一个典型用户来说,一天之内用户从登录到退出该系统的平均时间为4小时,在一天的时间内,用户只在8小时内使用该系统。
则C = 400*4/8 = 200
C’≈200+3*根号200 = 2
42F=VU * R / T
其中F为吞吐量,VU表示虚拟用户个数,R表示每个虚拟用户发出的请求数,T表示性能测试所用的时间
R = T / TS
TS为用户思考时间
计算思考时间的一般步骤:
A、首先计算出系统的并发用户数
C=nL / T F=R×C
B、统计出系统平均的吞吐量
F=VU * R / T R×C = VU * R / T
C、统计出平均每个用户发出的请求数量
R=u*C*T/VU
D、根据公式计算出思考时间
TS=T/R
缺陷检测有效性百分比DDE=TDFT/(TDFC+TDFT)×100%
其中:TDFT=测试过程中发现的全部缺陷(即由测试组发现的),TDFC=客户发现的全部缺陷(在版本交付后一个标准点开始测量,如,半年以后)
缺陷排除有效性百分比DRE=(TDCT/TDFT)×100%
其中:TDCT=测试中改正的全部缺陷,TDFT=测试过程中发现的全部缺陷
测试用例设计效率百分比TDE=(TDFT/NTC)×100%
其中:TDFT=测试过程中发现的全部缺陷,NTC=运行的测试用例数
以下公式较适用于白盒测试
功能覆盖率= 至少被执行一次的测试功能点数/ 测试功能点总数(功能点)
需求覆盖率= 被验证到的需求数量 /总的需求数量(需求)
覆盖率= 至少被执行一次的测试用例数/ 应执行的测试用例总数(测试用例)语句覆盖率= 至少被执行一次的语句数量/ 有效的程序代码行数
判定覆盖率= 判定结果被评价的次数 / 判定结果总数
条件覆盖率= 条件操作数值至少被评价一次的数量 / 条件操作数值的总数
判定条件覆盖率= 条件操作数值或判定结果至少被评价一次的数量/(条件操作数值总数+判定结果总数)
上下文判定覆盖率= 上下文内已执行的判定分支数和/(上下文数*上下文内的判定分支总数)
基于状态的上下文入口覆盖率= 累加每个状态内执行到的方法数/(状态数*类内方法总数)分支条件组合覆盖率= 被评测到的分支条件组合数/分支条件组合数
路径覆盖率= 至少被执行一次的路径数/程序总路径数
第二篇:软件测试总结
面向对象程序的软件测试方法
在软件生命周期过程中,软件测试是保证软件质量的关键环节之一。面向对象方法学在软件工程中的引入极大地方便了软件的设计、开发和维护,为创建高可靠性的软件系统提供了重要保证。但面向对象程序的封装、继承、多态和异常处理机制等新特性却给测试带来新的挑战。一方面需要调整、改进传统的测试策略和方法;另一方面探索出适应面向对象程序特征的测试理论与技术也尤为必要。
面向对象(Object Oriented,OO)是当前计算机界关心的重点,它是90年代软件开发方法的主流。面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围。如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。
面向对象的定义或说明对象的定义的非常少。其初,“面向对象”是专指在程序设计中采用封装、继承、抽象等设计方法。可是,这个定义显然不能再适合现在情况。面向对象的思想已经涉及到软件开发的各个方面。如,面向对象的分析(OOA,Object Oriented Analysis),面向对象的设计(OOD,Object Oriented Design)、以及我们经常说的面向对象的编程实现(OOP,Object Oriented Programming)。许多有关面向对象的文章都只是讲述在面向对象的开发中所需要注意的问题或所采用的比较好的设计方法。看这些文章只有真正懂得什么是对象,什么是面向对象,才能最大程度地对自己有所裨益。这一点,恐怕对初学者甚至是从事相关工作多年的人员也会对它们的概念模糊不清。
1、面向对象的基本概念
(1)对象。
对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。
(2)对象的状态和行为。
对象具有状态,一个对象用数据值来描述它的状态。
对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为。
对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中
(3)类。具有相同或相似性质的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象。
类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。
类具有操作,它是对象的行为的抽象,用操作名和实现该操作的方法来描述。
(4)类的结构。
在客观世界中有若干类,这些类之间有一定的结构关系。通常有两种主要的结构关系,即一般--具体结构关系,整体--部分结构关系。
①一般——具体结构称为分类结构,也可以说是“或”关系,或者是“is a”关系。
②整体——部分结构称为组装结构,它们之间的关系是一种“与”关系,或者是“has a”关系。
(5)消息和方法。
对象之间进行通信的结构叫做消息。在对象的操作中,当一个消息发送给某个对象时,消息包含接收对象去执行某种操作的信息。发送一条消息至少要包括说明接受消息的对象名、发送给该对象的消息名(即对象名、方法名)。一般还要对参数加以说明,参数可以是认识该消息的对象所知道的变量名,或者是所有对象都知道的全局变量名。
类中操作的实现过程叫做方法,一个方法有方法名、参数、方法体。消
2、面向对象的特征
(1)对象唯一性。
每个对象都有自身唯一的标识,通过这种标识,可找到相应的对象。在对象的整个生命期中,它的标识都不改变,不同的对象不能有相同的标识。
(2)分类性。
分类性是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类。一个类就是这样一种抽象,它反映了与应用有关的重要性质,而忽略其他一些无关内容。任何类的划分都是主观的,但必须与具体的应用有关。
(3)继承性。
继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。继承性是面向对象程序设计语言不同于其它语言的最重要的特点,是其他语言所没有的。
在类层次中,子类只继承一个父类的数据结构和方法,则称为单重继承。
在类层次中,子类继承了多个父类的数据结构和方法,则称为多重继承。
在软件开发中,类的继承性使所建立的软件具有开放性、可扩充性,这是信息组织与分类的行之有效的方法,它简化了对象、类的创建工作量,增加了代码的可重性。
采用继承性,提供了类的规范的等级结构。通过类的继承关系,使公共的特性能够共享,提高了软件的重用性。
(4)多态性(多形性)多态性使指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。
多态性允许每个对象以适合自身的方式去响应共同的消息。
多态性增强了软件的灵活性和重用性。
面向对象方法的基本思想是一:面向对象方法是一种运用对象、类、封装、继承、多态和消息等概念来构造、测试、重构软件的方法。
二: 面向对象方法是以认识论为基础,用对象来理解和分析问题空间,并设计和开发出由对象构成的软件系统(解空间)的方法。由于问题空间和解空间都是由对象组成的,这样可以消除由于问题空间和求解空间结构上的不一致带来的问题。简言之,面向对象就是面向事情本身,面向对象的分析过程就是认识客观世界的过程。
面向对象方法从对象出发,发展出对象,类,消息,继承等概念。
面向对象方法的主要优点是:符合人们通常的思维方式;从分析到设计再到编码采用一致的模型表示具有高度连续性;软件重用性好。
面向对象软件测试的特点是: 1.掌握代码检查、走查与评审的基本方法和技术; 2.掌握白盒测试和黑盒测试的测试用例的设计原则和方法; 3.掌握单元测试和集成测试的基本策略和方法;
4.了解系统测试、性能测试和可靠性测试的基本概念和方法; 5.了解面向对象软件和WEB应用软件测试的基本概念和方法; 6.掌握软件测试过程管理的基本知识和管理方法; 7.熟悉软件测试的标准和文档;
8.掌握QESuite软件测试过程管理平台和QESat/C++软件分析和工具的使用方法。
第三篇:软件测试总结
1.软件测试定义:由人工或自动方法来执行或评价系统或系统部分的过程,以验证它是否满足规定的需求,或识别出期望的结果和实际结果之间的差异。2.软件测试的分类:
测试对象或范围分类:需求评审、设计评审、单元测试、程序测试、系统
测试、文档测试、Web应用测试、客户端测试、数据库测试等;
测试目的分类:集成测试、功能测试、压力测试、性能测试等等; 静态测试、动态测试; 白盒测试、黑盒测试。3.软件测试的基本流程与原则
基本流程:
测试用例设计-输入数据、预期结果; 测试执行-输入数据执行被测对象; 检查实际输出与预期结果。基本原则:
开始测试时认定软件有错,测试要证明有错; 测试应该由独立的测试团队来完成; 测试设计必须设计对应的预期输出;
要对合理、不合理(有效、无效)输入数据都进行测试; 检查软件的完备性、多余; 完整保留测试文档;
一个被测对象中有错误的概率与已发现错误的个数成正比。4.Beizer测试成熟度级别:
0级:没有区分测试与调试;
1级:测试的目的是证明软件能用; 2级:测试的目的是证明软件不能用;
3级:测试的目的不是为了证明什么,而是为了降低软件使用风险; 4级:测试是一种智能训练,能够帮助专业人员开发出更高质量的软件。5.软件测试与软件工程,软件过程的关系:
软件工程:在给定的条件下(成本、时间)开发出高质量的软件产品。软件生产过程的特性决定了软件产品中不可避免包含有错误。软件测试则是尽可能多地发现错误,从而保障软件产品的质量。6.McCall的质量因素:
产品修改:
可维护性,灵活性,可测试性 产品转移:
可移植性,可复用性,互操作性 产品运行:
正确性,易用性,可靠性,效率,完整性 7.软件质量困境
软件质量必须足够好:存在价值
软件产品无法完美:需要消耗过多的资源、时间、成本
软件开发需要在两个极端之间进行平衡:软件足够好的同时又不完美。8.质量控制、质量保证和质量管理
软件质量控制其实是基本方法,通过一系列的技术来科学地测量过程的状态。如缺陷率、测试覆盖率等。
软件质量保证则是过程的参考、指南的集合,如ISO9000、CMM/CMMI等,着重内部的检查,确保已获取认可的标准和步骤都已经遵循。
软件质量管理则是实际操作的思想,质量管理控制和协调组织的质量活动,包括质量控制、质量保证和质量改进。9.WebApp应用的属性:
网络密集型应用;并发性;大负载量;性能;高可靠性、高可用性;安全性-内容敏感;
10.软件评审的目的,评审度量及其应用
评审的目标在于:尽早发现软件过程中的错误,防止错误传递、蔓延至后续活动,防止错误转化为缺陷。
准备工作量Ep-实际评审会之前所需工作量; 评估工作量Ea-实际评审所花费的工作量 返工工作量Er-修改评审所发现错误的工作量 工作产品规模WPS-评审对象的规模
发现的主要错误数Errmajor-多于预期的改错工作量的错误数目 发现的次要错误数Errminor-少于预期的改错工作量的错误数目 总评审工作量Ereview = Ep+Ea+Er 错误总数Errtot = Errmajor+Errminor 错误密度:评审的每单位工作产品发现的错误数Ed = Errtot / WPS 错误密度数值的含义:较小(产品质量非常好或评审不够彻底);较大(产品质量存在缺陷)
11.软件测试计划:描述对计算机软件配置项、子系统、系统进行测试的计划安排,内容包括测试的环境、测试工作的标识及测试工作的时间安排。
软件测试报告:是对计算机软件配置项、软件系统或子系统,或与软件相关项目执行合格性测试的记录 12.软件测试活动
制订测试计划(测试分析员)
测试设计(测试设计人员)-方案设计 测试及测试用例设计 测试过程
桩模块、驱动模块设计
测试实施(测试设计员)-实现测试设计 单元测试(测试员)集成测试(测试员)系统测试(测试员)
评估测试(测试设计人员)
13.无向图的相关定义:
连接性:节点ni、nj是连接的,当且仅当ni、nj在同一条路径上。组件:图的组件是相连节点的最大集合
图G的圈复杂度V(G)=e-n+2p,其中e为G的边数,n为节点数,p为组件数。14.图覆盖:给定一个关于图G的准则C的测试需求集合TR,测试集合T在图G上满足准则C当且仅当对TR中每个测试需求tr,path(T)中至少存在一条测试路径p满足tr。
简单路径:如果从ni到nj的一条路径中,除了始节点和终节点可以相同外,没有任何节点出现次数多于一次,则该路径为简单路径。
主路径:如果从ni到nj是一条简单路径,并且它不作为任何其他简单路径的子路径出现,则称之为主路径。
主路径覆盖(PPC)准则:TR包含图中每一条主路径。
指定路径覆盖(SPC):TR包含一个测试路径集S,S为指定参数。15.白盒测试方法
白盒测试:根据被测对象的内部结构和运行机制来设计测试用例的方法,又称为结构测试、逻辑驱动测试、覆盖测试
被测对象的独立路径至少覆盖一次; 所有逻辑取值测试[真、假]; 循环边界测试;
检查内部数据结构、边界条件。16.黑盒测试方法
黑盒测试方法又称功能测试方法、数据驱动测试方法,测试设计时不考虑被测对象的内部结构,以检查系统功能(功能的正确、完整、逻辑流程、人机界面、文档内容、系统安装/初始化)
以被测对象的外部特征为测试依据。17.模糊测试方法
模糊测试方法:构造大量的随机数据作为系统的输入,从而检验系统在各种数据情况下是否出现问题。
18.增量测试:单元测试、调用依赖的模块集成测试,逐步扩展直到形成整个软件系统。
19.突击测试:所有模块一次性集成为一个完整的系统,然后进行完全测试。20.等价类划分:
等价类划分基于对输入或输出数据情况的评估,划分成两个或多个子集(等价类),然后从每个子集中选取一定的代表进行测试的测试用例设计方法。21.极限测试
极限编程:利用轻量、敏捷的开发过程,使开发人员能够更快地完成应用程序的开发。强调频繁测试、测试驱动的方式保证软件质量。
极限测试:为满足极限编程思想和过程而设计的一套测试策略和流程,原来的测试技术、方法均可以使用 22.配置项测试的内容
功能: 适合性
准确性:功能的准确与精度要求 互操作性:与外部设备、系统的接口 安全保密性:数据访问的可控制性 可靠性: 成熟性:容错处理、平均无故障时间
容错性:边界条件、功能、性能的降级情况、误操作模式、故障模式 易恢复性:自动修复能力/时间、平均宕机时间、平均恢复时间、恢复能力等 易用性
易理解性:功能描述清晰、准确;界面含义精确
易学性:在线帮助、帮助定位、各类手册的易学、易用 易操作性:数据的有效检查、解释信息明确、界面切换 吸引性:人机界面定制 效率
时间特性:响应时间、平均响应时间、响应极限时间、吞吐量、平均吞吐量、极限吞吐量,多任务并行测试
资源利用:大量并发任务下I/O设备利用、极限负载下I/O设备的负载、大量并发任务下用户等待时间、内存使用情况、数据传输能力等
维护性
易分析性:运行状态数据易分析 易变更性:软件的可配置、修改能力 易测试性:变更之后的易测试情况 可移植性
适应性:不同软件、硬件环境的适应能力 易安装性:安装、配置的复杂程度、难以程度 共存性:与其他软件协同的能力 易替换性:版本的替换难以程度 依从性
以上所有特性遵循标准、规范的情况测试
23系统测试:系统非功能性测试,以检验系统在超常数据规模或负载下,线程、CPU、内存资源的利用和响应时间、数据传输等性能指标是否满足要求
24.测试计划
确定测试充分性要求:覆盖范围、覆盖程度 确定测试终止要求; 确定测试所需资源; 确定测试的软件特性; 确定测试技术、方法; 确定测试准出条件; 确定测试进度计划; 测试风险分析。
25.测试设计:测试设计人员、测试程序员
测试用例设计:依据测试特性; 获取测试数据;
确定测试顺序:资源、被测特性; 获取测试资源:软硬件、工具; 编写测试程序; 建立测试环境; 撰写测试设计说明。
26.测试总结:
测试分析员-测试报告
总结测试计划、测试说明的变化情况; 异常终止时测试未覆盖范围; 未能解决的测试问题; 总结测试结果(发现问题); 编写测试报告;
根据问题报告、测试记录,编写测试问题报告。
27.软件可靠性:在给定的运行时间内和给定的系统配置环境下,运行给定的软件功能时所 表现出来的质量能力 28.系统性能指标
系统资源利用率:分析性能指标,改善性能系统行为指标 请求响应时间:一次请求完成时间
事务响应时间:一个事务所有请求完成的总时间
数据吞吐量:单位时间内服务器接收、发送的数据量。
29.验收测试:用户执行的、使用真实数据进行的测试,依据需求规格中的确认标准进行测试。回归测试:验证已测试过的内容不受变更影响,确认变更没有引入新的错误。
30.α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操 作环境下进行的测试。
Beta测试由软件的最终用户在一个或多个客户场所进行,开发者通常不在Beta测试的现场。
31.WebApp测试关注的主要内容 Web内容测试 界面 构件
导航测试 安全性 性能
32.测试用例(Test Case)是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。
33.软件生存期定义:从软件产品设计到软件被淘汰的时间段。又称软件生命周期、生存周期。进一步划分为两个阶段:开发阶段和维护阶段(40%+60%)。
34.软件安全定义:一种软件质量保证活动,他主要用来识别和评估可能对软件产生负面影响并促使整个系统失效的潜在灾难。
35.软件评审的目标在于:尽早发现软件过程中的错误,防止错误传递、蔓延至后续活动,防止错误转化为缺陷。36.V模型
优点:既有底层测试又有高层测试。底层:单元测试。高层:系统测试。
将开发阶段清楚的表现出来,便于控制开发的过程。当所有阶段都结束时,软件开发就结束了。
缺点:容易让人误解为测试是在开发完成之后的一个阶段。
由于它的顺序性,当编码完成之后,正式进入测试时,这时发现的一些bug可能不容易找到其根源。
实际中,由于需求变更较大,导致要重复变更需求、设计、编码、测试,返工量大。37.W模型:
优点:
将测试贯穿到整个软件生命周期中,且除了代码要测试,需求、设计等都要测试。更早介入软件开发中,能尽早发现缺陷并修复。
测试与开发独立起来,并与开发并行。缺点:
对有些项目,开发过程中根本没有文档产生,故W模型无法使用。
对于需求和设计的测试技术要求很高,实践起来很困难。
从N0中某节点开始到Nf中某节点结束的一条路径称为一条测试路径。
1.软件缺陷:(符合下列规则的叫软件缺陷):
1).软件未达到产品说明书的功能
2).软件出现了产品说明书指明不会出现的错误
3).软件功能超出产品说明书指明范围
4).软件未达到产品说明书虽未指出但应达到的目标
5).软件测试员认为难以理解、不易使用、运行速度缓慢、或者最终用户认为不好
2.单元测试:单元测试是对软件设计的最小单元——模块进行正确性检验的测试工作,主要测试模块在语法、格式和逻辑上的错误。3.回归测试
指软件系统被修改或扩充(如系统功能增强或升级)后重新进行的测试,是为了保证对软件所做的修改没有引入新的错误而重复进行的测试。
4.等价类:指某个输入域的子集合,在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。
第四篇:软件测试期末总结
1.下列关于软件测试的叙述错误的是(D)。
A.软件测试可以作为度量软件与用户需求间差距的手段 B.没有发现错误的测试也是有价值的
C.软件测试的根本目的是尽可能多地发现软件中存在的问题,最终把一个高质量的软件系统交给用户使用
D.软件测试的主要工作内容包括发现软件中存在的错误并解决存在的问题
2.软件测试技术可以分为静态测试和动态测试,下列说法中错误的是(D)A.静态测试是指不运行实际程序,通过检查和阅读等手段来发现程序中的错误。B.动态测试是指实际运行程序,通过运行的结果来发现程序中的错误。C.动态测试包括黑盒测试和白盒测试。
D.白盒测试是静态测试,黑盒测试是动态测试。
3.月收入<=800元者免税,现用输入数800元和801元测试程序,则采用的是(A)方法。A.边界值分析 B.条件覆盖 C.错误推测 D.逻辑覆盖
4.等价类划分法的关键是(C)。A.确定等价类的边界条件 B.按照用例来确定等价类 C.划分等价类
D.确定系统中相同和不同的部分
5.某教学设备销售部门制定一项销售优惠政策,一次购买100台或100台以上者按八五折优惠,购买者是教师、学生按九折优惠。设C1表示购买的台数,C2为1、2、0分别表示教师、学生和其他人员,则符合九折优惠判定条件为(A)。A.(C1<100)AND NOT(C2=0)B.(C1<100)AND NOT(C2>0)C.NOT(C1>100)AND(C2=0)D.NOT(C1<100)AND(C2>0)
6.(D)能够有效地检测输入条件的各种组合可能会引起的错误。A.等价类划分 B.边界值分析 C.错误推测 D.因果图
7.软件测试用例主要由输入数据和(C)两部分组成。A.测试计划 B.测试规则 C.预期输出结果
D.以往测试记录分析
8.在用白盒测试中的逻辑覆盖法设计测试用例时,有语句覆盖、分支覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖和路径覆盖等,其中(A)是最弱的覆盖准则。A.语句覆盖 B.条件覆盖
C.判定-条件覆盖 D.条件组合覆盖 9.以下不属于白盒测试技术的是(D)A.逻辑覆盖 B.基本路径测试 C.循环覆盖测试 D.等价类划分
10.集成测试的策略一般分为:一次性集成和渐增式集成。下面哪一条真实地反映了前者与后者的不同?(A)。
A.后者比前者更适合大规模应用系统的集成测试
B.在集成测试中发现问题时,前者比后者更容易进行问题定位
C.前者需要开发驱动模块和桩模块,而后者不需要开发驱动模块和桩模块 D.前者不需要所有模块就绪,而后者需要所有模块就绪 11.集成测试又称为组装测试,其主要内容包括(C)。A.对整体的性能进行测试
B.用白盒法设计测试用例进行测试 C.确定组装策略和次序 D.对运行过程进行测试
12.全局数据结构的错误通常在(C)中检查。A.单元测试 B.有效性测试 C.集成测试 D.确认测试
13.软件开发公司组织内部人员,模拟各类用户行为对即将面市的软件产品进行的测试我们称之为(B)。A.系统测试
B.α测试 C.β测试 D.综合测试
14.对一个网站的连接速度测试属于(C)?
A.功能测试
B.客户端兼容性测试
C.性能测试 D.安全测试
15.软件测试管理是软件工程的保护性活动,其基本内容不包括(C)。A.测试组织管理 B.测试过程管理 C.效益管理
D.资源和配置管理
32.下面对软件测试流程的描述,哪个是正确的?(A)
A.制定测试计划->设计测试方案及测试用例->部署实施测试->执行测试->缺陷跟踪管理->测试总结报告
B.制定测试计划->部署实施测试->设计测试方案及测试用例->执行测试->缺陷跟踪管理->测试总结报告
C.部署实施测试->制定测试计划->设计测试方案及测试用例->执行测试->缺陷跟踪管理->测试总结报告 D.制定测试计划->设计测试方案及测试用例->执行测试->部署实施测试->缺陷跟踪管理->测试总结报告
15.与设计测试数据无关的是(D)A.该软件的设计人员 B.程序的复杂程度 C.源程序
D.项目开发计划
18.McCabe复杂性度量又称(B)。A.代码行度量 B.环路度量 C.程序量度量 D.功能性度量
1.(A)说明了软件测试与开发的并行关系,体现了测试贯穿于整个开发过程的思想。A.W模型 B.V模型 C.H模型 D.X模型
2.在下面几句中,判断哪一个是正确的。(D)。A.测试工作应在编码阶段结束后开始。
B.测试设计工作与软件开发活动是相互独立、相互无关的。
C.测试脚本是指一个测试包,它由一组逻辑相关的测试用例组成。D.过度测试会影响进度和增加成本。
3.以下哪种测试方法属于黑盒测试技术(C)。A.基本路径测试 B.循环覆盖测试 C.边界值分析测试 D.语句覆盖测试
4.程序功能说明中指出:由三个输入数据表示一个三角形的三条边长。根据黑盒法中的边界值分析法设计测试用例,应选(D)。A.a=3,b=4,c=5 B.a=1,b=2,c=4 C.上述A、B项目都应选上 D.a=1,b=2,c=3 5.某程序功能说明中列出“规定每个运动员参赛项目为1——3项”,应用黑盒法中的等价类划分法确定等价类是(D)。A.1<=项目数<=3 B.项目数<1 C.项目数>3 D.以上都是
6.如果某个程序的输入数据的可能值划分为n个合理等价类,m个不合理等价类,这些等价类均为数轴上的一个有限区间范围,则采用边界值测试方法至少需要(D)个测试用例。A.m+n B.2m+n C.2n+m D.2(m+n)7.在用白盒测试中的逻辑覆盖法设计测试用例时,有语句覆盖、分支覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖和路径覆盖等,在下列覆盖中,(D)是最强的覆盖准则。A.语句覆盖 B.条件覆盖
C.判定-条件覆盖 D.条件组合覆盖 8.{ void SelectSort(datalist & list){ //对表list.V[0]到list.V[n-1]进行排序, n是表当前长度。
for(int i = 0;i < list.n-1;i++){ int k = i;
//在list.V[i].key到list.V[n-1].key中找具有最小关键码的对象 for(int j = i+1;j < list.n;j++)if(list.V[j].getKey()< list.V[k].getKey())k = j;
//当前具最小关键码的对象
if(k!= i)Swap(list.V[i], list.V[k]);//交换
} } 上面是选择排序的程序,其中datalist是数据表,它有两个数据成员:一是元素类型为Element的数组V,另一个是数组大小n。算法中用到两个操作,一是取某数组元素V[i]的关键码操作getKey(),一是交换两数组元素内容的操作Swap():请问该程序段的McCabe环路复杂性为多少?(D)} A.2 B.3 C.4 D.5 9.对于传统软件来说,按集成粒度不同可以把集成测试分为(C)。①模块间集成测试 ②类内集成测试 ③类间集成测试 ④子系统内集成测试 ⑤ 子系统间集成测试 A.①②③ B.②③④ C.①④⑤ D.②③⑤
10.在有关集成测试的叙述中,(A)是正确的。A.测试底层模块时不需要桩模块 B.驱动模块的作用是模拟被调模块 C.自顶向下测试方法易于设计测试结果
D.自底向上测试方法有有利于提前预计测试结果 11.系统测试中主要用到的测试技术是(B)A.回归测试 B.黑盒测试 C.白盒测试 D.功能测试
12.不断执行同样的操作,如不停地启动或关闭程序、反复读写数据或者选择同一个操作。这种测试我们称之为(B)测试。A.强度 B.重复 C.压迫 D.重负
13.以下关于测试管理原则的描述中不正确的是(C)。A.实施全过程测试,有助于及时应对项目变化,降低测试风险。
B.软件应全面测试,不仅对所有产品进行测试,还要求开发人员和测试人员全面参与。C.不能将测试过程从开发过程中抽象出来,作为一个独立的过程进行管理。
D.尽早开展测试准备工作,能使测试人员较早了解测试难度、预测风险、提高效率。14.下面叙述中,哪一项不是测试项目管理者的职责?(B)。A.合理分配任务 B.负责建立测试环境 C.制订测试策略
D.将已有经验灵活应用到新项目中
15.下列所述的测试原则中,错误的是(D)。A.应设计非法输入的测试用例 B.测试用例要给出测试的预期结果 C.因维护修改程序后需回归测试 D.开发小组与测试小组合并
1.对于软件测试分类,下列各项都是按照不同阶段来进行的划分,除了(C)。A.单元测试 B.集成测试 C.黑盒测试 D.系统测试
2.在软件测试中,确认测试主要用于发现(B)阶段的错误。A.软件计划 B.需求分析 C.软件设计 D.编码
3.(C)方法根据输出对输入的依赖关系设计测试用例。A.路径测试 B.等价类 C.因果图
D.边界值分析
4.在功能测试中,假设求实数x的平方根,我们第1次输入“最小的负实数”进行测试,第2次输入“稍小于0”进行测试,第3次输入0进行测试,第4次输入“稍大于0”进行测试,第5次输入“最大的正实数”进行测试,那么这种测试属于(A)。A.边界值分析法 B.绝对值分析法 C.相对值分析法 D.等价类划分法
5.为了提高测试的效率,应该(D)。A.随机地选取测试数据 B.取一切可能的输入数据作为测试数据 C.在完成编码以后制定软件的测试计划
D.选择发现错误可能性大的数据作为测试数据
6.现有一个计算类型的程序,它的输入只有一个Y,其范围是—50≤Y≤50。现从输入的角度考虑设计了一组测试用例:—100,100,0。设计这组测试用例的方法是(B)。A.条件覆盖法 B.等价类划分法 C.边界值分析法 D.错误推测法
7.实际的逻辑覆盖测试中,一般以(C)为主设计测试用例。A.条件覆盖 B.判定覆盖 C.条件组合覆盖 D.路径覆盖 8.{ PROCEDURE averagy i = 1;total.input = total.valid = 0;sum = 0;DO WHILE value[i] <>-999 AND total.input < 100 increment total.valid by 1;IF value[i] >= minimum AND value[i] <= maximum THEN increment total.valid[i];ELSE skip;ENDIF Increment i by 1;ENDDO IF total.valid > 0 THEN averagy = sum / total.valid;ELSE averagy =-999;ENDIF END averagy 上面是一个求平均值的程序,请问该程序段的McCabe环路复杂性为多少?(C)} A.4 B.5 C.6 D.7 9.测试人员在提交软件缺陷报告后,很可能发现开发人员对报告的缺陷存在异议。因此需要一个双方认同的准则,用于判定软件产品是否存在软件缺陷。在实际的软件项目工作中,我们通常采纳的判定准则是(B)。A.测试人员提供的这个软件缺陷的证据
B.软件产品的运行结果与需求规格说明书不一致 C.可以客观地描述这个软件缺陷 D.软件产品的运行结果与测试人员预期的不一致
10.从供选择的答案中选出同下列关于软件测试的各条叙述关系最密切的字句。
在测试具有层次结构的大型软件时,有一种方法是从上层模块开始,由上到下进行测试。此时,有必要用一些模块替代尚未测试过的下层模块。(A)A.桩 B.仿真器 C.模拟器 D.原型
11.集成测试时,能较早发现高层模块接口错误的测试方法为(A)。A.自顶向下渐增式测试 B.自底向上渐增式测试 C.非渐增式测试 D.系统测试
12.系统测试一般从客户角度考察和评价软件产品的质量,不考虑开发方关注的质量特性。那么,下面那一个质量特性一般不是系统测试的重点?(D)A.是否符合有关的国家和行业标准 B.产品版本升级是否容易
C.软件产品是否易于理解和使用 D.可复用的软件部件所占的比例
13.同时启动上百个模拟连接去请求服务器的服务,这种测试我们称之为(D)测试。A.安全 B.重复 C.容量 D.压力
14.在软件质量概念中,不属于测试要达到的目标为(D)A.确保建立了测试计划,并按照测试计划进行测试 B.确保测试计划覆盖了所有的系统规格定义和系统需求 C.确保经过测试和调试,软件仍旧符合系统规格和需求定义 D.确保设计变更被正确的跟踪、控制、文档化
15.软件测试是软件质量保证的重要手段,下述哪种测试是软件测试的最基础环节?(B)A.功能测试 B.单元测试 C.结构测试 D.确认测试
1.提高测试的有效性十分重要,“高产”的测(C)。A.用适量的测试用例运行程序,证明被测程序正确无误
B.用适量的测试用例运行程序,证明被测程序符合相应的要求 C.用少量的测试用例运行程序,发现被测程序尽可能多的错误 D.用少量的测试用例运行程序,纠正被测程序尽可能多的错误 2.在一个软件项目中,开发人员主要承担哪项工(D)A.验收测试 B.系统测试 C.回归测试 D.单元测试
3.某信息管理系统中,允许用户输入8位数字的市话号码。如果使用等价类划分法来设计测试用例,从保证测试效果的角度看,你认为哪一组是最佳的选择(C)。A.63570007、80603805、100080、39103825 B.62570007、80603805 C.62570007、391038255、8252323、空值、h? D.39103825、8252323、@、*** 4.如果一个排序程序所设定的测试用例为:(1)表空
(2)表中只有一个元素
(3)表中均有相同的关键字值
(4)元素已排序,则此测试方法称为(D)。A.等价类划分法 B.边界值分析法 C.因果图法 D.错误推测法
5.软件测试方法中,黑盒、白盒测试法是常用的方法,其中黑盒测试主要用于测试(B)。A.结构合理性 B.软件的功能 C.程序正确性 D.程序内部逻辑
6.若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。设计这组测试用例的方法是(C)A.条件覆盖法 B.等价分类法 C.边界值分析法 D.错误推测法 7.{
int GetMax(int n, int datalist[ ])
{
intk=0;
for(int j=1;j if(datalist[j] > datalist[k])k=j; returnk; } 上面是一段求最大值的程序,其中datalist是数据表,n是datalist的长度。请问该程序段的McCabe环路复杂性为多少?(B)} A.2 B.3 C.4 D.5 8.使用程序设计的控制结构导出测试用例的测试方法是(B)A.黑盒测试 B.白盒测试 C.边界测试 D.系统测试 9.集成测试也叫做(A)。①单元测试 ②部件测试 ③组装测试 ④系统测试 ⑤确认测试 ⑥联合测试 A.③⑥ B.①② C.⑤⑥ D.③④ 10.渐增式集成测试是将模块一个一个地连入系统,每连入一个模块(C)。A.只需要对新连入的模块进行测试 B.都不需要再进行测试 C.要对新子系统进行测试 D.都要进行回归测试 11.软件开发公司组织各方面的典型用户在日常工作中对软件进行实际使用,并要求用户报告异常情况,这种测试我们称之为(C)。A.系统测试 B.α测试 C.β测试 D.综合测试 12.单元测试是发现编码错误,集成测试是发现模块的接口错误,确认测试是为了发现功能错误,那么系统测试是为了发现(C)的错误。A.接口错误 B.编码错误 C.性能、质量不合要求 D.功能错误 13.在实际的软件项目工作中,测试人员运行测试用例,观察运行结果,当发现软件缺陷时提交软件缺陷报告。那么,测试人员判定一个运行结果中存在缺陷的准则是(C)。A.这个运行结果与测试人员预期的不一致 B.测试人员可以从中找到缺陷的证据 C.这个运行结果与测试用例中的预期结果不一致 D.开发人员承认这个运行结果中存在缺陷 14.软件测试计划开始于需求分析阶段,完成于(B)阶段。A.需求分析 B.软件设计 C.软件实现 D.软件测试 15.与设计测试用例无关的文档是(A)。A.项目开发计划 B.需求规格说明书 C.设计说明书 D.源程序 1.下面说法正确的是(C)。 A.经过测试没有发现错误说明程序正确 B.测试的目标是为了证明程序没有错误 C.成功的测试是发现了迄今尚未发现的错误的测试 D.成功的测试是没有发现错误的测试 2.不属于白盒测试的技术是(C)。A.语句覆盖 B.判定覆盖 C.边界值分析 D.基本路径测试 3.单元测试主要针对模块的几个基本特征进行测试,该阶段不能完成的测试是(A)。A.系统功能 B.局部数据结构 C.重要的执行路径 D.错误处理 4.软件测试过程中的集成测试主要是为了发现(B)阶段的错误。A.需求分析 B.概要分析 C.详细设计 D.编码 5.软件测试不需要了解软件设计的(D)。 A.功能 B.内部结构 C.处理过程 D.条件 6.(C)方法根据输出对输入的依赖关系设计测试用例。A.路径测试 B.等价类 C.因果图 D.边界值分析 7.通常,在(D)的基础上,将所有模块按照设计要求组装成系统 A.组装测试 B.系统测试 C.验收测试 D.单元测试 9.使用白盒测试方法时,确定测试数据应根据(A)和指定的覆盖标准。 A.程序内部逻辑 B.程序的复杂度 C.使用说明书 D.程序的功能 10.与设计测试用例无关的文档是(A)。A.项目开发计划 B.需求规格说明书 C.设计说明书 D.源程序 1.负载测试是验证要检验的系统的能力最高能达到什么程度。错 2.健壮性测试的测试重点为当出现故障时,是否能够自动恢复或忽略故障继续运行。对 3.可用性测试是对于用户友好性的测试,是指在设计过程中被用来改善易用性的一系列方法。对 4.软件测试管理原则之一是全面测试,它的含义:一是对软件的所有产品进行全面的测试;二是测试人员应对测试的全过程进行全程的跟踪。错 5.程序代码编写完成之后,软件测试工作开始。错 6.软件测试是测试人员的事,与开发人员无关。错 7.软件的Bug就是指程序运行时出现的故障。错 8.在n个变量的程序中,用边界值分析法设计测试用例,测试用例的个数为4n+1。对 9.缺陷状态为“已解决”表示该缺陷已经被测试人员回归测试完毕,准备归档移除。错 10.处于“已解决”状态的缺陷,下一步状态只能是“重新提交”或者“已关闭”。对 1.在进行负载测试的同时进行安全性测试是不合情理的。错 2.在性能测试中,如果发现SQLServer资源监控中的一个指标缓存点击率偏高,这说明系统运行效率较高。对 3.在程序有修改的情况下保证原有功能正常的一种测试方法是回归测试。对 4.所有测试的标准都是建立在用户需求之上。对 5.黑盒测试用例在软件编码完成后才可以设计。错 6.软件测试技术要求不高,至少比编程容易多了。错 7.设计-实现-测试,软件测试是开发后期的一个阶段。错 8.在n个变量的程序中,采用健壮性边界值分析法设计测试用例,测试用例的个数为6n+1。对 9.缺陷状态为“打开”表示该缺陷已被开发人员看到。对 10.缺陷状态为“已拒绝”表示该缺陷开发人员拒绝修改。对 1.系统测试的目标是要找出软件在与系统其他部分协调工作时出现的所有故障。错 2.压力测试是通过逐步增加系统负载来测试系统性能的变化,并最终确定在什么负载条件下系统性能处于失效状态,以此来获得系统性能提供的最大服务级别的测试。对 3.安全性测试最终证明应用程序是安全的。错 4.软件开发是一个渐进的过程,测试计划需要根据需求变更及时调整。对 5.项目立项前测试人员不需要提交任何工件。对 6.软件测试随便找一个能力差的人就能做。错 7.永远也不可能完成软件测试,这个重担将从开发方转移到客户/用户的身上,用户的每一次使用就是一次测试。对 8.当被测软件仍存在严重影响系统功能实现的缺陷,但存在合理的更正办法时,该软件可以发布。错 9.缺陷状态为“打开”表示该缺陷刚提交,开发人员还未看到该缺陷。错 10.处于“已拒绝”状态的缺陷,下一步状态只能是“重新提交”或者“已关闭”。对 1.性能测试的重点在于前期数据的设计与后期数据的分析。对 2.通常使用平均无故障时间MTBF来衡量系统的可靠性。对 3.先对每个模块分别测试,然后统一组装成软件系统的方法称为渐增式测试。错 4.测试计划是做好测试工作的前提。对 5.如果发布出去的软件有质量问题,那是软件测试人员的错。错 6.有时间就多测试一些,来不及就少测试一些。错 7.当用于软件测试的时间或资金不够用时,就完成了软件测试。错 8.当被测软件仍存在严重影响系统功能实现的缺陷,但不存在合理的更正办法时,该软件可以发布。错 9.缺陷状态为“已解决”表示该缺陷已经被开发人员修改好,但是测试人员还未进行回归测试。对 10.处于“打开”状态的缺陷,下一步状态只能是“已解决”或者“已拒绝”。对 软件测试(第二版)书的一些总结 软件测试这本书分为了六个部分,介绍了软件测试的基础知识。以下分部分是我的一些理解。 1.第一部分是软件测试综述,主要介绍了与软件测试及其相关内容的一些定义。 (1)什么是软件缺陷? 软件缺陷可以理解为导致软件失败的缺陷,失败的软件可以理解为不符合软件产品说明书或不符合用户要求的软件。 (2)导致出现缺陷的原因以及软件修复的难度(优先级)? 软件缺陷的原因实际是在说明书编写、设计、编码时出现了偏差错误,并且随着开发往后,更不容易修复。 (3)软件测试是要做什么? 软件测试目的是要发现缺陷,给出提示,并且给出一定的建议(也可以是提供缺陷优先级或严重性等度量)。值得注意的是,并不是非要给出修改软件的建议,也可以是给出针对用户培训以规避软件缺陷之类的建议。并且软件测试所针对的范围是交付用户部分,所以测试要包含文档测试。 (4)软件测试时的原则 第一是不要求完全测试程序,要把测试控制在合理的测试量内(可由剩余缺陷和测试费用关系得到);第二是找到软件缺陷越多那么软件缺陷越多。 2.第二部分是测试基础,介绍了一些基本的测试方法(白盒与黑盒法的区别是是否参考了代码,动态与静态区别是是否运行了代码): (1)静态黑盒法测试产品说明书。 (2)动态黑盒法,一般用来进行功能性测试。使用等价类划分的方法,将测试用例合理划分,将测试量控制在合理范围,并通过对测试用例和运行结果对比,得到测试结果。 测试不止是对数据测试,还要对软件状态进行测试(可参考状态图进行,测试软件状态转换是是否出现问题) (3)静态白盒法,设计、编程阶段审查设计、代码。 (4)动态白盒测试,对程序中的代码段或者某个模块进行测试,测试用例不仅需要对数据覆盖(例如代码端公式里除数为0的情况),还要对代码覆盖(语句覆盖、分支覆盖、条件覆盖,一级比一级覆盖广一些) 3.第三部分是运用测试技术,介绍了一些常见的测试,如:配置测试、兼容性测试、外国语言测试、易用性测试、文档测试、软件安全测试,并以网站测试作为实例进行了讲解。 4.第四部分对测试方法进行补充。首先是自动化工具,可以减少测试一些性能难度,可以简单的在短时间进行多次测试;其次是共享测试,就一个软件的测试区域让不同测试者进行测试,属于内部测试;最后是beta版本测试,通过用户使用后的数据进行分析。 (1)自动化测试工具中负载压力工具与干扰注入器、噪声发生器的区别? 负载和压力工具测试软件,用来给软件加压,加载,比如在测试文本处理程序的时候,设置其处于的磁盘空间和内存很小。类似于负载和压力工具干扰注入器、噪声发生器并不是提供固定不变的压力、负载而是不断变化,更不稳定。 5.第五部分详细介绍了测试的步骤(和各个过程产生的结果文档): 测试计划测试用例计划(包括:测试设计即在什么地方用用例,测试用例即测试用例详细说明,测试方法即怎样用用例)报告问题 值得注意的是,报告问题时需要对软件缺陷进行跟踪,才能及时了解软件缺陷被提出了没,正在被解决没,解决掉没。跟踪其处在生命周期的哪个阶段。 6.第六部分是职业的介绍展望。第五篇:软件测试读书总结