刘燕俐
[摘要] 随着网络信息技术的发展,软件测试在提升软件的操作水平和保障软件质量方面都起到了非常重要的作用。本文就软件测试的内涵和分类进行了具体的说明,分析了当前我国软件测试发展过程中存在的问题,并提出关于软件测试创新发展的几点建议,以推动软件测试行业更好地发展。
[关键词] 软件测试; 内涵; 分类; 瓶颈; 途径
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2012 . 02. 036
[中图分类号]TP311.5[文献标识码]A[文章编号]1673 - 0194(2012)02- 0065- 02
1软件测试内涵及分类
1.1 软件测试的内涵
从理论上讲,软件测试主要是指通过使用人工测试或者自动手段来测试软件或者系统的过程以达到检验软件是否能够满足预定的需求目的的一种测试。
1.2 软件测试分类
(1) 静态测试。静态测试主要是指不需要运行程序,而仅仅通过分析或检查源程序的语法、结构、过程、接口等方面对软件进行测试。一般来说,静态测试是通过人工测试来完成。静态测试主要是从软件规格说明书、软件设计说明书、源程序结构分析、流程图分析、符号执行等诸多方面开展测试。
(2) 动态测试。动态测试主要是指通过运行软件程序检查运行结果与预期结果的差异来分析软件程序运行效率及软件性能的一种测试。动态测试一般包括软件构造测试实例、执行程序、分析程序的输出结果等方面。目前,动态测试也是软件测试工作的主要方式。
(3) 单元测试。单元测试主要是开发者编写一小段代码,用于检验被测代码的功能是否正确的一个最低级别的测试。一般来说,单元测试不仅仅是作为一种无错编码辅助工作对软件进行测试,在软件测试中,无论是在软件修改期间还是软件运行期间,单元测试必须是可重复的。
(4) 集成测试。集成测试主要是在单元测试的基础上,将所有模块按照设计要求(如根据结构图〕组装成为子系统或系统而进行的一种测试。简单地说,集成测试是单元测试的逻辑扩展,在测试者进行集成测试的工作实践中,测试者要将所有的软件单元按照规定的要求来组装成模块、子系统或系统,在集成测试的过程中,测试工作人员必须按照相应技术指标对电子产品进行测试,只有这样,才能确保集成测试的效果。
2软件测试当前发展中存在的问题
软件测试对信息技术的发展起到了重要的作用,但是因为软件测试这一项目发展历史比较短暂,因此不可避免地出现了一些问题,主要表现在以下几个方面。
(1) 缺乏软件测试意识。缺乏软件测试意识是当前软件测试行业存在的主要问题。当前我国电子软件行业普遍存在重视软件开发而忽视软件测试的现象,没有意识到软件测试对软件行业发展的重要意义。软件开发人员往往在软件编程时全身心投入去做,但是由于没有意识到软件测试工作的重要性,并不重视软件测试,导致软件测试中出现差错,影响了软件开发的准确性,不利于软件的后期使用,同时造成前期的软件的编程工作也是事倍功半,没有收到好的效果,甚至造成交付给用户的软件无法使用。
(2) 缺乏专业的软件测试人员。缺乏专业的软件测试人员是当前我国软件测试行业存在的主要问题。当前我国很多软件开发企业中普遍缺乏专业的测试人员。大多数的软件测试工作都是由编程人员自己进行的,编程人员往往不会轻易找出自己软件编程的错误,在测试的时候,其思维方式和专业的测试人员不同,通常他们会认为软件开发和编程都是正确的。因此导致他们在软件测试过程中不能及时发现问题。同时,产品提交给用户后也缺乏专业的软件客服人员对软件进行跟踪处理。微软公司会定期对Microsoft Office用户反馈信息进行分析,便于开发和测试人员进行软件的修补和维护;而我国部分中小软件企业的产品则缺乏这方面的服务。
(3) 软件测试缺乏统一标准。软件测试缺乏统一的标准给软件测试的发展带来了很大的困扰。一般来说,软件测试的代码都是按一定标准进行编写,在实际工作中,测试代码是不能随意编写的,但是实际工作中,编写出来的测试代码以及测试代码运行的情况往往表现出一种随意性和无序性。当今软件测试行业对影响软件缺陷的重要度和修复度都缺乏统一的标准,使得部分软件缺陷在修复的过程中难免引入新的软件缺陷,影响了软件的正常使用。所以在今后的软件测试中,必须确保测试的标准要统一,要求测试者真正做到按照统一的规定来测试。举一个简单的例子,软件工作人员一般都知道,在软件测试中矩阵的行为测试,列为需求。矩阵中,用数字1标识该行的测试用例核实了该列的需求。根据矩阵中1的位置,我们可以判断出是否有需求未被核实,或是否有测试用例为无效用例。
3软件测试发展创新途径
为了更好地推动软件测试的发展,需要不断提高软件测试工作效率,解决上述软件测试中存在的问题。为此,本文提出以下建议。
(1) 重视软件测试。重视软件测试是推动软件测试创新发展的关键。软件测试人员的工作就是尽量发现软件中的错误,成功的软件测试就是尽量让软件出错。优秀的软件测试人员往往使用较少的测试用例就可查找出较多的软件错误。只有真正从主观方面重视了软件测试的重要性,才能在日常的软件测试中真正实现用户期望的功能。重视软件测试可以避免很多事故的发生。1998年,美国发射火星气候探测器被毁,其主要原因就是在测试软件的过程中没有检测出公英制度量衡使用混乱。因此重视软件测试工作是规范软件开发流程、避免软件开发出现错误的关键。
(2) 培养专业的软件测试人员。培养专业的软件测试人员是当前我国软件测试发展创新的重要要求。专业的软件测试人员更清楚软件在测试的过程中哪方面容易出现问题,与非专业的软件测试人员相比,更容易找到问题所在。同时,不同的软件测试需要不同的管理方法,例如,软件开发者对于他们编写的代码缺乏免疫力,但是专业的软件测试者已经接受了关于软件代码和软件测试程序易错点等方面的培训,专业的软件测试员更了解软件测试、集成测试、系统测试等诸多方面的标准,在测试的过程中具有针对性,更容易找出错误所在。
(3) 统一软件测试的标准。统一软件测试的标准是当前提高我国软件测试行业水平的重要保障。只有统一软件测试的标准,在日常的工作中,才能加强企业与企业、地区与地区之间的合作。举一个简单的例子,我国软件测试业尚未对缺陷修复率等指标制定统一标准,江苏某企业则从规章制度上规定, 一、二级错误修复率应达到100%, 三、四级错误修复率应达到80%以上,五级错误修复率应达到60%以上。从规章制度上规定了软件错误修复率,可以减少测试工作人员之间的争议,更好地进行软件测试工作。
4总结
随着软件行业的发展,软件测试的重要性和必要性将日益彰显,软件测试的发展创新已成为软件项目管理的一项重要工作。在今后的软件测试工作中,软件测试人员需要培养软件测试的意识,软件公司要多采用专业的软件测试技术员,软件行业要统一行业规则。只有这样,才能真正解决软件测试在发展中存在的问题,才能真正实现软件测试行业的发展创新,才能推动我国软件测试业的高效发展。
主要参考文献
[1] 曹思千. 软件可靠性一致性评价方法研究及原型辅助工具设计与实现[D]. 北京:北京交通大学,2010.
[2] 崔正斌. 软件可靠性预测技术研究[D]. 郑州:解放军信息工程大学,2010.
[3] 刘超,张茂林,等. 软件集成测试的群体协同工作模式及其特性[J]. 软件学报,2000(6).
[4] 胡世亮,臧斌宇,等. 数据流分析中的区域覆盖技术[J]. 软件学报,2000(3).
[5] 翁南钐,蔡德钧. 基于构件的软件工程及其测试、维护和实践[J]. 计算机工程与应用,2000(2).