1. 如何降低测试遗留的风险?
2. 如何实现测试驱动开发?
3. 测试的效率
如何降低测试遗留的风险?
A.需求分为用户需求,产品需求和软件需求。用户需求是我们开发软件的目标或是基础。而产品需求是站在技术实现的角度或能力的前提下来分析用户的需求,确定实现的方法(假如用户提出需求,要求我们的产品能够满足手机支付的功能,这在技术范围内可以实现;但是如果用户要求我们的产品在满足他的支付功能后,还要顺便打扫一下房间,就不可能实现了。)产品需求中定义好了内容,那软件需求才是最终这个产品/项目面向用户最终的表现形式(我们最终是以何种方法,何种对象,何种途径交付用户使用)。因此用户需求决定产品需求,产品需求决定软件需求,软件需求是开发和测试的依据。
B.根据缺陷的成本公式,发现缺陷的时间越早,成本越低。如果需求本来就不完善,或者需求本身就有缺陷,将使开发和测试偏离正确的方向。这所造成的成本也是最高的。
C.软件需求的详细程度影响到开发和测试的效率。软件需求是连接最终用户和开发人员的桥梁。而且开发过程应该是一个规范和可控的过程,软件需求如果不全面,开发人员随意发挥的情况就会增加,而测试和开发对问题的看法不同,如果没有软件需求为依据,测试和开发经常为了些底层实现的问题上争论,会影响到测试和开发的效率。
D.目前我们的需求不是很全面,而系分文档也未规范一些细节方面的东西(如:系统出异常时会出现什么结果,弹出的对话框中提示信息是什么)。一般情况下,我们是在测试分析和编写测试用例中才由我们测试人员对系统的各种需求进行分析。而测试用例,测试分析开发人员基本上不会关注,因此开发过程可能并不如我们预期的方向在前进。
E.尽可能要求PD在软件需求和系分中对所有功能点,影响范围分析和描述清楚。测试是保证质量的最后环节,不要在最后环节才来分析和规范软件需求中就应该做的事情。
如何测试来驱动开发?
A. 测试驱动开发不仅仅是把测试工作提前。(帮助把整个项目工作提前)
B. 不应该把开发过程看成是黑箱操作。
C. Daily Build模式。
什么是测试的效率?
<>速度
=速度+质量(和进度)
速度:
a) 正向(执行)的速度
b) 停止的速度(双向)
c) 追溯的速度(能够很快找到以前作过的事情或事务的速度)
d) 模仿的速度
质量
a) 泄露的能力(-)
b) 优化的能力
c) 符合程度
d) 提高的能力(总结、分析、蜕变的能力)
进度
a) 符合程度,进度控制,使进度不发生变化的能力
b) 变更范围,进度控制,使进度变化范围小的能力
c) 满足率,即使进度变化,也能完成的能力