测试过程管理_测试方法体系研究刘振田2012-05cowardliu@ QQ:147832350测试方法体系研究测试建设需求分析V/双V/X模型研究测试驱动开发理论研究敏捷测试研究测试应用体系设计测试实践测试应用与流程建设测试工具集单元测试工具集成测试工具性能测试工具后台/接口测试工具模拟器库持续构建工具测试平台测试需求测试计划测试用例/用例复用测试执行Bug管理测试报告测试工具与平台建设测试规程功能测试操作指南性能测试操作指南自动化测试操作指南安全性测试操作指南版本发布操作指南测试体系的设计规划图1 2 3测试方法体系研究测试应用与流程体系建设测试工具与平台建设4测试组织建设5走向成熟:持续交付与测试流水线11测试方法体系研究软件测试概述2软件工程与软件测试3讨论:“我们”如何选择测试模式?1.1软件测试概述单元测试集成测试系统测试验收测试Bvt 测试冒烟测试●接口测试●逻辑功能测试●功能联调测试●性能与压力测试●高可用性测试●兼容性测试●安全性测试●易用性测试α测试β测试静态测试●模拟测试●并运行测试●验收测试黑盒测试白盒测试动态测试模块模块接口局部数据结构出错处理独立路径边界条件*单元测试又称为模块测试,是针对程序模块或函数(软件设计的最小单位)来进行正确性检验的测试工作被测模块测试用例驱动程序测试结果桩模块1桩模块2桩模块3测试内容:执行过程:# include<studio.h> Void main (void) { int a = 1, b =2,c;C=fun1(a,b)}Int fun1(int x,int y) {return x+y;}1.1.1单元测试:举例1.1.2集成测试:接口测试*测试与系统相关联的内部、外部接口,测试的重点是要检查数据的交换,传递和控制管理过程,还包括处理的次数。
接口的连通性测试基于协议的报文级测试基于业务的接口测试1.1.3集成测试:逻辑功能测试业务流数据流*业务流:产品执行的某一特定动作看做一个业务,针对该业务完成一个完整的受理过程作为一个端到端的处理流程。
*数据流:通过单一用户动作生命周期的完整测试,测试动作之间的数据连通性,同时测试业务之间的横向依赖关系。
1.1.4:系统测试和验收测试* 系统测试是将通过确认测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起测试。
包括功能联调测试、性能与压力测试、兼容性、安全性、易用性及高可用性测试。
* 验收测试是指在系统测试的后期,以用户测试为主,从用户需求出发对系统进行验收验证的测试,是软件交付给用户的最后一道工序。
1.1.5单元、集成、系统和验收测试比较测试名称测试对象测试依据人员测试方法时间比例单元测试最小模块,如函数、类详细设计开发人员或白盒测试人员白盒4集成测试模块间的接口,如参数传递概要设计开发人员测试人员白盒、黑盒2系统测试整个系统,包括软件、硬件需求规格说明书黑盒测试人员黑盒3验收测试整个系统,主要以功能为主用户需求验收标准用户为主黑盒1输入输出黑盒测试又称数据驱动测试或基于规格说明的测试,通过黑盒测试可以知道应用程序是否符合用户的预期要求,而不考虑程序内部的逻辑结构,主要适用于集成测试、系统测试、验收测试。
主要为了发现以下错误:1、功能不正确或遗漏;2、输入、输出、接口、界面错误;3、数据结构或外部数据访问错误;4、性能不满足要求;5、初始化或终止性错误白盒测试又称结构测试、逻辑驱动测试或基于程序本身的测试,白盒测试是对软件的过程性细节做细致的检查,对程序所有逻辑路径进行测试,而并不关心应用程序的功能要求,主要用于单元测试。
应用程序主要为了发现以下错误:1、对程序模块的所有独立的路径至少测试一次;2、对所有逻辑判定均需测试true 和false 两种情况;3、在循环的上下边界和运行界限内执行循环体;4、测试内部数据结构的有效性;1.1.6静态测试和动态测试●动态测试技术:黑盒测试白盒测试●静态测试技术:桌前检查代码审查技术评审1.1.6桌前检查●程序员阅读自己所编的程序●检查所有的变量,包括变量的类型、声明、引用,临时变量的使用等●检查所有函数的调用●检查所有错误信息显示是否清楚、易理解和准确●对返回的数据进行错误状态的检查●检查代码是否遵从了存在的编程标准和命名协议●检查系统模块内部的注释和说明●检查程序控制流的实现●应至少完成语句覆盖1.1.7代码审查●由若干程序员和测试员组成的一个小组,集体阅读并讨论程序或者用“脑”执行并检查程序的过程,检查的内容包括:检查代码和设计的一致性检查代码对标准的遵循、可读性检查代码的逻辑表达的正确性检查代码结构的合理性1.1.8技术评审●评价软件的需求说明书是否符合用户的要求●评审保密措施实现情况●评审操作特性的实施情况●评审其可靠性、性能实现情况●评审软件是否具有可修改性、可扩充性●评审软件是否具有可互换性、可移植性●评审软件是否具有互连性。
1.1.9软件测试概述:α、β、λ测试α、β、λ常用来表示软件测试过程中的用户参与程度的三个阶段,:α是第一阶段,一般只供内部测试及少量用户参与使用;β是第二个阶段,已经消除了软件中大部分的不完善之处,但仍有可能还存在缺陷和漏洞,一般只提供给特定的用户群来测试使用;λ是第三个阶段,此时产品已经相当成熟,只需在个别地方再做进一步的优化处理即可正式发布。
目录11测试方法体系研究软件测试概述2软件工程与软件测试3讨论:“我们”如何选择测试模式?1.2软件工程与测试模型不同的开发模式适配不同的测试模型和测试过程。
开发流水线产品平台技术平台规划需求设计实现测试部署测试需求测试设计测试执行测试执1.2.1测试模型1:瀑布模型●瀑布模型的核心思想是按工序将问题化简,将功能的实现与设计分开,采用结构化的分析与设计方法将逻辑实现与物理实现分开。
●软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试、运行维护。
●规定活动自上而下、相互衔接的固定次序,逐级下落。
●V模型是最广为人知的测试模型●由Paul Rook在20世纪80年代后期提出的,旨在改进软件开发的效率和效果。
●从左到右,描述了基本的开发过程和测试行为●非常明确地标明了测试过程中存在的不同级别,描述了这些测试阶段和开发过程期间各阶段的对应关系●测试伴随整个软件开发周期,而且测试的对象不仅仅是程序,需求、设计等同样要测试,测试与开发是同步进行的。
●W 模型有利于尽早地全面的发现问题。
●测试和开发活动也保持着一种线性的前后关系,上一阶段完全结束,才可正式开始下一个阶段工作。
这样就无法很好的支持迭代开发。
需求分析概要设计详细设计编码实现持续集成系统构建交付安装需求分析V&V 系统测试准备概要设计V&V 集成测试准备详细设计V&V 单元测试准备单元测试集成测试系统测试验收测试用户需求用户需求V&V 验收测试准备1.2.4测试模型4:X模型●很好地处理测试与开发的交接过程(交接的过程是一个时间段,而不是一个点)●左边描述的是针对单独程序片段所进行的相互分离的编码和测试,此后将进行频繁的交接,通过集成最终合成为可执行的程序,然后再对这些可执行程序进行测试。
●己通过集成测试的成品可以进行封装并提交给用户,也可以作为更大规模和范围内集成的一部分。
多根并行的曲线表示变更可以在各个部分发生。
●X模型还定位了探索性测试,这是不进行事先计划的特殊类型的测试,给有经验的测试人员在测试计划之外发现更多1.2.5敏捷测试功能测试用户故事测试探索性测试用户验收测试α、β、λ测试单元测试组件测试性能和压力测试非功能性测试安全性测试面向业务面向技术支持团队评价产品自动和手动自动工具手动1.2.5测试驱动开发Personal Software Process 的DevelopmentDesign Code Build TestTest-Driven Design and DevelopmentAnalysis Code Unit Test CodeBuild Run TestAnalysis Design在此输入标题输入文字在此录入上述图表的综合分析结论在此录入上述图表的综合分析结论在此录入上述图表的综合分析结论在此录入上述图表的综合分析结论““谢谢,问题与解答!。