zoukankan      html  css  js  c++  java
  • 15.探索吧!深入理解探索式软件测试

    1)
    测试的很多思维不仅适用于工作也适用于生活,而那一刻,在她的面前,我却退缩了。Elisabeth则以她的热情和专业积极推动着敏捷测试,而这也为她赢得了2010年度的敏捷联盟Gordon Pask奖,该奖的设立正是为了表彰像她一样对敏捷实践做出了卓越贡献的人们。
    2)探索式测试很重要。 尽管,将此方式运用于任何种类的开发均能产生价值,然而,它最适合于那种快速循环和突发变化很常见的敏捷开发。开发和测试的方法有很多共通之处.
    3)
    太让人失望了,不管我们写多少测试,也不管我们执行多少测试用例,都没用,最严重的缺陷都只有在偏离脚本执行时才能找到。”
    4)
    探索这件事,它的结局可能是完全开放式的。如果不使用一些机制对工作进行安排和组织的话,那你很可能就是拿着软件瞎折腾,花掉了数小时或数天的时间,结果却找不到任何相关或有用的信息,无从分享。 Jon Bach和James Bach提出了基于探测会话的测试管理(SBTM)实践来解决问题。该实践以限时探测会话序列的形式安排时间,提前为探测会话确立重点。(第2章介绍了如何确定并捕获此重点。)贯穿整个探测会话期间,你畅快淋漓地探索着,设计并执行测试,从一个试验再到下一个,没有停顿。
    5)
    探测会话进行过程中,你需要做记录,这样才能知道自己都探索了些什么,又找到了些什么信息。当然,你的记录你自己用就行了。跟干系人做简短汇报的时候,你就可以参考使用这些记录,但它们与传统测试或测试报告可不一样。这种原生态记录对别人来说价值很有限,主要是为了辅助记录测试思路、问题、风险、惊喜和你想要探索的其他领域,以及bug。 探测会话结束后,你得捕捉那些需要转达给他人的信息。你可以把自己所观察到的已探索区域的能力和局限写下来,或者干脆坐到干系人旁亲口告诉他们你的发现。如果你发现有bug需要报告,那就报上去。如果你心中尚有疑问,那就把可以回答这些问题的人找出来。探测会话提供了定期歇脚点,让你可以总结提炼调查所获,仔细考虑接下来应该探索的最佳区域是哪里。
    6)
    探索这件事,它的结局可能是完全开放式的。如果不使用一些机制对工作进行安排和组织的话,那你很可能就是拿着软件瞎折腾,花掉了数小时或数天的时间,结果却找不到任何相关或有用的信息,无从分享。 Jon Bach和James Bach提出了基于探测会话的测试管理(SBTM)实践来解决问题。该实践以限时探测会话序列的形式安排时间,提前为探测会话确立重点。(第2章介绍了如何确定并捕获此重点。)贯穿整个探测会话期间,你畅快淋漓地探索着,设计并执行测试,从一个试验再到下一个,没有停顿。
    7)
    探测会话进行过程中,你需要做记录,这样才能知道自己都探索了些什么,又找到了些什么信息。当然,你的记录你自己用就行了。跟干系人做简短汇报的时候,你就可以参考使用这些记录,但它们与传统测试或测试报告可不一样。这种原生态记录对别人来说价值很有限,主要是为了辅助记录测试思路、问题、风险、惊喜和你想要探索的其他领域,以及bug。 探测会话结束后,你得捕捉那些需要转达给他人的信息。你可以把自己所观察到的已探索区域的能力和局限写下来,或者干脆坐到干系人旁亲口告诉他们你的发现。如果你发现有bug需要报告,那就报上去。如果你心中尚有疑问,那就把可以回答这些问题的人找出来。探测会话提供了定期歇脚点,让你可以总结提炼调查所获,仔细考虑接下来应该探索的最佳区域是哪里。
    8)
     
    一个简单的三段式模板: ·目标:你要探索何处?它可能是一个特性、一个需求或者一个模块。 ·资源:有什么资源是你需要带着用的?一切皆资源:某个工具、数据集、技术、配置或者某个相互依赖的特性。
    10)
    一个简单的三段式模板: ·目标:你要探索何处?它可能是一个特性、一个需求或者一个模块。 ·资源:有什么资源是你需要带着用的?一切皆资源:某个工具、数据集、技术、配置或者某个相互依赖的特性。 ·信息:你希望找到哪种信息?你是想描绘系统在安全性、性能、可靠性、容量、可用性或其他各方面的特征吗?你想查验其设计的一致性情况或某标准的违规情况吗?
    11)
     
     优质探测章程 一个优质探测章程能提供方向,同时又不会过度地细化了测试行为。
    反过来看,探测章程若是太过宽泛也有风险,可能无法提供足够的关注。如果目标太大,你就很难分辨自己是否已经完成了探索。
    一个优质探测章程即是一个提示信号:它指出了灵感之源,又避免了对行动或结果做出事无巨细的规定。
    12)
    旧习难以破除有两大原因:你可能根本就没有意识到自己是出于习惯行事,而且就算已经意识到习惯的存在,也会觉得这样很舒服。然而,想要能探索地有成效,就得去往那些未曾踏足之处。有一种方法可以打破习惯性的冲动,那就是要允许自己接受随机性的引导。“名词和动词”技术就提供了一种可以将随机性引入软件交互过程的方法。 采用此技术的第一步,是要把系统中的名词和动词识别出来。设想一下,你要测试的是某个邮件客户端。那么,系统的名词或者说事物可能包括有“邮件、附件、联系人、账户和文件夹”等在内。而相应的动词或者说动作可能包括了“创建、发送、编辑、转发、复制、删除、移动。”
    随机组合测试
    13)
    古高尔指自然数10(100),也即1后面有100个0,于1938年由美国数学家爱德华·卡斯纳的侄子米尔顿·西罗蒂所创造,主要是为了勾画出一个不可想象的大数和无穷大之间的区别。可参考https://zh.wikipedia.org/wiki/ 古高尔。——译者注
    14)绘制一个状态模型和使用启发法以暴露那些跟时间相关的惊喜
     
    你有否曾经碰到某个故障极难重现的情况?或许,你看到的是一个极偶然发生的灾难性错误,也或者是你无意间踩到了受损数据,所以无法追查其根由。 这种缺陷被触发,往往是凑巧碰上了一个短暂的脆弱期,那一刻万事俱备只待事情出错。软件要执行写操作,文件却已被锁住。恰恰在你试图访问安全内容的时候,会话出现了超时。当系统某部分试图更新某条记录、另一部分却仍未完成创建记录时,就会出现极少见的竞争条件的情况。 这些情形通常都很短命且很难发现。你可能不知道怎样才能有意识地触发它们,或是因为不知道怎么分辨它们出现与否而无法加以利用。如果感知不到这段脆弱期,想发现或重现相关缺陷就会变成是一件令人沮丧的屡试屡败的事情。 幸运的是,有种系统化方式可以借助状态模型发现并利用这些脆弱期。在本章中,你将学到如何绘制一个状态模型和使用启发法以暴露那些跟时间相关的惊喜。
  • 相关阅读:
    代码质量管理平台SonarQube的安装、配置与使用
    IntelliJ IDEA优秀插件(编程通用)
    Helpers.parallel_bulk in Python not working?
    把mysql的数据导出成txt
    python从数据库获取全量数据的方法
    ylbtech-LanguageSamples-ExplicitInterface(显示接口)
    ylbtech-LanguageSamples-Events(事件)
    ylbtech-LanguageSamples-Delegates(委托)
    ylbtech-LanguageSamples-ConditionalMethods(条件方法)
    ylbtech-LanguageSamples-CommandLine(命令行参数)
  • 原文地址:https://www.cnblogs.com/edwardsun/p/5194408.html
Copyright © 2011-2022 走看看