软件测试的底层逻辑

2024-05-15

1. 软件测试的底层逻辑

学习软件质量报道一文: 软件测试的底层逻辑是什么 ,软件测试的底层逻辑。
  
  
 什么是底层逻辑?
  
 按照刘润老师的解释就是:“ 事物间的共同点,就是底层逻辑 。只有不同之中的相同之处、变化背后不变的东西,才是底层逻辑。 底层逻辑+环境变量 = 方法论 ”。他还说:“只有底层逻辑,才是有生命力的。”
  
  
 在讨论前软件测试的底层逻辑前,先对软件测试有个基本的认知。
  
  软件测试的底层逻辑可以概括为三个问题的回答:为什么测?测什么?如何测? 
  
 在回答这三个问题的过程中,要能 适应不同的测试对象 (如Windows/MacOS native应用、 web软件、移动app、嵌入式软件 )、 不同的测试类型 (如功能测试、性能测试、安全性测试、兼容性测试等)、 不同的测试层次 (如单元测试、集成测试、系统测试等)、不同的团队和 不同的产品 等,成为放之四海而皆准的答案。虽然上下文不同,会有不同的测试方法、技术和实践,但我们能抽象出它们的共同点。
  
  
  为什么测: 只要是人做的工作,就不能保证万无一失,会存在问题。
  
  测什么 :取决于交付的质量目标,即从质量目标出发,进行 目标分解 ,然后针对每一个特地的子目标来确定要获得的有关被测对象的质量数据,从而确定其测试范围或测试项。如果再进一步,我们根据用户对质量特性、功能特性的感受不同来决定测试项的优先级。这部分属于测试分析的工作,并涉及测试风险和测试策略。
  
  如何测 :就是找到获取被测对象的质量数据的方式、方法或手段,包括测试方案设计、场景设计、测试用例或测试数据等的设计。
  
 For Quality, from Quality objectives and by getting Quality data (为了质量而测,从质量目标出发、想方设法获取质量信息)。
  
  
  测试的底层逻辑(概率思维) : 测试是一个样本实验 ,需要 精心分析和设计 , 努力以最小的代价并尽早地去揭示质量风险 。既然是一个 样本实验 ,缺陷的分布是正态分布的,质量可以从3sigma提升到6sigma,但永远达不到100%。

软件测试的底层逻辑

2. 软件测试之测试分析的底层逻辑

学习软件质量报道一文: 软件测试的底层逻辑是什么 ,软件测试分析的底层逻辑。
  
  
 测试分析的 底层逻辑 是基于 系统思维 、 结构化思维去思考 ,需要 从项目背景、产品结构、质量要求等各个方面 进行 系统地思考 ,不容忽视一些蛛丝马迹,顺藤摸瓜, 完整地呈现测试范围 , 识别出各种测试风险 ,最终 明确测试项及其优先级 。
  
  
  系统思维 可以让我们看清楚被测对象的输入/输出、前置条件和后置条件、周围环境和面临的各种场景。
                                          
  结构化思维 帮助我们 制定更有效的测试方案和测试策略 ,如分层测试、面向接口的测试等。同时, 测试总是有风险的 ,所以测试分析时一定要采用基于风险的测试策略,并应用80/20原则, 确定20%最严重的风险集中在什么地方 、 哪些功能是用户最常用的20%功能 、 哪些测试项是属于重点测试的20%等 。
  
  
  测试分析的底层逻辑之一 :测试分析是层层剥离、逐步深入的系统分析过程。从业务需求、用户行为、系统功能、应用场景等不同维度对被测对象进行系统的分析,最终确定测什么。
  
  
  测试分析的底层逻辑之二 :测试分析也是一个博弈、选择直至平衡的过程,需要定力和洞察力,做出取舍,如运用80/20原则,抓主要风险,有时需要舍弃一些次要风险。
  
  测试分析的底层逻辑之三 :以终为始,从测试目标出发最终回到测试目标,如从考虑如何衡量测试充分性的要求出发,最终分析的结果——各测试项完成是能够满足测试充分性的要求的。

3. 软件测试之测试自动化的底层逻辑

学习软件质量报道一文: 软件测试的底层逻辑是什么 ,软件测试自动化的底层逻辑。
  
  
 测试自动化就是 要充分发挥工具的作用或价值 ,例如工具能百分之百地执行命令、任劳任怨,所以自动化测试适合机械、单调的测试工作,如回归测试、性能负载测试、压力测试、兼容性测试、BVT(版本构建验证测试)等。
  
  测试自动化的脚本开发和执行是建立在测试分析和设计之上 ,如果测试分析和设计存在问题,依靠工具是无法解决这类问题的。 有更好的测试分析和设计,才有更好的自动化测试 ,所以我们清楚测试分析/设计与自动化测试的关系显得非常重要。
  
  
  工具的开发和使用、脚本的开发和使用都是由人完成的 ,所以人还是第一位的,工具是第二位的。测试自动化还受到文化、流程的影响,测试自动化能否成功不是一个技术问题,今天来看,技术上已经没有障碍了,障碍往往出现在企业的文化、研发流程和开发质量(如软件实现的规范性、可测试性等)等方面。
  
 测试自动化的底层逻辑之一: 工具重要,但人才是决定的因素; 
  
  
 测试自动化的底层逻辑之二: 自动化测试是建立在测试分析与设计的基础之上; 
  
  
 测试自动化的底层逻辑之三: 一切适合自动化的测试工作都尽可能地被自动化,同时要创造有利于自动化测试的环境。

软件测试之测试自动化的底层逻辑