Presentation is loading. Please wait.

Presentation is loading. Please wait.

网络性能评估与测试 Network Performance Evaluation and Testing

Similar presentations


Presentation on theme: "网络性能评估与测试 Network Performance Evaluation and Testing"— Presentation transcript:

1 网络性能评估与测试 Network Performance Evaluation and Testing
张新有 副教授 Sichuan Network Communication Key Technology Laboratory

2 第2讲: 网络测试技术基础 2.1 网络测试的基本概念 2.2 网络测试的分类 2.3 软件测试流程 2.4 软件测试模型
2.1 网络测试的基本概念 2.2 网络测试的分类 2.3 软件测试流程 2.4 软件测试模型 2.5 测试管理及工具 2017/3/7 网络性能评价与测试

3 2.1 网络测试的基本概念 1、测量、测试、调试 1) 测量: 2) 测试:
是利用合适的工具,确定某个给定对象在某个给定属性上的量的程序或过程。作为测量结果的量通常用数值表示。 2) 测试: 定义1:是用一系列方法(仪器仪表、工具或计算等)评估特定对象的属性或能力是否满足预期的要求,获得的结果是合格或不合格。 定义2:是在产品最终交付前对其功能、规格、性能等参数是否满足需求的最终复查,是产品质量保证的关键步骤。 2017/3/7 网络性能评价与测试

4 测量和测试目的不同,但有密切关系,通过测量来测试系统性能。
定义3:(软件)测试根据软件开发各阶段的规格说明书和程序的内部结构而精心设计测试用例,以对软件运行过程中输入数据及其预期的输出结果进行检查,以发现程序错误的过程。 测试的目标:(1) 为了证明程序完整可用,具备了应有功能和特性;(2) 为了检测程序的错误和局限性,提供产品的质量信息。(3) 为了预防前期缺陷遗留并放大到后续环节。完全的程序测试是不可能的。 测量和测试目的不同,但有密切关系,通过测量来测试系统性能。 2017/3/7 网络性能评价与测试

5 调试对象是软件(源代码)或硬件(电路),测试覆盖整个产品的生命周期。
3) 调试:测试是为了发现BUG和缺陷,而调试是分析和定位BUG、并修正BUG的过程,目的是为了软件正确运行(测试—评估--调试--再测试...)。 调试对象是软件(源代码)或硬件(电路),测试覆盖整个产品的生命周期。 2017/3/7 网络性能评价与测试

6 2、网络测量、网络测试 1) 网络测量 网络测量是遵照一定方法和技术,利用软件和硬件工具对网络行为特征、对各项指标进行量化;它是充分理解和正确认识互联网的最基本手段,是理解网络行为的最有效途径。 网络测量技术是一个很广泛的概念,它涉及的领域包括测量(数据采集)本身,更多的是数据采集之后的网络数据建模和网络行为分析;也包括根据行为分的结果对网络实施反馈控制和管理方法等方面。 2017/3/7 网络性能评价与测试

7 网络测量是目前一个热门的研究方向,研究范畴主要包括: ① 拓扑测量与分析; ② 负载特性分析与建模; ③ 性能测量与分析;
④ 路由测量与分析; ⑤ 基于测量的网络安全分析。 2017/3/7 网络性能评价与测试

8 2) 网络测试 ① 定义1: 网络测试是指以科学的方法,通过测量手段/工具,取得网络产品或正在运行网络的性能参数和服务质量参数,已确定其是否达到要求。这些参数包括可用性、差错率、吞吐量、时延、丢包率、连接建立时间、故障检测和改正时间等等。 2017/3/7 网络性能评价与测试

9 ② 定义2: 网络测试是测试设备(Tester)以“观察员” 的身份对被测对象的通信活动进行被动观察并分析被测对象行为的过程(被动测试: Passive Testing);或者以对等通信实体/邻层实体的身份通过主动与被测对象交换信息,达到观测其活动和判断其协议功能/性能的过程(主动测试: Active Testing)。 2017/3/7 网络性能评价与测试

10 网络测试能够为网络性能改善提供依据,为网络运行及管理提供指导;为网络设备或产品开发提供支持。
③ 网络测试的作用: 网络测试能够为网络性能改善提供依据,为网络运行及管理提供指导;为网络设备或产品开发提供支持。 从应用角度:网络业务的融合和通信平台的统一,使得网络数据业务的流量特征、性能特征、可靠性特征和安全特征日益受到关注。针对这些特征进行各类业务的性能测试成为一种全新的技术与需求; 从网络本身:到对构成网络通信子网平台的设备所进行的功能、性能测试,以及在网络设备研发过程中的阶段性测试与整机测试。 2017/3/7 网络性能评价与测试

11 3、测试用例(Test Case) 软件测试不是盲目的,须遵守一定的原则和方法。测试用例是软件测试的一个重要概念。
定义1:测试用例是为某个特殊目标而编制的一组测试输入、执行条件、执行步骤以及预期结果,以便测试某个程序功能或核实是否满足某个特定需求。    定义2:测试用例是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,并形成文档。 测试是测试用例的执行过程,测试用例是测试工作的指导,是软件测试必须遵守的准则,是软件质量的根本保障。 2017/3/7 网络性能评价与测试

12 ① 测试计划:确定测试范围、方法、测试所需资源等;
定义3:测试用例是将软件测试的行为活动做一个科学化的组织规划。目的是能够将软件测试的行为转化成可管理的模式;同时测试用例也是将测试具体量化的方法之一。 测试用例通常包含以下文档:    ① 测试计划:确定测试范围、方法、测试所需资源等;    ② 测试过程:详细描述与每个测试方案有关的测试步骤和数据(包括测试预期结果);测试描述语言。   ③ 测试结果:说明每次测试预计运行的结果。 测试用例可通过手工或脚本化,才能完成执行。 不同的测试对象和测试环境,测试用例设计有差异。 2017/3/7 网络性能评价与测试

13 典型的测试用例模板(示例1) 测试用例ID: 目的: 前提: 输入: 预期输出: 后果: 执行历史: 日期: 结果: 版本: 执行人:
日期: 结果: 版本: 执行人: 2017/3/7 网络性能评价与测试

