做好软件测试需要具备的思维方式

软件测试中思维模型 具体思考的人喜欢遵循指示,有详细的计划。在创造性思维中,我们打破既定的理论、规则和程序,以一种新的和富有想象力的方式做事。例如,在测试的背景下,这可能是当我们应用新的测试技术时,例如成对测试技术,以减少排列组合的数量但增加覆盖率。发散性思维指的是通过探索许多可能的解决方案,努力找到一个可行的方案,从而产生创造性的想法的能力。在软件测试的背景下,这与我们按照预定的步骤和预期的结果的脚本相关。聚合思维是指以某种有组织的、合乎逻辑的方式将一个主题的一些不同片段或观点放在一起,以找到一个单一的答案的能力。 阅读详情

                                             

                                 做好软件测试需要具备的思维方式!

                                             

 

最近部门来了好几位应届毕业生加入团队,我们也大张旗鼓的组织了集中式的培训,其中我需要对关于测试工作进行简介,在培训内容中,我特地整理和回顾了做好软件测试需要具备的思维方式,当时也就4张PPT。在此,我再详细整理出文字内容也分享出来给广大的同行。

 

首先,从需求,用户及研发角度考虑,要想为产品贡献最大的力量,就不能只专注于做好测试保证质量这一个方面,而应该是从多个角度全面衡量。

 

 

从图中,体现出我们也应该站在用户的角度,研发的角度来考虑产品的整体规划。

 

用户思维

在工作中,一部分测试同行特别是初入者在对待需求时都过于被动,不太会把产品各个模块的业务串联起来,成了因为需求来了所以做需求,纯粹看着需求文档就开始做测试用例的设计了,并没有想着先把需求理顺了想明白了再开始着手。其实这个阶段也即是非常重要的需求分析及功能点拆解,即使说这主要是产品经理们的主要工作,但是他们也并非圣贤,对产品设计的细节考虑可能并不周全,甚至严重时会出现较大的需求漏洞,引发较严重的影响。而我们也应该具备该项能力,如果不能站在公司战略层面考虑该需求对业务上能带来哪些促进,也至少能站在用户的角度考虑能给用户带来什么价值,能满足用户哪方面的需求,同时能及时发现对于用户操作过程中的体验问题,在糗事百科创始人著作的《结网》一书中,也提出了用户体验的三大原则:别让我等,别让我想,别让我烦。我觉得作为一名合格的QA是需要具备这方面能力的,但是在实际工作实操中还是需要具备沟通技巧,毕竟能对于用户体验方面的改进需要产品经理拍板,如果的的确确非常明显的体验问题,是有必要坚持真理说服他们优化的,否则还是把话语权留给他们,我们只是提供建议吧,不然工作中的火药味一定会很浓。

 

架构思维

要想设计一份有效的测试用例,就必须要对软件开发设计思路有深入的了解,我们也经常有类似的事情,业务需求未做任何改变,而架构做了优化,如果单纯地拿着一份根据业务整理出的用例是无法准确而有效的测试的,架构的调整包括:底层数据结构的调整如分库分表,服务化(SOA),日志的收集处理以及容灾处理等等,另外,为了能有助于测试开展,我们同样需要了解开发技术,毕竟在测试环境的搭建及维护,测试过程中各种场景的模拟特别是异常情况,以及自动化测试,如果不借助于开发技术,自动化工作也是很难开展的。比如被测系统依赖其他系统发的一条MQ消息而做相应的处理,那自动化代码中为了验证该逻辑,就需要MOCK这条消息(即设置桩Stub)并且发送到某个管道中,让被测应用接受并处理它,如果连MQ是什么都不知道,也不知道如何在代码中发送消息,那这个部分的自动化测试是没法开展下去了。

 

上面只是举了一个例子,总结一下,需要具备的架构思维包括:

1)了解并熟悉开发使用的技术及开发框架,比如用到的Spring MVC,Mybatis,Redis,前端HTML,JS,相关协议等(视不同项目具体情况而有所不同);

2)理解研发设计的架构及设计思路,并考察开发设计是否满足业务需求;

3)Review技术方案时,考察是否满足易维护性,易扩展以及对性能和安全的要求,并且在关键业务出现异常时是否添加报警等,而这一点也是大多数从事功能测试的同学最易忽略的。

 

