目录
一、按照测试目标分类
1.界面测试(UI测试)
页面展示的所有元素/内容都需要测试
2.功能测试
设计功能测试用例,参考产品规格说明书进行用例的编写,具体的测试用例需要使用黑盒测试用例的方法。(等价类,边界值,场景法,正交法,场景法,错误猜测法)
3.可靠性测试
可靠性=正常运行时间/(正常+非正常运行时间)*100%
企业中一般软件产品/程序的可用性要求达到99.99%/99.999%
4.安全性测试
越权问题:垂直越权和水平越权
①垂直越权(不同权限层级间的越权)
示例场景:普通用户访问管理员接口
场景:普通用户通过修改请求参数(如URL或API中的role=admin
),直接调用管理员专属接口(如删除用户、修改系统配置)。
漏洞原因:后端仅依赖前端传递的角色标识,未做二次校验。
②水平越权(相同权限层级间的越权)
示例场景:共享账号下的数据泄露
场景:医疗系统中,医生A和医生B权限相同,但医生A通过患者ID直接访问医生B负责的患者病历。
二、按照执行方式分类
1.静态测试
在不实际运行被测软件,只是静态地检查程序代码,界面/文档中可能存在的错误的过程。
2.动态测试
实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相等。
三、按照测试方法分类
1.白盒测试
概念:(结构化测试/逻辑测试)一般用来分析程序的内部结构,针对程序的逻辑结构来设计测试用例进行测试。
分类:
1)静态测试:桌面检查,代码审查,代码走查,代码扫描工具
2)动态测试:语句覆盖,判定覆盖,条件覆盖,判定条件覆盖,条件组合覆盖,路径覆盖
1)语句覆盖:每个语句至少执行一次
2)判定覆盖:覆盖所有逻辑判断的真/假分支。
3)条件覆盖:使每个子条件(原子条件)的真/假均被覆盖。
4)判定条件覆盖:结合判定覆盖和条件覆盖来设计测试用例,既覆盖条件,也覆盖判定
5)条件组合覆盖:覆盖所有子条件的真/假组合(2^n种组合,n为子条件数)。
6)路径覆盖:覆盖代码所有可能的执行路径(包括循环、嵌套分支)。
2.黑盒测试
(数据驱动测试)只注重软件的功能
完全不考虑程序逻辑和内部结构的情况下,检查系统功能是否按照需求规格说明书的规定正常使用。
缺点:不可能覆盖所有的代码
测试方法:等价类,边界值,正交法,判定表法,错误猜测法,场景法。
3.灰盒测试
介于白盒和黑盒测试之间的一种测试。
=> 多用于集成测试阶段,不仅关注输入,输出正确性,也关注程序内部情况。
四、按照测试阶段分类
1.单元测试:
与编码同步进行,针对软件最小组成单元进行测试。
主要采用白盒测试方法,从被测单元内部结构出发设计测试用例。
2.集成测试:
做一个排序的系统,获取用户输入的数据,系统进行排序,再将数据输出。(灰盒测试)
3.系统测试:
对通过集成测试的系统进行整体测试,验证系统功能性和非功能性需求的实现。(黑盒测试)
1)冒烟测试:检查主流程是否走的通
2)回归测试:所有的页面所有的功能测试完备之后要整体再回归一遍。
五、自动化测试和手工测试
1)自动化:缺点:对测试人员技术要求较高,不能发散性测试。
优点:节省成本,提高测试人员执行工作效率,保证产品质量。
2)手工:缺点:效率低,人员,时间成本比起自动化测试都比较高
优点:对测试人员技术要求没有自动化技术要求高,可以进行发散性测试。
六:按照实施组织划分
1. Alpha测试(A测试)
定义
在受控环境下由开发团队或内部用户(如QA、产品经理)进行的早期测试,通常在开发末期或预发布阶段执行。
关键特点
-
环境:实验室或开发环境,模拟真实场景。
-
参与者:内部人员(开发者、测试工程师)。
-
目标:
-
发现核心功能缺陷、性能问题。
-
验证功能是否符合需求文档。
-
-
测试范围:覆盖主要功能,但可能忽略极端用户场景。
执行阶段
-
开发完成 → 内部修复关键Bug → 进入Beta测试。
示例场景
-
游戏公司邀请内部员工试玩新版本,记录崩溃和任务卡点。
-
企业软件在内部部署测试版,验证数据导入流程。
2. Beta测试(B测试)
定义
在真实用户环境中由外部用户群体进行的测试,通常在Alpha测试之后、正式发布之前执行。
关键特点
-
环境:真实用户环境(公测或限号测试)。
-
参与者:真实用户(志愿者或目标客户)。
-
目标:
-
收集用户体验反馈(易用性、界面设计)。
-
发现长尾场景缺陷(如设备兼容性、网络波动)。
-
-
测试范围:全功能开放,覆盖用户实际使用路径。
执行阶段
-
Alpha测试修复后 → 面向用户发布Beta版 → 收集反馈 → 正式发布。
示例场景
-
手机厂商向公众推送Beta版系统,收集续航和发热反馈。
-
SaaS软件开放免费试用,分析用户行为数据优化流程。