【www.hy-hk.com--入党程序】

常用软件测试术语说明及中英文对照

.

******软件【Software】:

软件(software)是计算机中与硬件(hardware)相结合的一部分,包括程序(program)和文档(document)。用一个等式表示为:软件=程序+文档。其中,“程序”指的是能够实现某种功能的指令的集合,如C语言程序,Java程序等;“文档”指的是在软件开发、使用和维护过程中产生的图文集合,如《系统需求规格说明书》、《用户手册》、readme,甚至是一些软件市场宣传资料,包装文字和图形等。

【备注:软件测试绝不等同于程序测试,文档测试也是软件测试的一个重要组成部分。通常,程序测试主要包括程序逻辑功能、界面、性能、易用性、兼容性、安装等的测试;文档测试主要包括文档内容和截图的校验,排版风格的检查,错别字的校验等】

******客户端/服务器【C/S】:

C指的是客户端(Client),S指的是服务器端(Server),这种软件是基于局域网或互联网的,需要一台服务器来安装服务器端软件,每台客户端都需要安装客户端软件。比如我们经常用的QQ、MSN和各种网络游戏就属于C/S结构的软件。

【备注:C/S结构的软件过去比较流行,但是不便于升级和维护,现在逐渐被B/S结构软件所取代】

******浏览器/服务器【B/S】:

B指的是浏览器(Browser),S指的是服务器(Server),这种软件同样是基于局域网或互联网的,它与结C/S构软件的区别就在于,不需要安装客户端(client),只需要有IE等浏览器,就可以直接使用。比如搜狐、新浪等门户网站及163邮箱都属于B/S结构的软件。

【备注:B/S结构软件是现在软件的主流,与C/S结构软件相比,便于升级和维护,是测试的重点】

******缺陷【Bug/Defect】:

软件的Bug指的是软件中(包括程序和文档)不符合用户需求的问题。

【备注:这个定义是判断一个软件问题是否是Bug个唯一标准】

******软件测试【Software Testing】:

使用人工或自动手段,来运行或测试某个系统的过程。其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别(1983,IEEE软件工程标准术语)。

******测试环境【Testing Environment(TE)】:

软件测试环境就是软件运行的平台,包括软件、硬件和网络的集合。用一个等式来表示:测试环境=软件+硬件+网络。其中,“硬件”主要包括PC机(包括品牌机和兼容机)、笔记本、服务器、各种PDA终端等;“软件”主要指软件运行的操作系统;“网络”主要针对的是C/S结构和B/S结构的软件。

【备注:作为一个合格的软件测试工程师,不仅要熟悉软件的知识,也要了解硬件和网络的相关知识】

******测试用例【Test Case(TC)】:

指的是在测试执行之前设计的一套详细的测试方案,包括测试环境、测试步骤、测试数据和预期结果。用一个等式来简单表示:测试用例=输入+输出+测试环境。其中,“输入”包括测试数据和操作步骤;“输出”指的是期望结果;测试环境指的是系统环境设臵。

******黑盒测试【Black-Box Testing】:

指的是把被测软件看作是一个黑盒子,我们不去关心盒子里面的结构是什么样子的,只关心软件的输入数据和输出结果。

备注:黑盒测试既包括功能测试,也包括性能测试。

******白盒测试【White-Box Testing】:

指的是把盒子盖打开,去研究里面的源代码和程序结构。

******灰盒测试【Gray-Box Testing】:

可以把它看作是黑盒测试和白盒测试的一种结合。

******静态测试【Static Testing】:

是指不实际运行被测软件,而只是静态地检查程序代码、界面或文档中可能存在的错误的过程。

******代码走查【Walkthrough】:

静态测试的一种方法,由开发组内部进行,采用讲解、讨论和模拟运行的方式进行的查找错误的活动。

******代码审查【Inspection】:

静态测试的一种方法,由开发组内部进行,采用讲解、提问并使用编码模板进行的查找错误的活动。一般有正式的计划、流程和结果报告。

******技术评审【Review】:

静态测试的一种方法,由开发组、测试组和相关人员(QA、产品经理等)联

合进行,采用讲解、提问并使用编码模板进行的查找错误的活动。一般有正式的计划、流程和结果报告。

******动态测试【Dynamic Testing】:

是指实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程。

******单元测试【Unit Testing】:

是指对软件中的最小可测试单元进行检查和验证。例如,在C语言中,单元一般指1个函数;Java里,单元一般指1个类;在图形化的软件中,单元也可以指1个窗口、1个菜单等。

