欢迎来到天天文库
浏览记录
ID:33870707
大小:386.99 KB
页数:26页
时间:2019-02-28
《西安工业大学《软件工程》第七章 测试》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第七章测试编码阶段结束后,开始进入测试阶段。无论采用何种开发模型开发出来的大型软件系统,由于客观系统的复杂性,人的主观认识的狭隘性,不可能对要开发的系统具有完美的认识。虽然在软件开发的每一阶段都进行了技术审查和管理复审,也不可能把设计中所有潜在的错误检查出来并进行纠正,而且在编码阶段也会引入新的错误,软件设计环节的错误,如果不进行纠正,在使用阶段可能造成的损失会很大。所以软件在交付使用之前必须进行严格的测试,通过测试找出软件在需求分析、设计和编码阶段隐藏的错误,并加以改正。由于软件产品具有逻辑复杂性,所以软件测试的工作量和工作难度不亚于软件分析和设计,据统计测试
2、工作量占软件开发总工作量的40%~50%以上。而测试的范围存在于软件的整个生命周期,而不仅仅局限在程序编码阶段。7.1测试的基本概念和原则软件开发的前几个阶段是构建软件系统,而软件测试则尽力找出软件的失败和不足之处,表面上看设计是建设性的,测试是破坏性的。事实上这两个过程都是为了提高软件的质量。测试是保证软件质量的重要手段之一。7.1.1测试的必要性大多数人认为在进行软件开发时,认为对软件系统编码结束后,整个软件系统的开发已经基本完成,对测试的理解是把程序看一遍,如果发现了错误,记录错误然后通过调试改正错误,测试过程就结束了。在测试理论形成的早期,一些软件开发公
3、司由于忽视软件的测试,造成了巨大的经济损失。所以测试对提高软件的质量具有很大的重要性。虽然在软件生命周期的各个阶段都有严格的技术审查和管理复审,但是经验表明,审查不能发现所有的差错;在编码过程中,程序员的编程水平对软件的影响很大,但是不管经验多丰富的程序员在编程中都会引入一些错误。如果这些错误在软件交付前没有被测试出来,投入使用后往往带来严重后果。7.1.2测试的概念⒈软件测试软件测试是对软件计划、软件设计和软件编码进行查错和纠错的活动,这个过程包括了代码执行活动和人工活动。测试的目的是找出软件开发整个周期中各个阶段的错误,分析错误的性质和位置而加以纠正。纠正的
4、过程包括对文档和代码的修改,找错的活动称为测试,而纠错的过程称为调试。软件测试过程覆盖软件开发的整个阶段。⒉程序测试程序测试是对编码阶段出现的语法错、语义错、运行错进行查找的编码执行过程。通过查找编码错和纠正编码错来保证算法的正确实现。软件测试过程覆盖软件开发的整个阶段,程序测试则仅限于编码阶段。⒊动态测试动态测试包括白盒测试和黑盒测试。黑盒测试是根据软件的功能而设计测试用例而进行测试的过程,白盒测试是根据测试的内部结构而设计测试数据,发现程序的错误。⒋静态测试静态测试包括代码审查和静态分析。.代码审查是由有经验的程序设计人员根据软件详细设计说明书,通过阅读程序
5、发现软件的错误和缺陷。主要检查代码和设计的一致性、可读性、代码逻辑表达的正确性和完整性、代码结构的合理性等。这种方法不需要专门的测试工具和设备,一旦发现错误就能定位错误,但是此方法具有一定的局限性。静态分析,主要对程序进行控制流分析、数据流分析、接口分析和表达式分析等。静态分析一般由计算机辅助完成,由于使用的程序设计语言不同,相应的静态分析工具也就不同。目前,具备静态分析功能的软件测试工具有很多,如针对汇编语言和C语言开发了一些静态测试分析工具。7.1.3软件测试的目的在进行测试之前,正确理解测试的目的是至关重要的。测试的目的决定了测试方案的设计。某些人认为“测
6、试是为了表明程序是正确的”或“成功的测试是没有发现错误的测试”等等,基于这种思想对软件进行测试,会设计一些不易暴露错误的测试方案;相反,如果认为测试是为了发现软件中的错误,就会设计出最能暴露错误的测试方案。G.Myers关于软件测试目的的观点是:(1)测试是为了发现程序中的错误而执行程序的过程;(2)好的测试方案是极有可能发现迄今尚未发现的尽可能多的错误的测试;(3)成功的测试是发现了迄今尚未发现的错误的测试。由上述可知,测试的目的是应该尽量找出软件中隐藏的错误并加以纠正,而不是通过测试证明软件没有错。所以,通过测试不是证明软件是正确的。通过测试只能从软件中找到
7、错误,而不可能证明程序中没有错误,即使选择测试方案最完美,软件中仍然可能隐藏着错误。从表面上看,设计是构造,而测试是破坏,但两者的目的都是开发出高质量的软件产品。明确了测试目的,从心理学的角度,由程序的编写者测试自己编写的软件是不恰当的,但综合测试阶段通常由其他人员组成测试小组完成测试工作。7.1.4测试复杂性测试任何产品一般有两种方法:黑盒测试和白盒测试。如果已经知道了产品应该具有的功能,采用黑盒测试检验产品的每个功能是否能够正常使用;如果知道产品的内部工作过程,采用白盒测试来检验产品内部动作是否按照规格说明书的规定正常运行。对于软件测试而言,黑盒测试只在程序
8、的接口进行测试,检查程序
此文档下载收益归作者所有