For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
我在上文中给大家简单介绍了软件开发中的高可用性需求设计应该如何操作,但是对于一个软件开发项目来说,除了需要关注软件开发以外,软件测试也是需要重点关注的问题,下面我们就一起来了解一下具体情况吧。
一个项目上线前需要经历严格的测试过程,但是随着业务不断迭代、系统日益复杂,研发工程师、产品经理、测试工程师等都在测试过程中投入了大量精力,而一个个线上故障却表明测试效果并不是那么完美。究其原因,目前的测试工作主要存在两方面问题:
1)测试范围难以界定
随着业务逻辑的不断迭代、系统的不断拆分与细化,精确评估项目改动的影响范围变得越来越困难,从而很难梳理出覆盖全面的测试点。
2)case验证成本过高
验证一个case需要构造测试场景,包括数据的准备和运行环境的准备,当case量较大或者存在一些涉及多个系统模块且触发条件复杂的case时,这一过程也将花费大量的时间。
解决上述问题可以使用模块级自动化测试。具体方案是:针对某一模块,收集模块线上的输入、输出、运行时环境等信息,在离线测试环境通过数据mock模块线上场景,回放收集的线上输入,相同的输入比较测试场景与线上收集的输出作为测试结果。
模块级自动化测试通过简化复杂系统中的不变因素(mock),将系统的测试边界收拢到改动模块,将复杂系统的整体测试转化为改动模块的单元测试。主要适用于系统业务回归,对系统内部重构场景尤其适用。
具体如何收集线上数据呢?有两种方法:
1)AOP:面向切面编程,动态地织入代码,对原有代码的侵入性较小。
2)埋点:很多公司都开发了一下基础组件,可以在这些基础组件中嵌入数据收集的代码。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请在707945861群中学习了解。