14 典型的测试用例(示例2) 2-1 手机电话本功能测试用例 2-2 Windows记事本程序测试用例 2.1 手机长时间工作测试
2.1.1 发射功率和脉冲包络定时 测试编号:2.1.1 测试项目:长时间发射测试 项目类型:必测 测试分项:发射功率和脉冲包络定时 测试目的:验证长时间发射后射频性能的变化。 初始测试条件:XXX 测试步骤: 手机与综测仪建立一个通话,TCH设置为62,功率控制等级设置为5; 连续发射0.5h后,测量发射功率和脉冲包络定时; 再连续发射0.5h后,测量发射功率和脉冲包络定时; 切换到DCS频段,TCH设置为698,功率控制等级设置为0,重复上述测试。 测试设备连接示意图: 同图1 通过准则: 最大发射功率变化<±2.5dB 突发脉冲包络在图2的框架内 发射突发脉冲定时的时间误差为±1bit,及传输时间±3.69μs 测试说明:测试在屏蔽房中进行。 2017/3/7 网络性能评价与测试

15 1.手机和综测仪建立一个分组通信(TCH设置为1,功率控制等级设置为5),
3.1 GPRS性能测试 3.1.1手机的GPRS射频性能测试 测试编号: 3.1.1 测试项目:GPRS性能测试 项目类型:可选 测试分项:频率误差和相位误差 测试目的:测量手机的多时隙发射能力。 初始测试条件: 1.按图1连接测试设备; 2.将综测仪设置为GPRS工作模式; 3.手机中插入GPRS测试卡。 测试步骤: 1.手机和综测仪建立一个分组通信(TCH设置为1,功率控制等级设置为5), 2.综测仪指令手机以最多的时隙发射,测量发射信号的频率误差和相位误差。 3.将功率等级分别设置为10、15、19,重复步骤2的测试; 4.将TCH分别设置为62、124,重复步骤2、3的测试; 5.将手机切换达到DCS频段,TCH设置为513,功率控制等级设置为0; 6.综测仪指令手机以最多的时隙发射,测量发射信号的频率误差和相位误差。 7.将功率等级分别设置为5、10、15,重复步骤6的测试; 8.将TCH分别设置为698、885,重复步骤6、7的测试。 测试设备连接示意图: 同图1 通过准则:     满足规范 测试说明:     需根据手机支持的Class等级,配置相应的工作时隙。 2017/3/7 网络性能评价与测试

16 测试的目的在于发现错误,测试通过执行测试用例实现。好的测试用例在于它可发现新的错误;
描述测试用例质量有四个特征:有效性、修改性、可仿效性和经济性。 有效性指是否能发现缺陷或至少可能发现缺陷;可仿效性指测试用例是否能测试多项内容,以减少测试用例的数量;经济性指测试用例的执行、分析和调试是否经济;修改性指每次产品修改后对测试用例的维护成本。 通常要平衡这四个方面。 2017/3/7 网络性能评价与测试

17 4、网络评价/评估 1) 评价/评估的主要内容 功能 (Functional): 网络实体的功能由“协议”界定的,包括交换信息的格式与规律(状态变迁图、表)。 性能 (Performance):行为的好坏,常用可量化参数来界定。具体方法:理论分析计算、模拟/仿真、实际运行结果的观察统计。按照某种测试度纲(Test Metrics)来评价。 2017/3/7 网络性能评价与测试

18 2) 分析、仿真与测试是功性能评价的主要手段。 分析:创建或利用分析模型,用数学方法预测系统性能的方法。(简单:人脑、手、笔,逼近程度?)
仿真:利用计算机程序代表真实系统,通常需要用利用模型来模拟内部处理过程。(需要设备与工具,通常假定、简化某些内外部条件,较简单,准确度?) 测试:被动收集或主动观测系统的功能、性能过程(需要测试系统/软件、耗时、但测试结果接近实际性能,测试结果无错并不能证明系统无错)。 2017/3/7 网络性能评价与测试

19 5、网络测试与软件测试关系 1) 网络测试与软件测试有许多共性
网络设备是以通信/信息交换为目的的特殊软、硬件集合体。因此对网络设备的测试以对信息交换过程的观测作为基本手段,这一点在一定程度上与软件测试中通过I/O观察系统、子系统或模块的行为过程有一定的相似性。软件测试的许多概念和方法可用于网络测试。 单元测试(Unit Testing) /集成测试(Integration Test); 黑盒(Black box) /白盒(White Box) /灰盒(Gray Box)测试; α测试、β测试和γ测试 ; 2017/3/7 网络性能评价与测试

20 2) 网络系统是规范的通信实体,与软件测试有差别。
规范性:网络系统中,同层实体间的活动行为以及邻层间的信息交换行为由“协议”和“服务”分别界定,因此,网络系统的测试是基于协议与服务规范的测试。其他软件测试关注的焦点是软件说明书所定义的处理结果或I/O关系。因此,软件测试以软件说明书为基础,网络测试以协议规范为基础。 面向协议与服务的一致性测试(Conformance Test)。 网络的层次结构,形成复杂的性能测试指标体系。 上述的内容形成了协议测试的概念。 2017/3/7 网络性能评价与测试

21 2.2 网络测试的分类 1、按否干预被测对象的通信活动分: 类似于软件测试:网络测试有多种相似分类方法,
1) 被动测试(Passive Testing):即隐式或显式地观察被测对象,不直接与被测对象进行测试信息的交换,也不干预被测对象的通信活动。被动测试可能用于对单个被测对象的监测,也可用于对多个设备通信活动的监督与仲裁。 2) 主动测试(Active Testing):直接扮演与被测对象对等通信对象,通过发送测试控制数据(Test Data)与被测对象进行通信/信息交换,通过被测对象应答行为判断被测对象具备的功能或性能指标。被测对象:AUT,DUT。 2017/3/7 网络性能评价与测试

