Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【实测】关于‘钱学森弹道’应用软件测试的设计与实现(01)

【实测】关于‘钱学森弹道’应用软件测试的设计与实现(01)

作者头像
我去热饭
发布于 2023-11-06 07:30:50
发布于 2023-11-06 07:30:50
2690
举报
文章被收录于专栏:测试开发干货测试开发干货

实测系列是纯硬核技术文章,并且是博主亲自演示已经落地取得一定成果的技术和原创教程,无偿进行分享,大家一键三连,支持一下!

前言

最近的世界又开始了战乱,不少小伙伴都开始对导弹感了兴趣,我想很多军迷小伙伴都知道,我国的导弹技术是世界顶级,发射的远程导弹敌人是根本无法拦截的,这也是让我们具备摧毁敌人的根本技术之一,而其中,最厉害的最无解的技术当属【钱学森弹道】了。

来看看官方的解释:

划重点:钱学森弹道是无法预测,随机变幻路线,以至于无法也不可能被精准拦截,但最终又能恰好击中目标的技术。

像是魔法一样,无数个偶然最终的结果却是必然,全靠了我们的先辈钱学森爷爷的贡献,才得以让我们能在今天世界战乱的情况下得以和平和安乐的生活。

如今,这个技术是否能应用在测试领域,又有什么意义?不妨跟着博主一起来探寻下吧~

正文

一:具体有什么作用?背景?

在我们软件测试工作中,一提起‘随机’这个词,你会想到什么?没错,就是monkey测试。

但是monkey测试是没有准确目的的,更多时候属于负载测试,用来发现一些内存泄露或者崩溃等bug的。而钱学森弹道技术的特点中除了随机之外,还要有准确的目的地。

那如果再给Monkey加上一个目的地,就变成了这样。从A页面,到E页面之间随机点点点,但是最终一定要到E页面。这个需求就需要随机且准确目的地,也就恰好契合了【钱学森弹道】。

但是小伙伴又会问了:从A到E,中间随机,为什么会有这么奇怪的需求?这个需求的现实意义是什么?

答:我换个说法,比如现在是一个民宿酒店房源下单流程,从页面详情页开始,到最终下单并确认成功。中间的路线是什么样的?有多少种路线?如果用户反复的下单取消订单,来回返回提交表单,刷新等操作,是否会引起bug?

其实,如果你去那些专业薅羊毛群里,就会发现,好多人是专业来找到这个流程的bug的,靠的就是反复随机的操作去碰。【钱学森弹道】恰好能够覆盖这里的所有用例路线,那到底有多少种路线呢?

答:相当之多,有些同样的步骤,反复快速操作几十次,bug就出来了...

我再举个例子:测试游戏,角色需要从自家水晶走到大龙刷新点,中间有多少种走法?那是相当多了吧?是否会存在某个未知bug,某个路线,会最终导致去不了大龙点?或者去了之后伤害异常?这些都需要测试才能给出结论,那这个测试,你怎么做?随便选了个最短路线过去,没问题就完了?当然不是,而靠纯代码和逻辑推断出来的测试用例(比如运用流程图法,基本流、异常流)等等,去写用例并执行虽然靠谱,但成本颇高,远没有直接让角色随机选择路线(中间甚至还会走回头路的方式去目的地)自动去测试方便。

再举个例子:很多第一人称射击游戏/角色扮演游戏大家都玩过吧?你们玩CF生化模式闯关的时候有试过来回在一个墙角移动就会卡进去的bug来过关么?试过永劫无间在秘宝洞穴某个墙外来回蹭就能直接卡进去么?这种bug不要太多,任何游戏都存在。但却几乎无法被测试覆盖到,那你想想为什么每次这种隐藏之深的bug都能被找到?那些专业去找这种bug的人他们是用了什么测试方案,就能在游戏公测第一天就能找到这几乎无法被发现的bug呢?答案就是大量的随机动作,并且设置了目的地:墙壁里、山体里、洞穴内等等,无数种随机的路线,来回移动,反复横跳的路线中,就会自动发现那一个bug。

例子先不举了,太多了。

言归正传,这种随机又有确定目标的测试技术,我就暂且叫做【钱学森弹道】测试法吧,如果你们有好听的名字可以留言哦。

那这个技术的背景和意义,我们大致有画面了,但是如何实现呢?无数个随机事件,真的能在最终走向确定的目标么?

