软件测试——进阶篇

文章目录

  • 前言
  • 1、按测试对象划分
    • 1.1 界面测试
    • 1.2 可靠性测试
    • 1.3 容错性测试
    • 1.4 文档测试
    • 1.5 兼容性测试
    • 1.6 易用性测试
    • 1.7 安装卸载测试
    • 1.8 安全测试
    • 1.9 性能测试
    • 2.0 内存泄漏测试
  • 2、按是否查看代码划分
    • 2.1 黑盒测试
    • 2.2 白盒测试
    • 2.3 灰盒测试
  • 3、按开发阶段划分
    • 3.1 单元测试(Unit Testing)
    • 3.2 集成测试(Integration Testing)
    • 3.3 系统测试(System Testing)
    • 3.4 回归测试(Regression Testing)
    • 3.5 冒烟测试(smoke testing)
    • 3.6 验收测试(Acceptance Testing)
  • 4、按测试实施组织
    • 4.1 α测试(Alpha Testing)
    • 4.2 β测试(Beta Testing)
    • 4.3 第三方测试
  • 5、按是否运行划分
  • 6、按是否手工划分
  • 7、按测试地域划分

前言

本章讲测试的分类

1、按测试对象划分

软件只是一种工具,软件与人的信息交流是通过界面来进行的,界面是软件与用户交流的最直接的一
层,界面的设计决定了用户对我们设计的软件的第一印象;界面如同人的面孔,具有吸引用户的直接优势,设计合理的界面能给用户带来轻松愉悦的感受。

1.1 界面测试

界面测试(简称UI测试),指按照界面的需求(一般是UI设计稿)和界面的设计规则,对我们软件界面所展示的全部内容进行测试和检查,一般包括如下内容:

  • 验证界面内容显示的完整性,一致性,准确性,友好性。比如界面内容对屏幕大小的自适应,换行,内容是否全部清晰展示;
  • 验证整个界面布局和排版是否合理,不同板块字体的设计,图片的展示是否符合需求;
  • 测试界面的自适应性,界面适应不同的页面大小(文字没有重叠,消失。界面从大到小的变化过程中,功能完整,文字完整,图片完整,不出现叠加消失,功能无法使用等情况)
  • 对界面不同控件的测试,比如,对话框,文本框,滚动条,选项按钮等是否可以正常使用,有效和无效的状态是否设计合理;
  • 界面的布局和色调符合当下时事的发展。

思考:常见的界面错误有哪些/p>

页面的常见错误:

1)不合适的快捷键

3)截断

5)文字的自动换行

7)重复的快捷键

3.1 单元测试(Unit Testing)

单元测试是对软件组成单元进行测试。其目的是检验软件基本组成单位的正确性。测试的对象是软件设计的最小单位:模块,所以又称为模块测试

  • 测试阶段:编码后或者编码前(TDD)
  • 测试对象:最小模块
  • 测试人员:白盒测试工程师或开发工程师
  • 测试依据:代码和注释+详细设计文档
  • 测试方法:白盒测试
  • 测试内容:模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试

3.2 集成测试(Integration Testing)

集成测试也称联合测试(联调)、组装测试,将程序模块采用适当的集成策略组装起来,对系统的接口及集成后的功能进行正确性检测的测试工作。集成主要目的是检查软件单位之间的接口是否正确

  • 测试阶段:一般单元测试之后进行
  • 测试对象:模块间的接口
  • 测试人员:白盒测试工程师或开发工程师
  • 测试依据:单元测试的模块+概要设计文档
  • 测试方法:黑盒测试与白盒测试相结合
  • 测试内容:模块之间数据传输、模块之间功能冲突、模块组装功能正确性、全局数据结构、单模块缺陷对系统的影响

3.3 系统测试(System Testing)

新买手机都会有一个合格标签,在出厂前手机厂会所某型 的手机上的所有功能全部测试一遍。包括手机硬件 本身,手机上自带的APP

将软件系统看成是一个系统的测试。包括对功能、性能以及软件所运行的软硬件环境进行测试

  • 测试阶段:集成测试通过之后
  • 测试对象:整个系统(软、硬件)
  • 测试人员:黑盒测试工程师
  • 测试依据:需求规格说明文档
  • 测试方法:黑盒测试
  • 测试内容:功能、界面、可靠性、易用性、性能、兼容性、安全性等

3.4 回归测试(Regression Testing)

接着上边的美颜功能不可用的例子,拿去维修点进行了维修,拿到手机后第一件事情是先看美颜功能修好了没 有,第二事情就是看看手机的其它常用功能是否正常

回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误

在整个软件测试过程中占有很大的工作量比重,软件开发的各个阶段都会进行多次回归测试。随着系统的庞大,回归测试的成本越来越大,通过选择正确的回归测试策略来改进回归测试的效率和有效性是很有意义的。

3.5 冒烟测试(smoke testing)

冒烟测试的对象是每一个新编译的需要正式测试的软件版本,目的是确认软件主要功能和核心流程正
常,在正式进行系统测试之前执行。冒烟测试一般在开发人员开发完毕后提交给测试人员来进行测试
时,先进行冒烟测试,保证基本功能正常,不阻碍后续的测试

如果冒烟测试通过,则测试人员开始进行正式的系统测试,如果不通过,则测试人员可以让开发人员重新修复代码直到冒烟测试通过,再开始进行系统测试。

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

3.6 验收测试(Acceptance Testing)