测试思维

如果要特意区分用户思维和架构思维的话,在测试过程中,就要额外关注:以严谨的测试设计方法覆盖需求功能点及代码分支,具有场景思维和对异常情况的考察。对此我们可以细化总结为以下几点:

 

 

1. 逆向思维

比如我们经常需要对接口做测试,通过输入验证输出,如果我们使用各种输入都无法得到接口设计中某一种输出的情况时,就需要从输出来逆向推导输入,另外比如验证一些异常情况,接口需要返回一些error code,使用正常手段是肯定不能得到的,就需要为了出现该error code借助环境及工具来模拟。另外,我们在分析很多问题时,同样也离不开逆向思维。

 

2. 组合思维

比如软件在多用户,多进程,多次执行等情况下,都可能出现意想不到的缺陷,甚至对于复杂的业务场景,在对同一份数据进行操作时,不同子业务并行执行情况下,都有可能造成数据上的错误,特别是对于与核心数据有关的业务上(如money),是否添加行级锁都是需要测试到的,同时,不同业务不同的操作顺序,组合方式下,不同的维度等都有可能出现bug。

 

3. 全局思维

即能把握整个项目的多个方面,多个团队的任务及分工,整体的数据流及业务流,从全局思考是否满足业务需求,这其实并不只是说对于需求的评审,更多的是关注上下游相关联的系统或接口等,凡是涉及跨团队开展的工作,一定就需要更多的沟通协调,很明显的就体现在对业务理解不正确,接口定义有误,具有全局思维的人更能在大型项目中游刃有余,体现其leader的潜质,毕竟做leader就需要关注本部门之外其他部门都在干些什么,以备能做出对大局有利的决定。

 

4. 两极思维

即站在事情的两个极端来考虑,比如数据上的无穷大与无穷小,在数据存储上,数据库层面字段设置为int与bigint所支持的数量级是不一样的,基于**,如果存在超过int的长度的数据,那么在存储上以及代码中,都需要做相应支持,否则就只会显示到该类型的最大值了,而且在业务层面也经常有两个极端的情况,比如商家入驻开店,很多时候都只是考虑到开店该怎么做,却忽略关店的情况。其实在边界值用例设计方法中也用到了两极思维模式。

 

5. 简单思维

简单思维表现在很多方面,比如经常非常严重的bug都可能是犯了一个很简单的错误引起,在处理测试环境时经常出现无法正常访问,也许可能只是磁盘空间满了而已或者一个简单的配置不正确引起,在日常工作中这样的例子非常多,我们也要善于一层一层剥开问题的现象,找到其本质,就好比剥洋葱一样,不要一开始就把问题想的过于复杂,往往事情并没有那么复杂。

 

6. 比较思维

比较思维其实贯穿在我们整个测试生涯中,测试本来也就是一种验证,根据实际结果跟预期结果对比。而且我们在平时工作排查问题时,也有非常多需要去对比的,比如配置文件的差异,环境的差异引起的不正常结果,此外,我们也通过svn中代码diff的差异来明确改动的范围制定回归策略。还比如在做一些前后两个版本吐出的数据差异时,页面显示差异时,都可以使用diff的思想来开展自动化的工作,大大提高效率

——————————————————————

最后给大家推荐一个学习资料分享群(574253227),里面大牛已经为我们整理好了许多的学习资料,有自动化,接口,性能等等的学习资料!

技术复盘:如何从失败项目中萃取价值并建立个人知识体系 在软件工程实践中,项目复盘是提升技术决策能力与工程素养的关键环节。其核心原理在于通过系统化分析,将实践经验转化为结构化知识,避免重复踩坑。从技术价值看,有效的复盘不仅能优化个人问题诊断与架构设计能力,还能沉淀团队风险防控经验。尤其在微服务架构、高并发场景下,对性能瓶颈、技术选型失误的深度剖析,能直接提升系统稳定性和可维护性。本文聚焦于如何通过五步复盘法,将‘练废了’的项目转化为包含架构设计、代码规范、决策逻辑的宝贵资产,为开发者构建可复用的避错知识库。 阅读详情

相关推荐

软件测试工程师应该具备哪些思维方式?

