《代码整洁之道之程序员的职业素养》-验收测试测试策略

Tips:此文为阅读Bob大叔的《代码整洁之道》一书的摘抄小记,谨慎“食用”

一、验收测试 

  1. 重视沟通,专业开发人员既要做好开发也要做好沟通。“输入糟糕,输出也会糟糕”,职业程序员需要重视与团队及业务部门的沟通,确保这种沟通准确、流畅
     
  2. 过早精细化,做业务的人和写程序的人都容易陷入一个陷阱,即过早精细化,业务还没启动项目,就要精确知道最后能得到什么;开发还没评估整个项目,就希望精确知道要交付什么,双方都贪求不现实的精确性
     
  3. 不确定原则,东西画在纸上和真正做出来是不一样的,在我们阶段演示成果后,业务方关于要什么会冒出更好的想法,他们查看演示成果的时候,获得了比之前更多的信息,这些信息会影响他们对整个系统的看法,所以要接受不确定原则
     
  4. 预估焦虑,即使拥有全面准确的信息,评估也通常会存在巨大变数,因为不确定原则的存在,不可能经过反复推敲实现早期的精确性,需求一定会变化,所以追求那种精确性是徒劳的
     
  5. 专业开发人员和业务方必须确认,需求中没有任何不确定因素,但这很难,目前只有一种办法可以解决,即:验收测试
     
  6. 验收测试,在本书中,验收测试定义为:业务方和开发方合作编写的测试,其目的在于确定需求已完成。验收测试的目的是沟通、澄清、精确化
     
  7. 验收测试应该自动化,在开发周期中,确实有时候需要手动测试,但验收测试不应该手动进行,因为要考虑成本,自动化测试成本低,实现自动化测试是程序员的责任
     
  8. 身为开发人员,与编写测试的人协商并改进测试是你的职责,绝不能被动接受测试,更不能对自己说:“噢,测试是这么要求的,我就这么办”

二、测试策略

  1. QA的任务之一便是和业务人员一起创建自动化验收测试,业务人员编写针对正确功能的测试,QA编写针对极端情况、边界状态和各类异常场景的测试
     
  2. 自动化测试金字塔
  3. 单元测试,由程序员使用与系统开发相同的语言编写,供程序员自己使用,目的是在最底层次上来定义系统,这些单元测试将作为持续集成的一部分来运行,用以确保程序员的代码意图没有遭到破坏
     
  4. 组件测试,是验收测试中的一种,通常由QA和业务人员正对系统的各个组件而编写,系统的组件封装了业务规则,对组件进行测试便是对业务规则的验收测试
     
  5. 集成测试,针对组件很多的较大型系统才有意义,将组件装配成组,测试他们彼此之间是否能正常通信,集成测试是编排性测试,不会测试业务规则,而主要测试组件装配在一起时是否协调
     
  6. 系统测试,针对整个集成完毕的系统,来运行的自动化测试。是最终的集成测试,在这个层次,应该要包含吞吐率测试和性能测试
     
  7. 人工探索式测试,这是需要人工介入、敲击键盘、钉牢屏幕的测试,意图是要在验证预期行为的时候,探索系统预期之外的行为
     

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/302419.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

IP3005A 超高精度内置MOSFET 单节锂电池保护IC 英集芯

描述 IP3005系列IC是一款超高精度的单节锂离子/ 锂聚合物电池保护芯片,它内置功率MOSFET,全 集成了超高精度的过充电压、过放电压、过放电流、 过充电流检测保护电路。 IP3005采用了精确的电压判断电路,让过充电压,过充恢复电压&…

一天一个设计模式---单例模式

概念 单例模式是一种创建型设计模式,其主要目的是确保一个类只有一个实例,并提供一个全局访问点。这意味着在应用程序中的任何地方,只能有一个实例存在,而不会创建多个相同类型的实例。 具体内容 单例模式通常包括以下几个要素…

如何解决vscode中文路径的问题

首先我们进入设备 搜索“区域”,选择“区域设置” 点击管理语言设置 点击更改系统区域设置,勾选“Beta 版: 使用 Unicode UTF-8 提供全球语言支持(U)”,电脑会叫你重启,你重启就行了

树莓派点亮led(1)

更换清华源 树莓派更换国内源(清华源)_树莓派更换清华源-CSDN博客 查看python版本 安装pipx 安装引脚 查看引脚 #安装gpio 创建文件夹 创建py文件 运行python文件 ubuntu传递文件到树莓派 1、启用ubuntu端的新终端 2拷贝文件到home目录下的用户文件夹…

AI人工智能学习路线图

学习人工智能 AI 的路线通常包括以下几个步骤:了解人工智能的基本概念和历史,包括机器学习、神经网络、深度学习等技术。学习数学基础知识,包括线性代数、微积分、概率论和统计学等。学习编程基础知识,包括 Python、C 等编程语言。…

手把手教学git-idea在实际开发中如何使用(适用于包装/实习同学)

TOC 前言 当前git主流的使用方式有可视化工具和git命令行, 这里主要介绍可视化工具(idea中的git)的使用方法, 其他比较好用的可视化工具还有SourceTree git-idea idea中git相关页面和功能的介绍 图一 图二 图三 图四 合并代码解决冲突: 合并代码我知道的方法有三种…

