软件测试十诫

软件测试十诫

    八周的软件测试技术课结束了,经过八周的学习对软件测试技术有了一定的了解。总结一下发现其实自己学到的也只有那么一点。测试的意义和作用之类的就不多赘述了。

  1. 软件测试的工作流程是了解需求,设计测试,实现测试用例,运行测试,总结分析。
  2. 软件测试在不同的软件开发流程中都起重要作用。比如在V字开发模型中,验收测试、系统测试、集成测试的设计工作可以在需求分析、概要设计和详细设计阶段就可以展开;在XP模型中,除了必不可少的单元测试以外,每天都要进行大量的集成测试,回归测试。可以说,软件测试伴随整个软件开发的过程。
  3. 软件测试分为正向测试和逆向测试。一般来说,都是对输入空间划分。设计测试的过程就是对输入空间的划分。
  4. 在软件测试实践中,除了根据功能或者程序结构设计测试并生成测试用例以外,还会用到在开发过程中用到的defeat list,这是对积累的经验的利用。
  5. 设计测试的方法可以分为面向功能的测试和面向结构的测试,主要目的都是覆盖,对功能的覆盖,对结构的覆盖(比如对图的覆盖),测试设计得好坏的衡量标准的衡量就是靠覆盖程度来度量。
  6. 面向功能的测试对输入空间的划分一般有三种方法,很平衡。等价类划分,边界值,因果图,决策表。等价类很直观,有效类无效类划分很清晰;边界值法很机械,但是管用,就是测试用例实现工作量大;决策表严格,实现测试用例工作量小,但是设计的时候工作量太大。氪不改命,玄不救非。问题复杂程度就摆在那里,设计简单必然实现复杂。
  7. 等价类划分实现测试用例的时候,一次最好只包涵一个无效类,这样容易定位错误。当然,等价类的划分也是个问题。前面的总结里就有例子。(详见输入空间划分一篇)
  8. 边界值没什么好说的,简单粗暴,没什么技术难度。
  9. 决策表识别条件桩和动作桩就是个问题,识别条件桩和动作桩不是简单的在说明书中找“如果……就……”,在一般问题中这样很好用。但是在更为一般的问题里,可能需要对问题的条件和动作做恰当的分解。具体的例子在前面的总结中也提到过。(详见决策表例子一篇)
  10. 以上三种方法都不是孤立的,而是相辅相成的。
  11. 对面向功能的测试设计,较多的依赖经验,需要老道的测试经验和问题相关的领域专家的协助。对测试工程师的要求较高。
  12. 反过来,面向结构的测试对测试工程师的要求就不是那么高了,为什么?因为这一部分的理论性较强,每一步做起来都是有章可循,都有相应的理论支撑 ,所以对经验的依赖较小。

(未完待续,啰啰嗦嗦说了这么多,然而却没有什么有用的东西)

软件测试十诫

八周的软件测试技术课结束了,经过八周的学习对软件测试技术有了一定的了解。总结一下发现其实自己学到的也只有那么一点。测试的意义和作用之类的就不多赘述了。

  1. 软件测试的工作流程是了解需求,设计测试,实现测试用例,运行测试,总结分析。
  2. 软件测试在不同的软件开发流程中都起重要作用。比如在V字开发模型中,验收测试、系统测试、集成测试的设计工作可以在需求分析、概要设计和详细设计阶段就可以展开;在XP模型中,除了必不可少的单元测试以外,每天都要进行大量的集成测试,回归测试。可以说,软件测试伴随整个软件开发的过程。
  3. 软件测试分为正向测试和逆向测试。一般来说,都是对输入空间划分。设计测试的过程就是对输入空间的划分。
  4. 在软件测试实践中,除了根据功能或者程序结构设计测试并生成测试用例以外,还会用到在开发过程中用到的defeat list,这是对积累的经验的利用。
  5. 设计测试的方法可以分为面向功能的测试和面向结构的测试,主要目的都是覆盖,对功能的覆盖,对结构的覆盖(比如对图的覆盖),测试设计得好坏的衡量标准的衡量就是靠覆盖程度来度量。
  6. 面向功能的测试对输入空间的划分一般有三种方法,很平衡。等价类划分,边界值,因果图,决策表。等价类很直观,有效类无效类划分很清晰;边界值法很机械,但是管用,就是测试用例实现工作量大;决策表严格,实现测试用例工作量小,但是设计的时候工作量太大。氪不改命,玄不救非。问题复杂程度就摆在那里,设计简单必然实现复杂。
  7. 等价类划分实现测试用例的时候,一次最好只包涵一个无效类,这样容易定位错误。当然,等价类的划分也是个问题。前面的总结里就有例子。(详见输入空间划分一篇)
  8. 边界值没什么好说的,简单粗暴,没什么技术难度。
  9. 决策表识别条件桩和动作桩就是个问题,识别条件桩和动作桩不是简单的在说明书中找“如果……就……”,在一般问题中这样很好用。但是在更为一般的问题里,可能需要对问题的条件和动作做恰当的分解。具体的例子在前面的总结中也提到过。(详见决策表例子一篇)
  10. 以上三种方法都不是孤立的,而是相辅相成的。
  11. 对面向功能的测试设计,较多的依赖经验,需要老道的测试经验和问题相关的领域专家的协助。对测试工程师的要求较高。
  12. 反过来,面向结构的测试对测试工程师的要求就不是那么高了,为什么?因为这一部分的理论性较强,每一步做起来都是有章可循,都有相应的理论支撑 ,所以对经验的依赖较小。

(未完待续,啰啰嗦嗦说了这么多,然而却没有什么有用的东西)

posted @ 2015-05-03 22:56  12218064-测试技术  阅读(292)  评论(1编辑  收藏  举报