摘要:一个偶然的机会,投身到了软件测试行业。到现在也有四年多的时间了。四年说多不多,说少不少。一路走来,也有蛮多感慨和认识。这里笔者按照哲学的三个问题:你是谁?你从哪里来?你要到哪里去?来总结回顾一下自己的认识,以期能起到抛砖引玉之效。
关键词:测试发展 单元测试 测试消亡
测试的来源
记得到公司进行第三次面试的时候,公司总监木总问了一个问题:“软件是怎么来的?”,当时是丈二和尚摸不到脑袋。这么诡异的问题,不是跟“人从哪里来”是一样的吗?以前根本就没有想过。只是按照自己的理解回答道:“原来有硬件,因为随着社会发展,逻辑越来越复杂,硬件搞不掂,软件就出来了,需要软硬结合”,就好像一个人跑到楼道口大喊“要有光”,然后灯就亮的道理一样。木总答道:“软件的产生来源于需求,有社会对软件需求的,软件的诞生是为满足社会的需求,需求又分为显性需求、隐性需求……”。那为什么会有软件测试呢?测试又是满足社会的什么需求呢?测试是为了满足用户对软件质量的需求,也就是说测试是伴随着质量而生的。从部门的前身研发质控部就可以看出其中的端倪。但是有一点需要澄清一下,虽然测试是为质量而生,但质量不仅仅是靠测试来保证的。就好比盖一栋房子,房子结不结实,需要看设计、施工等各个环节,不是靠房子盖好后的验收来保障的。也就是说质量是规划出来的,不是检测出来的。
那测试又是做什么的,为了质量做了哪些贡献呢?我们来看看《软件测试艺术》是怎么来定义的:所谓软件测试,就是一个过程或一系列过程,用来确认计算机代码完成了其应该完成的功能,不执行其不该有的操作。
测试本身
知道了测试的定义以后,贯穿整个软件工程中,测试的具体工作体现在哪里?我们以公司省计费项目为例,测试的工作主要为:
通过持续的评审(包括需求评审、设计评审、代码评审等)对产品质量提供持续的、快速的反馈,从而在整个开发过程中不断地、及时地改进产品的质量,在早期将bug扼杀,降低软件开发的成本;这里体现的理念是:缺陷越早被发现,修改的成本越低;这里就要求我们测试人员尽早的介入。当然这对我们测试个人综合素质提出了更高的要求,包括对需求、架构设计、编程都有一定的功底,才能够更好的开展测试工作。
通过各种测试发现软件的缺陷,特别是尽可能地发现各种严重的缺陷,降低或消除产品质量风险,提高客户的满意度,提高客户的忠诚度,这里就包括我们常见的功能测试、联调测试、压力测试、性能测试、兼容性测试、安全测试等。
在发布前针对软件质量完成全面的评估,包括整个测试过程发现了多少个bug,还有多少个bug尚未被修复,是否达到准出条件,为产品上线决策提供信息。
通过对发现缺陷及上线后缺陷定时进行分析,并将缺陷进行归类汇总。分析主要是哪些原因导致的缺陷发生:是需求不明确,编程时粗心大意,业务不熟等,并反馈到需求、开发部门,进行薄弱环节的加强或流程的改进。避免将来犯同样的错误,以达到缺陷预防的目的。
知道了测试的四个工作,这里也谈谈测试的四个阶段:单元测试、集成测试、系统测试、验收测试。这也是V模型的一个架构。如下图: