1、软件测试是做什么?

  传统书籍上面的、市面上大部分书籍都是如下几个观点、这个观点在我从事软件测试之初便留在了我心里、直到近才开始有所改变。

  1)测试是为了发现程序中的错误而执行程序的过程;

  2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;

  3)成功的测试是发现了至今为止尚未发现的错误的测试。

  我们可以这样看待软件测试

  1.1 目标:软件测试是为了度量和提高被测软件的质量

  1.2 本质:围绕测试件进行设计、实施和维护的整个生命周期过程。

  2、软件测试手段和方法

  在实际工作中我们用到的软件测试方法或者是手段我们在工作中用到多的可能是下面介绍中的前4个 、但是我的主要介绍缺陷分析和预防手段、也是我们的主题“从发现缺陷到提高质量”

  2.1 测试设计方法(黑盒、白盒、灰盒)

  2.2 不同层次的测试(单元、集成、系统、验收)

  2.3 不同测试手段、基于脚本、探索式测试

  2.4 功能测试、性能测试、安全性测试、自动化测试、、、

  2.5 缺陷分析和预防手段

  2.6 将测试推动到上游

  2.7 关注和提高产品的可测试性

  2.8 把测试变成“所有人的测试”

  3、对待缺陷的态度

  说完软件测试手段和测试方法之后我们来看看对待缺陷态度、当然对于第一条大家是否认为很少出现、其实不然对于一些敏捷开发的公司来说、记录缺陷的实际也很宝贵、另外一些小公司测试流程不规范的时候也会大家私底下解决。

  3.1 偷懒型:私下和开发沟通并期待下一个版本解决问题

  3.2 踏实型:如实记录缺陷的操作方法、并力争用同样的方法发现更多缺陷

  3.3 思考型:分析缺陷原因、通过原因分析建立测试模型、通过测试模型发现更多缺陷

  3.4 一劳永逸型:找到缺陷根源、在设计阶段或者编码阶段通过规则避免这样的缺陷被引入

  4、缺陷分析方法

  下面我们进入重点、缺陷分析方法、目前我们常用的缺陷分析方法如下几条

  4.1 ODC(正交缺陷分类)

  4.2 RCA(根本原因分析)

  4.3 BUG Taxonomy(BUG分类)

  4.4 静态代码检查

  PS:经验之谈:虚拟测试:产品还没有被提交到测试时或者是研发还没有完成代码时、可以找开发工程师了解开发工程师所设计的问题对其进行了解、并且问一些异常流程、看开发是怎么实现的。以便于将缺陷发现与编码阶段。