22 2、按被测对象分: 1)单品测试:以单个网络设备为对象的测试,含连通性测试。类似于软件测试。
2)集成测试:以多个网络设备(网络环境)为对象的测试。 1)端系统测试:对具有OSI/RM中定义的7层结构的应用数据发送源系统或接收系统进行的测试。 单层测试(Single Layer ) : 对单层协议行为的测试。 多层测试(Multi-Layer) : 对多层协议的综合行为的测试。 2017/3/7 网络性能评价与测试

23 2)中间系统/中继系统/通信子网的测试:对具有OSI/RM中定义的由两个或两个以上的三层结构互联而成的,对用户数据进行转发的系统进行的测试。又称通信子网测试。
单端口(点)测试 双端口(点)测试 多端口(点)测试 2017/3/7 网络性能评价与测试

24 3、根据被测程序是否运行分: 根据是否运行被测程序,分静态测试和动态测试。
静态测试指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序正确性。对需求规格说明书、软件设计说明书、源程序流程图等静态特性做分析来找错或可疑之处,如不匹配的参数、不适当的循环嵌套和分支嵌套、不允许的递归、未使用过的变量、空指针的引用和可疑的计算等。 静态测试结果可用于进一步查错,并为测试用例设计和选取提供指导。 2017/3/7 网络性能评价与测试

25 不同的测试方法各自的目标和侧重点不一样,在实际工作中。应将这两种方法结合起来运用.以达到更完美的效果。
动态测试方法是通过观察程序代码运行时的动作,来提供执行跟踪、时间分析,以及测试覆盖度方面的信息。动态测试通过运行程序发现错误。通过有效的测试用例,对应的输入输出关系来分析被测程序的运行情况。     不同的测试方法各自的目标和侧重点不一样,在实际工作中。应将这两种方法结合起来运用.以达到更完美的效果。 2017/3/7 网络性能评价与测试

26 4、按照测试目的划分: 1)一致性测试/符合标准程度测试(Conformance Testing) ——以判断被测对象是否符合相关协议标准和符合标准的程度为目的的测试。只有遵守相同网络协议的设备之间才有可能实现互操作或互相兼容。参考RFC文档。 2)功能测试 (Functional Testing) 主要是为了验证产品所标称支持的功能是否能正常实施。分为两种: 积极测试:积极发现网络设备或网络的问题,帮助生产商或研发人员发现问题,从而改进问题。 消极测试:损伤测试,检测抗毁能力。 2017/3/7 网络性能评价与测试

27 3) 非功能测试  配置/安装测试;  兼容性或互操作性测试;  文档和帮助测试;  故障诊断测试  错误恢复测试;
 性能测试;  压力测试(负荷测试);  可靠性测试; 等等。 2017/3/7 网络性能评价与测试

28  性能测试(Performance Testing)
性能测试以确定被测对象的可量化的性能参数为目的的测试。如平均/最大吞吐率(Throughput)、传输时延(Transit Delay)、抖动(Jitter)、数据丢失率(Data Loss Rate)、平均无故障时间、故障恢复等待时间等;对面向连接的协议的测试还可能包括连接建立时间、连接恢复时间…… 性能测试通常被看做一种“压力测试”,目的是观察设备或网络在业务压力下的表,包括空载测试、负载测试、过压测试。 2017/3/7 网络性能评价与测试

29 兼容/互操作测试(Interoperability Testing): 兼容性测试:指在真实环境下,设备的操作不会对其他系统产生影响。
互操作测试:是以一对或多个通信设备间能否实现互通互操作及在多大程度(或在何种条件下)能够实现互通互操作为目的的测试。  故障诊断测试(Diagnostic Testing):以判断被测对象通信故障为目的的测试。  可靠性测试:典型情况下DUT的健壮性和可靠性。 2017/3/7 网络性能评价与测试

30 5、按照测试阶段分: 类似于软件测试,αβλ常用来表示软件测试过程中的三个阶段。 α是第一阶段,一般只供内部、模拟用户测试使用;
α是第一阶段,一般只供内部、模拟用户测试使用;    β是第二个阶段,已经消除了软件中大部分的不完善之处,但仍有可能还存在缺陷和漏洞,一般只提供给特定的用户群来测试使用。只有当α测试达到一定的可靠程度时,才能开始β测试。    λ是第三个阶段,产品已经相当成熟,经过最终用户的试用,只需在个别地方做优化处理即可发行。 2017/3/7 网络性能评价与测试

31 6、按照测试实现方法: 黑盒/白盒/灰盒 黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。
白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。 软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。 2017/3/7 网络性能评价与测试

32 ② 在接口上,输入是否能正确的接受?能否输出正确的结果?
1)黑盒测试(功能测试或数据驱动测试) 黑盒测试主要是为了发现以下几类错误: ① 是否有不正确或遗漏的功能? ② 在接口上,输入是否能正确的接受?能否输出正确的结果? ③ 是否有数据结构错误或外部信息(例如数据文件)访问错误? ④ 性能上是否能够满足要求? ⑤ 是否有初始化或终止性错误? 2017/3/7 网络性能评价与测试

33 2)白盒测试(结构测试或逻辑驱动测试) 白盒测试是对软件的过程性细节做细致的检查。该方法是把测试对象看做一个打开的盒子,允许测试人员利用程序内部的逻辑结构及有关信息设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。又称结构测试或逻辑驱动测试。 白盒测试主要是想对程序模块进行如下检查: 1) 对程序模块的所有独立的执行路径至少测试一遍。 2) 对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。3) 在循环的边界和运行的界限内执行循环体。 4) 测试内部数据结构的有效性 等等。 2017/3/7 网络性能评价与测试

34 以上事实说明,软件测试有一个致命的缺陷,即测试的不完全、不彻底性。由于任何程序只能进行少量(相对于穷举的巨大数量而言)的、有限的测试,在未发现错误时,不能说明程序中没有错误。亦即测试不能证明程序无错。
2017/3/7 网络性能评价与测试

