软件测试进阶(黑白盒测试)

JUNIT 是JAVA测试框架

测试技能图
在这里插入图片描述

1.按照测试对象划分

1.1界面测试(UI测试)

定义:界面直接和用户交互,界面设计的好坏决定了用户使用软件的直观感受。

作用
保证界面和UI设计稿一致性,正确性。
测试界面每一个功能的正确性(从上到下,从左到右)
界面布局排版合理(字体大小、是否斜体、图片布局排版、清晰程度…)
界面控件功能是否正常(滚动条、按钮、文本框…)
要进行界面的不同分辨率的测试

同一个web页面的不同页面大小下测试:
页面从小到大变化过程中衔接丝滑,让用户可接受;
页面的字体不模糊不消失,不重影;
页面的图片不消失,排版布局合理;
页面的功能可以正常使用;

1.2可靠性测试

可靠性=正常运行时间/(正常运行时间+非正常运行时间)

一般软件可靠性要求99.9%,一年时间,软件出现故障的时间为52min;
特殊软件,比如军事系统99.999%,一年时间,软件出现故障的时间为5min;
非实时软件 邮件系统,可靠性比较低。

如何进行软件的可靠性测试?
让软件运行一段时间,统计其正常运行时间和非正常运行时间然后使用公式计算。
软件自身和软件所部署的环境(硬件,软件系统,网络等)有问题导致软件无法正常运行,都属于软件非正常运行的时间。
软件可靠性影响因素:软件本身,外界因素(电,网络,硬件设备,软件系统等)

如果是因为硬件系统原因发生故障使软件发生故障,这个时间是否计算到软件可靠性?
算。

1.3容错性测试

什么是容错性:因为自身或外部的一些异常操作使系统发生异常,系统能够自我处理这种错误操作或异常的能力。


数据级别:人民币0.09,25时30分,5月32日

校验级别:输入账号6~16位,最多输入16位,17位就输入不进;
        大小写校验,空格校验,前后信息一致校验
        查询信息前后空格自动过滤
       
界面级别:一些复杂的操作或危险性较高的操作会给用户提示信息;
        危险的按钮直接屏蔽或者禁用;
       
环境级别:断电断网,硬件设备出问题,是否可以无缝切换(用户无感知)到备用服务器;

灾难恢复性测试:人为让系统发生故障,测试系统能够很快恢复稳定能力,数据恢复的能力,不丢失用户信息

1.4文档测试

定义:整个开发过程中产生的各种文档,需求文档,设计文档,功能文档,用户使用手册进行测试
文档的正确性,一致性,专业术语,完整性。
文档和软件功能对比

1.5兼容性测试

平台的兼容性(APP:不同系统IOS/Android,不同品牌手机,不同系统版本;web网页:各种浏览器,操作系统的兼容性;)

软件本身兼容性:软件对本身功能前后的兼容性,比如开发的新功能不能影响老功能,也不能影响后续功能的开发。

软件对用户数据的兼容性:比如数据库中某一张表增加字段,不能影响用户之前的数据存储;

软件对第三方软件的兼容性:不影响其他软件的使用,如果和第三方软件有交互,数据要有兼容。

1.6易用性(用户体验测试)

(1)符合标准和规范

严重错误(红色)
警告(黄色)
提示

(2)直观性

让用户直接看到自己的操作,或者预期的结果

(3)灵活性

定义:用户根据自己的习惯选择适合自己的操作方式。
手机键盘:九宫格、手写、26键,五笔等
灵活性==复杂性,两者之间弄一个平衡点。

(4)舒适性

定义:让用户对自己进行的操作有感知,不产生焦虑情绪

安装一个软件:进度条

(5)实用性

1.7安装卸载的测试

能正常使用不同的方式进行安装和卸载(应用APP,命令行,软件包,第三方助手)
软件可以正常安装和卸载
软件更新
安装软件时断网断电,死机等异常情况下,软件的响应
安装软件内存不足是否有提示
卸载软件暂停、是否可以继续卸载
卸载软件到一半,取消卸载,看软件是否可以正常使用
卸载过程中异常情况的测试(断网断电,死机等)
卸载后软件的数据文件是否清理干净

1.8安全测试

安全是指信息安全,指网络和系统保护用户的数据、隐私不被侵犯和泄露。
防病毒,防黑客攻击
SQL注入、
防爬虫

1.9性能测试

检查系统是否满足需求规格说明书中规定的性能。
通常表现在以下几个方面:
内存泄漏
资源瓶颈
系统运行速度越来越慢(TPS,HTTP,吞吐量,响应时间)
系统运行受外界影响越来越大
死锁
查询,加载信息速度很慢

1.10内存泄漏(可积累错误)

内存泄漏会导致系统运行越来越慢

导致原因:

  1. 内存分配后,忘记回收
  2. API函数使用不正确,无法回收
  3. 内存分配方式有问题,无法回收

1.11界面常见错误

