通用测试技术4——软件测试分类(单元测试,集成测试,系统测试,验收测试,黑盒测试,白盒测试……

一. 软件测试分类

1.按照开发阶段划分

  • 单元测试:又称模块测试,是针对软件设计的最小单位——程序模块进行正确性检验的测试工作(对于软件的一个一个小功能进行测试就是单元测试)。其目的在于检查每个程序单元能否正确实现详细设计说明中的模块功能、性能、接口和设计约束等要求(对应下图),发现各模块内部存在的各种错误。单元测试需要从程序的内部结构出发设计测试用例。多个模块可以平行地独立进行单元测试。单元测试一般要读程序和代码,大多数时候单元测试都是由开发人员自己完成(但是一般不认为是在做测试),测试人员为什么不做单元测试?(大家不懂代码和算法,哈哈哈~)
    在这里插入图片描述

  • 集成测试:也称组装测试,通常在单元测试的基础上,将所有程序模块进行有序的,递增的测试,集成测试是检验程序单元或部件的接口关系,逐步集成为符合概要设计要求的程序部件或整个系统

  • 集成测试比较多的涉及到接口测试(接口测试工具和方法),企业非常需要接口测试工程师,它是一个持续不断的过程。

  • 确认测试:也称有效性测试。是在模拟的环境下,验证软件的所有功能和性能及其他特性是否与用户的预期要求一致,通过了确认测试之后的软件,才具备了进入系统测试阶段的资质。【确认测试:(功能是否实现)一般都是正向的测试,有些时候也把确认测试称为冒烟测试,一般不作为正式的测试环节

  • 系统测试:系统测试是在真实的系统运行的环境下,检查完整的程序系统是否能和系统(包括硬件、外设、网络和系统软件、支持平台等)正确配置,连接,并最终满足用户的所有需求【全面的:系统所有功能的测试;模拟所有的软件用户的操作。全方位:和硬件系统的联系;和系统软件的联系;和其他软件的关系

  • 验收测试:是软件产品检验的最后一个环节,按照项目任务书或合同,供需双方约定的验收依据文档进行的对整个系统的测试与评审,决定是否接收或拒收系统【验收测试一般由供求双方达成的,一般有三种验收测试的主体:α测试:软件的开发商自己进行的交付前测试活动;β测试:软件的需求方自己进行的测试;γ:第三方的软件测试
    在这里插入图片描述

2.按照测试技术划分

  • 黑盒测试

    • 通过软件的外部表现来发现其缺陷和错误。黑盒测试法把测试对象看成一个黑盒子,完全不考虑程序内部和处理过程。黑盒测试是在程序界面进行测试,它只是检查程序是否按照需求规格说明书的规定正常实现【例子说明什么叫黑盒?比如说打开一个浏览器,打开一个网页,能看到网页上的任何一个内容,比如点一下新闻,网页跳转到新闻页面,点到地图,跳转到地图页面,我们在测试的过程中在软件的表面对这个软件进行操作和测试
  • 白盒测试

    • 通过对程序内部结构的分析,检测来寻找问题。白盒测试可以把程序看成装在一个透明的盒子里,检查是否所有的结构及路径都是正确的,检查软件内部动作是否按照设计说明的规定正常进行,白盒测试又称结构测试【比如说查看一下网页的源代码,看看超链接的内容对不对,透过软件界面看程序代码是怎么写的
      在这里插入图片描述
  • 灰盒测试

    • 介于白盒测试与黑盒之间的测试。灰盒测试关注输出对于输入的正确性;同时也关注内部表现,但这种关注不像白盒测试那样详细,完整,只是通过一些表征型的现象,事件、标志来判断内部的运行状态

3.按照代码运行划分

  • 静态测试

    • 指不实际运行被测对象,而只是静态地检查程序代码,界面或文档可能存在错误的过程
    • 代码测试:主要测试代码是否符合相应的标准和规范
    • 界面测试:主要测试软件的实际界面与需求中的说明是否相符
    • 文档测试:主要测试用户手册和需求说明是否真正符合用户的实际需求
  • 动态测试

    • 指实际运行被测对象,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程。所以我们判断一个测试属于动态测试还是静态测试,唯一的标准就是看是否运行程序

4.按照软件特性划分

什么叫做软件本身的特性?我们在使用一个软件的时候对这个软件有什么样的要求:①功能能用:比如说输入正确信息点注册,注册完了之后使用之前注册的信息点登录就能登录,这就叫功能性的测试。②对于任意一个软件都会对它有些期望,比如希望这个软件在运行的时候占用CPU内存不要太多,这就是我们的期望和要求,还有希望软件在运行的时候网速可以的情况下,软件反应速度再快一点。密码不能泄露……,不能被黑客侵入个人隐私……安全性测试

  • 功能测试:是黑盒测试的一方面,它检查实际软件的功能是否符合用户的需求
    • 逻辑功能测试(比如说电商系统的:注册登录完成后……浏览商品……选中商品……放在购物车…………)
    • 界面测试(界面上的所有内容都是正确的:界面上没有错别字,元素不应有缺失)
    • 易用性测试(包括:软件功能的有效性,软件用的过程中的效率,用户的主观满意度)
    • 安装/卸载测试
    • 兼容性测试(软件的运行是否能够和硬件兼容)
  • 性能测试
    • 功能的另一个指标,主要关注软件中的某一功能在指定的时间,空间条件(空间就包括:CPU资源的消耗,内存资源的消耗,网络资源的消耗,硬盘资源的消耗)下,是否使用正常
    • 软件的性能包括很多方面,主要有时间性能空间性能两种
  • 安全性测试
    • 验证安装在系统内的保护机制能否在实际应用中对系统进行保护,使之不被非法入侵,不受各种因素的干扰

5.按照测试运行主体划分

  • 手工测试(拿着软件点点点……,没什么技术含量)

  • 自动化测试

    • 利用工具软件或者编写代码的方式去测试被测试的软件系统(游戏外挂)

6.其他测试类型

  • 回归测试

    • 是指对软件的新版本测试时,重复执行之前某一个重要版本的所有测试用例
    • 目的:①验证之前版本产生的所有缺陷已全部被修复②确认修复这些缺陷没有引发新的缺陷
  • 冒烟测试

    • 是指在对一个新版本进行系统大规模的测试之前,先验证以下软件的基本功能是否实现,是否具备可测性,也叫可测性测试
  • 随机测试

    • 是指测试人员基于经验和直觉的测试,发现一些边缘性的错误
  • 猴子测试

    • 把自己当成不懂产品的笨蛋或者小动物,随便乱点,没有任何主观的意识和想法参与进来,让一些意想不到的操作造成错误的结果

特别说明(帮助理解):QQ从软件的层次上来说是应用软件,从软件结构来说是分布式软件(B/S;C/S)QQ是C/S,从组织上来说是商业软件,以上说明分类标准不一样,所属内容也不一样,在做软件测试的时候其实也一样,这项测试所属的阶段和测试技术没有关系……
在这里插入图片描述

二. 软件测试的原则

  1. 所有测试的标准都是建立在用户需求之上

  2. 软件测试必须基于“质量第一”的思想去开展各项工作,当时间和质量冲突时,时间要服从质量

  3. 事先定义好产品的质量标准(需求),只有有了质量标准,才能根据测试的结果,对产品的质量进行分析和评估

  4. 软件项目一启动,软件测试也就是开始,而不是等程序写完,才开始进行测试

  5. 穷举测试是不可能的

  6. 第三方进行测试会更客观,更有效(越独立的测试团队,测试结果越加有效)

  7. 软件测试计划是做好测试工作的前提

  8. 测试用例是设计出来的,不是写出来的,所以要根据测试的目的,采用相应的方法去设计测试用例,从而提高测试的效率,更多地发现错误,提高程序的可靠性
    设计和编写测试用例有什么区别? 设计本身是一项脑力活动,编写是一项体力活动,将设计好的内容通过文字的形式表示出来

  9. 对发现错误较多的程序段,应进行更深入的测试,一般来说,一段程序中已发现的错误数越多,其中的错误概率也就越大(怎么测?→对发现缺陷的模块使劲儿测,另外关联的模块也要进行测试,缺陷有一种集群效应)

  10. 重视文档,妥善保存一切测试过程文档(测试计划,测试用例,测试报告等)

  11. 应当把"尽早和不断地测试"作为测试人员的座右铭

  12. 回归测试的关联性一定要引起充分的注意,修改一个错误而引起更多的错误出现的现象并不少见

  13. 测试应从"小规模"开始,逐步转向"大规模"

  14. 不可将测试用例置之度外,排除随意性

  15. 必须彻底检查每一个测试结果

  16. 一定要注意测试过程中的错误集中发生现象,这和程序员的编程水平和习惯有很大的关系

  17. 对测试错误结果一定要有一个确认的位置

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值