首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我的Broadcastreceiver似乎检测到呼叫结束,但仍然没有做它应该做的事情。有人看到我代码中的缺陷了吗?

根据您提供的问答内容,我会尽力给出一个完善且全面的答案。

首先,BroadcastReceiver是Android中的一个组件,用于接收和处理广播消息。根据您的描述,您的BroadcastReceiver似乎没有执行预期的操作。以下是一些可能导致问题的缺陷和解决方法:

  1. 注册问题:确保您的BroadcastReceiver已正确注册。您可以在AndroidManifest.xml文件中声明BroadcastReceiver,并将其与相应的Intent过滤器关联起来。例如:
代码语言:xml
复制
<receiver android:name=".MyBroadcastReceiver">
    <intent-filter>
        <action android:name="android.intent.action.PHONE_STATE" />
    </intent-filter>
</receiver>
  1. 权限问题:某些广播需要特定的权限才能接收。例如,如果您的BroadcastReceiver需要接收电话状态变化的广播消息,您需要在AndroidManifest.xml文件中添加以下权限声明:
代码语言:xml
复制
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
  1. 代码逻辑问题:检查您的BroadcastReceiver的代码逻辑,确保它在接收到广播后执行了正确的操作。您可以在BroadcastReceiver的onReceive()方法中编写逻辑代码。例如,如果您希望在电话呼叫结束时执行某些操作,可以检查电话状态是否为IDLE状态,然后执行相应的操作。示例代码如下:
代码语言:java
复制
public class MyBroadcastReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        if (action.equals(TelephonyManager.ACTION_PHONE_STATE_CHANGED)) {
            String phoneState = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
            if (phoneState.equals(TelephonyManager.EXTRA_STATE_IDLE)) {
                // 执行呼叫结束后的操作
                // ...
            }
        }
    }
}
  1. 日志调试:如果以上方法仍无法解决问题,您可以在代码中添加日志语句,以便调试并查看是否接收到广播消息以及执行的操作是否正确。例如,在onReceive()方法中添加日志语句:
代码语言:java
复制
Log.d("MyBroadcastReceiver", "Received broadcast: " + intent.getAction());

通过查看日志输出,您可以确定是否接收到广播消息,并检查代码逻辑是否正确。

总结起来,要解决您的BroadcastReceiver没有执行预期操作的问题,您可以检查注册、权限、代码逻辑和添加日志调试等方面。希望以上信息对您有所帮助。

