合肥博为峰IT培训学校

试听课 + 活动课
填写信息优先获取试听课

位置:学校首页 > 学校动态>合肥人气好的软件测试培训机构地址

合肥人气好的软件测试培训机构地址

合肥人气好的软件测试培训机构地址,博为峰IT培训学校是专业的IT培训机构之一,博为峰51Code在国内率先推出IT就业培训业务,即通过数月的强化培训,使缺乏职场竞争力的学员具备企业级项目执行能力,先后在10余个城市推出Java,软件测试,软件开发线下培训,并推出在线职业教育平台博为峰网校Atstudy,面向全国/国际提供软件测试,软件开发等0基础或进阶类,考证类等课程

合肥人气好的软件测试培训机构地址

软件测试中的8个难题

如果今天要重建这么一份Hard Problems in Test列表,下面这些问题是我会加到这份列表上的[1]。

一、测试充分度(Test Sufficiency)

如何回答“测够了吗“(包括测新和测旧)。代码覆盖率是衡量测试充分性的起点,但远远不是终点。要回答”测够了吗“,至少还要考虑是否测了所有的场景、所有的状态、所有的状态转移路径、所有的事件序列、所有可能的配置、所有可能的数据等等等等。即便如此,我们可能还是无法确信我们已经测够了。可能我们较终只能做到非常趋近于测够了[2]。

二、测试有效性(Test Effectiveness)

如何评价一组测试用例的发现bug的能力。有效性(发现bug的能力)和充分性(测够了没有)是两个正交的属性。评价测试用例有效性可以通过正向的分析进行,例如,分析测试用例是否校验了所有在测试过程中SUT落库的数据。更具有通用性的做法是变异测试(Mutation Testing),即在被测代码里注入不同的“人造bug”,统计多少能被测试用例感知到。目前变异测试我们已经有工程化规模化的落地了,后续的工作重点有:1)如何防止钝化(或曰“杀虫剂效应”),2)不但对被测代码进行注入,还能对配置、数据等进行更全面的注入。

三、测试用例瘦身

以前广告行业有句话:我知道广告费有一半是浪费掉的,但不知道哪一半是浪费掉的[3]。

软件测试也有类似的困惑:那么多用例,要花那么多时间去跑,我知道这里面有很多时间是浪费掉的,但我不知道哪些时间是浪费掉的。浪费的形式包括:

冗余步骤:有些是浪费在一些重复的步骤上,每个用例都要去做一些类似的数据准备,每个用例都要去执行一些中间过程(这样才能推进到下一步)。

等价类:一个支付场景,我要不要在所有的、所有的币种、所有的商户、所有的支付渠道和卡组的排列组合都测一遍?这么测,代价太高。不这么测,我担心可能某个特定商户在某个特定有个特定逻辑我就漏掉了。对于具体的业务,还可以进行人肉分析。有没有更通用的、而且比较完备和可靠的等价类分析的技术手段?

我有N个用例,我猜这N个用例里面可能存在M个用例,即使删掉这M个用例,剩下的N-M个用例的效果和之前N个用例的效果一样。如何识别是否存在这样的M个用例、如果存在的话是哪M个。

我参加过内部一场质量线晋升到P9的评审,当时有个评委问了那位同学一个问题:“那么多测试用例,以后你怎么删”。这个问题看似简单,其实非常难。我觉得,从原理上来说,如果测试充分度和测试有效性的度量都做的非常好了、度量成本非常低了,我们是可以通过大量的不断的尝试来删用例的。这是一种工程化的思路,也许还有其他的理论推导的思路。

四、测试分层

很多团队都会纠结到底要不要做全链路回归、做到什么程度。这个问题的核心点就是:有没有可能、有没有一种做法,只要把系统间的边界约定的足够好足够完整,就可以做到在改动一个系统的代码后,不需要和上下游系统进行集成测试,只要按照边界约定验证好自己的代码就可以确保没有任何regression了。

包括我在内的很多人相信那是可能的,但既无法证明,也不敢在实操中就完全不跑集成。我们也缺乏可以完全复制的成功经验,缺乏一套完整的方法论指导开发团队和QA团队要怎么做就可以达到回归无需集成上下游。

有时候,我觉得我现在就像是哥德堡的市民,不断的走啊走,尝试找出一条一次性不重复的走过那7座桥的路线。但也许就有那么,有一个像欧拉那样的人会出现在我面前,用理论证明告诉我,那是不可能的。

五、减少分析遗漏

分析遗漏是很多故障的原因。开发做系分的时候,有一个corner case没考虑到、没有处理。测试做测分的时候,忘记考虑某个特殊场景了。兼容性评估,评估下来没有兼容性问题的,但结果是有的。而且很多时候,分析遗漏属于unknown unknowns,我压根就不知道我不知道。有没有一套方法和技术,可以减少分析遗漏,可以把unknown unknowns转化为knowns?

六、用例自动生成

Fuzz Test、Model Based Test、录制回放、Traffic Bifurcation(引流)等都是自动生成用例的手段。有些已经比较成熟(例如单系统的录制回放、引流),有些多个团队都在探索(例如Fuzz),有些则一直没有大规模的成功实践(例如MBT)。我们也有过探索如何从PRD里通过NLP来生成用例。用例自动生成中,有时候难点还不是生成test steps,难度反而是怎么生成test oracle。Anyway,测试用例自动生成是一个非常大的领域,这个方向上未来可以做的还非常多。

七、问题自动排查

包括线上和线下。对于比较初级的问题,自动排查方案往往有两个局限性。首先,方案不够通用,多多少少比较定制化。其次,比较依赖人工积累规则(说的好听点叫“经验”),主要是通过记录和重复人肉排查的步骤来实现。然而,每个问题都不完全一样,问题稍微一变,之前的排查步骤可能就不work了。现在有一些技术,比如调用链路的自动比对,对排查问题和缺陷自动定位很有帮助。

八、缺陷自动修复

阿里的Precfix、Facebook的SapFix等是目前比较的一些工业界的做法。但总的来说,现有的技术方案,都有这样那样的局限性和不足,这个领域还在相对早期阶段,后面的路还很长。

领取试听课
温馨提示:为不影响您的学业,来校区前请先电话或QQ咨询,方便我校安排相关的专业老师为您解答
版权所有:搜学搜课(www.soxsok.com) 技术支持:搜学搜课网