首页 » 软件开发 » 测试摇摆——软件测试前移与软件测试后移(测试软件开发用户自动化)

测试摇摆——软件测试前移与软件测试后移(测试软件开发用户自动化)

萌界大人物 2024-07-24 07:04:02 0

扫一扫用手机浏览

文章目录 [+]

前几天写了一篇 解读!
《2018年度软件测试行业现状报告》的文章,在写的同时也发现了一些有趣的数据,后来仔细琢磨发现很有意思,分享一下。

回顾 《2018年度软件测试行业现状报告》

首先我们看 解读!
《2018年度软件测试行业现状报告》里面的几个调研结果,如下:

静态测试活动

测试摇摆——软件测试前移与软件测试后移(测试软件开发用户自动化) 软件开发
(图片来自网络侵删)

2018年度软件测试行业现状报告

软件开发模式

2018年度软件测试行业现状报告

软件自动化测试

2018年度软件测试行业现状报告

通过上面三项调查统计,我们不难得出:

1.测试人员对需求分析的投入在逐渐增大,同时测试人员逐渐开始注重客户问题的分析,更关注用户体验和用户反馈。

2.敏捷和类敏捷型项目已经占到了已经极高的百分比,而DevOps模式的使用已经持续数年稳定增长,DevOps正在成为软件交付的最佳模式 , 同时我们发现瀑布或类瀑布开发模式比重逐渐降低。

3.较去年,自动化测试技术比例基本保持稳定且处在一个高占比的状态。
不了解、不使用自动化的越来越少。
同时令人兴奋的是,发现越来越多的测试人员将自动化技术应用于日志和数据分析、综合监测。

引发的疑问

测试人员对需求分析投入的增大,自动化测试技术持续稳定且处在一个高占比的状态、测试技术多样化(日志和数据分析、综合监测)发展是否与敏捷和类敏捷及DevOps模式应用的广泛性有一定关联性?是什么驱动测试技术的发展与应用?

关于疑问的思考与总结

关于疑问的思考与总结

首先思考,敏捷和类敏捷及DevOps模式应用的广泛性对测试提出哪些要求?

1. 频繁迭代与部署

在采用敏捷和类敏捷及DevOps模式之后,我们能够根据项目具体情况做到每周甚至每周多次部署。
在生产环境频繁部署软件,最大的挑战就是测试。
以前,测试基本上都在开发阶段之后和产品上线之前完成。
但现在,不再有充足的时间留给测试团队去发现问题再抛给开发团队来修复。
因此,效率成了测试面临的一大挑战。

2. 自动化支撑

DevOps强调将流程自动化,测试作为其中一个重要环节,势必要大规模实现自动化。
因此测试人员的自动化编码能力正在面临极大的挑战。

3. 部署与反馈

敏捷提倡我们要拥抱变化,通过不断的快速迭代适应需求的不断变化。
虽然一部分功能性需求是明确又具体的,我们清楚的知道用户想要什么,也因此易于测试。
然而, 也有一些非功能性需求的验收标准没那么明确,比如:提高应用性能达到良好的用户体验。
我们如何才能验证用户体验是否真的良好呢?仅仅通过性能指标吗? 当然不是,满足指标只能说明一部分问题,唯有真实的用户数据和反馈才是可最靠的。
如何实时有效的感知产品线上可靠性、健康度成了测试面临的一大挑战。

4. 协作

敏捷强调全功能开发团队的共同协作,但这仅仅止于开发阶段。
而DevOps注重Dev、Ops和QA三个群体之间的密切协作。
因此,良好的角色定位能够帮助测试人员将价值最大化。

其次,测试人员如何应对

在敏捷开发模型的软件生命周期中,我们通过不断快速的迭代,以使其最大限度地符合客户对系统的需求。
此时测试的关注点基本停留在开发阶段,以保证产品达到上线标准。
引入DevOps之后,我们不仅要关注产品的质量是否达标,还需要使产品或功能价值预期得到及时的验证。

因此,我们不仅要将测试前移,在开发环境验证功能的可用性,还要进行测试后移,通过监控产品在生产环境的运作情况,来验证其价值并获得反馈,从而持续改进。

1.新功能是什么?

在开发环境,我们开发新功能,并且通过测试保证其达到产品验收标准。

这就要求从产品生命周期开始时,各个角色(测试、开发、产品负责人等)对业务场景、用户需求达成一致的认识,从而使其从需求到最后的测试验证,进行高度的协作和沟通,最后交付最有价值的功能。
同时测试人员能够根据用户需求进行需求分析,发现产品前期设计是否存在问题或者补充产品设计。
这里体现出了测试前移的核心思想。

2.已有功能是否被破坏?

在开发环境,我们开发新功能,需要验证新功能的增加或缺陷的修复是否引入一些新的问题。

