1. 敏捷开发模型
分为XP和Scrum
- XP(极限编程)开发和客户占主导地位,测试通过自动化测试进行的
- Scrum最基本概念是sprint(冲刺),迭代周期
2. DevOps开发模型
自动化方式持续完成软件测试交付流程,
- 持续开发:
- 计划阶段: jira
- 编码阶段: Git, svn
- 构建阶段: 打包工具Maven
- 持续测试
- Web自动化: Selenium
App自动化: Appium
- 测试框架: Java的JUnit, TestNG; Python中的unittest,pytest
- 持续集成
- Jenkins (可设置为git库有新代码自动触发新构建任务)
- 持续部署
- 容器化工具Docker帮助保持各种运行环境是一致的,如测试环境、生产环境等
- 持续监控
- 系统上线后持续监控,提高软件的质量, 使用ELK Stack自动收集用户使用系统的动作和产品的一些线上的badcase.
3. 需求分析
- 明确测试范围: 边界, 新功能与已有功能耦合度,关联功能模块
- 明确功能点: 列出功能点
- 明确业务流程: 业务流程图梳理
- 明确输出结果: 方便验证
- 分析异常流程: 提高系统容错性
- 预估测试资源和时间: 准备测试计划
4. 测试策略
- 重点关注:
- 测试目标,
- 测试风险,
- 测试对象和范围,
- 如何安排各种测试活动,
- 如何评价测试的效果
- 总体测试策略
- 明确产品质量目标:
- 需求覆盖度
- 测试用例执行度
- 安全性
- 性能优化
- 代码规范
- Bug修复率
- 产品标准输出文档
- 功能分类的测试策略:
- 根据功能类型分配优先级
- 风险分析:
- 提前识别阻塞测试风险
- 调整测试策略
- 增加测试活动或质量保证活动
- 总体测试安排:
- 具体时间的分配安排,包含产品的各个阶段
- 明确产品质量目标:
- 初级版本测试策略
- 确定测试范围
- 明确测试目标
- 重点业务关注
- 分配测试的资源与环境
- 用例设计选择
- 冒烟测试策略
- 文档管理
- 跟踪测试执行:跟踪测试用例执行情况,缺陷跟踪
- 版本质量评估:需求和实现的偏差,测试过程评估,缺陷分析
- 后续版本测试策略:增加回归和探索式测试策略内容
- 发布质量评估:确认质量目标是否完成,分析遗留缺陷的处理情况
5. 技术架构层次
3层(web和app关注方向不同):
- 视图层(View): 网页开发(HTML,CSS),移动app(Activity页面.View组件等)
- UI的diff对比分析界面变化
- Web chrome开发工具的elements和style分析界面(px、em、rem区别介绍 | 菜鸟教程
- 控制层(Controller): 网页开发工具(chrome devtool),移动应用使用工具
- 平台提供的日志和应用程序本身提供的应用调试日志分析代码层次的逻辑问题
- web的console展示出错信息,source对错误定位,并通过debug分析问题存在的上下文
- app通过logcat分析app runtime日志
- 模型层(Model): 模型的传递方式(HTTP、TCP、RPC串口),模型的形式(JSON,XML binary)
- web的network分析请求方法和数据的具体情况
- 链路分析的代理工具有fiddler,charles和mitmproxy及网络层嗅探(工具有Tcpdump和Wireshark)
bug定位分析MVC三层的运行平台、应用调试机制和链路
6. 测试环境搭建
- 被测系统(AUT)包含被测试的app,网页,后端服务,大致分为移动端测试和服务端测试.常见的被测系统类型: UI,SERVICE,CODE
- 部署方法
- 测试部署包含脚本部署(通过bash,python等脚本实现自动化的构建与部署/通过持续集成平台如jenkins)和容器部署(自动化构建bash,容器构建docker,容器编排K8S,持续集成jenkins)
7. JS
JS是脚本语言,可以插入HTML页面的编程代码中,可被所有的浏览器执行,可实现一些功能,用来向HTML页面添加交互行为.
- 内部引用: <script></script>之间包含JS代码,浏览器会解释执行
- 外部引用: <script src=''myScript.js"></script> src属性包含了外部脚本代码所在的路径,右键查看reveal in sources panel可查看source,可以对JS脚本调试
- 输出: 并可在Console中查看输出的内容
- 警告框: window.alert("hw")
- 将内容写到HTML中: document.write("hw")
- 把内容写入浏览器的控制台: console.log("hw")
- 操作HTML中的DOM(文档对象模型)
- HTML中的DOM
- 查看HTML元素
- 修改HTML
- 读取cookie
- 使用事件
8 CSS
CSS由两个部分构成: 选择器和一条或多条声明,每条声明由一条属性和一个值组成