软件测试——功能测试篇
功能测试
欢迎来到笔蒂I的软件测试系列,本部分分为:功能测试,Web自动化测试,App自动化测试,接口自动化测试,性能测试,还有一些面试题等内容,大家可自行跳转链接查看哦。
助大家早日找到工作哦❤**
**P0-P4为重要等级哦
一、测试基础(P3)
- 功能测试
也就是目前本篇的内容,主要用于验证程序系统的主要功能是否满足需求 - 自动化测试
使用代码或者工具代替手工,对项目进行测试 - 接口测试
使用代码跟工具对服务端提供的接口进行测试,查看是否正常,可以使用工具实现也可以使用代码实现 - 性能测试
模拟多人使用软件,查找服务器缺陷,可以工具实现,也可以代码实现
二、测试分类(P0)
- 按阶段划分:
- 单元测试:针对程序源代码的测试,主要针对函数、方法进行正确性测试,最后进行断言,常见的单元测试框架有Unittest、Pytest、junit
- 集成测试:如果说单元测试是对单个模块进行测试的话,那集成测试就是对多个模块进行测试了,检测多个模块组合后是否可以达到预期的结果
- 系统测试:系统测试就更加整体了,包括了集成测试、安全测试、兼容性测试、功能测试等一系列东西,是保证项目安全上线的核心
- 验收测试:以用户的身份验收系统是否满足用户的需求
- 按代码可见度分:
黑盒测试:就是看不见代码的测试,主要是对功能、性能、安全进行测试
白盒测试:看得见代码的测试,类似于单元测试,关注代码内部的逻辑结构,帮助开发人员验收代码逻辑的正确性
灰盒测试:结合了黑盒跟白盒测试,但不需要像白盒测试一样太关注代码,只需要关注模块、功能之间的交互是否正常,是否可以正常执行,功能受不受影响
三、质量模型(P1)
这是用于衡量一个软件优秀的维度
一共有八个维度:
- 功能性:功能数量、功能是否正常实现
- 性能:服务器响应的速度,每秒可以处理多少请求
- 兼容性:验证在各个平台上系统是否可以正常流畅的运行
- 易用性:系统对用户是否友好简洁美观
- 安全性:存储是否结果加密、传输是否经过加密
- 可靠性:无响应、卡顿、死机
- 可维护性:系统是否易于维护
- 可移植性:系统进行迁移,从一个系统到另一个系统,从一个平台到另一个平台,是否仍然可用
四、测试用例(P0)
这个部分是做功能测试时必不可少的,主要包括:
用例编号、用例标题、项目/模块、优先级、前置条件、测试步骤、测试数据、预期结果
- 冒烟测试
记得之前面试,面试官问冒烟测试的问题,当时第一次听到冒烟测试这个概念,以为是什么很高级的测试方法,后面其实就是对软件的一个初步的快速的测试方法,假设开发拿了一个灯泡过来,我们通电后灯泡就冒烟了,就灭了,那还有什么好测的呢,就像这个软件打都打不开,或者主要的业务来测都无法通过,那后续也没办法进行测试,这个项目目前是没有可测性的,这就是冒烟测试。 - 如何设计用例呢?
- 等价类划分
有效等价类:满足需求的数据集合
无效等价类:不满足需求的数据集合
负责区分数据的类型跟规则 - 边界值划分
负责测试数据的长度范围 - 判定表法
以一种表格的形式表达多条逻辑判断的根据
由条件桩、动作桩、条件项、动作项组成
例如:现在一个按钮电梯有1-21层您需要如何设计测试用例呢?
- 等价类划分
- 首先等价类划分:数字1-21为有效等价类,非数字和其余数字为无效等价类
- 通过边界值法挑选等价类数值:
【1(上),21(上),10(内)】(有效)
【0(离),22(离)】(无效) - 无效等价类中挑选非数字字母a,空值 进行测试
- 还有一些特殊场景也需要测试,比如说连续按两下,电梯移动过程中按等
- 最后根据这些分析的数值进行测试,验证实际结果与分析结果是否一致
- 如果一致则通过,如果不一致提交缺陷进行后期处理
五、业务测试
基础的功能测试完了,需要连接各个模块查看业务交互是否正常
例如发布文章业务基本流程如下:
一共三条流程结束,所以就会有三条用例可编写:
六、软件测试管理
- 提问:软件测试的流程是什么?
- 需求分析、制定测试计划、编写用例、执行用例、测试报告、回归测试
- 提问:执行用例发现了缺陷怎么办!
1、提交bug管理系统 2、分配给开发 3、查看是否重复 4、查看是否是一个bug 5、是否需要延期修复(更具优先级判断) 6、回归测试 7、验证通过(不通过回归第二步) - 真实面试题:如果你发现一个bug而开发不觉得这是一个bug怎么办?
- 首先需要测试的时候bug出现尽量进行截图、录屏、查看日志信息等
- 可能是测试环境和开发环境差异导致的,保证环境正确后,重新尝试复原这个bug
- 可能是需求没有统一,可能是开始设计需求时没有考虑到这一块,但是测试测到了这一块,这个可用跟产品经理明确一下需求,看看具体这个是功能还是bug
软件测试——功能测试篇
http://example.com/2024/08/26/软件测试/SoftWareTest/