软件测试基础
测试原则:
- 尽早介入:左移
- 缺陷集群性2/8定律:注意多问题的模块,区分重要度;
- 杀虫剂悖论:耐药性,可以探索性测试
- 穷尽测试不可能:确定上线的原则
测试内容:需求文档、接口文档、源代码、应用程序
测试方法:根据具体的测试内容来确定,侧重点不同,则可选用不同的测试方法
测试用例:输入、执行步骤、预期结果
软件开发流程
瀑布性:线性,适用于稳定项目,新项目经常变动,成本较高,问题会后置发现;
XP极限编程:圆形,测试驱动开发,能用就行,增强程序可复用性
SCRUM:产品-》sprint会议-〉每日任务分解——>2到4周,循环,小步快跑
DevOps:自动化测试代码,输出结果,是否集成,集成成功即可发布
![image](https://ceshiren.com/uploads/default/original/3X/2/5/25ecc8c5390f296d7d89ac7362f7add10117c4a8.jpeg)
测试流程体系
软件测试:运用科学的方法验证被测对象是否符合预期
软件测试作用:发现缺陷、提升用户使用体验、减少同类产品已遇到的问题
测试模型:V模型、W模型、H模型
测试环节:左移(单元测试)右移(线上监控,异常报警)
测试技术体系
系统测试:功能、兼容、性能、安全
自动化测试:70%单元测试 20%服务测试 10%UI(selenium)
接口测试:各个模块间传递数据的桥梁(JUnit)
测试经典书籍
全程软件测试-朱少民
探索性软件测试:方敏、史亮
google软件测试之道
持续交付 乔梁-devops精要
被测系统架构与数据分析流
用时序图、流程图梳理公司业务逻辑,数据流向
被测需求理解
- 明确测试范围
- 明确功能点
- 明确业务流程
- 明确输出结果
- 分析异常流程
- 预估测试需要的时间和资源
常用测试策略与测试手段
- 前期需求文档是否明确
- 技术方案
- 测试覆盖度:适配功能、性能、老功能兼容回归
- 测试人力规划、bug跟进
- 遗留问题
bug定位方法
纬度:功能、性能、安全、专项质量
MV三层分析法:
view层:UI、UE(web可用Chrome工具查看element)
controller层:log、debug(APP主要是安卓logcat,可用Android studio)
model层:运行平台日志、app调试、抓包(Charles adb命令)
分层测试策略
要从代码到端,分层保障各个环节的质量
自动化测试策略
- 接口管理:swagger、JVM-sandbox-request录制回放(阿里开源项目)、selenium、app框架
测试环境搭建
- 打包
其实一般都是一个包装好的打包平台,可以傻瓜式操作 - 自动化脚本部署:jenkins,具体工具
测试框架体系介绍
目的:指导测试方法及测试用例
具体有
TDD:测试驱动开发,先写测试用例,反复验证代码功能,直至通过,以代码测试代码
BDD:行为驱动开发,以具体事例保证程序的运行
ATDD:验收测试驱动开发
测试左移动、右移动
左移:提测前(需求、代码、单元测试覆盖率)
工具:sonarqube-代码审计平台(有具体举例,空指针异常即空指针被调用)、GerritCodeReview、GitLab Merge Request Code Review
右移动:线上质量监控
精准测试
用代码反推用例,观察测试用例覆盖的代码率验证其是否有效
具体做法:
第一步:手工测试+jacoco-cli
第二步:自动化测试+手工测试+插桩 (可以记录代码调用顺序)自动化方式
第三步:全部测试用例+全链路追踪 自动化模式+全链路模式
测试开发进阶路线
ChatGPT
- 教程地址:https://ai.tutorial.hogwarts.ceshiren.com/ai/
- 学社提供的 ChatGPT 地址:霍格沃兹测试开发学社
- 学习地址:霍格沃兹测试开发学社
- 官方网站地址:https://chat.openai.com/
- ChatGPT 账号注册教程:霍格沃兹测试开发学社
chatgpt提示词
语句清晰、复杂拆解、系统变化、角色扮演
利用人工智能编写测试计划
列举出包含的内容
还可以用来优化简历,应该重点突出技能模块,再列举例子