软件开发全过程检测及软件测试自动化
SEI的SW-CMM在它的成熟度第三级的“软件产品工程”关键过程域中,把软件开发周期中不同阶段的测试作为实施活动中的关键实践。(在SW-CMM版本2.0 的讨论过程中,曾经有过提议,在成熟度第二级设立一个关键过程域“软件测试管理”。但在版本2.0 的讨论稿C 中,并没有这样做。从这里我们也可以看出,SW-CMM本身也是一个人为地制定的“软件”。)软件测试技术第一门户"ktn.S_&u]$cJ mc
;W;nS _N3Td0 一般地,基于开发周期中不同阶段对不同对象所进行的测试,可划分为:软件测试技术第一门户W _sK q4[
b}1wU8bkY0 单元测试(unit test ):
6sM C\2|0 由编程的开发人员自行计划与完成的,针对单个或相关联的一组程序单元的测试。
组装测试(inegration test ):
/wahI-DCG0 计划于设计阶段,由开发人员与测试人员合作完成的,针对结合起来的不同单元以及它们的接口的测试。软件测试技术第一门户 f| x7Y-a)W WH9Qo
A(lIp_%vlq0 系统测试(system test ):(可认为包括“可用性与图形用户界面测试”)软件测试技术第一门户4a`Vv;vk"g(t
测试整个系统,以证实它满足要求所规定的功能、质量和性能等方面的特性。
|pY| V+e7jP qV0 回归测试(regression test ):
^r
WjY D.}
p'Vj0 用于验证改变了的系统或其组件仍然保持应有的特性。软件测试技术第一门户6m0m?$C^`N
验收测试(acceptance test ):软件测试技术第一门户7|Q+]#XS#V0q+k
测试整个系统,以保证其达到可以交付使用的状态。软件测试技术第一门户{a j]5s
i1o[
u)h$v%FZ_'y0fh3i4Z0 关于上述各阶段的测试的具体内容及实现的方法,读者可参考SW-CMM及有关软件工程和软件测试的书籍。千万不要停留在只参考SW-CMM,因为该文件只讲述要做些什么,而没有介绍怎样做。同时,所有的资料中谈及的内容及方法,都是一般化的。对于一个特定软件的测试,必须经过使用者对通用的测试方法的改变及改进,才能有效和达到高效率。软件测试技术第一门户\4W!t8i7ZFls(y J
Hip7b'TtJ0 下面,谈谈软件测试的其他方面的一些问题。软件测试技术第一门户m7_'q'ng#B;[8L
软件测试技术第一门户fqd:cX/@fw一个被人忽略的软件测试目的软件测试技术第一门户$za Kq M }
软件测试技术第一门户2Cj1z:i9N*u1F0]m ^在谈到测试时,许多作者都引用了Grenford J. Myers 就软件测试目的提出的以下观点:软件测试技术第一门户+la.}R2I9kuB j2T4B
8Uy?@#N N'h2X9F0 1.测试是程序的执行过程,目的在于发现错误;软件测试技术第一门户Hu kIi(Az
2.一个好的测试用例在于能发现至今未发现的错误;软件测试技术第一门户]~3Si
`
?
3.一个成功的测试是发现了至今未发现的错误的测试。软件测试技术第一门户`;va#pG-Z,aYh
1ir%O2~ _ B dokx0 这是一种比较狭窄的观点。作为一个清醒的、纵观全局的软件开发人员或管理者,我们应当从软件过程的角度来看测试。软件测试技术第一门户Xm"N*dn
软件测试技术第一门户 n#^h6w\s+K4[一个被人忽略的软件测试目的是:测试可以帮助发现当前开发工作所采用的软件过程(也是一个“软件”)的缺陷,以便进行改进。(在以下的讨论中,“错误”与“缺陷”基本上认为代表相同意义。)软件测试技术第一门户I?"^xo3w-J
&`c6DE!nQ\g)s0 怎样理解这种说法呢?