谈到自动化测试方面的误区,不少文章倾向于从人性、管理、职业规划等方面进行探讨。我这次专门从计划、设计、实现、维护等技术角度总结一下。
自动化的最终目标是什么?
很多人以为是像工业革命一样消灭手工劳动者,在这里等于手工测试人员。但是测试存在一个目前来看还算正确的、其他行业不多见的悖论:任何时候,你都不能准 确知道还有多少bug,就像警察不能准确知道还有多少贼一样。所以自动化的最终目标——目前来说——是解放尽量多的人手去进行更多的测试,除非有一种手段 能像《少数派报告》里面的预言少女一样预知所有的bug。因为永远有bug,有未知的bug,所以目前不存在能覆盖所有bug的手段,这意味着总需要人的 参与。现代化手段只是减少了而不是杜绝对人员的需求。所以如果认为自动化工作一做完就没活干,那你就大错特错了。正认为这些人闲下来,他们有空发现更难发 现的bug。这本来没什么大不了的,但是搁在计划阶段如果过分乐观,牛皮吹得太大的话,到后面就不容易圆回去了。因为按上面分析,自动化测试总有些地方是 力有不逮的,如果这些地方没有安排好人手时间,只要在这些地方出大问题,那你就玩完了。
能否/怎样自动验证?
这个问题每次复审测试计划的时候我都会问,针对每一个提出要实施自动化的地方。每个人、每个工具谈论自动化的时候都在说如何真实模拟用户使用产品的情况, 这很好,绝对需要关心。不过我得问一句:测试的最后结果是什么?如果你回答“各种使用产品的场景已经运行过“就嘎然而止的话,你就漏掉了一大块:最起码还 得加上“产品能工作/不能工作“!所以模拟用户使用产品的各种情况,只是解决上述问题的第一部分;如何得出测试通过/不通过的最终结论,才是解决问题第二 部分的基础部分,还有详细缺陷描述、上下文数据收集等没做到呢!
所以让机器像人一样使用产品,并没有解决全部问题,剩下的事情还有多少,这是需要视情况而定的。如果只是解决了第一个问题就认为万事大吉,那简直就是在赌运气——有些时候自动验证是小菜一碟,但很多时候不是。
令事情恶化的是,自动验证了产品的一些指标,并不能反映产品的真实质量。有时验证过的指标通过了,其实其他地方暴露了问题却没有检查:比如说界面说没有查 询结果,这是期望的,实际上查询请求根本没有发过去,不去检查底下做了什么的话是发现不了这种bug的;有时验证过的指标不通过,其实只是个小问题,大问 题需要通过别的指标暴露出来的:比如说返回结果跟预期的不一致,实际上该有的都有,只是没有排好顺序而已,但是被标记成重要的测试用例没有通过,把开发人员搞个鸡飞狗跳。
这个话题深入下去,那就涉及到白箱测试策略、逻辑推演、嗅探和代码注入以及布景伪造(environment mockup)等领域,但我想强调的只是,如果考虑自动化测试,自动验证绝对不是可忽略的问题。
整合现有还是自力更生?
这个话题用于辩论赛是最好不过的,它符合“没有定论“这个要求
。所以我只谈一下使用每种手段时的一些不正确的假设。
“现有的工具多少经过测试,质量比自己做的更有保证“。先不在“是不是更有保证”这个话题上钻牛角尖,我们先关注几个问题:整个测试方案里面哪些部分是关 键,质量不好会导致致命后果的?这些部分有专人保证质量吗?出事的时候反应时间和修复效果如何?如果这些问题的答案是“我充分了解”或者“没问题”,那我 也同意这个观点(我敢打赌,回答“不清楚”或者“很不妙”的人已经跑去重新考虑整个测试方案了)。
“整合现有的工具省时间和人力”。类似的几个问题:你能在这些工具中自由地调试产品的缺陷吗?整合方案能适应产品的演变吗?几个月后呢?几个版本后呢?有需要变动的话代价多少?(哗啦啦又跑掉一大队人了)
“自力更生好控制”。投入产出比如何?引用的技术可靠吗?如果你是开发者(之一),别人都觉得好控制吗?谁来测试你的自力更生成果?
“有些事情必须得自力更生“。剪裁现有工具难度如何?时间允许吗?
其实,纵观所有提出的问题,我想强调的一点是,自动化测试的开发跟产品开发一样,也是需要规划和管理的,回答这些问题也是自动化测试项目管理的一部分。
如何解决历史遗留问题?
折腾上个版本的自动化测试框架是新人最头疼的事情。但了解了一些事情之后,原先的事情就没那么令人头疼了。很多人忙于了解旧框架本身,其实世界一直在变,现在项目需要解决的问题才是关键。无论上个版本的东西多么辉煌,只有它适合现在的项目(的部分)才是有价值的。所以关于旧的自动化测试技术,了解什么能用得上,而不是了解它是什么,才是需要做的事情。就好像汽车修理工知道怎样拆旧车零件来修新车,并不需要他知道怎样造一辆出来或者知道怎样修好旧的那辆。
另一个极端是“旧的不好浪费,继续用“。“能用“这个结论是基于以前项目的情况的,现在能不能用,值不值得用得看现在的需求。人们要理发就是个很好的例子:总不能因为头发长出来要耗养分不好浪费,就一辈子都不剪吧?
分享到:
相关推荐
角度技术软件测试中纯技术角度看自动化测试的迷思谈到自动化测试方面的误区,不少文章倾向于从人性、管理、职业规划等方面进行探讨。我这次专门从计划、设计、实现、维护等技术角度总结一下。自动化的最终目标是什么...
在探讨人工智能时代的迷思时,我们不可避免地会接触到两个核心议题:技术恐惧与技术拜物教。这两个概念不仅涉及人工智能技术本身的发展,也与社会、文化和伦理等因素紧密相关。以下将详细阐述这两个概念的内涵、成因...
### 破除迷思:SOC中的AI 在当今高度数字化的世界中,网络安全已经成为企业和组织不可忽视的关键领域。随着威胁的不断演变和技术的进步,安全运营中心(SOC)面临着前所未有的挑战。本文旨在深入探讨SOC中引入人工...
为祛除这些教育迷思,文章建议,我们需要秉持科学的“求真”精神,超越情绪化和技术应用的狭隘,以逻辑、理性和批判的态度来观察现象、试验方法、比较结果、收集证据,并在此基础上凝练出正确的观点。这意味着在推动...
迈克尔·乔丹是机器学习领域的国际著名学者,他对于当前技术探索中存在的迷思进行了深刻的反思与探讨。在与IEEE《科技纵览》的对话中,他提出了对深度学习、大数据、机器视觉等热门技术领域的质疑与批判。以下是对...
破解企业数字化转型的绩效迷思.doc
《教养的迷思》读后感.pdf
教育信息化作为推动教育改革的重要支撑点,需要从自然科学和社会科学角度综合研究。在2017年,教育数据挖掘和学习分析领域的国际研究进展成为关注焦点,教育数据科学的应用有助于教育信息化的深层改革。 文章中还...
科技品牌十大迷思
为了破解这些迷思,麦肯锡等专业机构提出了“八大关键战略举措”,包括同客户经营、规模化精准营销、产品定制、整合客户旅程、数据洞见共享、一体化团队协同、生态场景共创等。通过这些举措的实施,可以全面推动银保...
教师可以利用线上教学平台的多种功能,如视频、动画、互动测试等,来丰富教学内容,提高学生的学习兴趣和效率。同时,线上平台也为学生提供了更多展示自己思考和学习成果的机会,这有助于培养学生的自我表达能力和...
机器人新闻的实践与迷思,涉及的领域包括智能技术的应用、媒体智能化的趋势、新闻生产的流程、个性化定制以及相关的伦理和法律问题等。 首先,机器人新闻代表了人工智能在新闻传播领域的一个典型应用。机器人新闻...
“七式团队迷思”是一个由心理学家欧文·珍尼斯提出的概念。这个概念描述的是一个团队陷入迷思的情况,从而导致团队作出一些劣质的决策。这种现象在团队管理中是非常普遍的,也是团队领导者需要特别注意的问题。 ...
麦肯锡:破解迷思,探索高质量银保发展新模式(2021).pdf
网络安全五大迷思.pdf
《自我解释策略对转变学生化学平衡迷思概念的研究》这篇硕士专业学位论文主要探讨了如何通过自我解释策略来改变学生在化学平衡领域的错误认知,即迷思概念。论文作者为刘瑞东,由陈康叔和黄燕宁两位导师指导,属于...
六标准差之迷思.pptx