IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> [测试理论]软件测试方法 -> 正文阅读

[开发测试][测试理论]软件测试方法

按开发阶段划分

单元测试:对系统最小模块进行测试,小到可能只是一个方法。

  • 测试阶段:编码后、编码前(TDD)
  • 测试对象:最小模块
  • 测试人员:白盒测试人或开发工程师
  • 测试依据:代码、注释、详细设计文档
  • 测试方法: 白盒测试
  • 测试内容
    – 模块接口测试(输入参数)、参数个数、参数类型、顺序要符合接口文档)
    – 局部数据测试(局部变量在不同方法处理逻辑转化是否正确)
    – 路径测试(if-else、switch)
    – 错误处理测试(try-catch-finally)
    – 边界测试(for、while)
  • 测试框架:Junit

集成测试:按照一定的逻辑对不同的模块进行组装,对系统的接口及集成后的功能进行正确性检测的测试工作。

  • 测试阶段:单元测试之后(实现模块后)
  • 测试对象:模块间接口
  • 测试依据:单元测试模块+概要设计
  • 测试方法:黑盒测试+白盒测试
  • 测试内容
    – 模块间数据传输:数据流向是否按照测试策略的逻辑进行
    – 功能冲突:组装过程中,要确保每一个模块的功能不能影响其他模块
    – 组装功能正确性、全局数据结构
    – 单个模块缺陷对系统的影响:单个模块设计时的小缺陷可能对自身几乎没什么影响,但组装在一起可能对整体或其他模块造成影响。

系统测试: 对系统进行全面测试(网络、兼容、安全等)

  • 测试阶段:开发完成后即,集成测试后

  • 测试方法:黑盒测试

  • 测试依据:系统需求分析说明文档

  • 测试内容:界面、功能、易用性、安全性、兼容性等。

两个方法:回归测试和冒烟测试

  • 回归测试:当系统的代码进行修改时,为防止新添加的代码对系统引入新的错误而进行的测试。

    • 何时会引入新代码? 添加新需求和修改Bug时。
  • 冒烟测试 :对系统核心功能和主要流程进行测试

    • 对象:每一个新编译的需要正式测试的软件版本

    • 目的: 确认软件基本功能正常,可以进行后续的正式测试工作。

    • 执行者:版本编译人员

验收测试:是系统部署前的最后一个测试工作,即交付测试。目的是确保软件准备就绪,按照项目合同、任务书、双方约定的验收依据文档,向软件购买都展示该软件系统满足原始需求。

  • 测试阶段:在系统测试之后
  • 测试对象:整个系统
  • 测试内容:界面、功能、易用性、安全性、兼容性、文档(功能说明文档、开发文档、使用说明书等)等
  • 测试方法:黑盒测试
  • 测试人员:用户(甲方)

按测试实施组织

α测试:将用户(或公司内部人员)请到开发现场,模式实际操作环境下的测试(不能由程序员或测试人员进行)

  • 目的:评估软件的各方面性能

  • 优点:可及时解决发现的问题、测试时间比较集中

  • 缺点:受开发环境影响(毕竟不是实际场景)

β测试:(验收测试) 用户在正常使用环境下进行测试,通常一个周期测试完成,需要将问题整理成文档,反馈给开发人员。

  • 测试阶段: 在α测试之后
  • 优点:用户在真实使用场景下测试,测试结果更有借鉴意义。
  • 缺点: 测试时间比较分散
  • 常见形式:微信/APP邀请您系统内测

第三方: 第三方软件测评机构,根据软件行业的标准和规范进行测试,更加正规(测试人/开发人是有自己的角度—“偏见”)

按是否运行划分

静态测试:不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。

  • 内容: 对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错。
    Tip:代码静态分析和文档测试都属于静态测试。

  • 组成

    检查项:代码风格和规则审核、程序设计和结构审核、业务逻辑审核、走查、审查与技术复审手册
    静态质量:FRUMP(功能性、可靠性、可用性、有效性、可维护性、可移植性)。