根据以往的测试经验,新功能的增加或者缺陷的修复可能会引入一些新的问题。
那么,如何快速的验证新功能的同时,验证已有功能是否正常。
通过手工测试的执行方式是很难做到回归的全面性性。
换句话说,如何做到全面的回归测试?由于传统手工测试效率的局限性,因此,自动化测试是唯一的有效解决方案。

自动化测试提高了频繁迭代部署的测试执行效率,同时保证产品的整体功能持续得到回归和验证。
另外,还需要做一些性能测试、可靠性测试、安全性测试等等。

3.新功能是否价值?

我们将新功能部署到生产环境以后,接下来就应该衡量业务价值是否达到预期。

通过自动化技术对用户日志或数据进行分析感知用户的行为变化。
比如:比如页面新增了一个导出功能,发布上线后,发现用户的点击导出按钮的次数几乎为零,很可能是因为用户根本不需要这个功能,或者导出按钮的颜色、位置等易用性(产品质量属性之一)原因导致用户没有使用。
这时候需要思考如何对该功能进行调整。
如果一个功能没有使用或者没有给产品带来显著的价值,在功能正确性和性能上投入大量精力又有什么意义呢?

这里体现出了测试后移的思想。

4.功能线上是否是可靠的?

测试大多数情况只能覆盖已知的测试场景。
产品部署在用户环境运行的过程中,可能会由于某些不确定性因素(比如数据量突然陡增,用户访问突然陡增、网络不稳定或者数据盘损坏等等)导致产品或功能失效,由于其不确定性使得测试人员很难模拟测试场景,因此产品线上质量运营需要通过监控的手段开展,通常我们需要监控两种特性:可用性、性能。

通过自动化技术持续获取用户日志或数据,分析产品性能、程序进程等稳定性、健康度进行问题报警、预警。
同时增加用户沟通反馈渠道,获取用户反馈从而及时调整。
除此之外,这一点也充分体现了Dev、 QA、Ops的协作,像监控等原本只能Ops做的事,现在Dev或QA一样可以做。

这里也体现出了测试后移的思想。

最后

看到这,开始的疑问也就清楚了。
敏捷及DevOps模式的应用,对测试人员提出了不同于以往的要求(以前测试基本上都在开发阶段之后和产品上线之前完成),使得测试人员在开发阶段之前加大了对需求分析等测试分析和设计(测试前移)、同时提高自动化测试技术的投入和应用、促使测试技术多样化(如,日志和数据分析、综合监测)发展(测试后移)。

同时,敏捷一直强调“团队为质量负责”,测试不再是测试的专属,这里我们需要重新思考下,质量由整个团队负责,那么测试的价值如何更好的体现?——如何提高测试效率。

DevOps模式更是对测试、尤其是自动化测试、编码能力提出了更高的要求。

延伸思考

1.国内软件测试行业即将或者正在发生哪些变化呢。

猜想:基本的功能测试任务交由开发团队负责,测试人员专注于自动化测试开发、安全测试、测试建模、精准测试、性能测试、可靠性测试、灰度和监控等专项测试工作中,DevTestOps模式到来。

2.测试行业选择Python开发语言如何

猜想:近年人工智能,物联网、区块链、机器学习等热门技术应用都可以看到Python的身影,其影响及应用的广度和深度正在不断的扩散,很有前途。

相关文章

语言中的借用,文化交融的桥梁

自古以来,人类社会的交流与发展离不开语言的传播。在漫长的历史长河中,各民族、各地区之间的文化相互碰撞、交融,产生了许多独特的语言现...

软件开发 2025-01-01 阅读1 评论0

机顶盒协议,守护数字生活的新卫士

随着科技的飞速发展,数字家庭逐渐走进千家万户。在这个时代,机顶盒成为了连接我们与丰富多彩的数字世界的重要桥梁。而机顶盒协议,作为保...

软件开发 2025-01-01 阅读1 评论0

语言基础在现代社会的重要性及方法步骤

语言是人类沟通的桥梁,是社会发展的基础。语言基础作为语言学习的基石,对于个人、社会乃至国家的发展具有重要意义。本文将从语言基础在现...

软件开发 2025-01-01 阅读2 评论0

粤语电影,传承文化,点亮时代之光

粤语电影,作为中国电影产业的一朵奇葩,以其独特的地域特色、丰富的文化内涵和鲜明的艺术风格,赢得了广大观众的喜爱。本文将从粤语电影的...

软件开发 2025-01-01 阅读3 评论0

苹果游戏语言,塑造未来娱乐体验的基石

随着科技的飞速发展,游戏产业逐渐成为全球娱乐市场的重要支柱。在我国,游戏产业更是蓬勃发展,吸引了无数玩家和投资者的目光。而在这其中...

软件开发 2025-01-01 阅读1 评论0