******桩模块【Stub】:

是指模拟被测模块所调用的模块。

******驱动模块【Driver】:

是指模拟被测模块的上级模块,驱动模块用来接收测试数据,启动被测模块,并输出结果。

******集成测试【Integration Testing】:

是指将通过测试的单元模块组装成系统或子系统,在进行测试,重点测试不同模块的接口部分。

******系统测试【System Testing】:

指的是将整个软件系统看作是一个整体测试,包括对功能、性能的测试,以及对软件所运行的软、硬件环境的测试。

******验收测试【Acceptance Testing】:

指的是在系统测试的后期,以用户测试为主,或有测试人员等质量保障人员共同参与的测试,它也是软件正式交给用户使用的最后一道工序。

******阿尔法测试:

验收测试的一种,指的是由用户、测试人员、开发人员等共同参与的内部测试。

******贝特测试:

验收测试的一种,指的是内测后的公测,即完全交给最终用户测试。

******功能测试【Fuction Testing】:

是黑盒测试的一种,它检查实际软件的功能是否符合用户的需求。

******界面测试【UI Testing】:

UI是User Interface,即用户界面的缩写。一般情况下,都把软件的界面测试用例同软件的逻辑功能测试用例分开去写。

******易用性测试【Usability Testing】:

是指从软件使用的合理性和方便性等角度对软件系统进行检查,来发现软件中不方便用户使用的地方。

******安装测试【Installation Testing】:

这里的安装测试是指广义上的,包括安装、卸载。

******兼容性测试【Compatibility Testing】:

兼容性测试包括硬件兼容性测试和软件兼容性测试;硬件兼容性主要是指软件运行的不同硬件平台的兼容性,如PC机、笔记本、服务器等;软件兼容性主要是指软件运行在不同操作系统等软件平台上的兼容性。

******性能测试【Performance Testing】:

是指对软件的运行反馈速度、所消耗系统资源等各种性能指标的测试。

******可靠性测试【Reliability Testing】:

也叫稳定性测试,是指连续运行被测系统,检查系统运行时的稳定程度。人们通常用MTBF(Mean Time Between Failure)来衡量系统的稳定性,MTBF越大,系统的稳定性越强。

******负载测试【Load Testing】:

是性能测试的一种,通常是指被测系统在其能忍受的压力极限范围之内连续运行,来测试系统的稳定性。

******压力测试【Stress Testing】:

是性能测试的一种,通常是指持不断地给被测系统增加压力,直到将被测系统压跨为止,用来测试系统所能承受的最大压力。

******回归测试【Regression Testing】:

是指对软件的新版本测试时,重复执行上一个版本测试时的用例。

******冒烟测试【Smoke Testing】:

是指在对一个新版本进行系统大规模地测试之前,先验证一下软件的基本功能是否实现,是否具备可测性。

******随机测试【Random Testing】:

是指测试中所有的输入数据都是随机生成的,其目的是模拟用户的真实操作,并发现一些边缘性的错误。

******软件质量保障【Software Quality Assurance(SQA)】:

为了确保软件开发过程和结果符合预期的要求,而建立的一系列规程,以及依照规程和计划采取的一系列活动及其结果评价。

******软件能力成熟度模型【Capability Maturity Model(CMM)】:

CMM就是SQA用来监督项目的一个标准质量模型,是由卡耐基-梅隆大学于20实际80年代制定的,最初只是应用于本校的软件项目开发,后来逐渐推广为主流的行业标准。CMM共为5级:初始级、可重复级、已定义级、已管理级和优化级。

******有效等价类【Valid Equivalence Class】:

是指符合《需求规格说明书》,合理地输入数据集合。

******无效等价类【Invalid Equivalence Class】:

是指不符合《需求规格说明书》,无意义地输入数据集合。

******软件生命周期【Software Life Cycle】:

是指软件开发和测试全部过程、活动和任务的结构框架,是从可行性研究到需求分析、软件设计、编码、测试、软件发布维护的过程。

******黑盒测试工具【Black-Box Testing Tools】:

是指测试功能或性能的工具,主要用于系统测试和验收测试;其又可分为功能测试工具和性能测试工具。

******白盒测试工具【White-Box Testing tools】:

是指测试软件的源代码的工具,可以实现代码的静态分析、动态测试、评审等功能,主要用于单元测试。

******测试管理工具【Testing Management Tools】:

