随着敏捷开发和DevOps技术的出现,软件开发行业正在发生着重大的变化,同时也导致传统测试方法产生了新的演变。因此,质量保证(QA)专业人员必须迅速跟上、并适应这些软件测试方面的变化。在此,我们为您准备了本年度十大软件测试趋势的名单。
1.敏捷的数字化改造
如今,各个企业都在通过数字化改造,来解读宝贵的数据背后的意义。采用敏捷方法来进行数字化改造是一种最新的趋势。敏捷方法有助于将数字化转型的举措与业务需求相结合。
一般而言,可以由敏捷团队来定义业务挑战、目标和各种用例。在敏捷方法中,各种新的功能将逐步在每个sprint阶段被交付。由于数字化转型是一个持续的过程,因此敏捷方法有助于在无需长时间等待的前提下,为商业发展提供有价值的输出。
2.测试中的机器学习
机器学习给各种工作流程带来了革命性的变化。在测试过程中,机器学习可以被用在如下方面:
测试用例的优化-识别分辨出那些冗余的和单独的测试用例。
预测分析-基于历史数据,预测出软件测试过程中的关键参数。
日志分析-识别出那些需要自动执行的测试用例。
追溯-从需求跟踪矩阵(Requirements Traceability Matrix,RTM)中提取关键词,以满足测试覆盖率。
缺陷分析-通过对回归测试用例的优先级排序,以识别某个应用中的高风险领域。
3.增加DevOps的占比
在DevOps中,测试始于开发周期的开端。这种开发模式有利于保证持续集成和持续交付。同时,它使得测试者能够通过持续测试和持续监测,来验证开发者所研发出的应用程序的正确性。因此,应用程序的各种功能和性能,都会持续在开发过程中得到测试。
而且,测试小组按照DevOps制定的测试设计、测试自动化、和测试案例,不但能够验证代码的各种变更,还能确保那些变更不会破坏产品的可用性。
4.大数据测试
大数据是指那些高速产生的大量数据。在大数据的测试中,测试人员需要对那些由服务器集群、和其他所支持类型的组件,所成功处理的TB级数据进行验证。当然,此类测试主要集中在性能测试和功能测试之上。
另外,数据的质量也是大数据测试中的一个关键环节,而且对于数据质量的验证应该被放在测试开始之前。因此,对于数据质量的测试应当注重它们的适用性、准确性、一致性、有效性、重复性、完整性等方面的特点。
5.物联网测试
在物联网(Internet of Things)技术的驱动下,我们的身边出现了越来越多的相互连接的设备。针对物联网的测试主要是基于设备,来测试物理设备之间的彼此连通性。针对物联网系统的具体测试类型,如下所示:
可用性测试-测试单个物联网系统的可用性。
兼容性测试-在各个物联网系统中,检查不同设备相互之间的兼容性。
可靠性和可扩展性测试-利用虚拟化工具,对各个传感器进行模拟。
数据完整性测试-用来验证数据的完整性。
安全测试-用来验证用户身份认证过程,和各种数据隐私的管控。
性能测试-在单个物联网中,测试不同设备之间相互连接的效率与性能。
6.性能工程学
据说,性能工程学将在2019年会取代性能测试。不同于简单地执行各种性能测试脚本,性能工程学重点分析的是那些与系统协同工作相关的所有要素。这里所说的系统各个要素包括:性能、安全性、可用性、硬件、软件、配置、业务价值和客户等方面。所以说,性能工程学会涉及到产品中那些与最高品质特征相关的所有协作和迭代,并确保通过它们的组合能交付出高质量的产品。因此,有客户估计性能工程学将在2019年大放异彩。
7.测试自动化
测试自动化能够帮助测试团队将他们的时间和努力专注到测试用例上,而不必过于管理测试需求。而自动化测试则负责跟踪和管理所有的测试需求,以及测试那些需要涉及到的测试类型。因此,测试自动化将有助于确保高质量的软件交付。
另外,各种专业的工具被用于控制测试的执行,从而将实际结果与预期结果做比较。可以说,一些主要的必需的重复操作,完全可以交给自动化的回归测试来实现。另外,各种自动化的工具也可被用于功能性、以及非功能性的测试之中。
8.手动与自动化测试相结合
如今,越来越多的质量保证专业人员会结合使用手动和自动化测试方法,来相互补足短板,并达到相得益彰的效果。不过,手动测试仍在整个测试领域占据着主导地位,而且特别是在可用性和手工设计等方面。不过,自动化测试已经给许多测试流程带来了显著的效率提升。
9.缩短交付周期
目前,技术、平台和设备的快速迭代,推动着软件开发团队去更快、更频繁地交付出成品。测试需要通过与开发的紧密集成,才能促进顺畅的交付。因此,各个软件组织已准备大举投资各种合适的工具套件,以提高他们的开发与交付流程。显然,业界对于各种测试管理工具的需求,将促进交付周期的缩短。
10.集成
随着交付周期的缩短,企业对于单个产品开发中的各种元素的集成需要也日益增加。为了方便智能检测和分析,各种数据必须从包括:需求管理系统、变更控制系统、任务管理系统、以及测试环境等不同来源予以收集。这就意味着,我们需要用一种集成化的工具,来协助进行需求管理、任务管理、缺陷(bug)跟踪和测试管理。而且,此类集成化的工具也能作为数据的存储库,实现不同模块的共享和使用。
结论
QA专业人员需要通过了解各种测试领域的趋势、并持续更新自己的知识库,才能在纷繁复杂的软件行业中保持自己的竞争力优势。希望上述所提及的软件趋势能够帮助各个测试人员,将宝贵的时间和精力投入到正确的技巧与工具方向。