动态测试:运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性、健壮性等性能。

  • 组成:构造测试用例、执行程序、分析程序的输出结果。
    Tip:大多数软件测试都属于动态测试。

按是否手工划分

手工测试:由人去一个一个的输入用例,然后观察结果,和机器测试相对应,属于比较原始但是必须的一个步骤。

  • 优点:比较灵活、可以进行发散的测试

  • 缺点:进行大量测试容易出错

手工测试可以被替代吗?

不可以,机器没有办法代替人的思维

自动化测试

将人为驱动的测试行为转化为机器测试
在预先条件(正常条件、异常条件)下运行系统或应用程序,评估运行结果。

前提:在系统功能比较稳定的前提下才能自动化测试

价值:脚本利用率越高,重复利用率越高价值越大。

实施步骤:

完成功能测试、版本基本稳定

根据需求文档写测试用例;

把测试用例转换成自动化测试脚本;

执行自动化测试脚本;

分析运行结果,输出测试报告。

按是否查看代码划分

黑盒测试

概念:不关心软件内部的逻辑结构,只关心输入输出是否达到我们的预期,相当于将软件当成一个只有输入输出的黑色黑子(观众看大变活人)

设计测试用例的方法:等价类、边界值法、因果图法、正交法、场景设计、错误猜测

白盒测试

概念:研究软件内部的程序逻辑和结构,验证是否满足软件需求,相当于把软件当成一个能看见内部结构的白盒去测试。

测试方法:循环覆盖、逻辑覆盖、基本路径覆盖

灰盒测试:介于白盒测试和黑盒测试之间,即关心输入输出、又关心程序内部结构。

按地域划分

软件国家化:在设计软件时,采用一种工程技术,使得软件在转化不同国家的语言、风俗习惯时不需要修改源码的技术。

国际化测试

除了基本功能外,还要检测本地化后各项功能是否发生变化、时间日期等是否适应不同国家的文化风俗等…

举例: Windows、word

本地测试

在进行软件开发时,对原始语言开发的软件进行语言处理和工程处理,可以生成不同的语言版本。

按测试对象划分

业务测试:是测试人员把系统各个模块串接起来运行、模拟真实用户实际的工作流程,满足用户需求定义的功能来进行测试的过程。

界面测试

对界面各种东西的细节细致检测

测试内容:

  • 文字大小、字体排版颜色等
  • 图片清晰度大小排版色彩等
  • 危险操作是否有友好提示
  • 控件是否正常:对话框、弹出框、对话框
  • 按钮亮度显示:有效高亮、无效置灰

容错性测试

当系统出现一些异常,或者用户输入错误信息,进行异常操作,系统可以自我处理这些错误情况,不会出现崩溃、页面异常等情况,可以给用户友好提示。

  • 数据容错性:时间、日期、数字
  • 校验容错性:例如查询信息前后加空格,trim去掉、大小写不敏感,大小写转换、验证码、数据信息一致性:密码输入两次(校验)
  • 信息级别:表单异常关闭是否会自动保存、同一数据被不同人操作时,是否会被锁定(多线程原子性–腾讯文档)。、同一账号下不同平台操作是否同步
  • 界面容错性:复杂操作有说明提示、用户执行有风险操作时有提示
  • 环境容错性:网络、电源、服务器无缝切换备用网络,保证用户体验流畅无感知
  • 灾难恢复性测试:人为的让服务器或依赖的环境发生故障,测试系统是否具有自我修复能力。

兼容性测试

指软件之间能否很好的运作、是否会影响、软件和硬件之间能否发挥很好的效率工作,是否会导致系统崩溃。

  • 系统所在平台兼容性
  • 软件本身向前或向后的兼容性
  • 软件和其他相关软件的兼容性
  • 数据兼容性

易用性测试

符合标准和规范:为便于用户使用,开发时要遵循一定的易用性标准(前期开发经验),越来越贴近人类使用习惯。

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-08-12 16:58:56  更:2021-08-12 16:59:39 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年10日历 -2024/10/18 16:33:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码