是指管理整个测试流程的工具,主要功能有测试计划的管理、测试用例的管理、缺陷跟踪、测试报告管理等,一般贯穿于整个软件生命周期。

.

.

补充内容

*************************************************************************

1、 软件的分类

按照功能划分,可划分为系统软件和应用软件。

. 系统软件: 是指能够直接操作底层的硬件,并为上层软件提供支撑的软件,如操作系统软件、各种硬件驱动程序等。【备注:这类软件需要结合底层的硬件加以测试】

. 应用软件: 指的是能够为用户提供某种特定的应用服务的软件,如 Office、金山词霸等。【备注:这类软件也是测试的重点】。

按照技术架构划分,可划分为单机版软件、C/S结构软件和B/S结构软件。 . 单机版软件: 是指直接在单个计算机上安装并运行的软件,如Office、画图工具等。【备注:这类软件相对比较简单,不需要考虑网络传输】

. C/S结构软件: 是基于基于局域网或互联网的,需要一台服务器来安装服务器端软件,每台客户端都需要安装客户端软件。比如我们经常用的QQ、MSN和各种网络游戏就属于C/S结构的软件。【备注:C/S结构的软件过去比较流行,但是不便于升级和维护,现在逐渐被B/S结构软件所取代】

. B/S结构软件: 同样是基于局域网或互联网的,它与结C/S构软件的区别就在于,不需要安装客户端(client),只需要有IE等浏览器,就可以直接使用。比如搜狐、新浪等门户网站及163邮箱都属于B/S结构的软件。【备注:B/S结构软件是现在软件的主流,与C/S结构软件相比,便于升级和维护,是测试的重点】

按照用户划分,可划分为产品软件和项目软件。

. 产品软件: 目标用户是大众用户,而不是某一特殊群体,比如Office、瑞星杀毒软件等。【备注:测试这类软件相对来说比较麻烦,因为最终用户使用

的计算机系统千差万别,需要考虑硬件和软件的兼容性测试】

. 项目软件: 目标用户是具体的用户,而不是针对千家万户。【备注:国内80%以上的软件都属于项目软件,因此也是测试的重点】

2、 软件的Bug指的是软件中(包括程序和文档)不符合用户需求的问题。根据这个定义,可将常见的软件Bug分成3种类型:

. 完全没有实现的功能;

. 基本实现了用户需求的功能,但是运行时出现一些功能或性能上的问题; . 实现了用户不需要的功能,即多余的功能。

【备注:在实际工作中,发现Bug、记录Bug、关闭Bug时测试工程师的主要工作】

3、 怎样搭建测试环境?

搭建测试环境有如下几个要点:

. 真实(尽量模拟用户的真实使用环境);

. 干净(测试环境中尽量不要安装其他与被测软件无关的软件); . 无毒(测试环境没有中毒);

. 独立(测试环境和开发环境独立)。

4、 软件环境的分类

软件环境主要分为软件开发环境,软件测试环境和软件生产运行环境。 . 软件开发环境:软件在开发过程中使用的环境,一般包括VB、Vc等一些开发工具;

. 软件测试环境:就是软件运行的平台,包括软件、硬件和网络的集合。用一个等式来表示:测试环境=软件+硬件+网络。其中,“硬件”主要包括PC机(包括品牌机和兼容机)、笔记本、服务器、各种PDA终端等;“软件”主要指软件运行的操作系统;“网络”主要针对的是C/S结构和B/S结构的软件。 . 软件生产运行环境:最终用户使用的环境。

【备注:软件测试环境要与软件生产运行环境保持一致,要从开发环境中独立出来】

5、 常用的测试用例模板有两种:Excel模板和Word模板。

. Excel模板:每个用例占一行,便于集中管理和维护,一般适合写功能用例;

. Word 模板:每个用例独占一页,描述的比较清楚,但比较分散,适合写性能用例。

6、 静态测试(Static Testing)是指不实际运行被测软件,而只是静态地检查程序代码、界面或文档中可能存在的错误的过程。根据这个定义,静态测试包括对代码测试、界面测试和文档测试3个方面:

. 对于代码测试,主要测试代码是否符合相应的标准和规范;

. 对于界面测试,主要测试软件的实际界面与需求中的说明是否相符; . 对于文档测试,主要测试用户手册和需求说明是否符合用户的实际需求。

7、 功能测试(Fuction Testing)是黑盒测试的一方面,它检查实际软件的功能是否符合用户的需求。功能测试时最主要的测试,它可以细分为很多种:逻辑功能测试、界面测试、易用性测试、安装测试、兼容性测试等。