做软件测试,不仅仅需要的是软件测试的专业技能,关键还要具备相应的专业测试思维,软件测试小编今天就来给大家总结分析六种软件测试工程师在做测试时应该具备的思维方式。

ms_test的博客 797

什么是测试思维?测试思维都有什么?

每个人都会测试,但是你们知道测试工程师的测试用什么思维进行测试吗?开发工程师自测与测试工程师测试的区别你知道吗? 测试思维: 1.正向思维(一般用于冒烟测试) 简述:指软件可以在正常运行状态下所表现出来的特征 目的:根据需求标准检查系统功能是否正常实现 2.逆向思维 简述:根据结果逆推条件 用处:减少多余的测试用例 3.组合思维 简述:将相关的事物组合到一起 example: 比如多进程并发    比如按照是否排序组合可分为...

I always knew I was going to be rich. I don't think I ever doubted it for a minute. 5159

Unraid小白必看:5分钟搞定OpenWrt软路由安装(附iStoreOS配置技巧)

本文为Unraid新手提供了一份详尽的OpenWrt软路由安装与配置指南。通过虚拟机技术,在Unraid系统上快速部署基于iStoreOS的软路由,详细讲解了旁路由与主路由两种模式的网络配置、性能优化技巧及常见故障排查方法,帮助用户充分利用闲置硬件,打造高性能、可定制的家庭网络中枢。

wine的专栏 486

测试思维和基础测试方法

软件测试

weixin_44871778的博客 1782

Linear超高PSRR线性稳压器-典型应用电路解析

本文整理完了LT3045数据手册内所有的典型应用电路,试图让沉默的电路开口,简单介绍了他们这样做的目的和原理,从中我们可以更加熟悉这颗经典芯片的应用。但也有一些电路并没有搞懂,遗留下了不少问题。

硬件工程师笔记 2945

AI智能体赋能Cypress:自动化前端测试的新范式

自动化测试是现代软件工程保障质量的核心实践,其原理是通过脚本模拟用户操作,对软件功能进行验证。随着大语言模型(LLM)和智能体(Agent)技术的发展,测试自动化正迈向智能化新阶段。智能体能够理解自然语言描述的测试需求,并自主规划、执行测试步骤,这为应对前端UI频繁变更、测试用例维护成本高等挑战提供了新思路。在工程实践中,将Cypress这一流行的前端测试框架封装为智能体可调用的标准化技能(Skill),是实现这一愿景的关键。通过设计清晰的交互协议和状态管理机制,智能体可以像人类测试工程师一样“感知”页面状

weixin_33726318的博客 687

测试工程师需要具备的思维方式

绿影覆幽池,芳菲四月时。大家好,我是寒秋,最近在总结作为一名测试工程师,在我们的日常工作中,需要具备怎样的思维方式?在软件测试这个领域,掌握一种特定的思维方式对于测试工程师来说非常重要。本文将介绍几种常规并且关键的思维方式,帮助各位测试同学提升自己的测试能力。

若不知道要驶向哪个码头,那么任何风都不会是顺风。 1438

说一下Intel Fortran 编译器经典版ifort和新一代ifx

摘要:ifort是Intel开发的传统Fortran编译器,以稳定性和遗留代码兼容性著称,现已进入维护模式。ifx则是基于LLVM架构的新一代Fortran编译器,具有更好的性能优化、更快的编译速度,并支持最新Fortran标准和GPU加速。英特尔计划逐步用ifx取代ifort,前者将成为未来主力发展的产品线。两者的核心区别在于技术基础(传统vs.现代化LLVM)和功能支持(维护状态vs.持续更新)。

luohaitao的专栏 1347

【转】做好软件测试需要具备的思维方式

 最近部门来了好几位应届毕业生加入团队,我们也大张旗鼓的组织了集中式的培训,其中我需要对关于测试工作进行简介,在培训内容中,我特地整理和回顾了做好软件测试需要具备的思维方式,当时也就4张PPT。在此,我再详细整理出文字内容也分享出来给广大的同行。   首先,从需求,用户及研发角度考虑,要想为产品贡献最大的力量,就不能只专注于做好测试保证质量这一个方面,而应该是从多个角度全面衡量。   从图...

weixin_34106122的博客 104

