之前的博客中,也有说过软件测试工程师的职责,就是主动地发现,暴露产品存在的风险和缺陷,并协同团队成员,一起解决风险并做好容灾解决方案。
这篇blog的内容,就说说我对软件测试工作中常见的风险类型以及风险原因的分析......
参考资料:微信公众号————中国软件测试联盟
在测试工作中,主要的风险表现有以下几点:
需求风险
测试用例风险
缺陷风险
代码质量风险
测试环境风险
测试技术风险
回归测试风险
沟通协调风险
研发流程风险
其他不可预计风险
1、需求风险
产品需求的不明确,对产品需求理解不准确,导致测试范围存在误差,遗漏部分需求或者执行了错误的测试方式;另外需求变更导致测试用例变更,测试用例维护成本增加,实时更新时存在误差。
2、测试用例风险
测试用例设计不完整,忽视了边界条件、异常输入等情况,用例覆盖率没有做到足够覆盖,测试用例没有得到全部执行,有些用例被有意或者无意的漏测,需求变更导致的测试时间被压缩等情况。
3、缺陷风险
某些缺陷偶发,难以重现,容易被遗漏;缺陷跟踪不够积极主动,没做好缺陷记录和及时更新,同样的缺陷,导致的原因可能不同,对这点没意识到导致的线上生产问题等。
4、代码质量风险
代码质量差,可读性差,重构性差,没做好注释等原因导致缺陷较多,修改难度增大;另外还有系统架构设计的不足,导致的扩展性不足,性能兼容差等问题。
5、测试环境风险
测试环境和生产环境配置不同,测试环境交叉影响较大,测试环境数据量不足导致的测试结果误差等问题。
6、测试技术风险
某些项目存在技术难度,测试能力和经验所限,技术水平相对较差导致测试进展缓慢,测试结果准确性不够,项目发布日期延期等问题。
7、回归测试风险
回归测试,一般时间相对来说较少,且大多只回归主要的功能点用例,可能造成漏测;另外还有回归验证缺陷时业务流走不通导致的打回修复再验证造成的时间延后问题。
8、沟通协调风险
项目进行过程中需要多方沟通协调,不同部门,岗位之间的沟通、协作,难免存在误解、沟通不畅的情况,比如需求变更没有及时沟通,开发代码提交没有及时告知,测试结果的反馈不及时等问题。
9、研发流程风险
其中包括从产品需求评审、研发设计、代码提交、测试发布等一些列流程,流程的不规范不协调很可能导致很多问题;比如开发在不告知其他成员的情况下提交代码,发布没有预生产环境,生产出现
问题无法及时回滚等很多说烂了的情况。流程没必要一板一眼的执行,但没有流程是万万不行的。
10、其它不可预计风险
一些突发状况、不可抗力等也构成风险因素,且难以预估和避免。对于这种情况,往往一时无法解决,建议做好备份方案和容灾机制,或者采用灰度发布等措施。
PS:以上是测试过程中可能发生的风险及原因,其中有的风险是难以避免的,如缺陷风险;有的风险从理论上可以避免,如需求风险,沟通风险等;还有些风险在实际操作过程中出于时间和成本的考虑,
也难以完全回避,如回归测试风险等。
对于这些风险的存在,要尽量避免,也要做好备份方案和容灾机制,规范流程,明确职责,尽可能将风险降到可接受范围内。。。