1.测试分类
系统测试包括回归测试和冒烟测试
回归测试:修改了旧的代码后,重新测试功能是否正确,有没有引入新的错误或导致其它代码产生错误
冒烟测试:目的是确认软件基本功能正常,可以进行后续的正式测试工作
按是否查看代码
白盒(结构测试、逻辑驱动测试):要查看代码,对代码测试,结构测试
黑盒(功能测试):不用查看代码,对功能进行测试 ,看是否符合用户需求
灰盒:介于黑盒白盒,多用于集成测试
按测试对象
业务测试、界面测试、容错性测试、文档测试、
兼容性测试(平台、浏览器、与其他相关软件是否兼容、向前先后兼容)、
性能测试:响应时间、吞吐量、执行间隔等、
内存泄露测试原因:
分配完内存之后没有回收
程序写法有问题,没办法进行回收
某些API函数的使用不正确,造成内存泄露
没有及时释放
1.1.单元测试、集成测试、系统测试的区别
单元测试
单元测试是对软件组成单元进行测试,其目的是检验软件基本组成单位的正确性,测试的对象是软件设计的最小单位:函数、或者类。通常情况下是白盒的,一般由开发人员测试.能够尽早的发现错误,降低修改成本。
集成测试
集成测试也称综合测试、组装测试、联合测试,将程序模块采用适当的集成策略组装起来,对系统的接口及集成后的功能进行正确性检测的测试工作。其主要目的是检查软件单位之间的接口是否正确,集成测试的对象是已经经过单元测试的模块。
系统测试
系统测试是对整个系统的测试,将硬件、软件、操作人员看作一个整体,检验它是否有不符合系统说明书的地方,主要包括功能测试、界面测试、可靠性测试、易用性测试、性能测试。 功能测试主要针对包括功能可用性、功能实现程度(功能流程&业务流程、数据处理&业务数据处理)方面测试。在集成测试之后。 在系统实际运行环境下来进行测试。
三者区别
- 粒度不同:
- 单元测试粒度最小,测试的是软件的基本模块或接口
- 集成测试粒度居中,测试的是集成各个单元模块之间的接口
- 系统测试粒度最大,测试的是 整个系统的功能和性能
- 测试方式不同:
- 单元测试一般由开发小组采用白盒方式来测试;
- 集成测试一般由开发小组采用白盒加黑盒的方式来测试;
- 系统测试一般由独立测试小组采用黑盒方式来测试。
- 测试内容不同:
- 单元测试主要测试单元是否符合“设计”;
- 集成测试既验证“设计’,又验证“需求”;偏技术
- 系统测试主要测试系统是否符合“需求规格说明书”,偏业务
- 使用阶段不同:
- 单元测试为开发人员在开发阶段要做的事情;
- 集成测试和系统测试为测试人员在测试周期内级层做的工作。
1.2 验收测试
也称交付测试,是针对用户需求、业务流程进行的正式的测试,以确定系统是否满足验收标准,由用户、客户或其他授权机构决定是否接受系统。
验收测试包括alpha测试和beta测试,alpha测试是由开发者进行的软件测试,beta测试是由用户在脱离开发环境下进行的软件测试。
1.3 白盒和黑盒的区别
-
白盒测试
-
白盒测试也称为结构测试或逻辑驱动测试,是针对被测单元内部是如何进行工作的测试。检查程序内部逻辑结构,对所有的逻辑路径进行测试,是一种穷举路径的测试方法,
- 常见的白盒测试的方法有:语句覆盖,条件覆盖,判定覆盖,条件组合覆盖,基本路径覆盖等等。
-
优点:可以检测代码的每条分支和路径;可以揭示隐藏在代码中的错误;对代码的测试比较彻底。
-
缺点:耗费比较大;不能检测到代码中遗漏的逻辑;不能直接验证需求的正确性
-
黑盒测试
-
黑盒测试用例设计方法:基于用户需求的测试、等价类划分方法、边界值分析方法、错误推测方法、因果图方法、判定表驱动分析方法、正交实验法、场景法。依据是用户需求规格说明书,详细设计说明书
- 黑盒测试也称功能测试或数据驱动测试,它不看代码内部的逻辑,只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。
-
优点:容易实施,不需要关注内部实现;贴近用户需求。
- 缺点:覆盖率比较低,因为不知道内部逻辑
1.4 性能测试关注啥
指标:响应时间(RT)、每秒能完成的响应数(TPS)、CPU利用率、内存占用、网络(带宽使用率)、手机app的话还考虑耗电量……
考虑负载加大时,各项指标如何变化,联网的考虑各种不同的网络环境(正常网、超快网、网速慢、断网)时指标的变化
1.5压力测试关注啥
通常要进行软件压力测试的资源包括内部内存、CPU 可用性、磁盘空间和网络带宽。
并发用户数和在线用户数的区别
在线用户数:用户同时在一定时间段的在线数量
并发用户数:某一时刻同时向服务器发送请求的用户数
(在线用户只要在线就好了,并发用户计算的是和服务器有交流的用户,一般比例5%-20%)
1.6 其他测试的类型
功能测试:关注功能正常(包含兼容性测试),除了下面分类都测;
性能测试:关注(比如前端性能、后端性能);
安全测试:关注传输、存储等安全;
特性测试:特性指平台差异(即部分兼容性测试),如PC端鼠标,键盘操作特性(Tab键等);如手机触屏操作,横竖屏,中断恢复(来电)等