什么是软件测试:
刚新买来一部手机,我们要干什么?一场考试 , 做完一遍题目之后 , 进行一遍检查 , 就是在 " 测试 "买一台电视 , 安装好之后打开试试看能不能正常使用 , 也是在 " 测试 "概念:验证软件功能是否满足用户的需求。
- 1979年,Glenford Myers(美 梅尔斯),<软件测试艺术>[The Art of Software Testing]:为了发现错误而 执行程序或者系统的过程
- 1983年,Bill Hetzel在《软件测试完全指南》(Complete Guide of Software Testing)一书中指出:测试是以评价一个程序或者系统属性为目标的任何一种活动。测试是对软件质量的度量。
- 1983年,IEEE软件工程标准术语:使用人工或自动手段,来运行或测试某个系统的过程。其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。软件测试的定义随着发展而不断扩展,但是不可否认的是软件测试最基本的活动就是找bug。而不同的定义只 是说明了测试的目的以及如何来衡量测试是否成功。
软件测试的发展:
测试与调试的区别:
软件测试岗位有哪些
软件测试在不同类型公司的定位
- 无组织性
- 专职VS.兼职
- 项目性VS.职能性
- 综合性
最简单的软件测试组织形式就是没有任何组织的测试,几个人就把所有软件测试工作做完,这样做没有任何分工、没有任何层次结构。简单的软件测试组织带来的问题是:软件测试依附在软件开发的组织下,不能真正发挥软件测试的威力。一两个人的软件测试缺乏交流和思维的碰撞,导致测试人员的进步非常有限。缺乏测试的组织,导致测试无计划进行,测试人员疲于应付各项突如其来的测试任务,测试经验也得不到很好的总结。
按照测试人员的职责明确程度,可以划分成兼职测试和专职测试两大类。目前在很多软件企业,尤其是小规模的软件企业,往往没有专职的测试人员。在做测试工作的同时还要兼顾软件幵发、配置管理、技术文档编写、用户教育、系统部署实施等工作。即使是在一些比较大规模的软件企业,拥有专门的质量部门,也会有兼职的情况,最常见的兼职工作是测试+配置管理,或者测试 +QA 。这种方式的好处是节省成本,可以充分利用资源。但是这样测试人员缺乏专门的独立的发展空间,不利于测试的纵深方向的发展,很难把测试做得精细,也不利于测试经验的积累和测试知识的传播。当然,由于目前软件企业的现状,很多企业还是使用这种方式。新入行的测试人员来说,可以认为这是对自己很好的锻炼机会。测试本身的要求就是知识面要广,而这些工作有助于从不同层面、不同角度、不同角色的位置考虑软件的相关问题。
按测试人员参与项目的形式来划分,可分成项目型和职能型。项目型的测试组织是指测试人员作为项目组成员之一紧密地结合到项目中,与项目组其他人员紧密协作,一般是从头到尾跟着项目走。当然,也有些项目是到了中后期才考虑把测试人员加入到项目中。这种类型的测试组织一般不会有测试组长,测试的管理由项目的主管或项目经理负责。当然,在一些大的项目中,会划分出幵发组长、也会划分出测试组长,但是最终报告的对象都是项目经理。因此项目经理是负责测试资源调配和测试计划的主要人员。而职能型的测试组织是指测试人员参与到项目中是以独立的测试部门委派的方式进入的。在这种结构中,一个测试人员有可能不仅仅测试一个项目的产品,可能会同时测试多个项目的产品。测试人员也可能不是长期稳定地从头到尾参与一个项目。测试人员不向项目主管或项目经理报告工作,而是向自己所在的部门经理报告工作。并且这种结构的项目经理也可能是虚拟的,或者由多个部门经理共同担当。这两种方式各有利弊。项目型的好处是测试人员参与的力度很强,能深入了解项目方方面面的信息,有利于稳定持续有效地测试出更多细节问题;但是同时也有弊端,就是测试人员受项目负责人的管理,在对待Bug 的处理意见上往往受到约束,同时由于过于亲密,很可能出现“ 网开一面 ” ,不能严格要求的惜况。并且由于缺乏独立的组织,测试人员的知识可能局限在项目组内传播,不利于测试经验在不同项目组之间的传播。某些测试人员在这种组织中可能会感到孤独和无助。而职能型的好处是能避免项目型的部分问题,并且能节省部分测试资源,充分利用各个项目阶段之间的时间差来合理利用测试资源;但是也不可避免地存在一些问题。例如,深入程度不够,尤其是对项目涉及的领域知识和业务知识理解可能不够深入,导致测试的问题比较表面。

职能性:
4. 综合性
尽管独立的测试部门会有一些不可避免的问题,例如参与项目的深入程度,容易导致 “ 扔过墙 ” 的测试。但是很多软件企业还是倾向于建立一个相对独立的软件测试组织。一个理想的软件测试组织可以是综合和兼容了几种结构方式的组织。例如,可以将项目型结构和职能型结构组合并加以改造。测试部门是独立的部门,测试部门经理根据各项目组中项目经理的请求,结合公司对项目的投入和重点方向,决定委派哪些测试人员加入到项目组,并且长期稳定、持续地跟进项目,在项目的各个阶段都参与并做测试的相关工作内容。测试人员作为一种服务资源供项目组调用,测试的结果和报告作为评估软件产品质量的必要参考信息,为项目经理做出产品发布的决定提供参考价值。

一个优秀的测试人员所具体的素质
软件测试的学习方式及内容