testNG ———— java 自动化测试框架
Junit ———— java 单元测试框架
内外接口测试:
内部接口,外部接口都是有参照物
通过接口的调用来使用工具包
单元测试:
java Junit 注释:打在类里面具体的方法上面的
@Test:执行单元测试的时候要执行这个方法
@BeforeTest:在执行@Test之前执行这个方法
@AfterTest:与@BeforeTest相对应
★1.按开发阶段划分
测试金字塔:
(1)定位缺陷:越往底层,定位问题越容易;越往上,定位越难
(2)效率:越往上测试效率越低,测试结果的响应时间越长
(3)成本:越往上层,不仅测试的成本高,修复的成本更高
1.单元测试
单元测试是对软件组成单元进行测试,目的是检验软件基本组成单位的正确性。测试的对象是软件设计的最小单位:模块。又称为模块测试。
测试阶段:编码后或者编码前(TDD)
测试对象:最小模块
测试人员:白盒测试工程师或开发工程师
测试依据:代码和注释+详细设计文档
测试方法:白盒测试
测试内容:模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试
2.集成测试
集成测试也称联合测试(联调)、组装测试,将程序模块采用适当的集成策略组装起来,对系统的接口及集成后的功能进行正确性检测的测试工作。集成主要目的是检查软件单位之间的接口是否正确。
测试阶段:一般单元测试之后进行
测试对象:模块间的接口
测试人员:白盒测试工程师或开发工程师 测试依据:单元测试的模块+概要设计文档
测试方法:黑盒测试与白盒测试相结合
测试内容:模块之间数据传输、模块之间功能冲突、模块组装功能正确性、全局数据结构、单模块缺陷对系 统的影响
3.系统测试
新买手机都会有一个合格标签,在出厂前手机厂会所某型号的手机上的所有功能全部测试一遍。包括手机硬件本身,手机上自带的APP。
将软件系统看成是一个系统的测试。包括对功能、性能以及软件所运行的软硬件环境进行测试。时间大部分在系统测试执行阶段,包括回归测试和冒烟测试。
测试阶段:集成测试通过之后
测试对象:整个系统(软、硬件)
测试人员:黑盒测试工程师
测试依据:需求规格说明文档
测试方法:黑盒测试
测试内容:功能、界面、可靠性、易用性、性能、兼容性、安全性等
4.回归测试
回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。自动回归测试将大幅降低系统测试、维护升级等阶段的成本。
5.冒烟测试:在正式测试之前对软件的核心功能和基本流程进行测试
6.验收测试:
验收测试是部署软件之前的最后一个测试操作。它是技术测试的最后一个阶段,也称为交付测试。验收测试的目的是确保软件准备就绪,按照项目合同、任务书、双方约定的验收依据文档,向软件购买都展示该软件系统满足原始需求。
测试阶段:系统测试通过之后
测试对象:整个系统(包括软硬件)。
测试人员:主要是最终用户或者需求方。
测试依据:用户需求、验收标准
测试方法:黑盒测试
测试内容:同系统测试(功能…各类文档等)
2.按测试实施组织
1.α测试
是由一个用户在开发环境下进行的测试
目的:评价软件产品的功能、局域化、可使用性、可靠性、性能和支持
不能 由程序员或测试员完成
2.β测试:是一种验收测试,由软件的最终用户们在一个或多个场所进行
3.第三方测试:介于开发方和用户之间的组织的测试
3.按是否运行划分
1.静态测试:是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性
2.动态测试:是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能。这种方法由三部分组成:构造测试用例、执行程序、分析程序的输出结果。
4.按是否手工划分
★1.手工测试
就是由人去一个一个的输入测试用例,观察结果,和机器测试相对于,比较原始
优点:自动化无法替代探索性测试,发散思维结果的测试
缺点:执行效率慢,量大易错
2.自动化测试
是把以人为驱动的测试行为转化为机器执行的一种过程
自动化实施步骤:
1.完成功能测试,版本基本稳定
2.根据项目特性,选择适合项目的自动化工具,并搭建环境
3.提取手工测试的测试用例转化为自动化测试的用例
4.通过工具、代码实现自动化的构造输入,自动检测输出结果是否符合预期
5.生成自动测试报告
6.持续改进,脚本优化。
#####★ 4.按是否查看代码划分
1.黑盒测试:黑盒测试也称功能测试,测试中把被测的软件当成一个黑盒子,不关心盒子的内部结构是什么,只关心软件的输入数据与输出数据。
2.白盒测试:白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒指的打开盒子,去研究里面的源代码和程序结果。
白盒测试的测试方法:(1)逻辑覆盖(2)循环覆盖(3)基本路径覆盖
语句覆盖 判定覆盖 条件覆盖 条件条件组合 判定和判定组合 条件和判定组合,白盒测试是基于代码的测试
接口测试也是白盒测试的是一种 。
3.灰盒测试:灰盒测试,是介于白盒测试与黑盒测试之间的一种测试,灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况。
5.按测试地域划分
1.国际化测试
2.本地化测试
★6.按测试对象划分
1.业务测试:是测试人员把系统各个模块串接起来运行、模拟真实用户实际的工作流程,满足用户需求定义的功能来进行测试的过程
2.界面测试:简称UI测试,测试用户界面的功能模块的布局是否合理、整体风格是否一致、各个控件的放置位置是否符合客户使用习惯,此外还要测试界面操作便捷性、导航简单易懂性,页面元素的可用性,界面中文字是否正确,命名是否统一,页面是否美观,文字、图片组合是否完美等。
3.容错性测试:检查软件在异常条件下自身是否具有防护性的措施或某种灾难性恢复的手段。当系统出错时,能否在指定时间间隔内修正错误并重新启动系统。
1.数据边界性测试
2.校验性测试 trim()
重复填写的信息,填写不一致
上传不符合类型的文件
3.数据级测试
4.环境容错性测试
断电、服务器出现问题、网络出现问题
5.界面级容错性测试
6.安全测试
越权访问
7.资源安全
4.文档测试:
关注点:文档的术语、文档的正确性、文档的完整性、文档的一致性、文档的易用性
5.兼容性测试:主要是指软件之间能否很好的运做,会不会有影响、软件和硬件之间能否发挥很好的效率工作,会不会影响导致系统的崩溃。
平台测试、浏览器测试、软件本身能否向前或者向后兼容、测试软件能否与其他相关的软件兼容、数据兼容性测试
6.易用性测试:是交互的适应性、功能性和有效性的集中体现。易用性属于人体工程学的范畴,人体工程学是一门将日常使用的东西设计为易于使用和实用性强的学科。
7.安装测试:测试程序的安装、卸载
8.安全测试
9.性能测试:检查系统是否满足需求规格说明书中规定的性能。
1.很快的响应
2.能否处理预期的用户负载
3.能否处理业务所需要的事务的数量
4.在预期和非预期的用户负载情况下,系统是否能够稳定
5.真实使用环境下,是不是让用户有舒服的体验
10.内存泄漏测试:
造成的原因:分配完内存之后没有回收、程序写法有问题,造成没办法回收、某些API函数的使用不正确,造成内存泄露、没有及时释放