1. 按照测试对象划分
界面测试
界面测试(简称UI测试),测试用户界面的功能模块的布局是否合理、整体风格是否一致、各个控件的放置位置是
否符合客户使用习惯,此外还要测试界面操作便捷性、导航简单易懂性,页面元素的可用性,界面中文字是否正
确,命名是否统一,页面是否美观,文字、图片组合是否完美等。
一般大厂都有自己的规范可以作为测试参考。中小公司这部分测试一般都没有,除非明确的错误,否则容易和开发
人员引起争议。
界面测试参考UI设计图
可靠性测试
可靠性即可用性,是指系统正常运行的能力或者程度,一般用正常向用户提供软件服务的时间占总时间的百分比表示
可靠性=正常运行时间/(正常运行时间+不正常运行时间)*100%
可用性指标一般要求达到4个或5个9,即99.99%或者99.999%
容错性测试
容错性测试是指系统能够处理异常,用户的错误操作不至于系统奔溃,从而能够提高系统的可用性
文档测试
通常来说是在需求评审时测试人员需要进行需求分析(文档测试)
文档测试关注点:
兼容性测试
浏览器兼容(Chrome,Firefox,Safari)
平台兼容(Linux,Windows,Mac,安卓,苹果,鸿蒙,不同平台也有不同的版本)
自身兼容性:Chrome软件(1~103版本…)
其他软件的兼容性:百度APP(tab推荐,直播,小说…),贴吧,好看视频都有小说的入口(通过矩阵产品来引流),数据兼容
易用性测试
软件需要具备简单易上手的属性
安装卸载测试
移动端测试很容易遗漏掉卸载测试
安全测试
安全测试是一个相对独立的领域,需要更多的专业知识。例如web的安全测试,需要熟悉各种网络协议
TCP\HTTP,防火墙,CDN,熟悉各种操作系统的漏洞,熟悉路由器等。从软件来说,熟悉各种攻击手段,例如
SQL注入、Xss等。
作为web入门测试,可以IBM的appscan。
SQL注入(or where 1=1),XSS 漏洞(输入script代码),越权(垂直越权,水平越权)
性能测试
资源泄漏(内存泄漏),资源瓶颈(CPU、内存、网络、进程对比),采长补短
内存泄漏检查测试:
- 工具检查:静态代码扫描工具
- 人工检查
按照是否查看代码划分
黑盒测试
把代码看成是一个黑匣子,不关心内部结构和特性,只关心功能是否符合产品规格说明书的要求,黑盒测试又可以称为数据驱动测试或者功能测试
常见的黑盒测试设计测试用例的方法:
- 等价类
- 边界值
- 正交表法
- 判定表法
- 场景法
- 错误猜测法
- …
白盒测试
白盒测试又可以称为结果测试或者逻辑驱动测试,检查程序内部实现,从代码的角度去查看问题,检查程序的运行状态是否符合预期
灰盒测试
介于黑盒测试和白盒测试两者之间,既要关心内部结构和特性,还要关心功能是否符合要求
● 为什么不直接用灰盒测试?
● 灰盒测试没有白盒测试详细,完整;黑盒测试是覆盖产品功能范围最广的测试,所以灰盒测试是不能取代黑盒测试和白盒测试的,但是黑盒测试可以取代灰盒测试,但是不建议,需要消耗很大的代价,需要设计非常非常多的测试用例
面试题:常见的测试方法有哪些?哪种测试方法用的多?
● 常见的测试方法有白盒测试和黑盒测试,在工作中需要根据实际情况来结合白盒测试和黑盒测试,通常来说测试人员使用黑盒测试方法相对多一点,需要结合白盒测试来完善测试,提高软件的健壮性
灰盒测试通常在集成测试用的多(开发人员用的多)
按照开发阶段划分
单元测试
单元测试是对软件组成单元进行测试。其目的是检验软件基本组成单位的正确性。测试的对象是软件设计的最小单
位:模块。又称为模块测试 (最小单元是人为规定的,类\模块…)
测试阶段:编码后或者编码前(TDD)
测试对象:最小模块
测试人员:白盒测试工程师或开发工程师
测试依据:代码和注释+详细设计文档
测试方法:白盒测试
测试内容:模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试
集成测试
集成测试也称联合测试(联调)、组装测试,将程序模块采用适当的集成策略组装起来,对系统的接口及集成后的
功能进行正确性检测的测试工作。集成主要目的是检查软件单位之间的接口是否正确。
测试阶段:一般单元测试之后进行
测试对象:模块间的接口
测试人员:白盒测试工程师或开发工程师
测试依据:单元测试的模块+概要设计文档
测试方法:黑盒测试与白盒测试相结合
测试内容:模块之间数据传输、模块之间功能冲突、模块组装功能正确性、全局数据结构、单模块缺陷对系
统的影响
冒烟测试
由测试人员来执行,检查系统主要功能和主要流程是否正常,评估软件、系统是否具备可测试的条件/可测试的标准
系统测试
将软件系统看成是一个系统的测试。包括对功能、性能以及软件所运行的软硬件环境进行测试。时间大部分在系统
测试执行阶段,包括回归测试和冒烟测试,保证系统规格符合产品规格说明书
测试阶段:集成测试通过之后
测试对象:整个系统(软、硬件)
测试人员:黑盒测试工程师
测试依据:需求规格说明文档
测试方法:黑盒测试
测试内容:功能、界面、可靠性、易用性、性能、兼容性、安全性等
回归测试
回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。自动回归测
试将大幅降低系统测试、维护升级等阶段的成本。 (在保证修复的功能正常后,同时保证历史其他功能没有受到破坏,错误等)
验收测试
通常指的是用户来进行验证测试,目的就是为了验证产品/程序符合用户的需求
实际上主要由产品同学/运营同学来进行验收
按照测试实施组织
α测试
α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试。α测试
的目的是评价软件产品的FLURPS(即功能、局域化、可使用性、可靠性、性能和支持)。
大型通用软件,在正式发布前,通常需要执行Alpha和Beta测试。α测试不能由程序员或测试员完成
案例:手机出厂前最后一次测试,开发和测试人员不参与。
β测试
Beta测试是一种验收测试。Beta测试由软件的最终用户们在一个或多个场所进行。
α测试与Beta测试的区别:
测试的场所不同:Alpha测试是指把用户请到开发方的场所来测试,beta测试是指在一个或多个用户的场所进行的测
试。
Alpha测试的环境是受开发方控制的,用户的数量相对比较少,时间比较集中。beta测试的环境是不受开发方控制的,
用户数量相对比较多,时间不集中。
alpha测试先于beta测试执行。通用的软件产品需要较大规模的beta测试,测试周期比较长。
案例:新手机购买回来,参与测试的人是购买者,使用的场所及环境已不再是手面厂商的环境及场所。
第三方测试
介于开发方和用户方间的组织的测试。
按照是否运行划分
静态测试
静态方法是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。
对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错。
● 代码静态分析和文档测试都属于静态测试
动态测试
动态测试方法是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性
能。这种方法由三部分组成:构造测试用例、执行程序、分析程序的输出结果。
大多数软件测试工作都属于动态测试。
按照是否手工划分
手工测试
手工测试就是由人去一个一个的输入用例,然后观察结果,和机器测试相对应,属于比较原始但是必须的一个步
骤。总结优缺点:
● 优点:自动化无法替代探索性测试、发散思维结果的测试。
● 缺点:执行效率慢,量大易错。
自动化测试
就是在预设条件下运行系统或应用程序,评估运行结果,预先条件应包括正常条件和异常条件。简单说自动化测试
是把以人为驱动的测试行为转化为机器执行的一种过程。
自动化测试比如功能测试自动化、性能测试自动化、安全测试自动化。
● 通常所说的自动化是指功能测试自动化。
自动化测试按照测试对象来分,还可以分为接口测试、UI测试等。接口测试的ROI(产出投入比)要比UI测试高。
按照测试地域划分
国际化测试
软件的国际化和软件的本地化是开发面向全球不同地区用户使用的软件系统的两个过程。而本地化测试和国际化测
试则是针对这类软件产品进行的测试。由于软件的全球化普及,还有软件外包行业的兴起,软件的本地化和国际化
测试俨然成为了一个独特的测试专门领域。
本地化测试
之前写的所有测试方法都属于本地化测试