35 黑盒测试方法需要了解软件的外部特性(如何使用) 白盒测试方法需要了解软件的内部构造和工作原理 2) 针对不同产品如何测试
黑盒Vs白盒 1) 总结 黑盒测试方法需要了解软件的外部特性(如何使用) 白盒测试方法需要了解软件的内部构造和工作原理 2) 针对不同产品如何测试 杯子: 外部:外观、漏水、容量、使用者--->黑盒 内部:材质、制造过程-->白盒 3) 白盒测试方法的好处 能对代码进行覆盖 能有针对性的进行测试 发现及解决BUG的成本较低 2017/3/7 网络性能评价与测试

36 灰盒测试结合了白盒测试和黑盒测试的要素,它考虑了用户端、特定的系统知识和操作环境。它在系统组件的协同性环境中评价应用软件的设计。
3)灰盒测试 灰盒测试:介于白盒测试与黑盒测试之间。灰盒测试关注输出对于输入的正确性,同时也关注内部表现,但这种关注不象白盒那样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态,有时候输出是正确的,但内部其实已经错误了,这种情况非常多。如果每次都通过白盒测试来操作,效率会很低,因此需要采取灰盒的方法。 灰盒测试结合了白盒测试和黑盒测试的要素,它考虑了用户端、特定的系统知识和操作环境。它在系统组件的协同性环境中评价应用软件的设计。 2017/3/7 网络性能评价与测试

37 黑盒测试、白盒测试、灰盒测试的比较: 测试方式 特 征 依 据 测试人员 测试驱动程序 黑盒测试
只关心程序的外部表现,不关心程序的内部设计与实现。又叫功能测试或数据驱动测试 软件需求 任何人(包括开发人员、独立测试人员和用户) 一般无需编写额外的测试驱动程序 白盒测试 关心软件内部的设计与实现,要跟着源代码的运行。又叫结构测试或逻辑驱动测试 设计文档 开发人员担任 需编写额外的测试驱动程序 灰盒测试 即关注外部的输入输出、又关注内部表现,但不像白盒那样详细、完整 软件需求、标准文档 任何人(包括开发人员、独立测试人员) 2017/3/7 网络性能评价与测试

38 7、按照测试的执行方法划分(重): 手工测试就是由人去一个一个的执行测试用例,然后观察和分析测试结果结果。对于复杂的软、硬件系统,针对不同测试点的测试用例很多。 自动化测试是通过运行脚本(script)方式来控制仪表、测试设备自动执行测试用例进行测试。和传统的通过仪表图形界面控制方式不同,测试脚本直接调用仪表或测试设备的接口函数直接控制测试设备,使得测试更加灵活高效,可控性强,可完成图形界面的仪表不能完成的测试。 自动化测试是软件测试的发展方向。 2017/3/7 网络性能评价与测试

39 自动化测试的优点: ① 可提高网络测试效率,缩短产品发布时间; ② 可对测试过程和测试结果进行更精确的检测和分析,提高产品质量。
③ 将测试工程师从执行者的角色解放出来从事更有意义的测试用例设计工作(部分测试需大量重复或人工测试困难)。 ④ 使得整个测试工作易于管理,排除了人员变动对测试工作造成的影响。 自动化测试过程包括:对测试过程的自动化管理与实施、自动化测试脚本的开发,及使用自动化测试工具对测试结果进行分析和验证。 2017/3/7 网络性能评价与测试

40 8、其他分类方法 2017/3/7 网络性能评价与测试

41 各种分类并不独立,相互之间交叉。如功能测试常用黑盒测试法,也可采用自动化测试。
说明: 各种分类并不独立,相互之间交叉。如功能测试常用黑盒测试法,也可采用自动化测试。 可以看出,网络测试类似于软件测试,尤其是网络产品测试;因此软件测试的一些概念和思想可以用到网络测试中。如软件研发过程中,从开始的用户需求分析到软件完成过程中各阶段所进行的测试,可以用到网络产品测试过程中。因此部分网络设备生产商招聘人才时不甚区分软件测试和网络测试。 其他的测试分类及概念将在后续介绍。 2017/3/7 网络性能评价与测试

42 2.3 软件测试流程 2.3.1 软件开发流程 2.3.2 软件测试流程 2.3.3 开发流程与测试流程的关系 2017/3/7
网络性能评价与测试

43 网络测试贯穿产品研发阶段与工程建设阶段。
网络产品研发阶段:通常包括产品立项、硬件开发、协议栈开发、系统联调、互通性验证、性能评估、入网测试、产品售后维护等阶段。 网络工程建设阶段:一般网络工程要经历规划、设计、部署、验收、运行和升级五个阶段。 网络测试应贯穿其中的每个阶段。其中网络产品研发及测试流程类似于软件测试。 2017/3/7 网络性能评价与测试

44 2.3.1 软件开发流程 也称软件过程模型,是软件开发全部过程、活动和任务的结构框架。典型的模型有瀑布模型、演化模型(增量模型、原型模型、螺旋模型)、喷泉模型、基于构件的模型和形式化方法模型。 瀑布模型:给出了软件生命周期活动的固定顺序。开发过程是通过一系列阶段顺序展开,从需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈。如果有信息未被覆盖或者发现问题,那么将返回上一个阶段并进行适当修改,开发进程从一个阶段流动到下一个阶段。 2017/3/7 网络性能评价与测试

45 瀑布模型的软件开发生命周期: 简化: 2017/3/7 网络性能评价与测试

46 2.3.2 软件测试流程 也称软件测试生命周期。具体包括:
测试需求分析→ 测试计划 → 测试设计 → 测试开发 → 测试执行 → 测试评估。 2017/3/7 网络性能评价与测试

47 1. 制定测试计划 测试计划(Test Plan)的内容是编写测试阶段计划,对整个测试进度的安排,人力物力的分配、各种可能的风险等做一个规划。 2017/3/7 网络性能评价与测试

48 2. 设计和实现测试用例 测试用例是对产品进行测试任务的描述,体现测试方案、方法、技术和策略。内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,并形成文档。设计时要考虑: 1)测试用例的数量 测试用例反映了要核实的需求,构成了设计和制定测试过程的基础。测试的深度与测试用例的数量成正比。判断测试是否完全的一个主要评测方法是基于需求的覆盖,而这又是以测试用例数量为依据。 同时,测试工作量与测试用例的数量成正比。 2017/3/7 网络性能评价与测试

