1 / 56

先进软件测试技术

先进软件测试技术. 北方工业大学计算机系 赵会群. 目录. 软件测试技术概述 软件测试与软件故障 软件测试与软件生命周期 软件测试方法及应用 软件测试原则与特点 软件测试工具与案例 软件测试工具 基于 Web 的软件测试 基于 GUI 的软件测试 研究工作简介 协议软件测试方法与技术 基于服务服务的软件测试 应用软件性能测试 讨论与总结. 1.1 软件故障与软件测试. 一 组术语: 缺陷( bug ) 缺点( defect ) 统称为缺陷 偏差( variance ) 错误( error )

Download Presentation

先进软件测试技术

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 先进软件测试技术 北方工业大学计算机系 赵会群

  2. 目录 • 软件测试技术概述 • 软件测试与软件故障 • 软件测试与软件生命周期 • 软件测试方法及应用 • 软件测试原则与特点 • 软件测试工具与案例 • 软件测试工具 • 基于Web的软件测试 • 基于GUI的软件测试 • 研究工作简介 • 协议软件测试方法与技术 • 基于服务服务的软件测试 • 应用软件性能测试 • 讨论与总结

  3. 1.1 软件故障与软件测试 • 一组术语: • 缺陷(bug) • 缺点(defect) 统称为缺陷 • 偏差(variance) • 错误(error) • 异常(anomaly) 统称为错误 • 老化(age) • 问题(problem) • 失败 (failure) • 矛盾(inconsistency)统称为失败 • 事故(incident) • 谬误(fault)

  4. 有缺陷的软件 软件系统错误 软件系统失败 缺陷、错误与失败的关系

  5. 正常软件系统 有缺陷的软件 软件测试减少软件故障发生

  6. 需求阶段 验收测试阶段 体系结构设计阶段 系统集成阶段 状态1 开发阶段 中期提交1 系统详细设计阶段 软件集成阶段 编码和单元测试阶段 状态2 开发阶段 中期提交2 图1-1V 生命周期模型 结束 最终提交 图 1.3 渐进式开发生命周期 1.2 软件测试与软件生命周期

  7. 软件测试与软件运行的关系

  8. 软件最佳投放时机

  9. 1.3 软件测试方法及应用 • 黑箱法: • 黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能的情况下,通过测试来检测每个功能是否都能正常使用。 • 白箱法: • 白盒测试也称结构测试或逻辑驱动测试,它是在知道它产品内部工作过程的前提下,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行。

  10. 常见软件测试方法 • ALAC测试:是一种基于客户使用产品的知识开发出来的测试方法。 • 单元测试:对象是软件设计的最小单位—模块 • α测试:是指公司内部人员模拟用户进行测试。 • β测试:是指公司组织典型用户使用β版,提出批评意见。 • 恢复测试:恢复测试主要检查系统的容错能力。 • 安全测试:安全测试检查系统对非法侵入的防范能力。 • 强度测试:强度测试检查程序对异常情况的抵抗能力。 • 性能测试:是对系统对任务处理能力的测试。 • ……

  11. 1.4 软件测试原则与特点 • 软件测试的原则 • 应当把“尽早和不断地测试”作为开发者的座右铭。 • 程序员应该避免检查自己的程序,测试工作应该由独立的专业的软件测试机构来完成。 • 设计测试用例时,应该考虑到合法的输入和不合法的输入,以及各种边界条件,特殊情况下要制造极端状态和意外状态,比如网络异常中断、电源断电等情况。 • 一定要注意测试中的错误集中发生现象,这和程序员的编程水平和习惯有很大的关系。

  12. 对测试错误结果一定要有一个确认的过程。一般有A测试出来的错误,一定要有一个B来确认,严重的错误可以召开评审会进行讨论和分析。对测试错误结果一定要有一个确认的过程。一般有A测试出来的错误,一定要有一个B来确认,严重的错误可以召开评审会进行讨论和分析。 • 制定严格的测试计划,并把测试时间安排得尽量宽松,不要希望在极短的时间内完成一个高水平的测试。 • 重复测试的关联性一定要引起充分的注意,修改一个错误而引起更多错误出现的现象并不少见。 • 妥善保存一切测试过程文档,意义是不言而喻的,测试的重现性往往要靠测试文档。

  13. 图1-5 一个程序结构图 • 软件测试特点: • 完全测试程序是不可能的. 路径数:51+52+53+…+520=1040

  14. 软件测试是有风险的行为. • 测试无法显示潜在的软件缺陷 . • 发现的缺陷越多,说明软件缺陷越多.

  15. 2 软件测试工具及应用 • 2.1 Jmeter性能测试工具及其应用 • Jmeter简介; • 一个Web性能测试案例; • 2.2 TThree系统测试工具及其应用 • TThree简介; • 一个Web可靠性测试案例;

  16. 2.1 Jmeter性能测试工具及其应用 • Jmeter简介: • 是Apache组织提供的功能和性能测试的工具; • 100%的用java实现;

  17. JMeter可以用于测试静态或者动态资源的性能; • 文件、Servlets、Perl脚本、java对象、数据库和查询、ftp服务器或者其他的资源; • JMeter用于模拟在服务器、网络或者其他对象上附加高负载以测试他们提供服务的受压能力; • 或者分析他们提供的服务在不同负载条件下的总性能情况。 • 你可以用JMeter提供的图形化界面分析性能指标或者在高负载情况下测试服务器/脚本/对象的行为。

  18. 客户端 传输网络 Tomcat服务器 客户端 应用案例分析: • 测试环境: • Tomcat作为Web服务器 • 被测试的内容是一个jsp文件和一个servlet; • jsp文件调用JavaBean打印相关信息,servlet接受用户参数、调用javabean输出相关信息。

  19. 建立测试计划(Test Plan) • 测试计划描述了执行测试过程中JMeter的执行过程和步骤; • 一个完整的测试计划包括一个或者多个线程组(Thread Groups)、逻辑控制(Logic Controller)、实例产生控制器(Sample Generating Controllers)、侦听器(Listener)、定时器(Timer)、比较(Assertions)、配置元素(Config Elements); • 打开JMeter时,它已经建立一个默认的测试计划,一个JMeter应用的实例只能建立或者打开一个测试计划。

  20. 需要JMeter模拟五个请求者(也就是五个线程),每个请求者连续请求两次。需要JMeter模拟五个请求者(也就是五个线程),每个请求者连续请求两次。

  21. 增加默认Http属性(可选):

  22. 增加Listener:

  23. 开始执行测试计划: 执行时的几个大时间值均来自于jsp request,这是因为jsp执行前都需要被编译成.class文件。

  24. 性能评价指标: • 数据量 • 性能偏离 • 系统吞吐量 • 负载 • 利用率

  25. 2.2 TThree系统测试工具及应用 • TThree简介 • 基于TTCN(Test and Testing Control Notation)的系统测试工具; • 可以程序实现系统测试用例的输入与测试结论的分析; • 可以实现多线程并发测试; • 可以实现计算机硬件与软件双重测试; • 可以实现多种测试系统测试工作; • 对网络软件测试有特色;

  26. TTCN-3语言表现形式: TTCN-3 的多种表现形式

  27. TTCN-3体系结构:

  28. 测试管理(Test Management) • 测试控制Test Control (TC) • 负责管理测试系统运行,负责测试模块唤醒,传递测试套参数等。 • 测试日志Test Logging (TL) • 负责管理测试日志 • 附加遍解码器External CoDecs (ECD) • 不像内嵌式编码\解码器,它提供了灵活的标准接口,可以实现与不同版本TTCN-3的支持。 • 组件句柄Component Handler (CH) • 负责分布并行测试组件的管理

  29. TTCN-3执行 (TE) • TTCN-3执行 (TE) • 负责解释或执行TTCN-3抽象测试套。TE可以分成三个相互交户的部分,测试套执行,TTCN-3运行系统和编码解码系统。 • 执行测试套Executable Test Suite (ETS) • ETS负责测试例执行,序列化和匹配测试事件。它与测试执行环境交互,发送、接收(受)和记录测试事件,产生和撤销测试组件,间或负责外部功能调用,时钟管理等。 • TTCN-3运行系统(T3RTS) • T3RTS通过TCI和TRI与TM、SA和PA交互,管理ETS和EDS。 • 编码与解码(EDS) • 负责测试数据的编码与解码。

  30. 被测系统适配器(SA) • 被测系统适配器SUT Adapter (SA) • 将测试系统(SA)和被测实现(SUT)适配到测试系统执行平台。 • 将测试组件端口映射到测试系统接口 • 实现发送命令和接收测试事件 • SA与测试执行TE接口 • 发送消息 • 交换编码/解码数据

  31. 平台适配器(PA) • 平台适配器Platform Adapter (PA) • PA实现外部功能调用 • 统一系统时钟 • 通过TRI与TE交互

  32. TTCN测试系统接口 • 测试系统控制接口TCI(TTCN Control Interface) • 管理测试执行; • 控制对不同被测设备的测试组件的执行; • 管理编码解码数据; • 管理测试期间的日志信息。 • 测试系统运行时接口TRI(TTCN Runtimes Interface) • 定义TE、SA和PA之间交互行为; • 提供了TE发送数据和接收数据的方法; • 提供了定时器操作的方式。

  33. 为什么使用 TTCN-3 • 质量需求 • 好的测试可以增加产品的可信度 • 时间和成本的改进 • TTCN是一种用于描述测试套的语言 • TTCN标准化 • TTCN相对简单 • 表现形式 • 严格的语法,完备的语法定义和操作语义 • 抽象化 • TTCN独立于任何实现

  34. 标准化的测试 • 有效地避免了自行测试的随意性 • 提供了测试一致性框架 • 开放地测试套 • GSM (ETS 11.10) • TETRA(Terrestrial Trunked Radio) • WCDMA • 3GPP(The 3rd Generation Partnership Project)

  35. 2.6 TTCN与ASN.1与SDL之间的关系 • ASN.1(Abstract Syntax Notation One) • 一种描述结构化信息的语言 • 国际标准化(ISO/IEC 8824, ITU-T X.680) • SDL( Specification and Description Language) • 一种标准化描述语言ITU-T Z.105 • 与ASN.1兼容 • 用于描述协议通信过程 • TTCN与ASN.1和SDL • ASN.1在TTCN中可以用于生成数据和描述约束 • SDL中的MSC图是TTCN图形表现形式中的一种图形。 ASN.1 TTCN SDL

  36. Layer S Layer S UT SP ASP ASP Service provided SAP ASP PCO Layer T PDU Layer T SP IUT PDU Service used PCO ASP ASP Layer N Layer N LT 2.7 测试一致性框架 SP: Service Primitive SAP: Service Access Point PDU: Protocol Data Unit ASP: Abstract Service Primitive PCO: Point of Control and Observation PDU: Protocol Data Unit Tester: Lower and/or Upper Tester (TTCN scripts)

  37. 2.X-Connect Indication UT 3.X-Connect response LT IUT 4.N-DATA indication 1.N-DATA Request Underlying Service 图 2.5 一致性测试体系结构 L

  38. IUT: • 在一致性测试中一个被测试部分(Implement Under Test简称IUT)是一个OSI协议实体。 • SUT: • IUT所在的系统称为被测试系统(System Under Test简称SUT)。 • UT和LT: • IUT有一个上层测试(Upper Test)接口和下层测试(Low Test)接口。

  39. PCO: • 控制观察点(Points of Control and Observation简称PCOs),UT和LT通过控制观察点对系统进行测试。通常LT是远程可访问接口,因此IUT定义一个远端的PCO,即底层接口被设置在远端 。 • 输入输出队列: • 通信被认为是异步通信,所以在每一个PCO都对应两个队列(FIFO),一个是输入,另一个是输出。

  40. ASPs: • IUT和UT之间通过抽象服务元语(Abstract Service Primitives简称ASPs)进行通信。 • PDUs: • 从概念角度,IUT和LT通过协议数据单元(Protocol Data Units简称PDUs)交换数据; • 两者的联系: • 从实际角度,PDUs 采用ASPs 对基本服务动作进行编码,即PDUs不是直接进行交互,而是CTMF 允许根据PDUs的编码进行交互,即在一个抽象的测试中使用PDUs进行交换,所以ASPs与PDUs不再加以区分。

  41. TCP: • 测试协调过程(Test Coordination Procedures 简称TCP)来协调LT和UT的动作,这在LT和UT是两个独立的过程时十分必要 。 • 测试方法分类: • 在CTMF中测试方法可分为局部的、分布的、协调的和远程的测试几种 。它们的主要不同是对LT和UT的协调以及对它们的控制与观察程度不同。

  42. Send Stimuli • 行为一致性测试 • -发送一个激发条件后,观测回应 • -回应是否在指定的时间内返回? Test System SUT IUT Implementation Under Test TTCN Test Suite Observe Responses Result PASS, FAIL or INCONCLUSIVE

  43. Master Test Component IUT sync Parallel Test Component sync sync sync Parallel Test Component 图2.8 并行TTCN

  44. 3 TTCN应用 • TTCN与3GPP • TTCN与Bluetooth • TTCN与WAP

  45. 3.1 TTCN与3GPP • TTCN在GSM成功的经验 • TTCN ATSs可以提供互操作性测试 • 强大的具有竞争力的测试工具支持全球的GSM市场 • TTCN ATSs被广泛地应用在伙伴开发过程。 • 3GPP • TTCN在协议一致性测试方面 • 34.123-1 测试描述 • 34.123-2 协议实现一致性陈述 (PICS) • 34.123-3 TTCN抽象测试套 • TTCN将成为3GPP测试的标准说明

  46. Applications TCP/IP HID RFCOMM Control Data Audio L2CAP Link Manager Baseband RF 3.2 TTCN与Bluetooth • Bluetooth SIG(Special Interest Group) 选择TTCN • 定义了协议测试需求 • 互操作性 • 定义了需求测试的特性 • 应用互操作性 • 终端用户的需求

  47. 3.3 TTCN与WAP

  48. 第一层为无线应用环境WAE: • 它基于WWW和移动电话的、通用的无线应用环境。 • 第二层为无线会话协议层(WSP): • 该层提供面向连接的服务和数据报服务 • 第三层为无线传输协议层(WT): • 提供轻型的面向传输的协议。 • 第四层为安全协议层(TLS): • 提供了数据完整性、保密性、服务授权、拒绝服务保护等安全措施。 • 第五层为无线数据报协议(WDP)层: • WDP可以与各种类型网络建立连接,为上层应用提供一致、透明地的服务。

  49. L! PassWord • L? Login-OK • LAB L!N_Buy_amount(count:=INC(count)) • [count<=max] START Timer • L?N_Buy_Error • ->LAB • ?TIMEOUTtimer • CCP!PTC_RESULT • CPP!PTC_RESULT • 图4-1 苹果机游戏登陆与买币测试套 type record of charstring Payload; type record Request { charstring method, Payload payload } 图 4-2 登陆数据的PDU的描述 Payload→for item in Payload item + “\n” Request→method+“\n”+payload 图4-3 登陆数据编码/解码规则

More Related