质量保证意识

质量意识


提高软件和服务的研发质量和研发效率

  • 项目管理三要素:质量、时间、成本
  • 质量保证与测试:质量保证应贯穿项目的整个过程
  • bug修复:测试人员激活bug;开发人员收到激活bug后,进行修复,bug状态为处理中,修复完成后状态设置为解决状态。Open(激活)、In Process(处理中)、Resolved(解决)、Closed(关闭)、Reopen(重启)。内部+外部用户反馈渠道,bug提交格式:标题、问题描述、复现步骤、能否复现、问题来源、问题影响、补充描述。
  • 项目开发的整体路径:需求阶段、设计阶段、开发阶段、测试阶段、发布阶段、上线阶段、线上阶段。

质量保证工作

需求与设计阶段

  • 需求评审(站在用户的角度思考和挖掘需求、设计和开发的前提性条件)
  • 需求变更管理(用户的需求始终在改变、建立一套完善机制去即时适应需求的变更)
  • 设计评审(通过评审需求的可行性和设计的相关风险,可极大降低设计风险,避免人力浪费)

开发与测试阶段

  • 单元测试(调试代码,确保代码实时可编译;验证逻辑,减少代码中的bug;作为一个最细粒度回归测试,实施反馈代码的质量)
  • 代码评审(保持代码风格的一致和可读性,利于贯彻编程规范;提高代码质量,减少bug;促进互相交流学习,提升团队的整体研发能力,进而提高企业的整体竞争力)
  • 测试流程:测试人员编写测试方案并提交开发人员评审;开发人员进行单元测试,编写用例并提交测试人员评审;测试人员设计和编写用例进行功能性测试;测试人员根据项目情况决定是否进行性能/压力等测试;自动化和持续集成;撰写测试报告
  • 测试方法:黑盒测试、白盒测试、静态测试、动态测试、自动化测试、手工测试、验收测试、 α \alpha α测试、 β \beta β测试、单元测试、模块测试、集成测试、联调测试、系统测试、功能性测试、性能测试、压力测试、异常测试、安全测试、接口测试、用户场景测试、回归测试、探索性测试
  • 自动化:流程自动化(编译、部署、发布、回滚、上线、测试阶段);测试自动化(可以降低成本并保证测试结果,降低风险)
  • 测试报告:测试结果、质量风险评估、质量评估、测试过程描述、缺陷分析、评估改进意见、测试版本/测试人员/测试时间

上线与线上阶段

  • 线上测试:众包测试,用户反馈和业务监控(收集、分发、定位、解决),产品评测(用户反馈分析,产品bug分析,Top问题梳理,竞品问题分析)

代码单元测试


单元测试基础

单元测试问题

  • 使用system.out输出测试结果,依赖人去判断测试是否正确
  • 不使用Assert(断言)对测试结果进行判断
  • 没有边界检查
  • 多个测试分支放入一个单元测试方法中
  • 测试case环境依赖相关
  • 测试方法执行有先后顺序

优秀的单元测试原则

  • 独立性
  • 可重复
  • 可自动化:自动化运行与判断
  • 彻底:覆盖被测试对象的全部分支

单元测试好处

  • 更高的测试覆盖率
  • 提高团队效率
  • 自信的重构和改进实现
  • 预期的行为文档化

注意点

  • Java Web项目:BO/DAO工具自动生成,无需额外单测;Action(Controller)须通过集成测试发现问题;核心逻辑主要存在于Service层,需要着重进行单元测试
  • 平台类单元项目:交叉混合时可能存在问题,场景复杂,分支较多,单元测试需覆盖全面
  • Hadoop的MAR任务:特殊的Java程序

python单元测试

  • 单元测试、模块测试、联调测试、系统测试、交付测试
  • 单元测试:验证代码中的函数是否符合预期,聚焦于函数的逻辑以及核心算法是否正确
  • 质量:单元测试主要针对函数,颗粒度小,测试针对性强,bug更容易暴露;覆盖面较窄,无需考虑其他函数或者所依赖的模块,所以它的场景易构造,核心功能验证更充分;保证整体代码结构良好,使代码具有较高的可测性和可维护性。
  • 效率:单元测试进行的时间较早,测试场景构建快,可有效减少调试时间;只针对修改代码展开测试,无需考虑额外内容,所以在短时间内可以把预期的逻辑测试充分;在项目开发初期发现bug,单元测试可加快开发效率,缩短开发周期。

单元测试框架

  • unittest:python标准库中原生自带框架
  • pytest
  • Nose2

单元测试规范

  • 独立性
  • 自表述能力

单元测试对编码的要求

  • 代码一致性
  • 统计单元测试覆盖率
  • mock简化单元测试:基于实际进行单元测试的场景而产生

单元测试实践

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值