49 例:2-2 Windows记事本的“文件|退出”功能测试
2)测试用例的描述语言及文档模板 编写测试用例文档应有相应的描述语言和文档模板,须符合软件内部的规范要求。测试用例一般以产品的软件模块或子系统为单位,形成一个测试用例文档。 3)测试套件(Testing Suite) 在测试任务中根据不同的测试需求组合起来的相关的测试用例,称为测试套件。不同的测试任务按测试需求以测试套件为单位进行测试。 2017/3/7 网络性能评价与测试

50 测试套件和测试用例的关系: 详细的测试用例设计技术在第四节介绍。 2017/3/7 网络性能评价与测试

51 3. 测试执行 在测试执行阶段主要是进行环境的搭建,测试用例的执行,提交缺陷报告。 主要的输出就是测试用例的执行结果和缺陷报告。
2017/3/7 网络性能评价与测试

52 4、测试报告与总结 测试完成后需要对测试结果进行评估且编制测试报告。判断测试是否完成、衡量测试质量需要一些量化的结果,如测试覆盖率是多少、测试合格率是多少、重要测试合格率是多少等。以软件模块或功能点作为统计基准显得过于粗糙,用测试用例作度量基准更准确、有效。 通过收集bug,对比测试用例和缺陷数据库,分析确认是漏测还是缺陷复现。漏测反映了测试用例不完善,应补充相应测试用例。若已存在相应测试用例,则反映实施测试或变更处理存在问题。 2017/3/7 网络性能评价与测试

53 2.3.3 开发流程与测试流程的关系 软件开发流程和软件测试流程分别在较大的时间粒度上说明了软件开发和软件测试的过程。
在软件开发流程中,将测试看做其中一个阶段,不符合软件测试的实际。软件测试是一个系统工程,它和软件开发同步进行,贯穿于整个软件开发过程。 2017/3/7 网络性能评价与测试

54 测试生命周期与软件开发生命周期(示例1) 2017/3/7 网络性能评价与测试

55 测试生命周期与软件开发生命周期示(示例2)
First Commercial Shipment MRD/PRD(市场/产品需求文档) 2017/3/7 网络性能评价与测试

56 可以看出:软件测试生命周期是与软件开发生命周期基本平齐的过程,即当需求分析基本明确后就应该基于需求分析的结果和整个项目计划来进行软件的测试计划;伴随着分析设计过程同时应该完成测试用例的设计。
当软件的第一个版本发布出来后,测试人员要马上基于它进行测试脚本的实现,并基于测试计划中的测试目的执行测试用例,对测试结果进行评估报告。这样可通过各种测试指标实时监控项目质量状况,提高对整个项目的控制和管理能力。 2017/3/7 网络性能评价与测试

57 2.4 软件测试模型 2.4.1 通用测试分级模型 2.4.2 IEEE软件测试标准分级模型 2.4.3 V模型
2.4.4 其他软件测试模型 2017/3/7 网络性能评价与测试

58 2.4.1 通用测试分级模型 软件测试流程从较大的时间粒度上说明软件测试的各个阶段。没有详细说明软件开发与软件测试之间的对应关系,软件测试分级模型更好的说明了这一点。 高级测工程师 软件测试的通用分级模型 2017/3/7 网络性能评价与测试

59 1) 软件会有各种类型的错误,必须经过各种类型的测试才能找到各种类型的错误。2) 不同测试级别对应不同的开发阶段(参看V模型)。
UT—IT—VT—ST 分级模型 说明1. 为什么要有这些测试级别呢? 1) 软件会有各种类型的错误,必须经过各种类型的测试才能找到各种类型的错误。2) 不同测试级别对应不同的开发阶段(参看V模型)。 说明2. 箭头并不代表时间关系。 因每一测试级别都包含了计划,设计,执行,报告等阶段。若按时间关系,每一级别只能代表测试执行阶段。 2017/3/7 网络性能评价与测试

60 说明3. 有些教材将上述模型成为”测试阶段”而不是”测试级别”?
阶段一词表示事物发展过程中根据一定的标准划分的段落,有时间先后关系。而上述箭头并不代表时间关系。因为每一测试级别都包含了计划,设计,执行,报告等阶段。由后面V模型可看出,系统测试最早开始(需求设计),最晚结束,而单元测试在编码实现阶段进行。 参考别的资料,认为测试级别一词较为合适。 2017/3/7 网络性能评价与测试

61 测试级别简介 单元测试(UT)的主要目的是根据详细设计说明书来验证和确认每个单元模块是否符合预期的要求,发现编码过程中可能存在的各种错误。
集成测试(IT)的主要目的是根据概要设计来验证和确认各个模块是否已经正确的集成到一起,主要检查各模块和其他模块之间的接口上可能存在的错误。 确认测试(VT)的主要目的是根据需求分析来验证和确认软件是否符合用户的预期要求(功能性和非功能性)。 系统测试(ST)的主要目的是根据需求定义,验证和确认系统作为一个整体(支撑软件)是否能够正常有效地运行。 2017/3/7 网络性能评价与测试

62 2.4.2 IEEE软件测试标准分级模型 IEEE Std 610-1990 标准中确定了下述的标准测试等级:
单元级component、集成级integration、系统级system、验收级acceptance。 IEEE软件测试标准分级模型 2017/3/7 网络性能评价与测试

63  集成测试,用于确认系统内部组件之间接口的正确性,通常是基于系统体系结构来进行的。
 系统测试,通常是基于系统需求和设计来进行的一种(相对)全面的测试,用来确认整个系统及其各种特性。  验收测试,从用户或客户的角度进行的一种测试,这种测试用于确定接受系统的标准。验收测试通常基于系统需求来进行(项目型)。 2017/3/7 网络性能评价与测试