不合适的快捷键:快捷键要用键盘可以打出来
文字丢失
文字的截断(就是显示不清楚,有遮挡)
没有对齐
文字自动换行
文字重叠
重复的快捷键

2.按照是否查看代码划分

2.1黑盒测试

定义:黑盒测试不关心软件内部代码的实现,不关心代码的逻辑结构(相当于代码这一部分是看不见的),只关心输入输出是否符合预期

好处

  1. 不用看代码(不懂代码的人也可以进行测试)
  2. 黑盒测试测试系统的功能,站在用户的角度去使用功能,有利于培养用户思维–产品经理
  3. 黑盒测试的测试用例是按照需求设计的,不容易遗漏需求。
    用例方法
    等价类,边界值,场景法,因果图,错误猜测法,正交法

2.2白盒测试

定义:针对代码进行的测试分析和测试代码的逻辑和结构,实现的功能,看是否符合用户的需求。

用例方法
语句覆盖,路径覆盖,判定覆盖,条件覆盖,判定条件覆盖,条件组合覆盖,判定和条件组合覆盖

2.3灰盒测试

介于白盒测试和黑盒测试之间

3.按照开发阶段划分(软件测试V模型)

在这里插入图片描述

3.1单元测试

针对软件组成最小的单元模块进行测试(类,方法)

测试阶段:编码前(TDD),编码后
测试对象:组成软件的最小单元模块
测试方法:白盒测试
测试人员:白盒测试工程师或开发人员
测试依据:详细设计文档(软件测试V模型)
测试内容:模块的接口,局部数据的测试,边界测试,异常测试,路径测试

**编码前(TDD):**测试驱动开发,测试人员先写测试代码,空跑代码,开发人员依据异常写代码,直到测试用例代码通过

3.2集成测试

按照一定的策略把单元模块组合起来形成一个大的功能模块对这个功能进行的测试叫做集成测试

测试阶段:单元测试后
测试对象:集成模块
测试方法:灰盒测试
测试人员:黑盒测试工程师或开发人员
测试依据:概要设计文档(V模型)
测试内容:整个模块功能的正确性,单元模块之间接口的正确性,全局数据结构测试,单个模块的缺陷对整个功能模块的影响,模块之间功能的冲突

3.3系统测试

当软件开发完成,系统的全面的对软件的功能进行测试

测试阶段:集成测试后
测试对象:整个系统
测试方法:黑盒测试
测试人员:黑盒测试工程师
测试依据:需求设计文档
测试内容:系统的功能,界面,易用性,可靠性,容错性,可移植性,安全性,兼容性,性能,安装和卸载
  回归测试:当系统引入新的代码的时候要查看新的代码是否影响了旧的功能(修改BUG,更新,自动化)
  冒烟测试:正式测试之前,对软件系统的基本流程和核心功能进行测试,如果测试通过,才同意正式测试   准入原则

回归测试和冒烟测试属于系统测试

3.4验收测试

软件上线前的最后一道测试,由用户和产品经理发起

测试阶段:系统测试后
测试对象:整个系统
测试方法:黑盒测试
测试人员:用户/产品方
测试依据:用户需求  V模型
测试内容:系统的功能,界面,易用性,可靠性,容错性,可移植性,安全性,兼容性,性能(包含一些文档,用户使用手册,功能测试文档)

4.按照实施组织区划分

4.1 α测试

定义:让用户或除了开发和测试人员以外的公司内部人员到开发现场去进行测试。
测试环境:开发环境

α测试先于β测试之前

4.2 β测试

定义:实际用户在实际使用环境下进行测试,不限时间,不限地点

α测试和β测试区别:测试环境不同;时间集中程度不一样;α测试先于β测试之前

4.3 第三方

第三方软件测评机构对软件进行测试,使用业界的规范和标准进行测试

5 按照是否运行划分

5.1 静态测试

不运行代码,分析代码的风格,是否符合公司的标准规范,分析代码的结构、逻辑、算法方法的实现是否符合用户的需求;
只能看代码
在这里插入图片描述

5.2 动态测试

运行代码,执行测试用例进行测试。

6.按照是否手工划分

6.1手工测试

手工执行测试用例,查看测试结果

缺点:量大容易出错,测试效率比较低
优点:不可替代的,无法被自动化测试代替,手工测试的过程人为可控,有利于做探索性实验

6.2 自动化测试

机器按照预先设定好的条件去执行测试,这些条件包括正常和异常的方面。

预先设定好的条件:自动化测试脚本(UI自动化,接口自动化,性能自动化)

不是所有的项目都适合自动化。

哪些项目不适合自动化测试?
自动化的价值和意义:节省人力
自动化脚本运行运用率越高,越有价值。
自动化不适合于项目不稳定,功能频繁变动的项目

7.按地域划分

软件国际化:开发软件的时候使用了一种工程技术,使得软件在适用不同国家的语言,风俗使用情况的时候不用去改变软件的源码就可以做到。(软件国际化测试,软件本地化测试)
例:
Windows操作系统,苹果手机

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值