最近在各博客中看到不少同仁在聊现在越来越热的软件测试技术和测试工程方法,而本人也在一个通讯公司专职测试摸爬滚打了多年,其中有些心得,希望使用容易理解的语言组织成系列和广大同仁分享。其中可能涉及软件测试技术、软件测试设计方法、软件测试建模、软件测试流程/开发流程、软件测试管理、软件测试度量等方面,如有不确之处,还请多多讨论。
搞技术的都知道,技术钻研的越深,越容易有技术情节,但不论如何,软件测试本身就是一个发展中的行业,特别需要不同方面的声音,希望大家着重关心不同情况下适用的技术本质,而不是无谓的争吵。
总体来介绍一下一般的软件测试活动,目前一般比较上规模的创新技术公司或企业,会设立专门的测试岗位,而测试岗位根据具体职位不同有很大的区别,例如厂验(出厂测试,抽样检验产品的合格率),SIT系统集成测试(在开发后期,根据用户使用场景进行测试),SDV系统设计验证(在系统开发阶段,转测试的第一个环节)等等,总体来说,测试工作越向前介入开发阶段,测试含金量越高。而目前各大技术公司逐渐从瀑布、螺旋开发模式逐渐向迭代开发、增量开发、敏捷开发靠拢,越来越关注测试在设计阶段的重要作用,这些都会在后面系列逐一介绍。
我们一般用户接触到的也有测试,例如最近Firefox的Beta测试,微软的体验测试等,这些测试都有一个共性--看不到系统的实现方式,纯黑盒体验测试。方才也提到,测试活动越靠前,越了解系统,越懂得各个开发阶段所使用的测试方法。
在瀑布模型中,开发一般必做的是单元测试,自己写代码,自己打桩写测试代码,主要验证语法、逻辑等基本问题,这里有个问题,测试有个主要的思想是“避免让程序员测试自己的程序”,这是一般是指系统测试,开发人员进行单元测试的效率是很高的,首先自己保证没有导致编译不通过的低级错误、内存泄露等隐藏很深的错误,此类错误在系统测试也可以测试,但成本太高;同事之间的代码Review也是很好的错误检测方法;在各个模块接口完成后,可以进行基本功能联调,这时出现的接口问题是主要的拦路虎。一般有积累的系统,会使用模拟器仿真系统,在实际仿真环境调试,这样效率很高。
本文转载自51Testing软件测试网(查看全文):http://www.51testing.com/html/90/n-178590.html