64 通用分级模型中明确提出了确认测试是在集成测试之后,基于该软件的最后一步测试,它根据软件功能描述考察软件功能是否符合要求。
两种分级模型的关系 : 通用分级模型中明确提出了确认测试是在集成测试之后,基于该软件的最后一步测试,它根据软件功能描述考察软件功能是否符合要求。 IEEE测试标准分级模型中虽然没有把针对软件的”确认测试”作为一个独立的测试阶段,但仍然在系统测试、验收测试中明确规定了属于“确认测试”的测试要求,即通过测试来确认软件是否满足需求。 2017/3/7 网络性能评价与测试

65 2.4.3 V模型 1.模型说明 在软件开发过程中,为保证产品质量,不同的软件对象(子系统、单元)、不同的开发阶段对应不同测试级别,关注不同的测试重点,采用不同的测试技术。 V模型基于通用测试分级模型,较微观的显示了软件开发各阶段对应不同的软件测试级别,不再把测试看做软件开发的一个阶段,它同软件开发同样重要。 V模型的价值体现在它非常明确的表明了测试过程存在不同的测试级别,并且清楚地描述了这些测试级别和开发过程期间的对应关系。 2017/3/7 网络性能评价与测试

66 基于通用分级模型的V模型 2017/3/7 网络性能评价与测试

67 2.模型的含义 (1) 基于系统分解结构(系统-子系统-模块-单元),开发按照自顶向下顺序逐层设计,测试按照自底向上的顺序逐层验证,该结构在每层或每个阶段,将开发和测试过程统一起来。 (2) 每层的测试对象是相应开发阶段设计的输出(含需求和该阶段的设计文档),测试目的与相应开发阶段设计的思路是相辅相成的,所以决定每个阶段的测试如何开展、评价一个测试过程时,若离开开发过程,只谈测试自身是不系统、不全面的。 (3) 除“系统级”的ST测试以外,其他各层的测试均包含两个方面:一是对该层每个构件的测试,有n个构件就要测试n次,二是这n个构件之间接口的测试。 2017/3/7 网络性能评价与测试

68 3)V模型中软件测试阶段及其与软件开发各阶段的详细关系图 (下页)
2017/3/7 网络性能评价与测试

69 2017/3/7 网络性能评价与测试

70 3. V模型各测试级别 回归测试 5) 说明1:通用分级模型仅起到一个指导作用,实际软件测试过程中不一定完全遵守该模型,不一定需要有全部的测试级别,如产品型软件,项目性软件;纯软件系统,软硬件综合系统。 说明2:不同公司根据自己的实际需求(产品特点、人员结构)对测试模型变更。 说明3:回归测试覆盖整个测试过程。 高级测工程师 2017/3/7 网络性能评价与测试

71 1) 单元测试(UT:Unit Testing)
又称模块测试,是最小单位测试,是在系统开发过程中要进行的最低级别的测试活动。 单元测试活动中对源代码实现的每个单元(函数/类)进行测试,检查各个程序模块是否正确地实现了规定的功能。目的在于发现各模块内部可能存在的各种错误,单元测试需要从程序的内部结构出发设计测试用例,必要的时候要制作驱动模块和桩模块。测试工程师要依据详细设计说明书和源程序清单,了解模块的I/O条件和逻辑结构。 测试人员针对程序内部逻辑结构及有关信息来设计和选择测试用例,按照研发的角度对程序的逻辑路径进行测试。单元测试多属于白盒测试,通常由开发人员完成测试。 2017/3/7 网络性能评价与测试

72 2) 集成测试(IT:Integration Testing)
也称为组装测试,是在单元测试的基础上,将所有模块按照结构设计要求组装成一个可运行的系统。集成测试对应于软件概要设计阶段的测试,它要求尽可能地暴露程序单元或模块间接口和软件设计上的错误和缺陷,确保程序单元或模块间接口正确和软件结构合理。 集成测试按系统集成方式,可分为非增量式和增量式两种。其中增量式集成方式可分为自顶向下集成、自底向上集成和混合增量式集成。集成测试主要依据概要设计说明书,主要采用灰盒测试方法。 2017/3/7 网络性能评价与测试

73 此外,在某些开发模式中,如迭代式开发,设计和实现是迭代进行的,此时集成测试可以间接地验证概要设计是否具有可行性。
软件单元只有经过集成才能形成一个有机的整体。集成过程可能是显性的也可能是隐性的。只要有集成,就会出现一些常见问题。集成测试的必要性在于一些模块虽然能够单独地工作,但并不能保证连接起来也能正常工作。程序在某些局部反映不出来的问题,有可能在全局上会暴露出来,影响功能的实现。 此外,在某些开发模式中,如迭代式开发,设计和实现是迭代进行的,此时集成测试可以间接地验证概要设计是否具有可行性。 2017/3/7 网络性能评价与测试

74 3) 确认测试(VT:Validation Testing;有效性测试)
(1)目的和方法 经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已基本排除,接着就应该进一步验证软件的有效性,这就是确认测试的任务,即确认软件的功能和性能是否如同用户所合理期待的那样。 确认测试应检查软件能否按合同要求进行工作,即是否满足用户软件需求说明书中的确认标准。 确认测试可以交由用户或第三方来做。 2017/3/7 网络性能评价与测试

75 实现软件确认要通过一系列黑盒测试。确认测试同样需要制订测试计划和过程;测试计划应规定测试的种类和测试进度,测试过程则定义一些特殊的测试用例,旨在说明软件与需求是否一致。无是计划还是过程,都应该着重考虑软件是否满足合同规定的所有功能和性能,文档资料是否完整、人机界面和其他方面如可移植性、可靠性和可维护性等是否令用户满意。 缺认测试的结果有两种可能:一是功能和性能指标满足软件需求说明的要求,用户可以接受;另一种是软件不满足软件需求说明的要求,用户无法接受。项目进行到这个阶段才发现严重错误和偏差一般很难在预定的工期内改正,因此必须与用户协商,寻求一个妥善解决问题的方法。 2017/3/7 网络性能评价与测试

76 (2)主要内容 ① 功能性测试,指测试软件系统的功能是否正确,其依据是需求文档如《产品需求规格说明书》。由于正确性是软件最重要的质量因素,所以功能测试必不可少。 功能测试又称为黑盒测试或数据驱动测试,把系统看成一个黑盒子,不考虑程序的内在逻辑,而是站在最终用户的角度,根据需求规格说明书的要求来检查程序的功能是否符合它的功能说明。功能测试注重于测试软件的功能性需求。 2017/3/7 网络性能评价与测试

