我对测试充分度的思考

这篇具有很好参考价值的文章主要介绍了我对测试充分度的思考。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 文章来源地址https://www.toymoban.com/news/detail-472633.html

每个软件开发人员和团队都在尝试解决一个熟悉的问题:“测试多少才能让软件版本获得发布资格?”这在很大程度上取决于软件的类型和质量目标。例如:在前东家负责的系统属于对内的一个内容生产平台,用于CQC团队录入内容,每次发布新版本的质量准出标准是不能影响核心录入链路,即整个录入链路不能有block缺陷。

而当前团队则则要求在基本功能的覆盖上还要满足“三板斧”(可灰度、可监控、可应急)。

无论被测应用是什么,测试充分度的问题都很难明确回答,因此更好的方法应该是提供经验法则,来制定适合所在团队的测试流程和质量策略。具体总结如下:

1. 记录测试流程

如果你正在进行项目测试,务必记录整个测试过程。这对于事后做项目分析以改进项目质量至关重要。当然,如果这个是你的第一个迭代版本,最好提前做一个文档形式的测试计划和策略。事实上,测试计划或策略是任何产发布都应该附带的东西。

2. 充分单元测试

尽可能推进开发在编码的过程做单元测试。在写单测的时候所开发的服务依赖的外部服务可以使用Mock,它没有真正实现依赖的服务逻辑,只是根据契约返回测试预期值。

在包括谷歌、BAT在内的许多公司,都有要求任何代码的更改需通过相应单元测试用例才能合并到主分支。随着代码库代码量的递增,在代码提交之前执行大量单元测试是缺陷被引入代码库之前捕获缺陷的重要手段。这大大节省了以后编写集成测试、调试和验证代码修复的时间。

3. 持续集成测试

集成测试是单元测试的逻辑扩展,集成是指多个单元的聚合,许多单元组合成模块,而这些模块又聚合成程序的更大部分,如分系统或系统。集成测试采用的方法是测试软件单元的组合能否正常工作,以及与其他组的模块能否集成起来工作。最后,还要测试构成系统的所有模块组合能否正常工作。集成测试所持的主要标准是《软件概要设计规格说明》,任何不符合该说明的程序模块行为都应该加以记载并上报

通常,开发人员会认为集成测试可有可无,直接进行完整的端到端测试就行了。再者后者确实会像用户一样测试(使用)产品。实际上并非如此,进行全面的集成测试与单元测试也非常重要。

由于集成测试相比于端到端测试所需外部依赖(服务、环境)更少。因此集成测试将比较多依赖的端到端测试更快、更可靠。

4. 关键链路端到端测试

如上已经讨论了单元测试、集成测试,接下来毫无疑问要聊聊端到端测试了,因为端到端测试也是模拟用户真实的使用场景,所以非常重要。端到端测试测试的不仅是独立模块的功能,而且包含各模块功能的整个流程。Google称这个流程为用户核心流程(CUJ)。了解CUJ,通过端到端测试(当然希望以自动化方式)验证,即可完成测试金字塔需要覆盖的各个层级。

5. 非功能性测试

单测、集成和端到端测试手段保障产品的功能质量。但是产品的非功能也同样重要,了解非功能的测试方法也很重要:

性能测试-测试应用程序或服务的响应时间和吞吐量。

负载和可扩展性测试-在越来越高的负载下测试应用程序或服务。

容错测试-测试应用程序在依赖服务失败时的表现。

安全测试-测试服务或应用程序中的潜在安全漏洞。

无障碍测试-确保产品对每个人都无障碍和使用产品,包括各种残疾人。

本地化测试 - 确保产品可以在特定语言或地区使用。

全球化测试-确保该产品可供世界各地的人们使用。

隐私测试-评估和减轻产品的隐私风险。

可用性测试-用户友好性测试。

6. 了解代码和业务的覆盖率

从质量角度来看,我们已经从功能和非功能角度阐述了高充分度的前提。当然这还不够,还要从度量角度回答这个问题,这就不得不说代码覆盖技术了。

维基百科有一篇关于代码覆盖的文章,介绍了不同覆盖率类型的覆盖范围,包括语句、分支和条件覆盖率。当然,业界有很多开源工具可用于度量主流编程语言(如Java、C++、Go和Python)的覆盖率。部分工具包含在下表中:

Language

Tool

Java

JaCoCo

Java

JCov

Java

OpenClover

Python

Coverage.py

C++

Bullseye

Go

Built in coverage support (go -cover)

 

7. 持续复盘改进质量

了解和改进质量的一个非常重要的手段就是软件发布后获取线上用户的反馈,通过用户反馈不断提升产品质量。

 

 

 

 

