美文网首页我爱编程
快排算法作者托尼·霍尔:软件测试的真正价值并不体现在从代码中找出

快排算法作者托尼·霍尔:软件测试的真正价值并不体现在从代码中找出

作者: 战神阿卡迪亚 | 来源:发表于2018-03-15 11:48 被阅读0次

    软件测试的真正价值并不体现在从代码中找出了多少缺陷,

    而是发现设计和编程人员解决问题方法上的局限,

    思路中的狭隘和技能方面的不足。

    昨夜西风凋碧树。独上高楼,望尽天涯路。

    测试是为发现错误而执行程序的过程。通过发现错误,修复错误,从而提高了程序的可靠性和质量,增加了程序的价值。最终确认计算机代码完成了其应该完成的功能,不执行其不该有的操作。

    测试团队的目标不是保证质量,而是降低风险,尽可能多的发现问题和bug,为团队提供风险评估和度量指标。

    衣带渐宽终不悔,为伊消得人憔悴。

    测试原则

    错误总是倾向于聚集存在。

    Tests should always have a known starting point. In the context of Selenium, this could mean opening a certain page to start a workflow.

    Tests should not have to rely on any other tests to run. If a test is going to add something, do not have a separate test to delete it. This is to ensure that if something goes wrong in one test, it will not mean you have a lot of unnecessary failures to check.

    Tests should only test one thing at a time.

    Tests should clean up after themselves.

    测试输入框

    For character strings, try to enter very long character strings, longer than one would expect to have.

    Attempt to include characters that are not in the acceptable character set, if possible.

    Attempt to choose more than the allowed number of choices for fields that allow multiple choices.

    Attempt to leave fields blank, especially for data that one would generally always assume must be filled in. 

    Repeat input of the same data in computational areas and in form entries.

    Try to update information using exactly the same data as was originally entered and accepted.

    Attempt to change already entered data that might be used as part of the lookup for other information.

    Enter data of the wrong type. For example, enter text characters in numerical fields, floating point values in integer fields, and integer values in floating point fields.

    测试文案

    读一个单词,默数一、二后,再读下一个单词。

    测试工具:

    fitnesse,watir,htmlunit,google的ted

    mao的通用web测试基础框架matrix,chrome使用的pyauto,google search使用的puppet 开源版本叫web

    puppeteer,google bot,google BITE/RPF

    组织测试用例:webtest

    生成测试数据:perlClip

    安全测试:fuzzing,nessus

    web服务测试:ruby IRB

    用文档记录测试代码:javadoc

    测试框架:ruby, groovy, rails

    众里寻他千百度。蓦然回首,那人却在灯火阑珊处。

    手工测试 vs 自动化测试

    无论是应用程序接口、图形用户界面、回归测试或某个全新的测试要求,选什么类型的测试方式取决于期望找到什么样的软件缺陷。也许有特殊情况,但在大部分时间里,手工测试在寻找业务逻辑错误上优于自动化测试,而自动化测试在寻找基础结构性软件缺陷上胜过手工测试。自动化测试工具,不仅可以提高软件测试的效率,同时也把测试工程师从大量的简单重复测试中解放出来,让他们可以把更多的时间投入到测试用例的设计中。好的自动化测试源于手工测试。

    测试架构师之路

    阅读源代码中的错误处理代码,指导测试

    分析bug产生的原因:每一个好bug背后都可能隐藏着一个更好的bug。在确实了解缺陷的影响程度和破坏力之前,永远不要停止探索。

    理解环境,即browser。

    分析并总结遗漏bug的原因。

    分析并总结发现bug的经验。

    成为“找到缺陷最多的人”和“找到最有意义缺陷的人”。

    分析测试流程是否有缺陷,如何更高效。

    掌握测试进展,调整测试策略。

    创新:仔细观察,洞察先机,找到瓶颈并改进团队的工作方式,保证更多的人能爬上山峰。成为测试架构师。

    相关文章

      网友评论

        本文标题:快排算法作者托尼·霍尔:软件测试的真正价值并不体现在从代码中找出

        本文链接:https://www.haomeiwen.com/subject/ykacqftx.html