测试概念与测试流程模型
互联网从诞生到发展至今,软件的种类变得越来越丰富。市场上同类型的软件,同质化比较严重,为了能够赢得用户的青睐,软件的质量变得至关重要。
用户能直观感受到软件质量的表现就是体验感。软件提供给用户优质的体验感,无疑是最好的答案。为用户提供优质的体验感,测试在其中扮演者重要的一环。
测试基本概念与模型介绍
软件测试基本概念
软件测试的基本概念主要包括但不限于以下内容
软件测试:发现并推动修复软件当中存在的缺陷,也可以说是对软件系统进行验证和验证的过程
软件测试目的:发现缺陷,验证功能,确保质量,降低风险,提供信心。
缺陷/错误:缺陷是在软件中发现的问题或错误
测试策略:测试策略是定义测试范围、测试级别、测试类型和测试方法的计划。它指导测试在整个测试过程中的活动,并确保测试的全面性和有效性。
静态测试和动态测试:静态测试是在不执行软件的情况下对其进行检查。动态则是在运行软件时执行测试用例观察其行为是否符合预期
白盒测试和黑盒测试:黑盒测试是基于软件功能和规格说明进行测试,不考虑内部实现细节。白盒测试是基于了解软件内部结构和代码逻辑进行测试
回归测试:回归测试是在对软件进行更改或修复后重新执行现有测试用例,以确保修改不会引入新的错误或导致现有功能受损
集成测试:集成测试是在将多个组件或模块组合在一起时进行的测试,验证产品整体质量
测试覆盖率:测试覆盖率是指测试用例对软件代码、功能或需求的覆盖程度。它能够衡量测试的完整性和有效性
自动化测试、性能测试、安全测试、渗透测试等内容在后续内容中进行详细讲解与说明。
软件测试的基本原则
软件测试原则不仅仅是一系列规则或指导方针,更是基于实践和经验总结的最佳实践
这些原则可以帮助测试同学在测试中取得良好的效果,且能帮助减少错误和缺陷的风险,提高软件的质量,接下来介绍一些常见原则。
完整性:测试应该尽可能地覆盖软件的各个方面,包括功能、性能、安全性等。测试用例也应设计为多样化和全面的,包括不限于正常场景、异常场景、边界场景等
独立性:测试应该独立于开发过程,以确保测试的客观性和独立性
测试显示缺陷的存在:通过执行测试用例和场景来揭示软件系统中的缺陷和问题
穷尽测试是不实际且不可能的:穷尽测试意味着完全测试或全面测试,这是一种理想化的概念,对软件系统进行所有可能的测试情况和组合的覆盖。意味着要测试所有可能的输入值、操作序列、边界情况、异常情况等。然而,由于软件系统的复杂性和无限可能的输入组合,穷尽测试是不切实际且不可能的。
测试要提早介入:早介入早发现,早发现早解决,避免后期介入,修改成本会呈线性增长
缺陷2/8原则集群性:80%的问题出现在20%的模块,那么可以理解为这20%的模块还可能存在更多隐藏问题
杀虫剂悖论:在测试过程中过度关注和依赖部分测试用例测试方法而导致出现问题
测试活动依赖测试内容:测试活动规划、执行和评估都需要取决于测试内容的准确性和完整性
没有错误是最好的是谬论:没有错误/缺陷是过分理想化观点,软件是人写的,且是复杂的,只能说降低错误率,不能说没有问题/缺陷
优先级和风险导向:在有限时间有限资源的情况下,将测试目标根据优先级排序,且在保证整体质量的情况下多关注潜在发生风险的点
文档化:测试过程中有适当的文档记录,包括但不限于测试计划、测试用例、测试报告、问题追踪文档等。有助于跟踪测试进展和结果,并且也能为其他测试提供参考依据。
软件测试的工作流程
传统软件测试流程
传统测试流程是一种线性的测试方法,具体可见下图
测试流程
系统测试流程
传统测试流程优/缺点
-
优点
-
流程清晰且高度可控,规范性较强,测试可以按照流程一步步的测试
-
适用于整体相对于稳定的项目进行测试
-
-
缺点
-
对于需求频繁变更频繁的项目不适用,会增加测试成本
-
效率低下,高度依赖于手工测试
-
难以应对复杂系统和快速迭代
-
使用情况
-
大多为传统IT企业,流水线式产品生产,比如@华就是使用的这种流程;每个企业用自己适合的流程或模型或方法都是合理的。
敏捷测试流程
敏捷测试流程常在互联网中见到,为了快速迭代和响应产品变化从而诞生的一种测试流程,被广泛应用。
敏捷试流程优/缺点
-
优点
-
可以快速反馈,敏捷测试流程分布在整个测试迭代周期,问题能够更早地被发现和解决
-
提高测试效率,测试中更加倾向于使用自动化测试来加速测试过程,提高效率和一致性,减少了人为干扰
-
-
缺点
-
对于项目支持要求增高,基建成本增加,整个流程需要结合持续集成和持续部署来实现快速交付
-
自动化测试复杂度比较高,对于测试要求提高
-
使用情况
-
大多为互联网企业,高效生产,比如阿里、字节、腾讯等等就是使用的这种流程。
测试左移与测试右移
为了提高产品的整体测试质量,为用户提供更好的产品体验,产品在上线前和在上线后,测试也对应有相应的方法提出与实践。既测试左移和测试右移。
测试左移可以说是质量保障的重要手段之一,具体包括切不限于以下内容
测试右移往往是产品上线后部署监控,及时分析数据
END
不论是传统测试流程,还是敏捷测试流程,对于一个企业使用来说,最适用的就是最好的。
对于我们测试人员来说,我们都要有所了解,只有这样,才是一个合格的测试开发
作者简介:
程序员山茶,一个工作5年,并坚持探索测试之路的测试开发工程师。曾混迹于互联网大厂、IOTA行业领航企业、安全行业、大数据行业领航企业,欢迎和我一起沟通交流。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!