预览加载中,请您耐心等待几秒...
1/5
2/5
3/5
4/5
5/5

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

软件测试概述_软件测试方法概述【摘要】软件在开发过程中不可避免的要出现各种错误,为了最大限度地确保其质量必须进行软件测试。文章即对软件测试的主要方法进行了介绍与说明,以供参考。【关键词】软件质量;软件测试;黑盒测试;白盒测试1、引言随着计算机技术的迅速发展和越来越广泛深入地应用于国民经济和社会生活的各个方面,随着软件系统的规模和复杂性与日俱增,软件的生产成本和软件中存在的缺陷和故障造成的各类损失也大大增加,甚至会带来灾难性的后果。软件质量问题已成为所有使用软件和开发软件的人关注的焦点。由于软件是人脑的高度智力化的体现和产品这一特殊性,不同于其他科技和生产领域,因此软件与生俱来就有可能存在着缺陷。如何防止和减少这些可能存在的问题呢?回答是进行软件测试。测试是最有效的排除和防止软件缺陷与故障的手段,并由此促进了软件测试理论与技术实践的快速发展,新的测试理论、测试方法、测试技术手段在不断涌出,软件测试机构和组织也在迅速产生和发展,由此软件测试技术职业也同步完善和健全起来。无论怎样强调软件测试的重要性和它对软件可靠性的影响都是不过分的。在开发大型软件系统过程中,我们力求在每一个阶段结束之前通过严格的技术审查,尽可能早地发现并纠正差错,如果在软件投入生产性运行之前,没有发现并纠正软件中的大部分差错,则这些差错终究会在生产过程中暴露出来的,那时不仅改正这些差错的代价更高,而且往往会造成很恶劣的后果。测试的目的就是在软件投入生产运行之前,尽可能多地发现错误。2、软件测试的基本问题一个软件生命周期包括:制定计划、需求分析定义、软件设计、程序编码、软件测试、软件运行、软件维护、软件停用等8个阶段。软件测试的根本目的是为了保证软件质量。软件质量是指与软件产品满足规定的和隐含的需求的能力有关的特征或特征的全体。软件质量反映以下三个方面:1)软件需求是度量软件质量的基础。2)在各种标准中定义开发准则,用来指导软件人员用工程化的方法来开发软件。3)往往会有一些隐含的需求没有明确地提出。如果软件只满足那些精确定义的需求,而没有满足这些隐含的需求,软件质量也不能得到保证。软件质量内涵包括:正确性、可靠性、可维护性、可读性、结构化、可测试性、可移植性、可扩展性、用户界面友好性、易学、易用、健壮性。3、软件测试的原则1)尽早地和及时地测试应作为软件开发人员的座右铭,测试应当从软件产品开发初始阶段即开始。2)测试用例应当由测试数据和与之对应的预期结果这两部分组成。3)在程序提交测试后,应当由专门的测试人员进行测试,避免由程序设计者自行检查程序。4)测试用例应包括合理的输入条件和不合理的输入条件。5)严格执行测试计划,排除测试的随意性。6)充分注意测试当中的群体现象,测试经验表明,约一半(47%)的错误仅与系统中4%的程序模块有关。7)应对每一个测试结果做全面的检查。8)保存测试计划、测试用例、出错统计和最终分析报告,为维护工作提供充分的资料。4、软件测试的种类及方法软件测试的种类大致可以分为人工测试和基于计算机的测试。而基于计算机的测试又可公为黑盒测试和白盒测试。这些测试方法在软件开发的最后检测阶段有着重要的作用。4.1黑盒测试黑盒测试又称功能测试。黑盒测试顾名思义就是将被测系统看成一个黑盒,完全不考虑程序的内部结构和处理过程,从外界取得输入,然后再输出。也就是,黑盒测试是在程序接口进行的测试,它只是检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并保持外部信息的完整性。黑盒测试在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。黑盒测试方法主要有等价类划分、边值分析、因果图、错误推测等。4.2白盒测试白盒测试也称结构测试,白盒测试需要知道产品内部工作过程,可以通过测试来检测产品内部动作是否按照规格说明书的规定正常进行。也就是说,完全了解程序的结构和处理过程。这种方法按照程序内部的逻辑测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能。白盒测试的主要方法有逻辑驱动、基本路径测试等,主要用于软件验证。粗略看起来,不论采用上述哪种测试方法,都不可能把所有可能的输入数据都拿来进行所谓的穷举测试,因为可能的测试输入数据数目往往达到天文数字。因为不可能穷尽测试,所以软件测试不可能发现程序中的所有错误,也就是说,通过测试并不能证明程序是正确的。但是,我们的目的是要通过测试保证软件的可靠性,尽可能地发现错误并纠下错误,提高软件的质量,因此,必须仔细考试设计测试方案,力争用尽可能多的测试发现尽可能多的错