软件测试进阶详解

文章目录

  • 一、按照测试对象划分
    • 1.界面测试
    • 2.可靠性测试测试
    • 3.容错性测试
    • 4.文档测试
    • 5.兼容性测试
    • 6.易用性测试(用户体验测试)
      • (1)是否符合标准和规范
      • (2)直观性
      • (3)灵活性
      • (4)舒适性
      • (5)实用性
    • 7.安装卸载的测试
    • 8.安全测试
    • 9.性能测试
    • 10.内存泄漏测试
  • 二、按照是否查看代码划分
    • 1.黑盒测试
    • 2.白盒测试
      • (1)语句覆盖,
      • (2)判定覆盖
      • (3)条件覆盖
      • (4)判定条件覆盖
      • (5)条件组合覆盖
      • (6)路径覆盖
    • 3.灰盒测试
  • 三、按照开发阶段划分
    • 1.单元测试
    • 2.集成测试
    • 3.系统测试
    • 4.验收测试
  • 四、按照实施组织区划分
    • 1.α测试
    • 2. β测试
    • 3.第三方测试
  • 五、按照是否运行划分
    • 1.静态测试
    • 2.动态测试:
  • 六、按照是否手工划分
    • 1.手工测试
    • 2.自动化测试
  • 七、按地域划分

一、按照测试对象划分

1.界面测试

界面直接和用户交互,界面设计的好坏决定用户使用软件的直接感受
UI测试:保证界面和UI设计稿一致,正确性
测试界面的正确性(从上到下,从左到右)
界面的控键,按钮,滚动条是否能正常使用
界面的布局排版合理,字体大小,是否斜体,图片排版布局,清晰度
一个网站页面不同页面大小下测试
页面从小到大变化过程中行接丝滑,让用户可接受
页面的字体不模糊不消失,不重影
页面的图片不消失,排版布局合理
页面的功能可以正常使用

2.可靠性测试测试

如果是因为硬件原因发生故障使得软件系统无法
可靠性=正常运行时间/(正常运行时间+非正常运行时间)
正常运行,这个时间是否计算到软件可靠性里
软件可靠性影响因素:软件本身,外界因素(电,网络,硬件设备,软件系统)

3.容错性测试

容错性:因为自身或者外部一些异常的操作使得系统发生异常,系统能够自我处理这种错误操作或者异常的能力。
数据级别:日期校验等
校验级别:大小写校验,空格的校验,前后信息一致性的校验查询信息前后空格自动过滤
界面级别:一些复杂的操作或者危险性较高的操作,会给用户提示信息; 危险的按钮,直接屏蔽,禁用
环境级别: 断电,断网,硬件设备处问题了,是否可以无缝切换(让用户无感知)到备用服务用
灾难恢复性测试:人为让系统发生故障,测试系统是否能够很快恢复稳定,数据恢复,不丢用户的信息

4.文档测试

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

5.兼容性测试

