本文首先界定了软件测试的内涵,然后归纳性分析了当前软件测试的新途径,最后对于软件开发与测试的工作提出了几点意见。
科学技术日新月异,计算机的软件的产品在经济发展之中扮演着比较重要的角色,在其中软件的质量在软件的使用之受到比较大的关注。
总之,软件质量的保证需要软件测试来保证,其中主要的步骤便是对于软件的需求规格进行检查、程序代码以及设计说明进行相关的复审。从软件测试的内涵出发,可以明确软件测试在软件开发过程之中的地位。
软件测试是软件质量保证的必要手段,软件测试的分析方法在软件的分析以及使用的整个过程之中占据着举足轻重的地位。本文主要是想要探讨,如何选择软件开发测试的高效途径,并且选择一个正确的软件开发以及测试的途径的重要性。
1 软件测试概述
软件测试的主要目标是对测试方案可能出现的问题进行评估以及分析;主要的途径是通过设计软件测试的工具,从而能够依照软件测试的性能,以及功能方面的内容对于软件进行测试,并且因为不同的工具的测试的不同的特点,能够对整个测试的系统进行相关的维护以及建构,最终,执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。
在被测试的软件的可行性的周期之中,软件测试在其中占据着比较重要的位置。从软件的开发成本来看,便可以明了软件测试的重要性,其中软件测试占了软件开发成本的30%到50%。
根据笔者的实际工作经历,在软件测试比较特殊的状况中,公司对于软件的可靠要求自然也会比较高,然后造成其中对于软件进行测试的费用高达所有其他软件工程阶段费用总和的3~5倍。
软件开发测试的途径在实际工作之中有着一般意义之上的惯常途径,在软件开发的过程实现关键在于软件测试的设计用例的设计。测试用例的设计其中需要包含规范的输入和输出,以及功能性。测试用例自身都有着明确的测试目标,在软件测试之中可以根据不同的角度对于软件测试的方法进行下面的讨论:
2 当前软件测试的新途径
2.1 测试驱动开发
测试驱动开发(Test—Driv6n Development)是极限编程的重要的实现途径,其思路便是先编写软件测试的代码,其中测试代码的编写是所谓的开发功能的编写。主要功能便是,在相关的软件测试代码编写完毕后,继续不断循环使得软件的全部功能得到相关的开发,最终实现软件的测试的全部功能的实现。
2.2 自动化测试
自动化测试其中主要是由软件测试的软件进行相关的自动化的测试,其中自动化测试的工具以及手段,应该能够按照工程师自身设计的相应的预测进行智能化的测试。其优点以及目标便是降低测试的劳动量,最终充分提升软件测试质量。
自动化测试的特点在于,从测试计划的实施到执行的整个过程,都需要人工自身参与,测试专家James Bach总结得85%的缺陷靠手动发现,但是自动化测试只能发现被测之中的l 5%的缺陷。结合笔者自身实际经验,在软件开发之中应用自动化测试,不能立竿见影,降低工作量,并且相关测试工程师也不能够期望自动化可以囊括所有的缺陷。
2.3 探索性测试
根据James Bach对探索性测试的定义,探索性测试实现的主要方式是通过对于软件的实际情况,以及测试的设计方案同时全面覆盖的测试方法。
探索性测试这种比较新的高效测试途径是对传统的软件测试方法的有益的补充,但是要具体情况具体分析,并不是所有的测试都比较适合探索性的测试,探索性测试对于测试的人员的素质提出了比较高的要求,探索性测试有着自身的优点,此种测试方法能够提升测试的速度,并且能够保证质量完成测试的任务,此种测试方式是技软件测试目前比较关注的区域,但是此种测试方式需要相应的进一步规范自身的流程。
3 对软件测试工作的分析与建议
软件测试的最终目标是验证产品的性能,从而找出测试产品之中的 b u g点,最终完成产品的开发的全过程。作为一名合格并且有些的工程师,首先具备一定的程序调试的技能,其次精通一门或多门的编程语言,再次掌握测试工具的开发和使用技术。
对于工程员的自身的性格素质也提出了要求,要求工程师,有着比较好的耐心,并且能够根据本身任务的难易以及轻重缓急而安排相应的任务。以下是笔者根据自身的实际工作,对于实现高效的测试途径提出的建议:对测试工作的建议:
(1)分析被测软件,制定测试需求计划,科学合理编写测试的流程,并且按时提交文档,从而规范软件测试工作的时间,丰富软件测试的说明;
(2)准确而详尽的记录测试过程所产生的数据。
(3)头脑清醒分析软件测试的结果,并且及时与相应的开发程序员做好沟通;,及时与开发人员进行沟通。
(4)设计完整并且高效的测试用例,提高测试的语句覆盖率。
(5)总结归纳程序的失效以及人机界面失效的原因,最终可以使得软件开发的工作能够在这两个方面有所提升。
(6)分析读数组边界、栈数组边界、初始化内存等类型的内存使用错误的原因。
(7)保持严谨的工作作风,从而对于BUG能够反复推敲。在软件的测试以及开发的过程之中,比较关键的是对于程序对于Bug的处理以及跟踪。软件测试人员重要的使命便是对于已知的 Bug进行有效的跟踪和管理,确保被测试产品之中出现的问题能够得到有效的解决以及补救。
作者:陈旭东 来源:电子技术与软件工程 2015年3期