发布新日志

  • [ZC][Part]敏捷测试用例设计

    2007-12-05 18:55:50

    敏捷宣言:

            个体和交互比过程和工具更有价值;

            能工作的软件比全面的文档更有价值;

            顾客的协作比合同谈判更有价值;

            及时响应变更比遵循计划更有价值。

    (满有趣的,虽然心中有点抗拒,但我觉得从某方面来说是有效的,只是如果能用不太规范的手段来达到规范的结果呢?这是个学问吧)

    测试用例的粒度

            测试用例可以写得很简单,也可以写得很复杂。最简单的测试用例是测试的纲要,仅仅指出要测试的内容,如探索性测试(Exploratory Testing)中的测试设计,仅会指出需要测试产品的哪些要素、需要达到的质量目标、需要使用的测试方法等。而最复杂的测试用例就像飞机维修人员使用的工作指令卡一样,会指定输入的每项数据,期待的结果及检验的方法,具体到界面元素的操作步骤,指定测试的方法和工具等等。 

            测试用例写得过于复杂或过于详细,会带来两个问题:一个是效率问题,一个是维护成本问题。另外,测试用例设计得过于详细,留给测试执行人员的思考空间就比较少,容易限制测试人员的思维。 

    (同意,有时候觉得写case是个很无效的过程,尤其是反复在写一些很熟悉的case(也许反复做这个工作的我就有问题))

            测试用例写得过于简单,则可能失去了测试用例的意义。过于简单的测试用例设计其实并没有进行“设计”,只是把需要测试的功能模块记录下来而已,它的作用仅仅是在测试过程中作为一个简单的测试计划,提醒测试人员测试的主要功能包括哪些而已。测试用例的设计的本质应该是在设计的过程中理解需求,检验需求,并把对软件系统的测试方法的思路记录下来,以便指导将来的测试。 (这里有我点不赞同,如果不理解需求,如何能写出高效的用例呢?只能说在设计的过程中加深理解)

    ......

    要把测试用例当成“活”的文档(Effective Software Testing : 50 Specific Ways to Improve Your Testing(这是什么? – Elfriede Dustin),因为需求是“活”的、善变的。因此在设计测试用例方面应该把敏捷的“及时响应变更比遵循计划更有价值”这一原则。 

            不要认为测试用例的设计是一个阶段,测试用例的设计也需要迭代,在软件开发的不同的阶段都要回来重新审视和完善测试用例。 (同意,设计用例不应该是一个阶段,那是否很细致的划分阶段本身就有问题呢?)

  • [ZC][Part]我们为什么要写测试用例?

    2007-12-05 17:53:22

    在上年的时候,我曾经把测试用例比喻成盾,而把测试比喻成剑。(http://www.testingreflections.com/node/view/3041),我仍然相信测试用例的创建会有两个用途或目的:
     
            1) 测试用例被认为是要交付给顾客的产品的一部分。测试用例在这里充当了提高可信度的作用。典型的是UAT(可接受)级别。
     
            2) 测试用例只作为内部使用。典型的是系统级别的测试。在这里测试效率是目的。在代码尚未完成时,我们基于设计编写测试用例,以便一旦代码准备好了,我们就可以很快地测试产品。
    ......
     接下来,在测试执行周期中,我不会写任何测试用例。我只会在版本发布后更新测试计划,详细地写出被测试功能特性的列表,以及对应有哪些功能特性不生效、对应的缺陷ID。在版本发布后,我创建详细的测试用例文档描述怎样调用每个功能特性,输入什么数据等等。看起来像是文档,但是有着不同的目标和用途:目的是让回归测试执行更快速进行。例如,我把数据附加上去,从而减少准备数据的时间;我细化一些琐碎的测试用例,测试人员(新手除外)会添加错误处理的一些细节。
     
            我尝试使用测试白板(Testing Dashboard)(这是什么?蛮有兴趣的去替换正式的包含测试用例执行/通过/失败/未执行等信息的测试报告。有时候,我只是通过非正式的所谓我的感觉之类的东西来沟通进度,而这其实是PM(项目经理)想要知道的,而不是测试用例的数字。
Open Toolbar