软件测试(实际输出与预期输出间的比较过程)
程。换句话说,软件测试是一种实际输出与预期输出之间的审核或者比较过程。软件测试的经典定义是:在规定的条件下对程
序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。
基本信息
软件测试是伴随着软件的生产而生产的。早期的软件开发过程中软件规模都很小、复杂程度低,软件开发的过程混乱无序、相
当随意,测试的含义比较狭窄,开发人员将测试等同于“调试”,目的是纠正软件中已经知道的故障,常常由开发人员自己完
成这部分的工作。对测试的投入极少,测试介入的也晚,常常是等到形成代码,产品已经基本完成时才进行测试。到了上世纪
80年代初期,软件和IT行业进入了大发展,软件趋向大型化、高复杂度,软件的质量越来越重要。这个时候,一些软件测
的基础理论和实用技术开始形成,并且人们开始为软件开发设计了各种流程和管理方法,软件开发的方式也逐渐由混乱无序的
开发过程过渡到结构化的开发过程,以结构化分析与设计、结构化评审、结构化程序设计以及结构化测试为特征。人们还将“
质量”的概念融入其中,软件测试定义发生了变化,测试不单纯是一个发现错误的过程,而且将测试作为软件质量保证(SQ
A)的主要职能,包含软件质量评价的内容,Bill Hetzel 在《软件测试完全指南》一书中指出:测试是以评价
一个程序或者系统属性为目标的任何一种活动。测试是对软件质量的度量。”这个定义至今任然被引用。软件开发人员和测试
开始坐在一起探讨软件工程和测试问题。
软件测试已有了行业标准,1983年IEEE提出的软件工程术语中给团建测试下的定义是:“使用人工或自动的手段来
运行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别”。这个定义
明确指出:软件测试的目的是为了检验软件系统是否满足需求。它再也不是一个一次性的,而且只是开发后期的活动,二十与
整个开发流程融合成一体。软件测试已成为一个专业,需要运用专门的方法和手段,需要专门人才和专家来承担。
测试原则
对计算机软件进行测试前,首先需要遵循软件测试原则,即不完全原则的遵守。不完全原则即为若测试不完全、测试过程中涉
及免疫性原则的部分较多,可对软件测试起到一定帮助。因软件测试因此类因素具有一定程度的免疫性,测试人员能够完成的
测试内容与其免疫性成正比,若想使软件测试更为流畅、测试效果更为有效,首先需遵循此类原则,将此类原则贯穿整个开发
流程,不断进行测试,而非一次性全程测试。
测试方法
1、静态测试方法
静态测试方式指软件代码的静态分析测验,此类过程中应用数据较少,主要过程为通过软件的静态测试(即人工推断或计算机
辅助测试)测试程序中运算方式、算法的正确性,进而完成测试过程,此类测试的优点在于能够消耗较短时间、较少资源完成
对软件代码的测试,能够较为明显的发现此类代码中出现的错误。静态测试方法适用范围较大,尤其适用于较大型的软件测试
2、动态测试
计算机动态测试的主要目的为检查软件运行中出现的问题,较静态测试方式相比,其被成为动态的原因即为其测试方式主要的
依赖程序的运用,主要为检查软件中动态行为是否缺陷、软件运行效果是否良好。其最为明显的特征即为动态测试时软件为运
转状态,只有如此才能于使用过程中发现软件缺陷,进而对此类缺陷进行修复。动态测试过程中可包括两类因素决定动态测试
正确开展、有效开展。
3、黑盒测试
黑盒测试,顾名思义即为将软件测试环境模拟为不可见的“黑盒”。通过数据输出,检查软件内部功能是否正常。测试展开时
,数据输入软件中,等待数据输出。数据输出时若与预计数据一致,则证明该软件通过测试,若数据与预计数据有出入,即便
出入较小亦证明软件程序内部出现问题,需尽快解决。
4、白盒测试
白盒测试相对于黑盒测试而言具有一定透明性,原理为根据软件内部应用、源代码等对产品内部工作过程进行调试。测试
过程中常将其与软件内部结构协同展开分析,最大优点即为其能够有效解决软件内部应用程序出现的问题,测试过程中常将其
与黑盒测试方式结合,当测试软件功能较多时,白盒测试法亦可对此类情况展开有效调试。其中,判定测试作为白盒测试法中
最为主要的测试程序结构之一,此类程序结构作为对程序结构的整体实现,对于程序测试而言具有较为重要的作用。此类测试
方式针对程序中各类型的代码进行覆盖式检测,覆盖范围较广,适用于多类型程序。实际检测中,白盒测试法常与黑盒检测法
并用,以动态检测方式中检测出的位置错误为例,首先使用黑盒检测法,若程序输入数据与输出数据相同,则证明内部数据未
出现问题,应从代码方面进行分析,若出现问题则使用白盒测试法,针对内部结构进行分析,直至检测出问题所在,及时加以
修改。