如何快速的交付高质量版本???

昨天去一家公司面试测试管理岗,中间面试官说到:他们的自动化(api和ui)都是通过平台自动生成的,当然也有一部分是人工写的。并且也提到说:我现在做的手工编写自动化的case 已经过时了……
中间面试官如问到一个问题:如何保证测试用例的覆盖率,代码覆盖率,开发的自测情况等等,有没有这些数据。 有些问题我们的培训课程里,有讲到,但是我实际有些是没有做,所以就老实交待了。

问题1

在快速迭代交付过程中,测试如何的交付高质量版本,又是该如何的开展自动化呢

问题2

像我们公司的业务是非常复杂的,业务之间高度耦合,高度到,我们的产品经理都入职一两年了,也没把公司的产品功能搞明白个七七八八。 像这种情况,又该怎样开展自动化呢……

问题3

我们测试如何保证用例的覆盖率,如何提升覆盖率,有没有好的办法

问题4

toB业务的公司,在开展测试是否也需要像toC业务公司一样,对开发的质量要求很高,像开发的自测,必须达到标准,才能提交给测试??

3 个赞

@seveniruby 院长 给指点指点

我们目前在公司里,只要有时间,都会要求组员去写这些case,优先满足已有业务的核心功能核心流程的自动化,尤其是核心业务流程,所有的流程分支都要求覆盖到。先一点点的做,不做永远都是0。然后才考虑其他的。我们现在做的自动化是接口,计划是接口弄的差不多了,再着手写ui的。新开发的功能,还是以手工测试为主,当然在开发的过程中,我们有时候也会参与新功能的接口测试(前提是有时间去参与)。

1 个赞

问题4,在我们公司 没有要求这么高,虽然我们的技术总监也给弄了自测质量监控平台,但是没有几个同事真正去执行。虽然有领导也一再的强调开发同事的代码质量,但是现实是骨感的。老板已经把时间给定死了,这个时间无论是开发还是测试,是没有任何的话语权的。其次有些是客户着急要的功能,所以在有限的时间里,就必须有所取舍,有重要和次要…… 要求归要求,但是执行也得看具体情况,看公司。

问题不错,等两天再at 我,我这两天要讲课,我怕我过后忘记回复了。

思寒老师,现在得空了吗?这个问题我也想知道。

@seveniruby

+1

这个问题太大了,涉及到很多环节,这也是测试行业很多年一直在做的各种改进。细节我先不说,因为涉及面太广了,整体上其实就是精准测试+DevOps两个方向。精准测试解决的是如果高质量交付,DevOps解决的是高效交付。按照这两个技术栈去开拓就可以了。咱们学院的技术课程,本质也是按照这两条路去发展的。参考这个方向

面对复杂业务的时候,没有数据分析能力的人都是搞不定的,因为已经超越了普通人的认识。这个时候是需要依靠合适的工具的。比如apm、全链路trace等平台,本身就做了架构拓扑。

业务逻辑也是类似的,也需要依赖于工具,测试用例、业务逻辑、代码调用本质都是一种多叉树或者图结构,使用一些更好的工具去建模分析是更好的。比如kibana、superset、neo4j都提供了复杂关系的建模能力。

了解了复杂性,就知道了业务的重要性和关联关系、优先级等,结合公司过去的故障和bug分布就可以去安排测试的轻重缓急了。

自动化的策略还是按照分层测试的策略去开展,端到端测试(UI测试)、集成测试、单元测试分成三个层次去推进。

覆盖率数字本身没有太大的意义,去了解哪些代码应该覆盖,哪些代码没有覆盖才是最重要的。这个做法只能依靠于精准测试,先从覆盖率入手,然后不断的构建分析能力,直到达到精准测试的目标就好了。这个整个行业都在处于探索中,还没成熟的开源项目,只能依靠于企业内的测试开发去搞定了。

1 个赞

2B比2C的业务场景不同,各自的侧重点不同,质量要求根据公司的业务是有关系的。比如军工级别,代码行都得充分的保证到,而互联网saas,可以边上边更新,每个业务的要求是不一样的,跟业务有关,而不是跟形态有关。比如支付业务,无论是2C的商品交易,还是2B的企业交易管理与支付,都是同样重要的。

2B更关注特性交付,特性是跟合同相关的,2C更关注效率,传说中的飞行中换引擎的速度,因为早上线就是核心竞争力。所以各自的测试技能树大家就发展的不太一样了。2B要有很严谨的特性管理、需求管理、项目管理。2C要有更快的交付和业务稳定性。这个时候会要求尽量的自动化、智能化。一些不需要编写自动化用例的技术,就是来自于这个方向的需求。

说明他们还是做的不错的,自动生成的用例看起来虽然神秘,其实也是比较简单的。里面有类似diffy、appcrawler这种不需要用例就可以自动化的测试技术,也可以是基于接口数据、ui流程数据自动生成自动化测试用例的技术。技术难度不高的。关键的还是对业务和数据的理解能力,加上一定的测试开发能力就可以了。

院长,这些课程,是不是在python测开班15期就已经加入了?还是只有名企定向培训班才有…… 在做测试左移、测试右移,精准化测试、devops时,是不是必须得会java语言,或者说会java语言才能更好的开展这些工作。

测试左移、精准测试需要深入了解研发所用的语言,所以只有Java为主的定向班才有。测试右移、devops跟语言关系不大,强调的是自动化能力协同与数据分析能力,Python为主的测试开发班是有的。涉及到代码生成等相关前沿测试技术,是从最近的几期在各个班开始加入的。现在学院有制度,老学员介绍新学员是可以免费跟读的。

好的,谢谢院长的指点

老师这边有好的方案做保障么?

不就是课程里提的那些方案吗。上面技能树里就是提到的各个问题的解决方案和技术。