软件测试基础

软件测试基础

测试原则:

  1. 尽早介入:左移
  2. 缺陷集群性2/8定律:注意多问题的模块,区分重要度;
  3. 杀虫剂悖论:耐药性,可以探索性测试
  4. 穷尽测试不可能:确定上线的原则

测试内容:需求文档、接口文档、源代码、应用程序
测试方法:根据具体的测试内容来确定,侧重点不同,则可选用不同的测试方法
测试用例:输入、执行步骤、预期结果

软件开发流程
瀑布性:线性,适用于稳定项目,新项目经常变动,成本较高,问题会后置发现;
XP极限编程:圆形,测试驱动开发,能用就行,增强程序可复用性


SCRUM:产品-》sprint会议-〉每日任务分解——>2到4周,循环,小步快跑

DevOps:自动化测试代码,输出结果,是否集成,集成成功即可发布
image

测试流程体系
软件测试:运用科学的方法验证被测对象是否符合预期
软件测试作用:发现缺陷、提升用户使用体验、减少同类产品已遇到的问题
测试模型: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框架

测试环境搭建

  • 打包
    image
    其实一般都是一个包装好的打包平台,可以傻瓜式操作
  • 自动化脚本部署:jenkins,具体工具

测试框架体系介绍

目的:指导测试方法及测试用例
具体有
TDD:测试驱动开发,先写测试用例,反复验证代码功能,直至通过,以代码测试代码
BDD:行为驱动开发,以具体事例保证程序的运行
ATDD:验收测试驱动开发

测试左移动、右移动

左移:提测前(需求、代码、单元测试覆盖率)
工具:sonarqube-代码审计平台(有具体举例,空指针异常即空指针被调用)、GerritCodeReview、GitLab Merge Request Code Review
右移动:线上质量监控

精准测试

用代码反推用例,观察测试用例覆盖的代码率验证其是否有效
具体做法:
第一步:手工测试+jacoco-cli
第二步:自动化测试+手工测试+插桩 (可以记录代码调用顺序)自动化方式
第三步:全部测试用例+全链路追踪 自动化模式+全链路模式

测试开发进阶路线


ChatGPT

chatgpt提示词

语句清晰、复杂拆解、系统变化、角色扮演

利用人工智能编写测试计划

列举出包含的内容
还可以用来优化简历,应该重点突出技能模块,再列举例子