77 ② 性能测试,指测试软件处理事务的能力,一是为了检验性能是否符合需求,二是为了得到某些性能数据供参考(如宣传)。
功能测试试图发现以下类型的错误:  功能错误或遗漏;  界面错误;  数据结构或外部数据库访问错误;  性能错误;  初始化和终止错误。 ② 性能测试,指测试软件处理事务的能力,一是为了检验性能是否符合需求,二是为了得到某些性能数据供参考(如宣传)。 2017/3/7 网络性能评价与测试

78 ③ 健壮性测试,指测试软件系统在异常情况下能否正常运行的能力。健壮性的含义:容错能力和恢复能力。
④ 用户界面测试,指测试软件系统的易用性和视觉效果等。 ⑤ 安全性测试,指测试软件系统防止非法入侵的能力。“安全”是相对而言的,若黑客为非法入侵花费的代价(时间、费用、危险等)高于得到的好处,则系统可认为是安全的。 ⑥ 软件配置复查,软件配置复查的目的是保证软件配置的所有成分都齐全,各方面的质量都符合要求,具有维护阶段所必需的细节。 ⑦ 安装与反安装测试。 2017/3/7 网络性能评价与测试

79 (3)确认测试和验证测试关系 确认(Validation)和验证(Verification)是CMMI三级的2个过程域,是对软件测试过程中的两种不同目的的测试过程。 确认是指已经实现的软件产品或产品组件在用户环境下,实现了用户的需要,是符合用户需要的。验证是指已经实现的软件产品是按照它的需求做的,是符合需求说明书的。 确认测试是指测试人员在真实用户环境下,软件产品或其组件不仅实现了需求中所描述的所有需求项,而且也满足用户的最终需要。验证测试是指测试人员在模拟用户环境下,对软件进行测试,验证已经实现的软件产品或产品组件是否实现了软件需求说明书中所描述的所有需求。 2017/3/7 网络性能评价与测试

80 4)系统测试(ST: System Testing)
系统测试的目的是对最终软件系统进行全面的测试,确保最终软件系统满足用户需求。系统测试包括性能测试,安全测试、性能测试、压力测试等。 2017/3/7 网络性能评价与测试

81 5)回归测试(RT:Regression Testing)
回归测试不是一个特定的测试级别。只要对软件代码进行过修改,不论是修改错误、增加新的功能或是提高性能,原则上都要进行回归测试,目的是以保证对代码修改的正确性,确保代码修改不会对其余部分带来负面影响。主要关注在集成测试和系统测试阶段遇到代码变动所进行的重复测试。回归测试可以通过重新执行所有的测试用例的一个子集进行。 回归测试须包括3种类型测试用例,1) 能够测试软件的所有功能的代表性测试用例;2) 专门针对可能会被修改影响的软件功能的附加测试;3) 针对修改过的软件成分的测试。回归测试可有选择地重复执行集成和系统测试的测试用例。 回归测试变动较小,测试环境相对稳定,适于自动化测试。 2017/3/7 网络性能评价与测试

82 6)验收测试 (AT:Acceptance Testing)
验收测试是客户为了验证产品是否实现了他们提出的需求,能否被接受,也叫可接受性测试。依据是软件需求说明书、合同、验收测试计划。 验收测试是对于项目类软件而说的;产品类软件不要验收测试,但要进行α测试以及β测试(属于确认测试)。 附录:关于测试级别的一些观点: ① 项目性软件:不要系统测试,要验收测试;产品型软件:不要验收测试,要α、β测试。 ② 系统包含硬件:VT=IT;纯软系统:VT=ST 2017/3/7 网络性能评价与测试

83 测试级别小结: UT IT ST VT 测试级别 目的和方法 评估标准 单元测试 (UT)
对源代码实现的每个程序单元进行测试,检查各程序模块是否正确的实现了规定的功能,常用白盒测试法,由开发人员承担。 逻辑覆盖 集成测试 (IT) 将构件集成在一起,测试它们是否能正常运行,这里“构件”可以是程序模块、客户机-服务器程序等。常用灰盒测试法。 接口覆盖 确认测试 (VT) 由用户或第三方执行,测试软件系统是否符合用户需求规格说明书。测试软件是否符合功能性和非功能性要求,常用黑盒测试方法, 需求覆盖 系统测试 (ST) 测试整个软件系统是否符合所有要求,常用黑盒测试方法,一般由独立的测试人员执行。 回归测试 (RT) 指错误被修正后或软件功能、环境发生变化后重新进行的测试。回归测试的困难在于不好确定哪些内容应当被重新测试。 2017/3/7 网络性能评价与测试

84 4. 停止测试的时机 1) 软件系统在进行单元、集成、确认、系统、验收测试时,发现一级错误(>=1)、二级错误(>=2)暂停测试返回开发。 2) 软件系统经过单元、集成、确认、系统、验收测试,分别达到单元、集成、确认、系统、验收测试停止标准。 3) 软件系统通过验收测试,并已得出验收测试结论。 4) 软件项目需暂停以进行调整时,测试应随之暂停,并备份暂停点数据。 5) 单位时间内的BUG数量下降到某个值。 6) 软件在其开发生命周期内出现重大估算,需暂停或终止时,测试应随之暂停或终止并备份暂停或终止点数据。 2017/3/7 网络性能评价与测试

85 其他软件测试模型 1. W模型 2017/3/7 网络性能评价与测试

86 W模型形象的说明了软件测试和软件开发的同步性。
与V模型相比,W模型中很容易看出测试伴随软件开发的每个阶段,测试对象不仅是程序,还包含需求和设计。该模型的优点在于:每个软件开发活动结束后就可以执行相应的测试。 2017/3/7 网络性能评价与测试