8、 性能测试(Performance Testing)是指对软件的运行反馈速度、所消耗系统资源等各种性能指标的测试,它是软件测试的高端领域。软件的性能包括很多方面,主要有时间性能和空间性能两种。

. 时间性能:主要指软件的一个具体事务的响应时间(Respond Time); . 空间性能:主要指软件运行时所消耗的系统资源。

软件性能 测试分为一般性能测试、稳定性测试、负载测试和压力测试。

9、 不同测试分类之间的关系

. 按阶段划分,可划分为单元测试、集成测试、系统测试和验收测试; . 按是否运行程序划分,可划分为静态测试和动态测试;

. 按是否查看源代码划分,可划分为白盒测试和黑盒测试两种。其中,黑盒测试又可划分为功能测试和性能测试。功能测试主要包括逻辑功能测试、界面测试、易用性测试、安装测试和兼容性测试;性能测试主要包括一般性能测试、稳定性测试、负载测试和压力测试。

. 此外,还有回归测试、冒烟测试和随机测试。

【备注:它们只是分类的角度不同而已,一种测试,按照不同的分类角度,可以属于不同的测试分类】

10、软件测试的一些基本原则

. Zero Bug 与 Good Enough;

Zero Bug指的是软件没有任何Bug,Good Enough指的是只要软件达到一定的质量要求,就可以停止测试了。

Good Enough原则是一种权衡投入/产出比的原则:不充分的测试是不负责任的;过分的测试是一种资源的浪费,同样也是一种不负责任的表现。解决方案:制定最低测试通过标准和测试内容,然后具体问题具体分析。

. 不要试图穷举测试;

穷举测试指的是测试时考虑所有可能的输入值。解决方案:设计出优秀的测试用例,用最少的测试用例达到最大的覆盖率。

. 开发人员不能既是运动员又是裁判员;

. 软件测试要尽早执行;

实践证明,在大多数情况下,在需求分析阶段就会产生缺陷,而且需求分析阶段引入的缺陷是最多的,其修复成本却是最低的,所以,软件测试应该尽早执行,越早执行,风险越小。

. 软件测试应该追溯需求;

. 缺陷的二八定理;

缺陷的二八定理指的是,一般情况下,软件80%的缺陷集中在20%的模块中。缺陷的二八定理通常也叫集群现象或是虫子窝现象。

. 缺陷具有免疫性。

11、等价类划分法是一种黑盒测试技术,它不考虑程序的内部结构,只是根据软件的需求说明来对输入的范围进行细分,然后再从分出的每一个区域内选取一个有代表性的测试数据。

等价类又可分为有效等价类和无效等价类。

. 有效等价类:是指符合《需求规格说明书》,合理地输入数据集合。 . 无效等价类:是指不符合《需求规格说明书》,无意义地输入数据集合。

12、Bug的分类

. 按严重程度(Severity)划分: 是指Bug对软件质量的破坏程度,即此Bug的存在对软件的功能和性能产生怎样的影响。按照严重程度由高到低的顺序可以分成5个等级:系统崩溃、严重、一般、次要、建议。如果Bug数比较少,就可以划分为3个等级:严重、一般、次要。

. 按优先级(Priority)划分: 表示处理和修正软件缺陷的先后顺序的指标,即哪些缺陷需要优先修正,哪些可以稍后修正。按照优先级由高到低可以分为3个等级:高(high)、中(middle)、低(low)。其中,高优先级的Bug是应该立即修复的Bug,中优先级的Bug是应该在产品发布之前修复的Bug,低优先级的Bug是指如果时间允许应该修复的Bug或是可以暂时存在的Bug。 一般地,严重程度高的软件缺陷具有较高的优先级。严重程度高说明缺陷对软件造成的质量危害性大,需要优先处理;而严重程度低的缺陷可能只是软件不太尽善尽美,可以稍后处理。

那么,严重程度高的Bug其优先级就一定高吗?也就是说,Bug的严重程度和优先级一定成正比吗?不一定!

(1)严重程度高优先级不一定高:

. 如果某个严重的软件缺陷只在非常极端的条件下产生,则没有必要马上解决;

. 如果修正一个软件缺陷,需要重新修改软件的整体结构,可能会产生更多潜在的缺陷,而且软件由于市场的压力必须尽快公布,此时即使缺陷的严重性很高,是否需要修正,需要全盘考虑。