欢迎继续收看【钱学森弹道】测试法的实现理论。

明天更新..

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-11-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试开发干货 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【实测】关于‘钱学森弹道’应用软件测试的设计与实现(02)【4个具体方案】
实测系列是纯硬核技术文章,并且是博主亲自演示已经落地取得一定成果的技术和原创教程,无偿进行分享,大家一键三连,支持一下!
我去热饭
2023/11/06
2520
【实测】关于‘钱学森弹道’应用软件测试的设计与实现(02)【4个具体方案】
【实测】关于‘钱学森弹道’应用软件测试的设计与实现(03)【终极方案-目标趋向】
实测系列是纯硬核技术文章,并且是博主亲自演示已经落地取得一定成果的技术和原创教程,无偿进行分享,大家一键三连,支持一下!
我去热饭
2023/11/07
2490
【实测】关于‘钱学森弹道’应用软件测试的设计与实现(03)【终极方案-目标趋向】
探索式软件测试
a.自动化测试(缺点:维护自动化测试代码需花费大量时间;优点:重复使用率高,提高测试速度;致命弱点:“预言家难题”,很难预估测试完成情况)
wangmcn
2022/07/26
4120
软件测试总结——常见的面试问题(一)
单元测试:单元测试是对软件组成单元进行测试。其目的是检验软件基本组成单位的正确性。测试的对象是软件设计的最小单位:模块。Findyou又称为模块测试,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。(测试内容:模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试)
全栈程序员站长
2022/09/02
1.2K0
月活8.89亿背后:微信工程师细数兼容测试经验
2017年4月,企鹅智酷公布了最新的《2017微信用户&生态研究报告》。报告数据显示,截止到2016年12月微信全球共计8.89亿月活用户,新兴的公众号平台拥有1000万个。微信这一年来直接带动了信息消费1742.5亿元,相当于2016年中国信息消费总规模的4.54%。
WeTest质量开放平台团队
2018/10/29
7610
走进标准化测试
一、引言 为避免大篇幅的概念介绍,我们直接从项目实践入手,为读者朋友理解标准化测试。在开始,只要理解标准化测试是为了解决项目测试实际问题而产生的测试方案即可。 二、背景介绍 手机QQ浏览器(iPhone)项目测试在2014年采用探索式测试改革后取得了不错的效果,但是近两年来项目发布节奏加速,测试任务量剧增,与之对应的测试人员编制并无扩大,且外包流动性很大,如何在原有的基础上继续提升测试效率和质量是一直以来我们一直在琢磨的事。我们面临的主要问题包括: 2.1新旧外包交替 新旧外包交替,隐性经验传承不够好。 大
腾讯移动品质中心TMQ
2018/02/08
1.9K0
走进标准化测试
软件测试复习
软件体系结构是软件系统的结构、行为和属性的高级抽象,给出系统的组织结构和拓扑结构,规定系统需求和构成系统的元素之间的对应关系。
千灵域
2022/06/17
3850
软件测试复习
Android软件测试Monkey测试工具
前言: 最近开始研究Android自动化测试方法,对其中的一些工具、方法和框架做了一些简单的整理,其中包括android测试框架、CTS、Monkey、Monkeyrunner、benchmark、其它test tool等等。因接触时间很短,很多地方有不足之处,希望能和大家多多交流。 一、  什么是Monkey Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monk
互联网金融打杂
2018/04/03
4.5K0
Android软件测试Monkey测试工具
【软件测试】初识测试
软件测试是指在开发软件的过程中,针对软件系统或应用程序进行各种测试,以确定其符合特定要求和标准,并能够正确地执行预期的功能和任务。 通俗的说,软件测试就是找bug,发现缺陷.验证软件产品特性是否满足用户的需求. 软件按照用户提出的需求而设计了很多的功能, 软件测试人员就需要验证软件功能的方方面面:
xxxflower
2023/10/16
3610
软件测试之浦发银行面试题(含答案、解题思路)
对于想要面试去银行面试的小伙伴们看过来,今天为大家总结了浦发银行的面试题,其实很多面试题很多公司都差不多。主要看自己如何灵活回答。以下的问题小编之前面试非浦发银行的银行项目也有被问到过,是在一面的时候被问到的。答案仅作为参考,大家可以灵活回应。希望对大家有所帮助!
测试开发技术
2021/08/20
2K0
大模型助力智能化测试在Hydra Lab中的实战:如何打造更聪明的猴子?
在软件测试领域,“猴子测试”一直是一种广受欢迎的方法,但其也存在着动作随机的局限性。如果引入大模型,创造一只更聪明的猴子,它可以真正理解应用并像人类一样与之互动,将会怎样?
深度学习与Python
2023/09/08
6390
大模型助力智能化测试在Hydra Lab中的实战:如何打造更聪明的猴子?
真的有必要写测试用例么?
最近王豆豆又恢复了以前的勤快了,这已经是一周内的第三篇,值得夸奖(自夸下),王豆豆一直很佛系的运营这个公众号,也许并不能说是运营,只是觉得有一个地方能写字挺好,刚好写的字能给一部分人带来帮助,每次收到小伙伴的反馈真的特别高兴,正因为这些感觉王豆豆会一直写下去,以后的文章类型可能不限于测试技术,也可能对某些产品的测评或是对某本书的思考,年纪越大越想拓展自己的思维。
王豆豆
2019/06/11
1.8K0
真的有必要写测试用例么?
【软件测试系列一】《软件测试基础知识》
为了保证软件的质量和可靠性,应力求在分析、设计等各个开发阶段结束前,对软件进行严格技术评审。软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。如果给软件测试下定义,可以这样讲:软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计的一批测试用例(即输入一些数据而得到其预期的结果),并利用这些测试用例去运行程序,以发现程序错误的过程。
再见孙悟空_
2023/09/19
1.5K0
【软件测试系列一】《软件测试基础知识》
面试题之软件测试基础
一般情况下有输入框的时候会考虑用到等价类;当出现最大最小、最轻最重字眼的时候会用到边界值来考虑测试点;当出现业务流程的时候会考虑场景法和流程分析法。
wangmcn
2022/07/26
9280
Google 软件测试之效率神器
大家都知道,一个好的工具或系统,可以极大的提高工作效率,而 Google 测试团队的这些工具都是他们工作过程中经过总结提炼,最后量身定制开发的,效果可想而知了。
sylan215
2020/03/02
1.4K0
程序员面试之软件测试面试问答
1、问:你在测试中发现了一个bug,但是开发经理认为这不是一个bug,你应该怎样解决? 首先,将问题提交到缺陷管理库里面进行备案。 然后,要获取判断的依据和标准: 根据需求说明书、产品说明、设计文档等,确认实际结果是否与计划有不一致的地方,提供缺陷是否确认的直接依据; 如果没有文档依据,可以根据类似软件的一般特性来说明是否存在不一致的地方,来确认是否是缺陷; 根据用户的一般使用习惯,来确认是否是缺陷; 与设计人员、开发人员和客户代表等相关人员探讨,确认是否是缺陷; 合理的论述,向测试
互联网金融打杂
2018/04/03
1.6K0
单元测试整理
在实际研发与测试工作中,单元测试是代码走向高质量的必经之路,也是效能优化实践的重要一环。单元是应用的最小可测试部件。在过程化编程中,一个单元就是单个程序、函数、过程等;对于面向对象编程,最小单元就是方法,包括基类、超类、抽象类等中的方法。单元测试就是软件开发中对最小单位进行正确性检验的测试工作。
Johns
2022/06/29
1.1K0
如何系统自学软件测试,看这篇软件测试学习方法万字总结就够了
主要分享测试的学习资源,帮助快速了解测试行业,帮助想转行、进阶、小白成长为高级测试工程师。
伤心的辣条
2022/12/14
1K0
如何系统自学软件测试,看这篇软件测试学习方法万字总结就够了
软件测试常见面试题
测试中抓取log会涉及adb命令的使用 ,也如会用monkey进行APP的稳定性测试,有涉及到代码修改户使用到Androidstudio这些开发工具。
wangmcn
2024/01/26
3250
软件测试常见面试题
全栈软件测试工程师宝典连载(2)
讨论软件测试,不得不涉及软件工程模型,因为软件测试学与软件工程的发展是依依相关、相辅相成的。软件工程模型大体上可以分为两类:瀑布模型及其衍生模型和敏捷模型,下面分别进行介绍。
顾翔
2021/01/18
3740
相关推荐
【实测】关于‘钱学森弹道’应用软件测试的设计与实现(02)【4个具体方案】
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档