软件测试分类
按开发阶段划分
单元测试
又称模块测试,
测试对象为软件设计的最小单位。
测试目的在于检查每个程序单元能否正确实现详细设计说明书中的模块功能、性能、接口和设计约束等要求,发现各模块内部可能存在的各种错误。
用例设计思路从程序的内部结构出发。
执行方式为并行独立进行
集成测试
又称组装测试
测试对象为程序单元或部件的接口关系
测试目的是检验程序单元或部件接口关系是否符合概要设计要求直至组成整个系统
用例设计思路从程序的模块的衔接点出发
执行方式为有序的、递增的方式,是一个持续的过程
确认测试
测试对象为程序的功能
测试目的是通过检验和提供客观证据,证实软件是否满足软件需求规格说明书中规定的要求和特定预期用途的需求。
系统测试
测试对象为软件系统整体、包含功能、系统运行环境(硬件、外设、网络和系统软件、支持平台等)、真实或模拟系统运行的环境
测试目的是为了验证和确认系统是否达到原始目标,也就是确认是否满足用户需求。
用例设计思路从用户使用角度出发
执行方式为在部署的独立测试环境下执行。
验收测试
按照项目任务书或合同、供需双方约定的验收依据文档进行对整个系统的测试与评审,决定是否接收或拒收系统。
按实施组织划分
开发方测试
也称“验证测试”或“α测试”,测试对象为软件系统整体,在软件开发环境下执行。
测试目的主要是指在软件开发完成后,开发方对要提交的软件进行全面的自我检查与验证。
可以和系统测试并行
用户测试
又称“β测试“,主要是测试环境的不同,用户测试时在用户的应用环境下,用户通过运行和使用软件,检测与核实软件是否实现是否符合自己的要求。这与验收测试有差别,指使用使用性的测试,一般是把软件产品有计划地免费分发至目标市场,让用户大量使用,评价和检查软件,而验收针对具体项目,有具体的验收标准。
第三方测试
又称独立测试,一般是有权威组织机构在模拟用户真实应用环境进行软件确认测试。
按测试技术划分
** 白盒测试**
测试对象为程序的内部结构
测试目的是检查软件内部动作是否按照设计说明的规定正常执行
用例设计方式分静态或动态,后面会具体讲到。
黑盒测试
测试对象为程序的外部表现
测试目的是检验程序是否按照需求规格说明书的规定正常实现。
测试用例设计方式有边界值分析等价类分析、场景分析、判定表分析、因果图分析、错误推断法等等,后面具体讲述。
灰盒测试
其实就是白盒和黑盒结合,根据实际情况分析协作。
本文只讲述概念,以上测试类型还会具体编写。
按测试执行的类型分
功能测试
俗称点点点测试。测试对象为程序外部表现,
测试目的是与检验系统每个功能是否能够正常使用。
用例设计方式与黑盒测试用例设计方式一致
执行方式为黑盒
这里发表一点观点,就目前测试岗位发展方向来说,功能测试算是门栏最低的测试,这让大多数人陷入一个误区,认为做黑盒测试完全没有技术含量,其实这种观点是错误的。相反做好黑盒测试其实是最有技术含量的,当你看不到程序是如何运行的情况下,想要找出深层次的问题对测试人员理解系统的程度要求是特别高的,这不光涉及程序的实现方式,而且大多需要考虑实际业务,软件测试的原则是所有的软件测试都应追求到用户需求,这一点非常重要,所以黑盒测试往往能够提出最实际的问题。白盒测试或者什么自动化、性能测试等等难度其实更偏向于编码技术层面,只要编码技术能力达到,测试设计和执行也会相对简单一些。
那么可能我们会提出疑问,既然黑盒测试有技术含量,为什么薪酬大多比自动化,白盒等测试人员要低呢?我想最重要的其实是因为价值体现,白盒测试更趋向于早期问题,而软件测试本身更趋向早期执行,这样修复缺陷使用的成本就能大大降低,自动化测试更趋向于提升工作效率。从项目成本来说,黑盒测试位于项目后期,问题修复成本过高,而且因为门槛低,无法保证每个黑盒测试人员的技术能力很优秀。
其次培养一名优秀的黑盒测试人员,需要时间和行业沉淀,现在大多测试人员功能测试由于高薪吸引一两年即可转为自动化测试、白盒、性能等方向,做黑盒的永远是新人,可以说大多黑盒测试人员其实技术水平都没有达到要求,只能使用固定的测试方法做些常规的性测试,这在实际项目测试中表露无遗,想想为什么经常会有代码写得非常不错、功能实现也没问题,性能表现也很优秀,但却不是用户想要的功能。
自动化测试
顾名思义就是利用一些测试工具自动实现全部或部分测试,它能完成一些手工无法实现或者难以实现的测试,合理实施自动化能够帮助提升软件质量、节省经费和时间成本。
实践证明小公司暂不适用,如果公司测试:开发人数比例达不到1:3以上,别考虑投入自动化测试。在测试配比偏差严重的情况下,连测试用例都没法维护,更别谈什么自动化了。
自动化测试无法完全代替手工测试,只能作为辅助性测试,特别是回归测试的运用,自动化测试往往发现老BUG,新BUG大多由手工测试发现。具体细节后面作为专题发表。
性能测试
类型主要有:
负载测试、压力测试、容量测试、瞬压测试等。
具体细节作为专题发表
安全测试
基本是工具执行,具体细节作为专题发表。