测试分类+自动化测试01
一、高频安全漏洞实操可复现面试必考软件测试中最常遇到的3类安全漏洞每类都附真实接口复现步骤拿去就能演示记熟就能应对面试提问。1. SQL注入最经典危害最大核心定义用户输入的内容被当作SQL语句执行绕过校验、获取数据甚至破坏系统。复现步骤超简单必会用户名输入框填admin or 11 --密码随便填比如123最终请求拼接后SQL变成SELECT * FROM user WHERE usernameadmin or 11 -- AND password123关键解析11永远成立--注释掉后面的密码校验直接登录成功。危害直接登录任意账号、查库、删表、窃取敏感数据。防御方法MyBatis用#{}预编译不要用${}输入做过滤校验。2. 水平越权同权限用户的“数据泄露”核心定义同权限用户非法访问其他同权限用户的数据权限没变只是看了别人的内容。复现步骤真实接口你登录自己的账号userId1001正常查询自己的订单GET /api/order/list?userId1001把URL里的userId改成1002请求变成GET /api/order/list?userId1002若能看到userId1002的订单就是水平越权漏洞。防御方法后端必须校验当前登录用户ID 要查询的用户ID。3. 垂直越权普通用户变“管理员”核心定义低权限用户如普通用户非法访问高权限接口实现权限等级提升。复现步骤真实接口你是普通用户无管理员权限直接访问管理员专属接口GET /api/admin/user/all查询所有用户若能看到所有用户列表就是垂直越权漏洞。防御方法接口加权限拦截基于角色控制RBAC判断当前用户是否为管理员。面试必背精简总结SQL注入输入变成SQL执行可登录、查库、删库水平越权同权限看别人数据改ID就行垂直越权低权限访问管理员接口二、经典测试场景24小时过期功能怎么测试这是典型的时间依赖型业务逻辑测试核心是验证“超过24小时后数据/功能是否按预期失效”无需真等24小时教你高效测试方法。1. 核心测试思路必做步骤构造正常数据创建时间为当前时间验证功能可正常使用。构造临界数据23小时59分59秒仍可用、24小时整触发过期、24小时01分已失效。2. 时间模拟方法避免无效等待方法操作方式优点缺点修改系统时间本地/测试环境将系统时间后调24小时成本低、见效快可能影响其他依赖时间的功能数据库直接修改修改数据的创建时间为24小时前精准控制时间点需要数据库操作权限接口参数篡改传入24小时前的时间戳适合接口测试仅适用于可干预时间参数的场景Mock服务固定返回“24小时前”的时间不影响环境需要额外搭建Mock服务3. 核心测试点必覆盖正常流程24小时内功能可用临界场景24小时整触发过期23小时59分59秒仍可用异常场景跨天/跨月/跨年的24小时、时区差异用户体验过期后有清晰提示支持重新生成/激活。三、黑盒测试核心方法新手必学黑盒测试不关注代码内部逻辑只看输入输出核心是用最少的用例覆盖最多场景以下两种方法最常用结合使用效果最佳。1. 等价类划分法核心概念将输入数据划分为“有效等价类”符合需求和“无效等价类”不符合需求减少测试用例数量。示例6~15位字符输入有效等价类6~15位字符如abc123、test123456789无效等价类6位a12、15位abcdefghijklmnopq、含非法字符!#、空格。2. 边界值分析法核心概念作为等价类划分的补充重点测试输入/输出的边界值软件缺陷多出现于边界分为“边界值”范围端点和“次边界值”边界附近临界值。示例有效范围[6,15]闭区间边界值6有效、15有效次边界值5无效、16无效。口诀必背等价类抓中间边界值掐两头。四、正交表测试多因素多水平高效测试当测试场景有多个输入条件因素每个条件有多种取值水平全量测试用例太多用正交表可大幅精简核心是“均匀覆盖关键组合”。1. 正交表L₄(2³)解读最常用L正交表44行4条测试用例2³3个因素每个因素2个水平核心性质均衡性每列不同取值出现次数相同、正交性任意两列组合齐全均衡价值全量测试需8次用正交表仅需4次不遗漏关键组合。2. 实操示例注册场景5个因素姓名、邮箱、密码、确认密码、验证码每个因素2个水平填写/不填写全量需32条用例用正交表可精简为6条核心用例核心逻辑覆盖所有因素的关键组合波浪号~表示该因素可任意取值不影响覆盖。五、接口测试示例博客详情接口接口测试是测试核心以博客详情接口POST /blog/getBlogDetail?blogId{id}为例覆盖请求方法、身份认证、请求参数3个核心维度直接套用即可。核心测试场景及用例测试类型测试场景操作步骤预期结果请求方法正确GET请求改用GET方式携带blogId请求正常返回数据或提示方法不允许身份认证不携带Token移除user_token_header请求头返回401提示缺少认证信息请求参数blogId为无效值传入blogId999999不存在返回失败提示博客不存在六、常见测试类型全解析整理了软件测试中最核心的测试类型明确每种类型的核心目标、方法和场景避免混淆面试常考。1. 功能测试、性能测试、可靠性测试功能测试核心是“功能能用”验证软件是否实现需求规定的功能用黑盒测试方法等价类、边界值等性能测试核心是“功能用得快”关注响应时间、吞吐量、并发数、资源占用CPU/内存可靠性测试核心是“功能用得稳”验证软件长时间运行、异常环境下断电、断网是否稳定关注平均无故障时间MTBF。2. 静态测试vs动态测试维度静态测试动态测试是否运行程序不运行必须运行核心手段代码走查、文档评审、工具扫描功能测试、接口测试、压测发现问题阶段编码/设计阶段早期程序运行时一句话记忆静态看代码/文档找问题动态跑程序看结果找问题。3. 白盒测试结构测试核心是“看代码围绕代码逻辑设计用例”重点覆盖程序内部逻辑路径常用6种覆盖方法从弱到强语句覆盖每一行可执行代码至少执行一次最弱判定覆盖每个判断语句的真假分支至少执行一次条件覆盖每个判断中的独立条件真假至少取一次判定条件覆盖同时满足判定覆盖和条件覆盖条件组合覆盖每个判断中所有条件的真假组合至少出现一次路径覆盖覆盖所有可能的执行路径最强。4. 白盒vs黑盒vs灰盒测试通俗区分白盒测试拆代码逐行查逻辑开发人员常用单元测试黑盒测试不看代码只看输入输出测试人员常用系统测试灰盒测试介于两者之间知道部分内部结构重点测模块间交互集成测试常用。5. 集成测试vs系统测试vs回归测试集成测试测模块之间的接口和交互比如登录模块→博客列表模块开发人员执行用灰盒测试系统测试测整个系统是否符合需求测试人员执行用黑盒测试包含冒烟测试、用例执行测试回归测试核心是“改代码后老功能还能用”比如修复Bug、新增功能后重新测试原有功能避免引入新缺陷常用自动化执行提高效率。6. 验收测试软件交付前的最后一道关卡由用户/甲方执行用黑盒测试验证软件是否符合真实业务需求系统测试是测是否符合设计规格验收测试是“用户说了算”。7. 手工测试vs自动化测试两者互补不是替代关系自动化测试适合回归测试、批量场景一次编写重复执行效率高、无疏忽但技术要求高无法做发散性测试手工测试适合新功能探索、界面易用性测试灵活自由能发现脚本覆盖不到的问题但效率低、成本高。七、面试/课设补充建议以上知识点涵盖了软件测试的核心考点和实操场景如果你需要可提供可直接演示的漏洞代码Java/SpringBoot修复代码、测试用例模板、Postman集合导出格式拿去做课设、面试都能用省去自己整理的时间。最后提醒软件测试的核心是“发现缺陷、保障质量”所有测试方法和场景都围绕“需求”展开记住核心知识点结合实操练习就能快速上手