【部署】Ubuntu 24.04.4虚拟机下部署OpenClaw

OpenClaw是一款基于AI的智能助手工具,本文详细介绍了在Ubuntu 24.04.4系统上的三种安装方法。推荐使用一键安装脚本(curl -fsSL https://openclaw.ai/install.sh | bash),自动完成Node.js检测、CLI安装和引导配置。对于开发者,提供了从源码构建的详细步骤,包括环境准备、依赖安装和构建流程。文章还包含常见问题解决方案(如sharp构建错误处理)以及后续维护建议(更新、配置检查和日志查看)。安装完成后,用户可通过终端TUI或Web UI进行初始

海兰 1万+

华为OD机试 - 学校的位置 - 数学问题(Python/JS/C/C++ 2024 B卷 100分)

华为OD机试 2024E卷题库疯狂收录中,刷题。

学Java,找哪吒 455

软件测试工程师的七种思维方式

作为软件测试工程师,我们不仅仅要积累理论和技能知识,更要培养自己的逻辑思维,遇到问题多角度思考,从局部分析到整体影响,从而更全面更快速的解决测试遇到的问题。 作为一个优秀软件测试人员应具备的如下七种思维方式: 1.逆向思维 逆向思维在测试中用的很多,比如根据结果逆推条件,从而得出输入条件的等价类划分。 其实逆向思维在调试当中用到的也比较多,当发现缺陷时,进一步定位问题的所在,往往就是逆...

吾非同 2035

图注意力网络(GAT)原理与代码实战案例讲解

1. 背景介绍 图注意力网络(Graph Attention Network,简称GAT)是一种基于图神经网络(Graph Neural Networks,简称GNN)的深度学习方法。它能够处理具有复杂关系的节点数据,并在多个领域取得了显著的效果,如社交网络分析、推荐系统等。 2. 核心概念与联系

AI架构师小马 2716

软件测试人员必备的7种思维方式

思维方式需要很多的历练,其实成为一名出色的测试人员,远没有那么简单,需要(不断的学习+不断的经历+不断的思考)。 作为一个优秀软件测试人员应具备的7种思维方式: 逆向思维方式1 逆向思维在测试中用的很多,比如根据结果逆推条件,从而得出输入条件的等价类划分。 其实逆向思维在调试当中用到的也比较多,当发现缺陷时,进一步定位问题的所在,往往就是逆流而上,进行分析。 逆向思维是相对的,就是按照与常规思路相反的方向进行思考,测试人员往往能够运用它发现开发人员思维的漏洞。 组合思维方式2 很多东西单一的思

2387

基于STM32单片机的环境监测系统设计与实现

综上所述,基于STM32单片机的环境监测系统具有良好的实时性、准确性和稳定性,能够满足环境监测的需求。本系统的研究意义在于,首先,它能够为用户提供准确的室内空气质量信息,帮助用户了解室内环境的质量状况,从而采取相应的措施来改善室内环境。本文设计并实现了一种基于STM32单片机的环境监测系统,该系统能够实时监测并显示室内环境的温湿度、甲醛浓度以及二氧化碳浓度,为用户提供准确的空气质量信息。实验过程中,我们模拟了不同的环境条件,包括温湿度变化、甲醛和二氧化碳浓度的波动等,以测试系统的实时性、准确性和稳定性。

3254968421的博客 2万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

一名合格的软件测试工程师该有的3种思维方式

相信很多小伙伴都能从软件测试的学习和工作中都能体会到,作为一名软件测试人员,思维方式是非常关键的,好的思维方式能给到软件测试人员更多的思考问题的方式,考虑问题也会从多方面入手,使得测试设计更加严谨。 那么具体到一名优秀的软件测试人员到底应该具备哪几种思维方式呢?今天一菲和你从逆向思维,组合思维,全局思维方面和你谈谈。 1.逆向思维方式 逆向思维在软件测试中用的很多,比如将根据结果逆推条件,从而得出输入条件的等价类划分 其实逆向思维在调试当中用到的也比较多,当发现缺陷时,进一步定位问题的所在,往往就是逆流而上

小野 5690

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

上一篇: 软件测试实用技术与常用模板—因果图法
下一篇: 软件测试适合女生吗?我30岁了能学会吗?我大专毕业能做吗?
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值