51Testing:很多人都是自学进入测试领域的,常常会有“该如何进行测试”的困惑,谈谈您的经验。
周峰:测试工作涵盖的内容很广,从测试阶段来分,一般分单元测试、集成测试、系统测试等;从测试类型来分,有功能测试、性能测试、安全性测试、可靠性测试、兼容性测试等通用的一些划分;另外还可以根据是否执行被测对象来区分为动态测试、静态测试等。不同的测试阶段、进行不同类型的测试,所需要具备的技能都不一样。测试工作入门容易,但如果要做到精深,一定要具备下面几方面的专业知识和能力:
1、计算机相关专业课程,例如数据结构、算法、计算机原理、操作系统原理、数据库原理、编译原理、所测系统的开发语言等等。当然不同业务方向的测试可能需要的这部分专业基础不一样,例如做嵌入式系统测试的,可能对计算机原理、操作系统原理等方面专业知识要求高一些,而如果不涉及到嵌入式数据库的话,可能数据库原理就没那么重要了;
2、测试领域的专业知识,例如测试分析工程方法、测试设计工程方法、常用测试工具的使用......
51Testing:现在也有很多测试工具帮助我们进行软件测试,您能简单向我们介绍一下么?
周峰:可以把测试工具分成三大类:1、执行类工具;2、分析设计类工具;3、管理类工具。
其中执行类工具又可以分为静态工具和动态工具;静态工具主要利用代码规则对代码质量进行检查,例如Pc-Lint、Logiscope等;动态工具可继续细分为单元测试工具、接口测试工具、系统测试工具,其中大家常见的主要是系统测试工具如QTP、LoadRunner等。
分析设计类工具比较少,目前成体系的还只有TestPlatform (TP)。另外可能还有个别只是实现了某个分析设计方法的小工具例如正交分析工具等......
51Testing:QC、QTP、Loadrunner都是我们常见的工具,TP很多人却是头一次听说,可以简单介绍一下这个工具么?TP软件与同类测试工具有什么区别和优势?
周峰:一个完整的测试流程包括测试分析、测试设计、测试实现、测试执行等环节。前面三个环节主要解决”测什么“的问题,重点关注测试的完整性、充分性、覆盖率,以提高测试的质量为目标。而测试执行环节是解决"如何测"的问题,重点关注测试环境的模拟、测试的效率,以提高场景的真实性、测试的效率为目标。
目前业界主要的工具都集中在测试执行环节,前面三个环节除了TP外,几乎没看到过系统性的工具。
整个测试工作的质量很大程度上是由测试分析、测试设计这两个环节的活动决定的。如果这两个环节工作没做好,或者投入不够,将会遗漏测试需求、或遗漏测试需求的测试点,引起漏测,导致测试不充分,影响软件质量......