(2)严重程度低优先级不一定低。

如果是软件名称或公司名称的拼写错误,虽然说其属于界面错误,严重程度不高,但是其关系到软件和公司的市场形象,必须尽快修正。 可见,Bug严重程度和优先级没有必然的联系。

. 按测试种类划分:可以将Bug分为逻辑功能类(Function)、性能类(Performance)、界面类(UI)、易用性类(Usability)、兼容性类(Compatibility)。

【备注:有一种测试方法,就有一种对应的Bug种类】。

. 按功能模块划分

. 按Bug生命周期划分新建(New)、确认(Confirmed)、解决(Fixed)、关闭(Closed)、重新打开(Reopen)。

13、提交缺陷报告的注意事项

缺陷报告是测试人员的主要产品之一,缺陷报告的读者通过缺陷报告来了解和评价测试人员。以下是提交缺陷报告的一些注意事项:

. 确保重现Bug;

. 要用最少且必要的步骤描述Bug;

. 简洁、准确、完整;

. 一个Bug一个报告。

14、什么是软件的生命周期?

软件生命周期,是指软件开发和测试全部过程、活动和任务的结构框架,是从可行性分析到需求分析、软件设计、编码、测试、软件发布维护的过程。 软件开发的生命周期,也叫软件开发的流程,是指软件的开发过程中需要经过哪些环节,具体包括需求分析、概要设计、详细设计、编码和维护。

软件测试的生命周期主要包括测试计划、测试设计、测试执行和测试评估。

15、软件生命周期的模型

(1)瀑布模型(Waterfall Model):瀑布模型是早期经典的软件生命周期模型。之所以叫做瀑布模型,是因为每一个阶段划分的比较清晰,逐层向下,具有和瀑布类似的特定。

优点:

. 开发的各个阶段比较清晰;

. 强调早期计划及需求调查;

. 适合需求稳定的产品开发。

缺点:

. 依赖于早期的需求调查,不适应需求的变化;

. 单一流程,不可逆;

. 风险往往迟至后期才显露,失去及早纠正的计划;

. 测试仅仅是编码后的一个阶段。

(2)螺旋模型(Spiral Model): 螺旋模型是在瀑布模型的基础上提出来的。之所以叫螺旋模型,是因为这是一个迭代开发的过程,每一迭代过程均由需求、设计、编码、集成等阶段组成。

螺旋模型比较适合于需求经常变化的软件项目,但是其开发过程比较复杂,如果控制不好容易造成流程混乱。

(3)V 模型(V Model):V 模型属于比较新的模型。之所以叫做V 模型, 是因为其形状看起来像个V字。

优点:详细表示了测试的各个阶段以及参考依据:

. 单元测试参考的是《详细设计》;

. 集成测试参考的是《概要设计》;

. 系统测试参考的是《需求规格说明书》;

. 验收测试参考的是实际用户需求。

缺点:

没有说明在项目的前期需要做哪些工作(编写测试计划,测试用例等),而且和瀑布模型一样,流程也是单项的,不可逆。

16、撰写测试计划的注意事项

撰写测试计划时,应注意以下四点:

. 增强测试计划的实用性;

. 坚持“5W1H”规则,明确内容与过程;

“5W1H”分别是指:“WHAT”、“WHY”、“WHEN”、“WHERE”、“WHO”、“HOW”。

. 明确测试的范围和内容(WHAT);

. 测试的目的(WHY);

. 确定测试的开始和结束日期(WHEN);

. 给出测试文档和软件的存放位臵(WHERE);

. 测试人员的分配(WHO);

. 指出测试的方法和工具(HOW)。

. 采用评审和更新机制,保证测试计划满足实际需求;

. 分别创建测试计划与测试策略。

17、性能测试的主要术语

. 响应时间(Response Time):是指系统对用户操作的反馈时间。 . 吞吐量(Throughput):是指单位时间内流经被测系统的数据流量,一般单位为B/s,即每秒钟流经的字节数。吞吐量是大型门户网站以及各种电子商务网站衡量自身负载能力的一个很重要的指标,一般吞吐量越大,系统单位时间内处理的数据就多,系统的负载能力也越强。

吞吐量和很多因素很关,如服务器的硬件配臵、网络的拓扑结果、软件的技术架构等。

. 并发(Concurrency):是指多个同时发生的操作。需要注意的是,并行和并发不是一个概念,并发是同时发生,并行是同步运行。

本文来源:https://www.hy-hk.com/331195.html