关闭

软件测试分类: 你需要知道的不同类型测试(下)

发表于:2023-8-15 09:31

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:韵秋梧桐    来源:CSDN

  三. 按开发阶段划分
  测试金字塔
  这个金字塔, 越靠近顶部, 就越接近用户层(应用层); 越靠近底部, 就越接近代码层.
  另外, 越靠近低层, 测试效率越高; 定位问题就越容易, 而且, 测试独立性越高(代码的耦合性越低).
  越靠近顶层, 就越接近用户层, 而用户操作的是一个个功能模块的集成体, 操作起来, 功能的耦合性就很强, 所以, 出现问题, 想要定位问题也是较为不易.
  1. 单元测试(Unit Tests)
  单元测试是对软件组成单元进行测试, 其目的是检验软件基本组成单位的正确性, 测试的对象是软件设计的最小单位: 模块, 又称为模块测试.
  ·测试阶段: 编码后或者编码前 (TDD - Test Driven Development - 测试驱动开发)
  · 测试对象: 最小模块 (一个接口方法, 单一功能的模块)
  · 测试人员: 白盒测试工程师或开发工程师
  · 测试依据: 代码和注释+详细设计文档
  · 测试方法: 白盒测试
  · 测试内容: 模块接口测试, 局部数据结构测试 (局部变量测试), 路径测试, 错误处理测试 (try catch), 边界测试 (for, while, 测试是否存在越界问题)
  要注意单元测试是白盒测试, 但是白盒测试不是单元测试.
  2. 集成测试(Integration Testing)
  集成测试也称联合测试(联调), 组装测试, 将程序模块采用适当的集成策略组装起来, 对系统的接口及集成后的功能进行正确性检测的测试工作.
  集成主要目的是检查软件单位之间的接口是否正确.
  · 测试阶段: 一般单元测试之后进行
  · 测试对象: 模块间的接口
  · 测试人员: 白盒测试工程师或开发工程师
  · 测试依据: 单元测试的模块 + 概要设计文档
  · 测试方法: 黑盒测试与白盒测试相结合, 即灰盒测试
  · 测试内容: 模块之间数据传输, 模块之间功能冲突, 模块组装功能正确性(黑盒), 全局数据结构, 单模块缺陷对系统的影响
  3. 系统测试(System Testing)
  将软件系统看成是一个系统的测试, 包括对功能, 性能以及软件所运行的软硬件环境进行测试,.
  新买手机都会有一个合格标签, 在出厂前手机厂会所某型号的手机上的所有功能全部测试一遍, 包括手机硬件本身, 手机上自带的APP.
  其实就是在对软件系统进行全面的功能和非功能测试.
  · 测试阶段: 集成测试通过之后
  · 测试对象: 整个系统 (软, 硬件)
  · 测试人员: 黑盒测试工程师
  · 测试依据: 需求规格说明文档
  · 测试方法: 黑盒测试
  · 测试内容: 功能, 界面, 可靠性, 容错性, 易用性, 可移植性, 兼容性, 安全性, 性能, 安装卸载等.
  4. 回归测试(regression testing)
  回归测试是指修改了旧代码后, 重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误.
  自动回归测试将大幅降低系统测试, 维护升级等阶段的成本; 在整个软件的过程中占有很大的工作量比重, 软件开发的各个阶段都会运行多次回归测试.
  5. 冒烟测试(Smoke Testing)
  在软件开发完成后, 要对软件的基础功能和核心流程进行测试, 只有测试通过后, 才可以进入正式的测试环境.
  反之, 测试不通过, 则测试人员是有权利打回项目, 让开发人员进行修改, 直到冒烟测试成功.
  也就是说, 冒烟测试就是先验证软件的核心功能是否能正常工作, 如果核心功能可以正常工作, 就可以测试软件的其它功能了, 反之, 如果核心功不能正常工作, 也就没法展开后续的测试了.
  6. 验收测试(Acceptance Testing)
  验收测试是部署软件之前的最后一个测试操作, 它是技术测试室的最后一个阶段, 也叫做交付测试, 验收测试的目的是保证软件的准备就绪, 按照项目合同, 任务书, 双方约定的验收依据文档, 向软件的购买者展示该软件的原始的需求.
  · 测试阶段: 系统测试之后
  · 测试对象: 整体软件系统
  · 测试人员: 主要是最终用户或者需求方.
  · 测试依据: 用户需求, 验收标准
  · 测试方法: 黑盒测试
  · 测试内容: 同系统测试(功能…各类文档等)
  四. 按测试实施组织
  1. α测试(Alpha Testing)
  α测试是由一个用户在开发环境下进行的测试, 也可以是公司内部的用户在模拟实际操作环境下进行的测试, α测试的目的是评价软件产品的FLURPS(即功能, 局域化, 可使用性, 可靠性, 性能和支持).
  2. β测试(Beta Testing)
  Beta测试是一种验收测试, Beta测试由软件的最终用户们在一个或多个场所进行.
  3. α测试与β测试的区别
  测试的场所不同: Alpha测试是指把用户请到开发方的场所来测试, 而beta测试是指在一个或多个用户的场所进行的测试.
  Alpha测试的环境是受开发方控制的, 用户的数量相对比较少, 时间比较集中; beta测试的环境是不受开发方控制的, 用户数量相对比较多, 时间不集中.
  alpha测试先于beta测试执行, 通用的软件产品需要较大规模的beta测试, 测试周期比较长.
  4. 第三方测试
  介于开发方和用户方之间的组织的测试, 该测试是有第三方测评机构来进行的, 严格按照软件行业的标准规范进行测试的, 就类似于国家指定的食品安全标准, 它都是有规定指标的, 测试行业也是存在这样的指标的.
  五. 按照代码是否运行划分
  1. 静态测试(Static testing)
  所谓静态测试 (static testing) 就是不实际运行被测软件, 而只是静态地检查程序代码, 界面或文档中可能存在的错误的过程; 不以测试数据的执行进行, 而是对测试对象的分析过程, 仅通过分析或检查源程序的设计, 内部结构, 逻辑, 代码风格和规格等来检查程序的正确性.
  2. 动态测试(Dynamic testing)
  动态测试 (dynamic testing), 指的是实际运行被测程序, 输入相应的测试数据, 检查实际输出结果和预期结果是否相符的过程, 所以判断一个测试属于动态测试还是静态的, 唯一的标准就是看是否运行程序.
  大多数软件测试工作都属于动态测试.
  六. 按是否手工划分
  1. 手工测试(Manual testing)
  手工测试就是由人去一个一个的输入用例, 然后观察结果, 和机器测试相对应, 属于比较原始但是必须的一个步骤。
  优点: 自动化无法替代探索性测试, 发散思维结果的测试, 就是说手工测试很灵活.
  缺点: 执行效率慢, 量大易错.
  2. 自动化测试(Automation Testing)
  就是按照人为预设条件下运行系统或应用程序, 评估运行结果, 预先条件应包括正常条件和异常条件; 简单说, 自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程.
  自动化测试比如: 功能测试自动化, 性能测试自动化, 安全测试自动化.
  自动化测试按照测试对象来分, 还可以分为接口测试, UI测试等.
  接口测试的 ROI (产出投入比) 要比UI测试高.
  自动化实施步骤:
  1. 完成功能测试, 版本基本稳定
  2. 根据项目特性, 选择适合项目的自动化工具, 并搭建环境
  3. 提取手工测试的测试用例转化为自动化测试的用例
  4. 通过工具, 代码实现自动化构造输入, 自动检测输出结果是否符合预期
  5. 生成自动测试报告
  6. 持续改进, 脚本优化
  七. 按测试地域划分
  软件国际化是在软件设计和文档开发过程中, 使得功能和代码设计能处理多种语言和文化习俗, 使创建不同语言版本时, 不需要重新设计源程序代码的软件工程方法, 就是说软件具有很强的通用性.
  国际化测试和本地化测试
  国际化测试
  软件的国际化和软件的本地化是开发面向全球不同地区用户使用的软件系统的两个过程, 而本地化测试和国际化测试则是针对这类软件产品进行的测试, 由于软件的全球化普及, 还有软件外包行业的兴起, 软件的本地化和国际化测试俨然成为了一个独特的测试专门领域.
  1. 本地化和国际化测试与其它类型的测试存在很多不同之处, 下面是本地化和国际化测试的一些要点:
  2. 本地化后的软件在外观上与原来版本是否存在很大的差异, 外观是否整齐, 不走样是否对所有界面元素都进行了本地化处理, 包括对话框, 菜单, 工具栏, 状态栏, 提示信息(包括声音的提示), 日志等
  3. 在不同的屏幕分辨率下界面是否正常显示
  4. 是否存在不同的字体大小, 字体样式设置是否恰当
  5. 日期, 数字格式, 货币等是否能适应不同国家的文化习俗; 例如, 中文是年月日, 而英文是月日年.
  6. 排序的方式是否考虑了不同语言的特点, 例如, 中文按照第一个字的汉语拼音顺序排序, 而英文按照首字母排序
  7. 在不同的国家采用不同的度量单位, 软件是否能自适应和转换
  8. 软件是否能在不同类型的硬件上正常运行, 特别是在当地市场上销售的流行硬件上
  9. 软件是否能在Windows或者其它操作系统的当地版本上正常运行
  10. 联机帮助和文档是否已经翻译, 翻译后的链接是否正常; 正文翻译是否正确, 恰当, 是否有语法错误
  软件本地化和国际化测试是一个综合了翻译行业和软件测试行业的测试类型, 它要求测试人员具备一定的翻译能力, 语言文化, 同时具备测试人员的基本技能.
  本地化测试
  之前所有介绍的都是基于本地化进行测试的.
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号