欢迎来到天天文库
浏览记录
ID:58576277
大小:128.00 KB
页数:27页
时间:2020-10-20
《西安工业大学《软件工程》第七章-测试ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第七章测试无论采用何种开发模型开发出来的大型软件系统,由于客观系统的复杂性,人的主观认识的狭隘性,不可能对要开发的系统具有完美的认识。虽然在软件开发的每一阶段都进行了技术审查和管理复审,也不可能把设计中所有潜在的错误检查出来并进行纠正,而且在编码阶段也会引入新的错误,软件设计环节的错误,如果不进行纠正,在使用阶段可能造成的损失会很大。所以软件在交付使用之前必须进行严格的测试,通过测试找出软件在需求分析、设计和编码阶段隐藏的错误,并加以改正。7.1测试的基本概念和原则1测试的必要性在测试理论形成的早期,一些软件开发公司
2、由于忽视软件的测试,造成了巨大的经济损失。所以测试对提高软件的质量具有很大的重要性。虽然在软件生命周期的各个阶段都有严格的技术审查和管理复审,但是经验表明,审查不能发现所有的差错;在编码过程中,程序员的编程水平对软件的影响很大,但是不管经验多丰富的程序员在编程中都会引入一些错误。如果这些错误在软件交付前没有被测试出来,投入使用后往往带来严重后果。2测试的概念1)软件测试软件测试是对软件计划、软件设计和软件编码进行查错和纠错的活动,这个过程包括了代码执行活动和人工活动。2)程序测试程序测试是对编码阶段出现的语法错、语义
3、错、运行错进行查找的编码执行过程。3)动态测试动态测试包括白盒测试和黑盒测试。黑盒测试是根据软件的功能而设计测试用例而进行测试的过程,白盒测试是根据测试的内部结构而设计测试数据,发现程序的错误。4)静态测试静态测试包括代码审查和静态分析。3软件测试的目的G.Myers关于软件测试目的的观点是:(1)测试是为了发现程序中的错误而执行程序的过程;(2)好的测试方案是极有可能发现迄今尚未发现的尽可能多的错误的测试;(3)成功的测试是发现了迄今尚未发现的错误的测试。测试复杂性在理论上看,不论采用哪种测试,只要对每一种可能的情
4、况都进行测试,就可以得到完全正确的程序。我们称包含所有可能的测试称为穷尽测试。而在实际中,穷尽测试是不可能做到的。图8.1黑盒测试复杂性例子无论采用黑盒法还是白盒法,要做到穷尽测试,在时间上和代价上都不可能,只能选择部分测试用例尽可能多地行测试,找到尽可能多的错误,也即是进行有穷测试。5测试的基本原则(1)测试前要认定被测试的软件有错,不要认为被测试的程序是正确的;(2)要确定测试软件的预先测试结果;(3)尽量避免测试自己编写的程序;(4)测试时要考虑合理的输入和不合理的输入数据;(5)测试时应以软件需求规格说明书中
5、的需求为标准;(6)要确定找到的新错与已找到的旧错成正比;(7)所使用的测试用例应该纪录下来,以后测试时再用,以供后来的测试和维护使用。7.2测试步骤1测试过程2测试的步骤测试时,首先进行单元测试,再进行组装测试,最后进行确认测试。7.3设计测试方案1白盒法测试的基本技术在工程实践中,白盒法的基本测试思想:分析被测试程序的逻辑结构,选择逻辑执行路径子集设计测试方案。用尽可能少的测试用例子集确定被测试程序的实际执行状态与预期的状态是否一致,期望发现尽可能多的错误。在工程实践中提出了以下几种选择逻辑路径子集的覆盖标准。语
6、句覆盖:执行足够的测试用例,使得被测试程序中每个可执行语句至少被执行一次。判定覆盖:判定覆盖又称为分支覆盖,它的基本思想是:执行足够的测试用例,使得被测试程序中每个语句至少执行一次,并且每个判定分支也至少执行一次.条件覆盖:执行足够的测试用例,使判定条件中的每个条件至少获得一次可能取值的机会。判定/条件覆盖:执行足够的测试用例,使得被测试程序中每个判定分支至少获得一次通过,同时各判定中每个条件至少获得一次可能取值的机会。条件组合覆盖:执行足够的测试用例,使得被测试程序中每个判定条件的各种组合至少获得一次为真和假的机会
7、。点覆盖边覆盖路径覆盖:执行足够的测试用例,使得被测试程序中的每条可能路径至少执行一次2黑盒法测试的基本技术1)等价分类法将程序模块的所有可能输入数据(有效与无效的)划分为若干等价类,在指定等价类中任取一组数据作为一个测试用例,作为该等价类的代表,并且假定:如果该组数据可以检查出程序的错误,则该等价类中其他组数据也可以产生同样的错误,相反,如果该组数据没有查出错误,则使用该等价类中其他数据组执行程序也是正确的。⒉)边界值分析:程序在处理边界情况时最容易发生错误,许多程序错误出现在下标、数据结构和循环等等的边界附近。3
8、)错误推测法在很大程度上该方法靠直觉和经验进行。它的基本思想是:列举出程序中可能有的错误和容易发生错误的特殊情况,并且根据它们选择测试方案。7.4单元测试1单元测试的内容1)模块接口测试通过测试模块接口的数据流是否可以通畅地流入/出模块,如果数据不能正常地进出,则其他测试都不能进行。2)局部数据结构测试模块内部数据是否完整,内容、形式、相关关系
此文档下载收益归作者所有