平台的兼容性(网站网页:各种浏览器,操作系统的兼容性;应用程序:不同系统,不同品牌,不同系统版本
软件对本身功能前后的兼容性比如开发的新功能不能影响老功能,也不能影响后续功能的开发软件对用户数据的兼容性比如数据库中某一张表增加字段,不能影响用户之前的数据存储。
软件对第三方软件的兼容性:不能影响其它软件的使用;如果和第三方软件有交互,数据要有兼容性

6.易用性测试(用户体验测试)

(1)是否符合标准和规范

软件是否符合标准,符合使用习惯

(2)直观性

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

(3)灵活性

用户可以根据自己的习惯选择适合自己的操作方式
例如:手机上的键盘 九宫格 全键盘 手写 五笔
灵活性==复杂性 两者之间找一个平衡点

(4)舒适性

让用户对自己进行的操作有感知,不产生焦虑情绪
安装一个软件时的进度条

(5)实用性

软件的功能与描述

7.安装卸载的测试

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

8.安全测试

指信息安全测试,网络和系统保护用户信息不被泄露
输入域安全性 防止SQL/XSS注入,邮件携带病毒,上传下载数据拦截

9.性能测试

内存泄漏
资源瓶颈
系统运行速度满
系统运行受外界影响越来越大
死锁
查询,加载信息速度慢

10.内存泄漏测试

原因:内存分配后,没有回收
内存泄漏(可积累的错误)
会导致系统运行越来越慢,直至崩溃
Api函数使用不正确,无法回收
内存分配方式有问题,无法回收

二、按照是否查看代码划分

1.黑盒测试

黑盒测试是不关心软件内部代码的实现,不关心代码的逻辑结构(相当于代码这一部分是看不见的),只关心输入输出是否符合预期。
黑盒测试的好处:
不用看代码,(不懂代码的也可以进行测试)
黑盒测试测试系统的功能,站在用户的角度去使用功能,有利于培养用户思维 产品经理 黑盒测试的测试用例是按照需求设计的,不容易遗漏需求
黑盒测试设计测试用例的方法
等价类,边界值,因果图,错误猜测法,场景法,正交法

2.白盒测试

白盒测试就是针对代码进行的测试,分析和测试代码的逻辑和结构,实现的功能,看是否符合用户的需求白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。
接口测试也是白盒测试的是一种 。
白盒测试的方法总体上分为静态方法和动态方法两大类.
强度由低到高有 “语句覆盖, 判定覆盖, 条件覆盖, 判定条件覆盖, 条件组合覆盖, 路径覆盖”.
静态方法: 不运行程序, 测试的是代码及文档(语法, 业务逻辑, 词义, 数据结构). 对代码的测试: 代码走查, 代码审查, coderiviwer.对文档的测试: 验证文档的一致性, 完整性, 可读性
动态方法: 运行程序, 通常所说的测试, 就是动态测试, 根据需求对功能进行测试
白盒测试的方法:

(1)语句覆盖,

就是设计若干个测试用例, 运行被测程序, 使得每一可执行语句至少执行一次.

(2)判定覆盖

使设计的测试用例保证程序中每个判断的每个取值分支(true or false)至少经历一次, 判定覆盖具有比语句覆盖更强的测试能力, 而且具有和语句覆盖一样的简单性, 无需细分每个判定就可以得到测试用例.

(3)条件覆盖

条件覆盖是指选择足够的测试用例, 使得运行这些测试用例时, 判定中每个条件的所有可能结果至少出现一次, 但未必能覆盖全部分支, 条件覆盖要检查每个符合谓词的子表达式值为真和假两种情况, 要独立衡量每个子表达式的结果, 以确保每个子表达式的值为真和假两种情况都被测试到.

(4)判定条件覆盖

就是设计足够的测试用例, 使得判断中每个条件的所有可能取值至少执行一次, 同时每个判断的所有可能判断结果至少执行, 即要求各个判断条件的所有可能的条件取值组合至少执行一次.

(5)条件组合覆盖

在白盒测试法中, 选择足够的测试用例, 使所有判定中各条件判断结果的所有组合至少出现一次, 满足这种覆盖标准称为条件组合覆盖.

(6)路径覆盖

是每条可能执行到的路径至少执行一次.

  1. List item

白盒测试作用, 通过检查软件内部的逻辑结构, 对软件中的逻辑路径进行覆盖测试, 在程序不同地方设立检查点, 检查程序的状态, 以确定实际运行状态与预期状态是否一致.

3.灰盒测试

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

三、按照开发阶段划分

1.单元测试

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

2.集成测试

按照一定的策略把单元模块组合起来形成一个大的功能模块,对这个功能模块进行的测试叫做集成测试
测试阶段:单元测试店
测试对象:集成模块
测试方法:灰盒测试
测试依据:概要设计文档(V模型)
测试人员:黑合测试工程师,开发人员
测试内容:整个模块功能的正确性,单元模块之间接口的正确性,全局数据结构测试,单个楼块的缺陷对整个功能模块的影响模块之间功能的冲突

3.系统测试

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

4.验收测试

软件上线前的最后一道测试,由用户或者产品经理发起的
侧试阶段:系统测试后
测试内容:同系统测试
测试方法:黑盒测试
测试依据:用户需求V模型
测试人员:用户/产品方
测试内容:同系统测试。(包含一些文档,用户是用手册,功能设计文档)

四、按照实施组织区划分

1.α测试

指的是让用户或除了开发和测试人员以外的公司内部人员到开发现场去进行测试
测试环境:开发环境
α测试先于β测试之前的

2. β测试

实际用户在实际使用环境下进行测试,不限时间,不限地点
α测试和β测试的区别:测试环境不同;时间集中程度不一样

3.第三方测试

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

五、按照是否运行划分

1.静态测试

不运行代码,通过分析代码的风格,是否符合公司的标准规范,分析代码的结构,逻辑,算法,方法的实现是否满足用户的需求。
包括对代码测试、界面测试和文档测试三个方面:
对于代码测试,主要测试代码是否符合相应的标准和规范。
对于文档测试,主要测试用户手册和需求说明是否符合用户的实际需求。

2.动态测试:

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

六、按照是否手工划分

1.手工测试

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

2.自动化测试

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

七、按地域划分

软件国际化:开发软件的时候使用了一种工程技术,使得软件在适用不同国家的语言,风俗使用习惯的时候不用去改变软件的源码就可以做到。
软件国际化测试
软件本地化测试

你可能感兴趣的:(笔记,测试用例)