您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 易游无限软件测试培训
邵方明易游无限软件测试培训内容•什么是质量•测试方法•测试工具•测试流程品质的趋势1900年代:品质是“检测”出來的“QI”1940年代前期:品质是“制造”出來的“QC”1940年代前期:品质是“设计”出來的“QA”什么是质量1960年代:品质是管理出來的“TQC”1980年代:品质是习惯出來的“TQA”重要名词解释品质检查(QualityInspection;QI):將结果与品质判定基准比较,以确定各物品的不良品或合格者什么是质量品质管制(QualityControl;QC):为了经济的“制造出”符合消費者所要求的品质之产品或服务所规定出的一连串方法与活动品质保证(QualityAssurance;QA):为了“保证充份满足”消费者所要求之,品质,生产者所进行之系统性活动什么是质量重要名词解释全面品质管制(TotalQualityControl;TQC):將一个组织內,各单位的品质开发;品质维持;及品质改进的各项努力整合起来,以使行销.工程.生产与售后服务能以达到最经济的水准,使客戶完全满意的有效制度”什么是质量全面品质保证(TotalQualityAssurance;TQA):以顾客为导向从企划,执行;检查;到反馈,包含了公司所有部门及所有的成员不断追求品质改善,TQA是依循零缺点的保证而成为习惯的一种生活方式.产品的品质=\全部的品质內涵什么是质量1.产品品质(QualityofProduct)开发品质,制造品质2.过程品质(QualityofProcess工作品质,服务品质3.环境品质(QualityofEnvironment)心理环境品质,硬件环境品质4.管理品质(QualityofManagement)人力品质,决策品质什么是质量软件质量特性(McCall)包含:正确性,可靠性,效率,完整性,可使用性,可维护性,可测试性,灵活性,可移植性,复用性软件质量特性软件测试的目的和原则软件测试用例设计软件测试策略软件测试种类程序调试测试方法软件测试的目的和原则软件测试的目的软件测试的原则软件测试的对象测试信息流测试与软件开发各阶段的关系软件测试定义•软件测试是为了发现错误而执行程序的过程。•软件测试是根据软件开发阶段的规格说明和程序的内部结构而精心设计的一批测试用例(即输入数据及预期的输出结果),并利用这些测试用例去运行程序,以发现错误的过程。软件测试目的•测试是运行程序的过程,目的在于发现错误,在用户使用应用之前发现问题;•一个好的测试用例在于能够发现至今未发现的错误;•一个成功的测试是发现了至今未发现的错误的测试。软件测试的目的基于不同的立场,存在着两种完全不同的测试目的。从用户的角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可接受该产品。从软件开发者的角度出发,则希望测试成为表明软件产品中不存在错误的过程,验证该软件已正确地实现了用户的要求,确立人们对软件质量的信心。Myers软件测试目的(1)测试是程序的执行过程,目的在于发现错误;(2)一个好的测试用例在于能发现至今未发现的错误;(3)一个成功的测试是发现了至今未发现的错误的测试。换言之,测试的目的是想以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷。如果我们成功地实施了测试,我们就能够发现软件中的错误。测试的附带收获是,它能够证明软件的功能和性能与需求说明相符合。实施测试收集到的测试结果数据为可靠性分析提供了依据。测试不能表明软件中不存在错误,它只能说明软件中存在错误。软件测试的原则1.应当把“尽早地和不断地进行软件测试”作为软件开发者的座右铭。2.测试用例应由测试输入数据和对应的预期输出结果这两部分组成。3.程序员应避免检查自己的程序。4.在设计测试用例时,应包括合理的输入条件和不合理的输入条件。5.充分注意测试中的群集现象。经验表明,测试后程序中残存的错误数目与该程序中已发现的错误数目成正比。6.严格执行测试计划,排除测试的随意性。7.应当对每一个测试结果做全面检查。8.妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便。测试人员测试人员100%50%0%完成比率代码实现消除缺陷质量问题延迟上市维护的费用1x10x100x软件测试重要性项目持续时间项目持续时间100%50%0%完成比率消除缺陷消除缺陷保证软件质量缩短上市时间软件测试重要性软件测试的对象软件测试并不等于程序测试。软件测试应贯穿于软件定义与开发的整个期间。需求分析、概要设计、详细设计以及程序编码等各阶段所得到的文档,包括需求规格说明、概要设计规格说明、详细设计规格说明以及源程序,都应成为软件测试的对象。为把握软件开发各个环节的正确性,需要进行各种确认和验证工作。确认(Validation),是一系列的活动和过程,目的是想证实在一个给定的外部环境中软件的逻辑正确性。需求规格说明确认程序确认(静态确认、动态确认)验证(Verification),试图证明在软件生存期各个阶段,以及阶段间的逻辑协调性、完备性和正确性。测试信息流测试信息流软件配置:软件需求规格说明、软件设计规格说明、源代码等;测试配置:测试计划、测试用例、测试程序等;测试工具:测试数据自动生成程序、静态分析程序、动态分析程序、测试结果分析程序、以及驱动测试的测试数据库等等。测试结果分析:比较实测结果与预期结果,评价错误是否发生。排错(调试):对已经发现的错误进行错误定位和确定出错性质,并改正这些错误,同时修改相关的文档。修正后的文档再测试:直到通过测试为止。通过收集和分析测试结果数据,对软件建立可靠性模型利用可靠性分析,评价软件质量:软件的质量和可靠性达到可以接受的程度;所做的测试不足以发现严重的错误;如果测试发现不了错误,可以肯定,测试配置考虑得不够细致充分,错误仍然潜伏在软件中。测试与软件开发各阶段的关系软件开发过程是一个自顶向下,逐步细化的过程软件计划阶段定义软件作用域软件需求分析建立软件信息域、功能和性能需求、约束等软件设计把设计用某种程序设计语言转换成程序代码测试过程是依相反顺序安排的自底向上,逐步集成的过程。测试用例设计两种常用的测试方法黑盒测试白盒测试黑盒测试这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。黑盒测试又叫做功能测试或数据驱动测试。黑盒测试方法是在程序接口上进行测试,主要是为了发现以下错误:是否有不正确或遗漏了的功能?在接口上,输入能否正确地接受?能否输出正确的结果?是否有数据结构错误或外部信息(例如数据文件)访问错误?性能上是否能够满足要求?是否有初始化或终止性错误?用黑盒测试发现程序中的错误,必须在所有可能的输入条件和输出条件中确定测试数据,来检查程序是否都能产生正确的输出。但这是不可能的。假设一个程序P有输入量X和Y及输出量Z。在字长为32位的计算机上运行。若X、Y取整数,按黑盒方法进行穷举测试:可能采用的测试数据组:232×232=264如果测试一组数据需要1毫秒,一年工作365×24小时,完成所有测试需5亿年。白盒测试此方法把测试对象看做一个透明的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。软件人员使用白盒测试方法,主要想对程序模块进行如下的检查:对程序模块的所有独立的执行路径至少测试一次;对所有的逻辑判定,取“真”与取“假”的两种情况都至少测试一次;在循环的边界和运行界限内执行循环体;测试内部数据结构的有效性,等。对一个具有多重选择和循环嵌套的程序,不同的路径数目可能是天文数字。给出一个小程序的流程图,它包括了一个执行20次的循环。包含的不同执行路径数达520条,对每一条路径进行测试需要1毫秒,假定一年工作365×24小时,要想把所有路径测试完,需3170年。逻辑覆盖语句覆盖判定覆盖条件覆盖判定-条件覆盖条件组合覆盖路径覆盖。逻辑覆盖是以程序内部的逻辑结构为基础的设计测试用例的技术。它属白盒测试。(A1)and(B=0)(A=2)or(X1)X=X/AX=X+1TTFFabdceL1(ace)={(A1)and(B=0)}and{(A=2)or(X/A1)}=(A1)and(B=0)and(A=2)or(A1)and(B=0)and(X/A1)=(A=2)and(B=0)or(A1)and(B=0)and(X/A1)L2(abd)=not{(A1)and(B=0)}andnot{(A=2)or(X1)}={not(A1)ornot(B=0)}and{not(A=2)andnot(X1)}=not(A1)andnot(A=2)andnot(X1)ornot(B=0)andnot(A=2)andnot(X1)L3(abe)=not{(A1)and(B=0)}and{(A=2)or(X1)}={not(A1)ornot(B=0)}and{(A=2)or(X1)}=not(A1)and(A=2)ornot(A1)and(X1)ornot(B=0)and(A=2)ornot(B=0)and(X1)L4(acd)={(A1)and(B=0)}andnot{(A=2)or(X/A1)}=(A1)and(B=0)andnot(A=2)andnot(X/A1)语句覆盖语句覆盖就是设计若干个测试用例,运行被测程序,使得每一可执行语句至少执行一次。在图例中,正好所有的可执行语句都在路径L1上,所以选择路径L1设计测试用例,就可以覆盖所有的可执行语句。测试用例的设计格式如下【输入的(A,B,X),输出的(A,B,X)】为图例设计满足语句覆盖的测试用例是:【(2,0,4),(2,0,3)】覆盖ace【L1】(A=2)and(B=0)or(A1)and(B=0)and(X/A1)判定覆盖判定覆盖就是设计若干个测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次。判定覆盖又称为分支覆盖。对于图例,如果选择路径L1和L2,就可得满足要求的测试用例:【(2,0,4),(2,0,3)】覆盖ace【L1】【(1,1,1),(1,1,1)】覆盖abd【L2】(A=2)and(B=0)or(A1)and(B=0)and(X/A1)not(A1)andnot(A=2)andnot(X1)ornot(B=0)andnot(A=2)andnot(X1)如果选择路径L3和L4,还可得另一组可用的测试用例:【(2,1,1),(2,1,2)】覆盖abe【L3】【(3,0,3),(3,1,1)】覆盖acd【L4】not(A1)and(X1)ornot(B=0)and(A=2)ornot(B=0)and(X1)(A1)and(B=0)andnot(A=2)andnot(X/A1)条件覆盖条件覆盖就是设计若干个测试用例,运行被测程序,使得程序中每个判断的每个条件的可能取值至少执行一次。在图例中,我们事先可对所有条件的取值加以标记。例如,对于第一个判断:条件A>1取真为,取假为条件B=0取真为,取假为T1T1T2T2对于第二个判断:条件A=2取真为,取假为条件X>1取真为,取假为测试用例覆盖分支条件取值【(2,0,4),(2,0,3)】L1(c,e)【(1,0,1),(1,0,1)】L2(b,d)【(2,1,1),(2,1,2)】L3(b,e)或T3T3T4T4TTTT12344321TTTTTTTT1234测试用例覆盖分支条件取值【(1,0,3),(1,0,4)】L3(b,e)【(2,1,1),(2,1,2)】L3(b,e)判定-条件覆
本文标题:易游无限软件测试培训
链接地址:https://www.777doc.com/doc-3296474 .html