87 2. H模型 H模型充分体现了测试过程,演示了在整个产品生命周期中,某个层次上的一次测试“微循环”(一个流程在时间上的最小单位),测试流程和其他流程并发执行。 向上箭头表示在某个时间点,其他流程的进展引发了测试就绪点,测试活动就可以进行。 2017/3/7 网络性能评价与测试

88 2.5 测试管理及工具 1、测试资源管理 1)测试人员组织 2)测试环境管理 3)测试文档管理(工具)
越来越多公司开始重视测试,开始组建自己的测试部门。然而测试不能孤立的进行,必须和公司现有的部门和小组结合,下图给出了测试部门和人员组织的一种常见方法。 2)测试环境管理 3)测试文档管理(工具) 2017/3/7 网络性能评价与测试

89 测试人员组织: 独立测试观察员负责独立验证在产品测试中执行了正确的过程,确保测试者按照测试脚本给出的指令执行测试,并正确解释测试结果。
2017/3/7 网络性能评价与测试

90 2、测试需求管理 不完整或维护不好的需求,使得测试分析员就没有完成测试脚本和测试用例设计的依据,不能为重要的需求设计测试,或许导致测试分析员耗费人力设计测试用例来验证需求。 需求的维护、获得、管理是软件开发和测试项目中常会产生质量问题的地方。由于任务复杂,以及为任何卡发项目(小项目除外)都会产生大量的需求,所以大部分软件开发项目都使用需求管理工具,以确保测试的最大覆盖,避免测试的重复和遗漏。 2017/3/7 网络性能评价与测试

91 常用需求管理工具 1) Rational Requisite Pro
IBM Rational Requisite Pro解决方案是一种需求和用例管理工具,能够帮助项目团队改进项目目标的沟通,增强协作开发,降低项目风险,以及在部署前提高应用程序的质量。通过与Microsoft Word的高级集成方式,为需求的定义和组织提供熟悉的环境。 2) Telelogic DOORS Telelogic DOOR Sreg; Enterprise Requirements Suite (DOORS/ERS)是基于整个公司的需求管理系统,用来捕捉、链接、跟踪、分析及管理信息,以确保项目与特定的需求及标准保持一致。 DOORS/ERS 使用清晰的沟通来降低失败的风险,这使通过通用的需求库来实现更高生产率的建设性的协作成为可能,且为根据特定的需求定义的可交付物提供可视化的验证方法,从而达到质量标准。 2017/3/7 网络性能评价与测试

92 3) Borland CaliberRM   Borland CaliberRM是一个基于Web 和用于协作的需求定义和管理工具,可以帮助分布式的开发团队平滑协作,从而加速交付应用系统。CaliberRM 辅助团队成员沟通,减少错误和提升项目质量。 4) IRqA IRqA是尖端的需求工程(Requirements Egineering)工具,对完全的需求工程过程提供集成支持。功能强大的RE工具帮助我们建立高质的系统规范说明:  用户可以捕获和管理需求;  在自己的专业领域内对它们进行归类和分析;  用清晰的可表达的技术手段描述要创建的系统。 2017/3/7 网络性能评价与测试

93 3、测试流程管理 随着测试技术的蓬勃发展,测试流程的管理显得犹为重要,流程管理已成为测试成功的重要保证。内容:
① 要确保流程被每一个人正确的理解和执行,就要仔细的定义其中的每个过程,并充分交流。 ② 利用测试管理工具,固化和规范测试流程,确保正确的执行过程,以及将流程透明化,以便进一步加强。 ③ 适当采用行政手段在流程推广初期是一种选择。 ④ 有效地BUG管理。测试是一套复杂的处理过程,有效地BUG管理能减少测试人员和开发人员的冲突。 2017/3/7 网络性能评价与测试

94 ⑤ 测试流程变更。在实际工作中经常会发现,当初制定的流程并不适合现在的工作,那么到哪里去找适合所有工作的流程?
 裁剪:根据项目的具体情况对现行的标准过程在一定范围内进行修改,该修改内容仅影响当前项目,标准过程在其他项目中仍然有效。  变更:因为某些原因,将现行标准过程做永久性修改,在今后相关工作中废弃现行标准过程,而采用更新后的标准过程。 2017/3/7 网络性能评价与测试

95 解决测试工作不透明,测试工作不量化的问题; 建立事件关系,实现快速检索; 自动记录跟踪事件的发展变化; 提高办事效率;
测试流程管理工具 测试流程工具:就是用来协助测试管理而开发的一种管理手段,如bugzilla,CQ(Clear Quest),T-Plan Professional, TestCenter测试管理工具、TestManager(IBM),QESuite 甚至是Excel等。好处: 解决测试工作环节多,流程复杂等问题; 解决测试工作不透明,测试工作不量化的问题; 建立事件关系,实现快速检索; 自动记录跟踪事件的发展变化; 提高办事效率; 2017/3/7 网络性能评价与测试

96 思考题 带*的题要上交 1. 查看软件测试方面的教材,加深对本章内容的了解。 2. 了解软件测试流程及各阶段的任务。
3. 结合实际项目,考虑开发人员如何在软件开发过程中进行测试? *4. 网上搜索一些关于通用测试级别的测试工具软件,如单元测试、集成测试等工具软件,进行学习和了解。 *5. 查找一个软件测试管理工具,讲述其特点和用法(可作报告)。要求:①4/5任选一题,网上上交电子和书面材料,严禁抄袭。 ②按本科毕业论文格式撰写,章节分配合理,论述清楚。 2017/3/7 网络性能评价与测试

97 *6. 在软件开发与运行阶段一般需要完成单元测试、集成测试、确认测试、系统测试和验收测试,这些对软件质量保证起着非常关键的作用。
(1)请简述单元测试的主要任务。 (2)集成测试包括非增量式和增量式两种方法,增量式测试按照不同的实施次序又可以分为自顶向下和自底向上增量式测试。请比较上述两种增量式测试方法的优点和缺点。 *7. 请估计广州中信大厦是否坚固,写出推理过程。 *8. 分析软件测试的复杂性。 2017/3/7 网络性能评价与测试


Download ppt "网络性能评估与测试 Network Performance Evaluation and Testing"

Similar presentations


Ads by Google