|
我有一个经验,流程中凡是有人类手工参与的环节是最容易出错的。因此,尽可能减少流程中人的参与是产品质量的有效保证。(手工劳斯莱斯除外)/ M( a9 p! U6 R; e
. C: \8 X& R. Y' T: D; }, c) K 我又有一个经验,执行系统升级/回滚这样的关键操作时,要严禁手敲键盘一条条输入命令,而应该在pre-production环境下编写好命令手册,用复制粘贴的方式一步步来或者直接上脚本,原理见上一条经验。(Windows系统除外)0 r! B" g( g9 ^2 J8 T5 I
3 J: H0 [1 O j( \ 我又又有一个经验,上面这两条你肯定知道,如果你还没这么做,肯定是客观环境不允许。(这条没例外)
' G1 c, D6 m- t
- `; U, Q: f- m0 U 续断研发团队一直在以最严格的流程迭代产品!然而,开始时并不是因为我们天生骄傲,而是老板不肯多招人……好吧,说正题,隧道稳不稳最重要还是产品稳不稳。续断研发团队做了这些工作,尽可能让产品“稳”如泰山。6 [8 Z8 ~ }* m* X+ w
0 z: S8 h k" n q( F* X9 d
核心功能10倍测试代码 [$ r* a; L2 O% M7 Q
. `6 e% w2 y0 ~# m
对C/S架构的产品来说,自动化测试实现起来要复杂一些。续断有213个测试用例涵盖隧道功能测试,隧道压力测试,客户端安装卸载,用户注册,充值,扣费等关键功能。按照代码行数粗略计算,每行核心代码有10行测试代码来保证质量一致。这213个测试用例哪里来的?坑踩的多了,攒的……
v. Y) W/ m5 @, `; q8 I3 c4 T6 B: ^3 T6 S

# O" d, j: M- ]. C! E G' B' r# A+ {4 K% W9 {
40000次自动测试
B* G9 Y- Z2 {: L5 h- E, V* j/ m; |( {, P5 ~0 Q% ~
200台测试设备╳每台设备213个测试用例≈40000次自动测试。; b, t2 k0 g. W( J, X3 {. B
/ {5 {9 a r% R$ B 190台OpenStack虚拟机,外加树莓派,香橙派,极路由,360路由,小米路由Pro,威联通,少量PC,笔记本电脑等。测试环境涵盖下表各类操作系统和版本,pipeline细致而繁杂,只有全部通过流程才会继续。& R! b) `/ |$ s6 |7 [4 F; ?- H
: c1 j& G- l2 S1 I' ~ H) K$ z, w
( R! L2 L! n( R& L3 E
3 j% @. Q; h, d! M U( u ( ^' y+ o! y- K, L- y
9 h) o# @& S0 ?( [0 ]6 T5 t 升级/回滚3分钟,影响用户几秒钟
) R) C8 m- {+ M3 `/ ]3 W& ?3 X9 Q5 s, X
深度应用CI/CDDevOps,Issue——Master——Pre-Production——Production,层次分明,验证充分。全容器化的服务端架构,让我们能在3分钟内完成对全球范围100多个续断服务器节点的升级/回滚,用户有感知的影响被控制在数秒钟以内。是的,”小个位数”秒以内,以至于让用户阅读升级公告都显得浪费时间,所以就不发公告了。5 X/ }; K- B# Z" e# d
/ `1 d( L! o4 D 另外# u% R" P1 C; i
9 V/ b% l$ d! z d 哲西信科官网www.zhexi.tech。我懂,这些都是常规操作,单讲数据的话被某某某一个朋友公司的产品碾压是分分钟的事。但摆数据不是为PK,而是要让我们续断的用户放宽心。续断是老司机开车,稳得狠!还没完,我们老板说了,“南来的北往的有疑问就请在评论区留下,都是程序员,我们踩过的坑不想看别人踩一遍,有必要可以给代码,帮到家”云云……不过我们老板有个特点是说话不算话,你老板不会恰巧也这样吧?& u( o- e& j' `) o/ P: O# p
/ O3 `* X8 M$ m7 F0 c
2 s' V" c6 |+ C8 b+ M* d! F
# Z6 X5 t3 d" N2 S' ?5 a2 V4 @: A |
|