华为荣获中国质量领域最高政府奖项-中国质量奖。华为的质量是如何保证的呢?硬件我不清楚,我来说说软件吧。
静态数据扫描
华为购买了一个静态数据扫描系统,主要扫描以下几个指标:
非安全函数 规定有些函数不能使用,并且代码书写必须符合某种格式,比如不可以捕获Exception的异常
复杂度 函数行数不能太多,嵌套不能太深,这样做可以减少错误,并方便代码阅读
圈复杂度 包之间的依赖不能太复杂,包之间不可以循环依赖,比如包A中的类A1依赖包B中的类B1,并且包B中的类B2依赖包A中的类A2,这是不容许的,这样就可以保证你的软件设计结构。
代码检视
代码提交的时候,必须有代码检视人员检视,检视通过后才可以提交到代码仓库。并且项目组内必须对上线的代码进行全员检视,检视意见记录下来,必须修改完成形成闭环。
单元测试
系统上线前,单元测试覆盖率必须达到一定标准,不然不容许上线。
应用测试
代码写完除了写单元测试,还必须写应用测试用例,发版本前必须应用测试用例场景全部通过,场景覆盖也必须达到一定的比例。
测试人员测试
版本发布后,测试人员进行测试,发现bug后,提bug单作为跟踪。后面还专门组织会议进行问题回归,以免后面再犯类似错误。
多套环境
测试环境分为alpha、beta、gama和类生产环境,每个环境发现问题的严重程度是递增。这样就促使开发人员和测试人员尽量把问题提前发现,越到后期去修复bug,出现的问题可能就越发严重。
互联网公司迭代速度确实比较快,但是也和互联网公司的性质有关,产品大部分是免费的,bug修复成本比较低。华为上线流程确实比较长,上线比较慢,这和他的产品和客户有关,导致bug修复成本高,必须通过流程和工具来保证系统的质量。