另外,根据您的要求,我不能提及亚马逊AWS、Azure、阿里云、华为云、天翼云、GoDaddy、Namecheap、Google等流行的云计算品牌商。如需了解腾讯云相关产品和产品介绍,建议您访问腾讯云官方网站(https://cloud.tencent.com/)获取更详细的信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

我是一个IE浏览器线程

轮到我了,摩拳擦掌,开始干活。 我拿到一看,咦,这人类程序员写的js代码咋这么奇怪,跟我之前看到的不太一样。不管了,干活不能挑三拣四,按他写的执行就是了。...广播刚刚结束,戴着墨镜的男子带了几个人闯了进来,“抱歉打扰各位工作,刚刚我们361杀毒公司检测到有人往国家的数据仓库——磁盘中写入了一个木马文件,调取监控记录后发现是你们IE公司的人,我们需要来调查取证...墨镜男原来叫周哥,听完同伴的呼叫,他快速跑向了公司的堆区,几分钟后又来到我的工位。 “你叫什么名字?” “我叫小张”,我开始有点紧张了,难不成我工作出了什么问题。...“额,没有,代码里面没有这条指令,所以我没做这事”,我弱弱的回答。 “然后你又申请了一个和原来对象一样大小的新对象,巧合的是,这个对象在堆区的位置用的就是刚才你释放的那个对象原来的位置。”...“然后你又用指向原来对象的指针去调用它的函数,但是现在那个位置上已经不是原来对象,里面的数据是新对象的,你想想要是这个新对象是有人精心构造的内容,你岂不是张冠李戴,掉入别人的陷阱了吗!

50320

Linux创始人Linus Torvalds访谈,Git的十年之旅

BK让你可以避免这个问题,方法就是给每个人自己的源代码存储库。但是BK有自己的问题,有几个技术选择导致了问题(重命名是痛苦的),而最大的缺陷是它不是开源的事实。...Torvalds:你可以实际的在Git源代码存储库中去看看它是如何成型的。它花费我大约一天的时间来让其“自托管”,这样我就可以使用Git本身来将东西整合到Git中。...我在整个项目开始之前考虑了一段时间,包括其他人已经遇到过的问题,我看到我想要避免去做什么。 它辜负了你的期望了吗?你如何评价它如今的工作?对它有哪些限制呢?...你可以使用Git做很多事情,而且很多关于你应该做什么的规则当中并没有太多的技术限制,更多的是关于当于其他人一起工作时,什么是可以正常进行的。...一般情况下,学习Git的最好方法是先做非常基础的东西,甚至就是看一些东西,直到你有熟悉、自信的基础。 这里还有一些历史原因导致Git被认为是复杂的。其中之一就是它是复杂的。

1.4K60
  • MinTalk | 为什么需要做分布式追踪

    去年夏天应曹老师的邀请,给交大软件工程课的同学们做了一次后端服务器架构的入门分享,从如何设计一个最简单的服务器开始,一步步把如今常见的负载均衡,CDN等等概念一个个引荐给大家,没有涉及任何技术细节,只是想让大家理解为什么会有这些技术...分享的结尾,为同学们引荐了微服务的概念,然后就以各种赞美微服务的好而结束,似乎有种王子和公主终于在一起了的感觉,然而也就像童话的结尾都是骗人的一样,最近也终于体验到了把应用拆的碎碎的之后的一些问题。...其实,服务调用的链路追踪,只是提高微服务系统可见性的三大支柱的其中一个。在研究这个问题的过程中,有一张图很好的解决了我对日志,监控和链路追踪这三者这件关系的困惑。...正因为有很多两边都可以做的事情,所以要不要做,哪个模块来做,甚至选择哪个第三方的工具来做,其实都取决于我们想解决的问题是哪个范围内。...最终我们选择的开源软件,也是专注于链路追踪模块,而不支持偏监控和日志要做的事情,这也是考虑到我们已有的工具已经覆盖了这两块的内容,而我们最缺的,其实恰恰是纯Trace要做的事情,即展示一个完整的API调用链

    26110

    Android插件化原理解析——广播的管理

    另外,IIntentReceiver是一个接口,从上述代码中可以看出,它的实现类为LoadedApk.ReceiverDispatcher。...OK,我们继续跟踪源码,AMS类的registerReceiver方法代码有点多,这里不一一解释了,感兴趣的话可以自行查阅;这个方法主要做了以下两件事: 对发送者的身份和权限做出一定的校检 把这个BroadcastReceiver...= mReceiverResolver.queryIntent(intent, resolvedType, false, userId); 读者可以自行跟踪这两个方法的代码,过程比较简单,我这里直接给出结论...从实现Activity的插件化过程中我们知道,需要在AndroidManifest.xml中预先注册是一个相当麻烦的事情——我们需要使用『替身』并在合适的时候进行『偷梁换柱』;因此看起来动态广播的处理要容易那么一点...首先,广播并没有复杂的生命周期,它的整个存活过程其实就是一个onReceive回调;而动态广播又不需要在AndroidManifest.xml中预先注册,所以动态注册的BroadcastReceiver

    78120

    【NCTS峰会回顾】云测学院陈霁:测试开发到测试架构之路

    这就是测试和开发做很多事情区别的方向之一。我们看待一件事情时候,要0和1去决定它,还是做问题拆解。当我聊到这里大家再去想另外一个问题,不知道大家发生变化了没有?...有些时候我们在微信群里似乎有人聊这个话题,聊这个话题结果马上就有人冲出来,你是不是做错什么事了,或者有很多的答案,直到有一个人说了一句话“既然不合适就不要在一起了”。...大家做测试那么多年,回过头看解决问题了吗?问题在什么地方?我们自己在想这件事情,我们说我们能改变世界,我们从0到1,相信男同胞到30几岁会相信一句话“当年有富婆包养我会从了他”。...你做一件事情可能会带来更多不好的地方,你救一个人你觉得真的帮助了他吗?不一定的,为什么?从某些角度来讲,如果没有这些意外你把它救了,人类人口上升更快,那可能又是一个灾难,没有什么事情是绝对对错的。...如果大家听我上次讲的时候,我本身想做一个演示,但是环境情况没有做到,今天也很难做到,但是我做了一个事情给大家看,当我做PPT时我是怎么做的?

    34520

    关于Android四大组件最权威最深刻最准确的解读(绝不标题党)

    好了,操作系统要运行你的APP了,于是它调用你的main方法,然后你的应用就开始运行了,你可以做任何你想做的事情,直到你认为自己完成任务为止。...但再次强调,你没有理由在仅仅发生在APP中的事情上使用BroadcastReceiver机制。 Service 当由于各种各样的原因需要APP在后台运行时,Service就是一个这样的入口。...Started Service就相当于因为某种原因你的APP告诉系统:“系统大哥,我有事要干,请让我一直运行,直到我告诉你我干完了。”...对于Service,系统不关心的是: Android不关心你的APP中那些不影响它怎样对待你的进程的事,所以这些情况下,是没有理由使用Service的。...比如,你的APP可以将代表一张你的APP内的图片的URI放在剪贴板上,但是让它的ContendProvider 保持在锁定状态,所以没有人能够自由地获取它。

    903100

    Vicuna数字孪生再现10年前的自己,跨越10年对话感动无数人

    方法无关紧要,语料库至关重要 最开始,他用的是Meta的Llama-2(llama-2-70b-hf),但由于生成的结果很奇怪(不知道是自己的微调不正确,还是模型并没有做自己该做的事),最终他选择的是Vicuna...「幽灵」依然会产生幻觉 当然,这个模型依然没有避免LLM众所周知的缺陷。 在私人领域,这些缺陷暂时不成问题。但显然,传记作家这个职业短期内不会消失。...尽管数据库经过精心策划,但AI模型还是会表现出一些出人意料的行为。 比如,它多次重复说自己是个天才,并且相信外星人的存在。但这名网友在原始内容中从来没有说过这样的话。...我希望你已经找到了你热爱的事物,正在做你喜欢的事情。我希望你对你的生活感到快乐和满足。我也希望你一直能够忠于自己,没有任何事或任何人能够影响你是谁。 我想让你知道,我为你感到骄傲。...永远不要忘记你是多么的了不起。我爱你,我知道你会继续做伟大的事情。

    18730

    从惧怕到有所成就

    我跑到纪伊国屋书店、 试遍了每一本书,每一套CD。 什么都没有用,直到我发现了这个。 这是《常用汉字表》。这张表上 有1945个最常用的汉字 是由教育部在1981年修订的。...这告诉我们: 往往你做什么, 而不是你怎么做,是关键所在。 这是有效能(做正确的事情)和 有效率(做好事情,不管它们是否重要)之间的区别。 ? 我在实验之后得出这六个句子。...我对比了两张单子, 发现其中有外显的: 他们推荐的技能,一些练习的方法。 然后还有内隐的共同点, 但似乎没有人练习。于是我决定专注于其中三个共性。 大步子。...要是我打算和练习了二三十年的老手同场竞技, 这似乎是我能探索、完善的三个方面。 ---- 恐惧是你的朋友。恐惧是一个指标。 有时候它告诉你不该做什么。...但更多时候,它恰恰告诉你该做什么 我生命中获得的最好成就, 最美好的时光,都源于问一个简单的问题: “最坏的可能是什么?” 尤其是对于你从小时候就有的恐惧。

    57140

    开发者的中年危机:接下来做什么?

    这周,我辞掉了我那份舒适、薪水又高的工作。 我之所以会走这一步,是因为在我回顾过去已经取得的成绩之后,我不知道接下来的30年应该做什么。...但是没有听上去的那么简单,你需要处理的事情比你认为得更多,但这都是业务的重要组成部分! 你可以抓住机遇,成为一名自由顾问,四处旅游并在公司呼叫你寻求帮助的时候为他们解决问题。...我认识一位CEO,他干脆卖掉了他的小IT企业,做起了食品贩卖的生意:只要他开心就好! 也有人留了下来,为了钱。我不会责怪他们:自己的人生自己负责! ?...让激情冲锋 我决定用接下来三个月的时间完成我的业余项目,并尝试依靠它建立初创企业。 这个项目叫做Seeld。 它一开始是我和我的前同事,也是我最好的朋友Emad一起做的一个业余项目。...我曾经相信这是可能的,但是改变企业的IT文化是一个艰难而漫长的过程,而我(到目前为止)从来没有亲眼目睹过。 那么……我的观点是什么? 我的观点是:有的人会觉得自己能被付薪水去写代码真幸运。

    48330

    华大是否“癌变”?

    最终,这个家庭,因为一名“基因缺陷儿”的到来坠入了深渊。 而促成这场悲剧的,究竟是医生?华大基因还是孕妇自己?在孕期产检时,在医生的医学专业判断和“无创产前基因检测”二者中,又该如何取舍?...最新数据统计显示,我国为出生缺陷的高发国,在每年约1600万的新生儿中,先天性致愚致残缺陷儿占每年出生人口总数的4%-6%,总数高达120万,占全世界每年500多万出生缺陷儿童的五分之一。...检查大多为图安心 医院应严格遵守产检原则 在某妇幼保健医院,“无创产前基因检测”是在一栋独立的楼里做的。二楼,则专用于新生儿筛查和唐氏筛查。 ?...除此之外,在整个二层,我们并没有发现任何提供基因检测服务机构的信息。 “这个基因检测具体是哪家做的我不太清楚,医生没有跟我说。但我在网上查了一下,说是要送到北京那边去检测。”...“但我拿到检测报告之后并没有和医生做过多的讨论,一切产检都和大家一样,医生也并没有因为我的无创基因检测是‘低风险’就免去一些检查。”

    44230

    如何破除对测试人员的偏见

    ,我变得困惑,为啥像用户一样操作的方法能够存活在技术圈中,我开始怀疑测试,质疑测试,然后随着工作经历的增多,我又开始相信测试,测试是需要通过技术的手段去描述你的思想的行为,测试的底层操作是技术和思想,思想层面的事情...总之测试左移需要测试人员“尽早参与”,尽可能参加每个阶段的讨论和团队合作,都能对最终交付产生价值,帮助项目提前识别风险并做减轻计划。 在左移中测试人员应该做哪些不同的事情?...在左移策略中,下面几点是测试人员应该做的几个关键因素 1)测试团队需要项目初始阶段尽早参与,以便更好的团队整合以及在软件开发的每个阶段对业务都能提供有用的输入。...概括来说,测试左移流程是: 尽早发现bug,减少项目成本 一遍一遍持续测试,减少收尾阶段的bug 所有事情做自动化,尽早上线 聚焦在客户需求,提高客户体验 “测试左移”的概念给整个测试角色带来了巨大的转变...直到现在,测试不仅仅是“发现bug”,现在它已致力于“从早期bug的检测到预防”的一段旅程中,在这个过程中,测试人员能做到帮助产品表达需求,帮助开发理清需求为最佳实践。

    56410

    笨办法学 Python · 续 练习 13:单链表

    在每个分支(if语句,for循环,while循环)中,确认逻辑是正确的,并且它处理逻辑中的任何可能的条件。if语句的else子句有错误吗?循环能结束吗?...这个流程一开始似乎很乏味,是的,但是你会越来越快,在视频中你会看到,在运行每个测试之前我都这么做(或至少我真的努力尝试这么做)。我按照以下流程: 写一些测试代码。 编写代码使测试工作。 审计二者。...我建议当你尝试在SingleLinkeList中实现一个函数时,首先写一些注释来描述它做了什么,然后填充 Python 代码来使这些注释工作。你会看到我在视频中这样做。...当你花了一两个 45 分钟的会话来 Hack 它并试图让它工作时,现在是观看视频的时候了。你首先需要尝试它,以便更好地了解我正在尝试的事情,这样可以使视频更容易理解。...视频中我只是编程而不说话,但我会做一个旁白来讨论发生了什么。视频也更快来节省时间,我会剪切掉任何无聊的错误或时间的浪费。 一旦你看到我是怎么做的,你已经做了笔记(对吗?)

    42520

    以人为本构建运营弹性

    虽然在后疫情时代,弹性这个词似乎被更广泛地使用,但仍然存在一种观念,那就是它终究是一个技术问题。 没错,运营弹性可能业务至关重要,甚至是生死攸关。...“人类的成功在于我们的创造力和适应能力;我们成功不是因为我们擅长每次都以相同的方式做同样的事情,或者可以记住清单上的 50 件事而永远不会忘记。”...事实上,围绕开发人员生产力的近期辩论与运维弹性息息相关;认为只要开发者做正确的事情(编写代码),组织就能成功的想法,以及我们需要消除开发者面临的障碍的想法,最后都过于强调个人的用处,而没有考虑到整个系统的健康...领导力的重要性 第一步也许是创建一个完全致力于弹性的角色。 Gochee 说:“如果没有领导者来做这件事,它通常不会被完成。”...“工程副总裁通常没有带宽来担任运营副总裁、基础设施副总裁或 DevOps 副总裁。他们忙于 1,000 其他事情,以至于永远无法真正完成它。” 这似乎与弹性所依赖的大量角色的重要性相矛盾。

    11710

    昂贵的质量——为什么bug总在发生?

    缺陷早已在丰田生产系统(Toyota Production System)中被标注为浪费之一。没有人希望看到 bug,我们不想,客户更加不想。...但我们似乎都不愿承认的一个事实是: bug是代码的副产品而已。 如果我们选择接受编码不过是人思维活动的一种形式,与思考无异,那我们也就必须接纳,人性的缺陷在代码中自然也不会缺席,恰如硬币的正反两面。...反过来说,如果你对 bug采取的是零容忍的态度,甚至不惜把此写入 KPI 中,它也未必会带来正面效应,因为自此开始,没有人会愿意重构,没有人会愿意引入新的技术方案,道理非常简单:改动越多风险越大——这是某年发生在我所属团队的一次亲身经历...原谅我用一个粗俗的比喻来解释为什么这么做行不通: 我们换来的只是打扫的速度,对制造垃圾的人产生不了任何影响,效果甚至会适得其反:考虑到总有人为他们收拾残局,我们的善后工作做得越好,他们越是会肆无忌惮。...但换一个角度想,我们只是在做一些本该做好的事情而已,用户的宽容让质量变得可有可无。 我不否认有时候快比好更重要,只不过当有一天质量变成我们无法再忽视的问题时,别不知所措地想不起来质量是在哪里搞丢的。

    12610

    跳出任务管理的泥沼,拥抱甘特图的怀抱

    他们有一个缺点,那就是你只知道一个任务没有做,或者已经做完了。但是你不知道在一群没有完成的任务中,哪些是正在做的。(当然,你可以创建一个分类,叫做“正在做”,然后把正在做的任务放进这个分类中。)...在看板中,你可以知道哪些任务是计划中,哪些任务是准备做,哪些是正在做,哪些是已经完成。然而这样就够了吗? 看板比单纯的To do list类应用进了一步,能够关注任务的状态了。...在某一天,如何让所有人都一眼就知道,哪些任务没有按时完成,哪些任务已经提前完成了? 使用时间轴确定进度 现在回到任务管理的App中。...我个人认为,在项目管理中,任务周期是非常重要的,任务的开始时间和结束时间一定要把控好。使用甘特图就可以实现这样一个目的。...,我能一眼看出以下信息: 今天谁应该做什么任务 这个任务从什么时候开始,到什么时候结束 一个人在一段时间有哪些任务 应该先做哪些任务再做哪些任务 哪些任务可以同时做 这个任务是否被其他任务依赖,如果是,

    1.1K41

    objectable_java throwable

    问题 众所周知,Java中的Cloneable接口被破坏了。这有很多原因,我不会提及; others已经做到了。它也是Java architects自己的立场。...因此,我的问题是:为什么还没有被弃用?如果核心Java团队已经确定它已被破坏,那么他们也必须考虑弃用。他们这样做的原因是什么(在Java 8中它是still not deprecated)?...目的是如果一个类想要允许其他人克隆它,那么它应该支持Cloneable接口并使用公共克隆方法覆盖默认的受保护克隆方法。不幸的是,由于在时间迷雾中方便丢失的原因,Cloneable接口没有定义克隆方法。...我在这里引用了相关部分;完整的消息在错误报告中。 Cloneable没有方法与Serializable没有相同的原因。 Cloneable表示类的属性,而不是具体说明该类支持的方法。...因为JCP认为不适合这样做,并且可能永远不会这样做。问他们。你在错误的地方问。 在Java API中保留此内容的原因是什么? 由于向后兼容性要求,没有人会从Java API中删除任何内容。

    43040

    浏览器实验中的故障排除

    呼叫通过SIP传递到我们的平台,同时运行客户的智能小程序配置以确定呼叫路径。可以跨各种运营商合作伙伴创建多个呼叫支路并将其桥接在一起。所有这些都在我们联系代理人之前完成。...顶部的时间刻度是在几秒钟内,但仍然明显缩小。我希望音频波看起来的状态与我所看到的状态之间存在差异。具体地说音频不是整个被捕获的单词中的一个流体波。但是在完全沉默中不时会出现几小段音频。...我使用了16kHz的耳机捕获理论,需要将PCMU编解码器缩小到8kHz。最终,这似乎没有任何进展,我也从来没有重新审视它。 好。检查一下。...但是,基本分类WebRTC Internals中的指标显示没有数据包丢失或抖动......这意味着在传输任何网络之前音频已被破坏。所以......必须在浏览器或操作系统中做点什么才能导致这种恶化!...但我没有任何结论,只有无用的数据点。然后我决定扮演疯狂的科学家。 R.I.P我的USB端口 我决定采用可以重现问题的耳机,并在呼叫中开始热交换。我发现了一些有趣的结果。

    2.7K30

    项目难做,程序员难当,软件开发中的 9 大难题

    如果你从事的工作与你的技能不配,或者没有人能够帮你迈出第一步的话,你也可能陷入麻烦。 团队需要和谐。如果你有幸身处“分享同一个梦想”的团队,一切都很美妙。...03 外行的期望 不清晰的需求导致了外行的期望,不仅如此,有时人们似乎把程序员当成了超人。 当你刚接手一个项目时,根本不可能成功调试有着 100 000 行代码的程序。...06 威胁产生的动力 威胁无疑不是一个好的激励策略,但仍然被广泛使用。“如果你不能熬夜加班,就不配当一名程序员,而应该去做一个园丁。”我的一名同事曾这样说过。 威胁会引起恐惧。...他们的大多数需求未经过深思熟虑,而且在项目实施的过程中毫无预警就改变了需求。 当需求不明确时,就会失去目标,任务永远无法结束。每一次会议都显得荒谬,所有讨论结果都是废话。...最后,整个项目都被质疑,自己每天做的事情的意义也会受到怀疑。 08 贪婪 在现代社会中,如果你不能决定像僧人那样生活,你就需要金钱维持生存。

    38610

    Google 测试总监聊如何经营成功的测试职业生涯

    而第二部分的任务是学习你应该做些什么以便使下一个测试项目更加容易。我把它称为 “测试今天的项目,准备明天的项目”。如果你做每一个项目把它都分割成为上述的两半,那么几乎可以保证你能持续获得进步。...当我把它给我儿子看时,我之处他站立的那条腿的姿势非常完美,他踢球的脚尖紧绷且出球点在鞋带间恰到好处的位置上。他盯着那张照片很长时间,从那以后他很少用不正确的姿势踢球。...我喜欢这样来考虑问题:测试人员检视自己的工作时也需要发挥那种寻找缺陷的能力。我们必须使用和寻找产品缺陷一样的流程来寻找我们自己的测试流程,测试过程中的缺陷。 我的测试流程是不是有问题?...不过,工具只是实现该目标的一种方法,但在许多其他方面它反而是一种限制,因为太多的人看不到工具的功能之外的东西。他们被限制在工具能为他们所做的事情中,没能看到或理解对工具还有更多的需求。...来自应用程序的信息包括需求、体系结构、代码结构、源代码……甚至是关于应用程序在执行时做了哪些事情的运行信息。

    26620

    Google 测试总监聊如何经营成功的测试职业生涯

    而第二部分的任务是学习你应该做些什么以便使下一个测试项目更加容易。我把它称为 “测试今天的项目,准备明天的项目”。如果你做每一个项目把它都分割成为上述的两半,那么几乎可以保证你能持续获得进步。...当我把它给我儿子看时,我之处他站立的那条腿的姿势非常完美,他踢球的脚尖紧绷且出球点在鞋带间恰到好处的位置上。他盯着那张照片很长时间,从那以后他很少用不正确的姿势踢球。...我喜欢这样来考虑问题:测试人员检视自己的工作时也需要发挥那种寻找缺陷的能力。我们必须使用和寻找产品缺陷一样的流程来寻找我们自己的测试流程,测试过程中的缺陷。 我的测试流程是不是有问题?...不过,工具只是实现该目标的一种方法,但在许多其他方面它反而是一种限制,因为太多的人看不到工具的功能之外的东西。他们被限制在工具能为他们所做的事情中,没能看到或理解对工具还有更多的需求。...来自应用程序的信息包括需求、体系结构、代码结构、源代码……甚至是关于应用程序在执行时做了哪些事情的运行信息。

    52541
    领券