买到新手机,一般会有7天包退,一个月包换,我们会尽量在7天内把手机的所有功能都试一遍。

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

  • 测试阶段:系统测试通过之后
  • 测试对象:整个系统(包括软硬件)。
  • 测试人员:主要是最终用户或者需求方。
  • 测试依据:用户需求、验收标准
  • 测试方法:黑盒测试
  • 测试内容:同系统测试(功能…各类文档等)

4、按测试实施组织

4.1 α测试(Alpha Testing)

手机出厂前最后一次测试,开发和测试人员不参与。

测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的
测试。α测试的目的是评价软件产品的FLURPS(即功能、局域化、可使用性、可靠性、性能和支持)

大型通用软件,在正式发布前,通常需要执行Alpha和Beta测试。α测试不能由程序员或测试员完成

4.2 β测试(Beta Testing)

新手机购买回来,参与测试的人是购买者,使用的场所及环境已不再是手面厂商的环境及场所

Beta测试是一种验收测试。Beta测试由软件的最终用户们在一个或多个场所进行。

α测试与Beta测试的区别:
测试的场所不同:α测试是指把用户请到开发方的场所来测试,β测试是指在一个或多个用户的场所进行的测试。
α测试的环境是受开发方控制的,用户的数量相对比较少,时间比较集中。β测试的环境是不受开发方控制的,用户数量相对比较多,时间不集中。
α测试先于β测试执行。通用的软件产品需要较大规模的beta测试,测试周期比较长。

4.3 第三方测试

第三方测试有别于开发人员或用户进行的测试,其目的是为了保证测试工作的客观性。从国外的经验来看,测试逐渐由专业的第三方承担。同时第三方测试还可适当兼顾初级监理的功能,其自身具有明显的工程特性,为发展软件工程监理制奠定坚实的基础。第三方测试工程主要包括需求分析审查、设计审查、代码审查、单元测试、功能测试、性能测试、可恢复性测试、资源消耗测试、并发测试、健壮性测试、安全测试、安装配置测试、可移植性测试、文档测试以及最终的验收测试等十余项

第三方测试介于开发方和用户方间的组织的测试

5、按是否运行划分

静态测试(Static testing)

所谓静态测试(static testing)就是不实际运行被测软件,而只是静态地检查程序代码、界面或文档中可能存在的错误的过程。不以测试数据的执行而是对测试对象的分析过程,仅通过分析或检查源程序的设计、内部结构、逻辑、代码风格和规格等来检查程序的正确性

动态测试(Dynamic testing)

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

大多数软件测试工作都属于动态测试

6、按是否手工划分

手工测试(Manual testing)

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

优点:自动化无法替代探索性测试、发散思维结果的测试
缺点:执行效率慢,量大易错

自动化测试(Automation Testing)

就是在预设条件下运行系统或应用程序,评估运行结果,预先条件应包括正常条件和异常条件。简单说自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程

自动化测试比如功能测试自动化、性能测试自动化、安全测试自动化

自动化测试按照测试对象来分,还可以分为接口测试、UI测试等。接口测试的ROI(产出投入比)要比UI测试高

自动化实施步骤:
1.完成功能测试,版本基本稳定
2.根据项目特性,选择适合项目的自动化工具,并搭建环境
3.提取手工测试的测试用例转化为自动化测试的用例
4.通过工具、代码实现自动化的构造输入,自动检测输出结果是否符合预期
5.生成自动测试 告
6.持续改进,脚本优化。

7、按测试地域划分

什么是软件国际化/p>

是在软件设计和文档开发过程中,使得功能和代码设计能处理多种语言和文化习俗,使创建不同语言版本时, 不需要重新设计源程序代码的软件工程方法。

国际化测试
软件的国际化和软件的本地化是开发面向全球不同地区用户使用的软件系统的两个过程。而本地化测试和国际化测试则是针对这类软件产品进行的测试。由于软件的全球化普及,还有软件外包行业的兴起,软件的本地化和国际化测试俨然成为了一个独特的测试专门领域。

本地化和国际化测试与其他类型的测试存在很多不同之处。下面是本地化和国际化测试的一些要点:

  1. 本地化后的软件在外观上与原来版本是否存在很大的差异,外观是否墼齐、不走样
  2. 是否对所有界面元素都进行了本地化处理,包括对话框、菜单、工具栏、状态栏、提示信息(包括声音的提示)、日志等
  3. 在不同的屏幕分辨率下界面是否正常显示
  4. 是否存在不同的字体大小,字体设置是否恰当
  5. 日期、数字格式、货币等是否能适应不同国家的文化习俗。例如,中文是年月日,而英文是月日年
  6. 排序的方式是否考虑了不同语言的特点。例如,中文按照第一个字的汉语拼音顺序排序,而英文按照首字母排序
  7. 在不同的国家采用不同的度量单位,软件是否能自适应和转换
  8. 软件是否能在不同类型的硬件上正常运行,特别是在当地市场上销售的流行硬件上
  9. 软件是否能在Windows或者其他操作系统的当地版本上正常运行
  10. 联机帮助和文档是否已经翻译,翻译后的链接是否正常。正文翻译是否正确、恰当, 是否有语法错误

软件本地化和国际化测试是一个综合了翻译行业和软件测试行业的测试类型。它要求测试人员具备一定的翻译能力、语言文化,同时具备测试人员的基本技能

本地化测试
之前我们所讲的全是本地化测试

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年8月24日
下一篇 2022年8月24日

相关推荐