软件测试中测试用例设计的问题研究
2014-11-27张婵,张倩
张婵,张倩
摘 要:软件测试作为软件质量的保证,受到了IT行业的高度重视。测试用例的设计是软件测试的主要内容。重点分析了测试用例的优点和不足,建议针对不同的软件项目采取不同的测试用例设计方法。
关键词:软件测试;测试用例;用例设计;IT行业
中图分类号:TP311.562 文献标识码:A 文章编号:2095-6835(2014)21-0145-02
近年来,随着IT行业的发展,软件测试备受重视。1983年,在IEEE提出的软件工程术语中,对软件测试的定义是:“使用人工或自动手段运行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清楚预期结果与实际结果之间的差别。”
测试用例是对一组输入数据、运行条件和预期结果的集合。测试用例要求输入的数据必须清楚、明确,如果对运行条件有特殊要求,则需要指明,同时,必须要有预期结果。软件测试的过程是:测试用例设计完后,使用测试用例中输入的数据运行程序,比较程序的实际结果与预期结果——如果一致,表明此条测试用例通过;如果不一致,则表明其中存在缺陷,要将缺陷报告给程序员。测试用例贯穿于整个测试过程,下面简要分析测试用例的相关内容。
1 测试用例设计的误区
测试用例作为软件测试的依据,其重要性不言而喻。但是,要想创建出理想的测试用例是非常困难的。在创建测试用例的过程中,一个微小的错误都有可能毁掉整个测试用例的意图。在设计测试用例的过程中,容易出现以下几方面问题。
1.1 缺乏必要的实施步骤
由于很多测试人员都很重视测试实施的过程,而忽视了测试用例设计的思想,所以,经常匆忙地建立测试用例。这就容易使测试用例中缺乏必要的实施步骤,致使测试员或者程序员不能准确地重复测试。因此,必要的实施步骤一定不能省,这样可以避免在执行测试用例的时候发生描述不清导致模棱两可的情况,从而浪费测试人员的时间,影响整个项目的实施进度。
1.2 测试用例描述得过于详细
虽然提供必要的实施步骤很重要,但是,测试用例中过于详细的描述或冗长的解释会使其难以实施。测试用例的描述要简练、清晰、无歧义,只需要包含足够的信息即可,以便精确地运行测试用例。同时,太多的细节描述会增加用例设计的成本。
1.3 专业术语、缩略词太多
在设计测试用例时,很多测试人员习惯使用缩略词、代号、缩写或专业术语等,他们理所当然地认为每一个运行测试用例的人(包括产品技术支持和持续工程)都知道这些缩略语的含义,但是,实际情况并非如此。如果确实需要使用这些专业术语,那么,对不常见的或是在特定情况下使用的专业术语应该加以注释。同样,太多的细节描述会增加用例设计的成本。
1.4 通过或失败的标准不明确
软件测试的流程是先设计测试用例,然后根据测试用例测试。如果实施测试后,不清楚本条测试用例是否通过,那么,本条测试用例就毫无用处。这时,就要求测试用例的预期结果一定要准确、清晰。在实施测试后,如果实际结果与预期结果不相符,即可判断为不通过,也就说明它存在缺陷,需要提交缺陷报告,反之即为通过。
2 测试用例的优点
2.1 借鉴引用
测试用例存在的价值要远远超过产品发布的价值。产品未来版本的负责人或开发人员需要借助测试用例了解系统的主要功能,分析系统当前版本实现了哪些功能,是如何完成的。因此,为了方便后来者使用和借鉴测试用例,其设计要尽量描述得准确、步骤清晰。完备的测试用例库包括测试用例文档和一个有组织的储存系统,这对产品版本的升级和修订是至关重要的。
2.2 测试进展跟踪
在测试用例管理系统中,前期设计除了包括输入数据、运行条件和预期结果外,随着测试的进行,还要准确且实际地描述测试用例的执行结果,包括其他必填的属性,以便分析人员从各个属性和维度完成测试分析。通过测试用例文档可以跟踪一些属性,比如执行测试用例的覆盖率、测试用例通过或失败的比例、每个功能领域的测试用例总数等。
2.3 可重复性
优秀测试用例文档的描述要求准确、全面,这样才能保证除了自己以外的其他测试人员能够正确理解和执行该用例。这一点同样适用于自动和手动的测试用例。当发现其中存在缺陷时,要准确重现缺陷,或在缺陷修复后进行回归测试,这都是非常重要的。
3 测试用例的缺点
3.1 建立文档的时间
与早期没有系统测试理论时的测试相比,现在建立测试用例文档的时间比较长。但是,从测试用例价值的角度来考虑,建立测试用例文档是一个不可或缺的过程。随着测试人员用例设计熟练程度的提高和对以前测试用例文档的借鉴、引用,这个缺点会逐渐消失。
3.2 功能变化导致测试用例过期
由于软件产品本身的原因和开始时对用户需求的不明确,导致软件产品的功能需求发生变化,而功能需求或者设计和实现的变化常常导致测试用例需要调整和修改,甚至有时候修改用例的时间会超过新建用例的时间。这样,建立测试用例所需的时间很可能因功能的变化而增加,以至于失去控制。因此,在用例设计过程中,测试人员需要与设计、开发人员紧密联系、密切沟通,及时了解功能变化的情况。
4 结束语
由于软件产品本身的特点,导致无论缺陷预防工作贯彻落实得多么好,软件组件总会存在缺陷,开发人员都无法阻止或消除软件开发周期中存在缺陷。因此,软件必须经过完整的测试后才能交付给用户使用。对目前的IT行业来说,软件测试至关重要,而要想设计出既可以找出软件缺陷,又能评估该软件的可用性、可靠性等方面性能的测试用例文档是很不容易的。
参考文献
[1]郑东霞.软件测试技术[M].大连:东软电子出版社,2012.
[2]古乐.软件测试案例与实践教程[M].北京:清华大学出版社,2007.
————————
作者简介:张婵(1982—),女,山东蓬莱人,现为济南职业学院助教。
〔编辑:白洁〕
Test Case Design Problems in Software Testing
Zhang Chan, Zhang Qian
Abstract: Software testing as a software quality assurance, by the IT industry's attention. Test case design is the main content of software testing. Analyzes the advantages and disadvantages of test cases, it is recommended to take a different test case design methods for different software projects.
Key words: software testing; test; use case design; IT industry