到了这里,关于我对测试充分度的思考的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 测试软件开发---软件缺陷章

    软件缺陷 软件出现缺陷一般是因为开发的流程规划不准确,需求不明确,或需求变更/在开发者开发的时候无法清晰的理解需求出现不同程度的偏差/客户方频繁的更改、更新需求也会影响到软件的质量 软件结构复杂、编码误差/错误、项目期限过短、项目中插入新的技术 处理

    2024年02月02日
    浏览(56)
  • 【软件测试】浅了解什么是软件测试及开发测试模型

    目录 1.什么是软件测试? 2.什么是需求? 3.什么是测试用例 4.什么是软件错误(bug)? 5.开发模型和测试模型 5.1软件的生命周期 5.2瀑布模型 5.3螺旋模型 5.4软件测试V模型 5.5软件测试w模型 6.软件测试的生命周期 7.bug的生命周期 最常见的理解是:软件测试就是找 BUG ,发现缺陷

    2023年04月19日
    浏览(70)
  • 【软件测试】软件测试的基本概念和开发模型

    在进行软件测试的学习之前,我们要了解软件测试一些基本概念. 这些基本概念将帮助我们更加明确工作的目标以及软件测试到底要做什么. 软件测试的基本概念有3个,分别是 需求,测试用例和BUG. 这里的需求还可以分为 用户需求和软件需求 ,用户需求: 简单理解为甲方提出的需求

    2023年04月15日
    浏览(104)
  • 软件测试/测试开发丨ChatGPT在软件测试领域的应用

    随着互联网技术的迅速发展,软件已经成为现代社会中不可或缺的一部分。而软件测试作为保障软件质量的关键环节,也越来越受到人们的关注。在这个领域,ChatGPT作为一种新型的人工智能技术,正逐渐应用于软件测试领域,为软件测试带来了诸多创新和改进。 在软件测试

    2024年02月14日
    浏览(44)
  • Soft:软件开发的简介(敏捷开发等6大软件开发模式)、软件测试的简介(单元测试/集成测试/系统测试/验收测试/回归测试、黑白灰功能测试、DEV等四套环境)、运维的简介之详细攻略

    Soft:软件开发的简介(敏捷开发等6大软件开发模式)、软件测试的简介(单元测试/集成测试/系统测试/验收测试/回归测试、黑白灰功能测试、DEV等四套环境)、运维的简介之详细攻略 目录 1、软件开发(敏捷开发等6大软件开发模式) Computer:敏捷开发Scrum方法的简介、发展历程、开

    2024年02月04日
    浏览(47)
  • 软件测试的终点是“测试开发”吗?

    前言 在一线大厂,没有测试这个岗位,只有测开这个岗位,即使是做业务测试,那么你的title也是测开。 所以想聊一聊测开的看法,但不代表这是正确的看法,仅供参考。 没来阿里之前我对测开的看法 一直以为专职做自动化测试和性能测试是测试这条路的最终归宿,测试开

    2024年02月08日
    浏览(33)
  • 按软件开发阶段的角度划分:单元测试、集成测试、系统测试、验收测试

    1.单元测试(Unit Testing) 单元测试,又称模块测试。对软件的组成单位进行测试,其目的是检验软件基本组成单位的正确性。测试的对象是软件里测试的最小单位:模块。 测试阶段:编码后或者编码前(TDD:测试驱动开发) 测试对象:最小模块 测试人员:白盒测试工程师或

    2024年02月11日
    浏览(51)
  • C# 软件开发之单元测试

    在日常开发中,一般通过启动调试或运行程序来查看功能是否符合预期,如果不符合预期,则需要优化程序,再次运行,如此反复,直到程序的输出符合预期需求为止。随着程序的不断复杂化,某些功能的测试也变得越来越复杂,可能为了验证一个很小的改动项,就需要操作

    2024年02月03日
    浏览(30)
  • 【软件测试】测试与开发一对欢喜冤家......

    大伙普遍的看法:测试与开发天然对立,就应该是一对冤家。 以一些“行内人”的说法:测试与开发关系太好,不温不火,软件质量是提高不上去的! 从而,人为引发了一系列恩怨纠葛。 绩效考核上,开发必须少写bug,测试必须多找bug,从而把测试、开发对立起来!测试为

    2023年04月09日
    浏览(45)
  • 软件测试/测试开发丨结对编程助手 GitHubCopilot

    GitHub Copilot 是一款 AI 结对程序员,可帮助您更快、更少地编写代码。GitHub Copilot 由 GitHub、OpenAI 和 Microsoft 开发的生成式 AI 模型提供支持。它可作为 Visual Studio Code、Visual Studio、Neovim 和 JetBrains 集成开发环境 (IDE) 套件的扩展。 如何使用 环境准备 科学上网:具备流畅访问 Gi

    2024年02月08日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包