研究生写爬虫险些锒铛入狱,起因竟是为爱冲锋?

我国目前并未出台专门针对网络爬虫技术的法律规范,但在司法实践中,相关判决已屡见不鲜,K 哥特设了“K哥爬虫普法”专栏,本栏目通过对真实案例的分析,旨在提高广大爬虫工程师的法律意识,知晓如何合法合规利用…

2024了,我不允许你还不会:Qt查看与调试源码

一、人人都是大佬,谦(卑)虚(心)长远进步 作为一个Qt的开发者,下面这段代码你已经快到了“相看两不厌”的状态了吧。你有没有好奇过,a.exec() 到底干了什么? 我不允许你再说 这是Qt …

stable diffusion 人物高级提示词(五)场景、特效、拍摄手法、风格

一、场景 场景Promptindoor室内outdoor室外cityscape城市景色countryside乡村beach海滩forest森林mountain山脉snowfield雪原skyscraper摩天大楼ancient monument古代遗迹cathedral大教堂library图书馆museum博物馆office building办公大楼restaurant餐厅street market街头市场…

Spring——Spring整合MyBatis

Spring整合MyBatis 1.创建工程 1.1.pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"…

数据结构——队列(Queue)

目录 1.队列的介绍 2.队列工程 2.1 队列的定义 2.1.1 数组实现队列 2.1.2 单链表实现队列 2.2 队列的函数接口 2.2.1 队列的初始化 2.2.2 队列的数据插入&#xff08;入队&#xff09; 2.2.3 队列的数据删除&#xff08;出队&#xff09; 2.2.4 取队头数据 2.2.5 取队…

SpringBoot+策略模式实现多种文件存储模式

一、策略模式 背景 针对某种业务可能存在多种实现方式&#xff1b;传统方式是通过传统if…else…或者switch代码判断&#xff1b; 弊端&#xff1a; 代码可读性差扩展性差难以维护 策略模式简介 策略模式是一种行为型模式&#xff0c;它将对象和行为分开&#xff0c;将行…

PyTorch|view(),改变张量维度

在构建自己的网络时&#xff0c;了解数据经过每个层后的形状变化是必须的&#xff0c;否则&#xff0c;网络大概率会出现问题。PyToch张量有一个方法&#xff0c;叫做view(),使用这个方法&#xff0c;我们可以很容易的对张量的形状进行改变&#xff0c;从而符合网络的输入要求。…

pgAdmin和asdf postgres的安装

安装pgAdmin&#xff1a; curl https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo apt-key addsudo sh -c echo "deb https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main" > /etc/apt/sources.list.d/pgadmi…

基于java,spring的汽车租赁系统的设计与实现

1.环境以及简介 基于java,spring的汽车租赁系统的设计与实现&#xff0c;Java项目&#xff0c;SpringBoot项目&#xff0c;vue项目&#xff0c;含开发文档 源码下载 环境配置&#xff1a; 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 …

【Python机器学习】构造决策树

通常来说&#xff0c;构造决策树直到所有叶结点都是纯的叶结点&#xff0c;但这会导致模型非常复杂&#xff0c;并且对于训练数据高度过拟合。 为了防止过拟合&#xff0c;有两种常见策略&#xff1a; 1、尽早停止树的生长&#xff0c;也叫预剪枝 2、先构造树&#xff0c;但…

用友BI组合太适配了,数据分析效果惊人

用友和BI&#xff08;Business Intelligence&#xff0c;商业智能&#xff09;的适配性确实很高&#xff0c;这主要得益于用友在企业管理软件领域的深厚积累和BI在数据分析方面的强大能力。通过将用友的软件与BI工具组合起来&#xff0c;企业可以获得以下几个方面的优势&#x…

年底了,来看看测试大佬的年终项目总结吧!值得借鉴

测试总结&#xff0c;是测试负责人或测试经理的测试管理能力的体现。在项目或版本测试完成&#xff0c;测试报告上交后&#xff0c;测试的工作并不是完结了&#xff0c;而是另外一件大事需要做&#xff0c;那就是为这个项目或是版本做一次测试总结。 添加图片注释&#xff0c;不…

Linux服务器开发太麻烦? 试试IntelliJ IDEA公网远程访问开发极大提升开发效率

文章目录 1. 检查Linux SSH服务2. 本地连接测试3. Linux 安装Cpolar4. 创建远程连接公网地址5. 公网远程连接测试6. 固定连接公网地址7. 固定地址连接测试 本文主要介绍如何在IDEA中设置远程连接服务器开发环境&#xff0c;并结合Cpolar内网穿透工具实现无公网远程连接&#xf…

C语言--结构体详解

C语言--结构体详解 1.结构体产生原因2.结构体声明2.1 结构体的声明2.2 结构体的初始化2.3结构体自引用 3.结构体内存对齐3.1 对齐规则3.2 为什么存在内存对齐3.3 修改默认对⻬数 4. 结构体传参 1.结构体产生原因 C语言将数据类型分为了两种&#xff0c;一种是内置类型&#xf…