返回顶部
首页 > 资讯 > 精选 >软件测试这些你知道吗?
  • 573
分享到

软件测试这些你知道吗?

2023-06-05 02:06:49 573人浏览 安东尼
摘要

我们常常听说的一些测试专业术语,比如白盒、黑盒、单元测试,笔者在前几年对测试也仅仅停留在这个两个词汇上,更多的就不得而知了。后来在一家做跨境电商的公司学到了一些新术语,也见到了测试岗位的一些日常,比如冒烟测试、测试用例(TC)、回归测试、接

软件测试这些你知道吗?

我们常常听说的一些测试专业术语,比如白盒、黑盒、单元测试,笔者在前几年对测试也仅仅停留在这个两个词汇上,更多的就不得而知了。后来在一家做跨境电商的公司学到了一些新术语,也见到了测试岗位的一些日常,比如冒烟测试、测试用例(TC)、回归测试、接口测试以及偶尔和我吵架等等。

白盒黑盒测试是按测试设计方法分类的,是指软件测试设计的方法,而不是软件测试的方法,注意这个区别。

黑盒测试是行为测试,即从软件的行为而不是内部结构触发来设计测试,也就是在软件上到处点点等。白盒指的是在设计测试的过程中,设计者可以“看到”软件系统的内部结构,并使用软件的内部结构和知识来选择测试数据及具体的测试方法。

功能测试和非功能测试


按测试的目,分为功能测试和非功能测试,单元测试是功能测试里的一种,每种测试的名称和内容如下:

软件测试这些你知道吗?

一个软件除了基本功能之外,还有很多功能之外的特性,这些叫非功能需求,或者服务质量需求。然而,若没有软件的基本功能,这些特性都将无从表现出来,因此,我们要在软件开发的适当阶段——基本功能完成后再来做这些非功能测试,非功能测试有如下这些

软件测试这些你知道吗?


其他分类下的测试


开发软件的过程中,不少测试起着“烽火台”的作用,它们告诉我们软件开发的流程是否顺畅,比如冒烟测试是指测试不通过不能进行下一步工作,是一种基本验证测试,据说是从硬件设计行业流传过来的说法。当年设计电路板的时候,很多情况下,新的电路板一插上电源就冒起白烟,烧坏了。如果插上电源后没有冒烟,那就是通过了“冒烟测试”,可以进一步测试电路板的功能了。还有验证构建是否通过基本测试以及全面考核某方面的功能的验收测试。

另一些测试名称则是说明不同的测试方法

软件测试这些你知道吗?


单元测试


对于开发来讲,最最常用和熟悉的还是单元测试,怎样才算一个好的单元测试?单元测试应该准确、快速地保证程序基本模块的正确性。下面是验证单元测试好坏的一系列标准:

单元测试应该在最基本的功能/参数上验证程序的正确性。

单元测试必须由最熟悉代码的人(程序的作者)来写。

单元测试过后,机器状态保持不变。如果单元测试创建了临时的文件或目录,应该在Teardown(拆卸)阶段删掉。如果单元测试在数据库中创建或修改了记录,那么也许要删除或恢复这些记录,或者每一个单元测试使用一个新的数据库,这样可以保证单元测试不受以前单元测试实例的干扰。

单元测试要快(一个测试的运行时间是几秒钟,而不是几分钟)。

单元测试应该产生可重复、一致的结果。

独立性—单元测试的运行/通过/失败不依赖于别的测试,可以人为构造数据,以保持单元测试的独立性。

单元测试应该覆盖所有代码路径。

单元测试应该集成到自动化测试框架中。

单元测试必须和产品代码一起保存和维护。

然并卵!都说国内很多程序员是不写单元测试的,甚至从来都不写,笔者当年做Java的时候也没写过几次(捂脸)。

回归测试


在单元测试的基础上,我们就能够建立关于这一模块的回归测试(Regression Test)。Regress:return to a worse or less developed state,是倒退、退化、退步的意思。在软件项目中,如果一个模块或功能以前是正常工作的,但是在一个新的构建中出了问题,那么这个模块就出现了一个“退步”(Regression),从正常工作的状态退化到不正常工作的状态。在一个模块的功能逐步完成的同时,与此功能有关的测试用例也同样在完善中。一旦有关的测试用例通过,我们就得到了此模块的功能基准线(Baseline),一个模块的所有单元测试就是这个模块最初的Baseline。

针对一个Bug Fix,我们也要做Regression(海退) Test。目的是:

验证新的代码的却改正了缺陷。

同时要验证新的代码有没有破坏模块的现有功能,有没有Regression

对于“回归测试”中的“回归”,我们可以将其理解为“回归到以前不正常的状态”。回归测试最好要自动化,因为这样就可以对于每一个构建快速运行所有回归测试,以保证尽早发现问题。单元测试是回归测试的基础。在专注于模块基本功能的单元测试之外,还有功能测试——从用户的角度检查功能完成得怎么样。

探索性测试


探索性测试是为了某一个特定目的而进行的测试,且就这一次,以后一般也不会重复测试。在软件工程的实践中,“Ad hoc”大多是指随机进行的、探索性的测试。

探索式测试的测试流程是不可重复的,因为它的测试都是“特定”测试,没法重复。这一原因,使得探索式测试不能自动化,就这一点而言,还达不到CMMI二级——可重复级。

作为管理人员来说,如果太多的小强是在探索式测试中找出来的,那我们就要看看测试计划是否基于实际的场景,开发人员的代码逻辑是否完善,等等。

场景/集成/系统测试


在软件开发的一定阶段,我们要对一个软件进行全面和系统的测试,以保证软件的各个模块都能共同工作,各方面均能满足用户的要求。这类测试叫系统/集成测试。这一方法的核心思想是:当用户使用一个软件时,他/她并不会独立使用各个模块,而是把软件作为一个整体来使用。我们在做场景测试的时候,就需要考虑在现实环境中用户使用软件的流程是怎样的,然后模拟这个流程,看看软件能不能满足用户的需求。这样,才能使软件符合用户的实际需求。

应该什么时候做集成测试呢?是不是越早越好?原则上是当一个模块稳定的时候,就可以把它集成到系统中,和整个系统一起进行测试。在模块本身稳定之前就提早做集成测试,可能会报告出很多Bug,但是这些由于提早测试而发现的Bug,有点像汽车司机在等待绿灯时不耐烦而拼命地按喇叭——也就是说,有点像噪音。我们还是要等到适当的时机再开始进行集成测试。

了解完这些概念后,我们来看看究竟一个测试工程师的职责是怎么样的呢,下面列举一些:

制定测试计划

设计与编写测试用例

实施测试

BUG跟踪

测试报告与总结

其他测试工程活动

很多测试工作并不是说,有了测试工程师,把测试相关的全部事情扔给他们就完事了,需要开发和测试配合,共同完成某些测试任务,软件测试也不仅仅是为了发现bug然后提给开发,测试=质量保障,提升质量相关的都是测试工程师需要关注和负责的,软件测试的目标是帮助项目打造用户喜欢的产品。

总结

如何一起学习,有没有免费资料?

   为了让学习变得轻松、高效,今天给大家免费分享一套资深测试大牛云层传授的一套教学资源。帮助大家在升职加薪的道路上披荆斩棘。这套视频详细讲解了(测试基础,接口测试进阶,自动化测试,性能测试)等这些测试必备的内容! 

前300名进群可以免费领取测试整合学习视频一份

测试分享交流群:903217991

测试基础,网络爬虫,自动化测试,接口测试,性能测试,TestOps等这些测试必备的内容已全部录制好。

--结束END--

本文标题: 软件测试这些你知道吗?

本文链接: https://lsjlt.com/news/240808.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 软件测试这些你知道吗?
    我们常常听说的一些测试专业术语,比如白盒、黑盒、单元测试,笔者在前几年对测试也仅仅停留在这个两个词汇上,更多的就不得而知了。后来在一家做跨境电商的公司学到了一些新术语,也见到了测试岗位的一些日常,比如冒烟测试、测试用例(TC)、回归测试、接...
    99+
    2023-06-05
  • 对不起,不知道这些,我劝你还是别做软件测试员了!
    到今年,我从事软件测试行业,已经有七、八个春秋了,也算是一个资深的软件测试工程师,目前在上海一家500强企业任职软件测试架构师。我知道,在当今高速发展的信息社会,计算机和电子技术越来越受到人们的重视,以软件为代表的计算机行业正在以一种井喷式...
    99+
    2023-06-05
  • 你知道Java的这些骚操作吗?
    目录一、try with catch二、instance of三、不定项参数 ...四、跳出多层循环的label五、方法引用总结一、try with catch 还记得这样的代码吗?...
    99+
    2024-04-02
  • 你要知道IDEA的这些必备插件
    目录一、Idea中的插件的安装方式二、Free-idea-mybatis三、Grep Console四、Maven Helper五、总结一、Idea中的插件的安装方式 Idea中插件...
    99+
    2024-04-02
  • GO语言与Apache结合,这些实时调试技巧你知道吗?
    当今互联网时代,实时性已经成为了一个非常重要的问题。要想实现高效的实时性,需要使用一些高效的技术。而GO语言和Apache结合,可以实现非常高效的实时调试技巧。本文将为大家详细介绍这些技巧。 一、GO语言和Apache结合的背景 GO语言是...
    99+
    2023-10-06
    ide 实时 apache
  • Java Spring @Autowired的这些骚操作,你都知道吗
    目录前言1. @Autowired的默认装配2. 相同类型的对象不只一个时3. @Qualifier和@Primary4. @Autowired的使用范围4.1 成员变量4.2 构造...
    99+
    2024-04-02
  • node.js-fs文件系统模块这是你知道吗
    目录1、什么是fs文件系统模块2、读取指定文件的内容1、fs.readFile()的语法格式2、fs.readFile()读取文件内容3、判断文件是否读取成功3、向指定文件写入内容1...
    99+
    2024-04-02
  • Python的这些库,你知道多少?
    目录一、导读二、前戏三、Python标准库四、科学计算与统计五、数据处理与分析六、可视化七、机器学习、深度学习和强化学习八、自然语言处理一、导读 通常,开发大量原始代码是一个费时费力...
    99+
    2024-04-02
  • 你知道在Java中Integer和int的这些区别吗?
    目录一、基本概念(重要)二、拓展三、new Integer()与new Integer()的比较四、Integer与new Integer()的比较五、Integer与Integer...
    99+
    2024-04-02
  • ASP和JavaScript实时教程:你知道这些技巧吗?
    在Web开发中,ASP和JavaScript是两个非常重要的技术。它们可以让你创建动态的网站,实现实时交互和数据处理。在本文中,我们将介绍一些ASP和JavaScript的实时教程和技巧,帮助你更好地使用它们。 ASP是一种服务端脚本语言...
    99+
    2023-09-27
    javascript 实时 教程
  • GO 开发必备?这些 IDE 框架你都知道吗?
    作为一名GO开发者,选择一款好用的IDE框架是非常重要的。一个优秀的IDE框架可以提高我们的开发效率和代码质量,同时也能让我们更加便捷地进行代码调试和管理。下面就让我们来了解一下几款常用的GO开发必备IDE框架吧! 1. GoLand Go...
    99+
    2023-07-29
    开发技术 ide 框架
  • 简单的这些不为人知的小技巧你都知道吗?
      随着科技的发展,手机在生活越来越重要,微信渐渐成为我们生活中沟通的重要媒介。现在很多的中老年人也开始使用微信了,但是微信上有很多功能,他们都不会使用,如果我们不在他们的身边,他们又想使用微信的话,那...
    99+
    2024-04-02
  • JavaScript的这5个技巧你知道了吗
    JavaScript的这5个技巧你知道了吗,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。谁要是说 JavaScript 是世界上比较好的语言,...
    99+
    2024-04-02
  • PHP 缓存面试文件:你掌握了这些关键知识吗?
    在 PHP 开发中,缓存是提高应用程序性能的重要手段。在面试过程中,许多公司都会涉及到 PHP 缓存的问题。本文将介绍 PHP 缓存的关键知识,帮助你在面试中脱颖而出。 什么是 PHP 缓存? PHP 缓存是指将 PHP 脚本的执行结...
    99+
    2023-07-30
    缓存 面试 文件
  • 你知道这些 Python 分布式缓存开发技巧吗?
    Python 分布式缓存是一种有效的提高网站性能的技术,它可以让网站在高并发访问情况下快速响应,减轻服务器的负载压力。本文将介绍 Python 分布式缓存的开发技巧,并演示一些代码实例。 使用 Redis 缓存 Redis 是一种快速、...
    99+
    2023-09-06
    分布式 缓存 ide
  • ASP 数据类型详解:这些类型你都知道吗?
    在 ASP 中,数据类型是我们编写程序时必须了解的基本概念之一。在本文中,我们将详细介绍 ASP 中的数据类型及其使用方法,并演示一些相关的代码示例。 一、ASP 中的数据类型 字符串(String):用于存储文本字符数据,通常用于存...
    99+
    2023-07-10
    数据类型 http npm
  • GO语言和Laravel缓存:你知道这些关键字吗?
    缓存是每个Web开发人员都应该知道的一个概念。它是一种将数据存储在内存中的技术,以便在将来的请求中更快地访问它们。在本文中,我们将探讨GO语言和Laravel中的缓存以及使用缓存时的一些关键字。 GO语言中的缓存 GO语言有一个内置的缓存...
    99+
    2023-11-12
    关键字 缓存 laravel
  • Android软件测试log知多少
      log文件分为实时打印的,还有状态信息的两种   实时打印的主要有:logcat main,logcat radio,logcat events,tcpdump,还...
    99+
    2022-06-06
    log Android
  • PHP 并发编程面试,这些问题你一定要知道!
    PHP并发编程面试,这些问题你一定要知道! 随着互联网的迅速发展,许多网站都面临着高并发的挑战。PHP作为一种流行的编程语言,也需要应对高并发的情况。因此,PHP并发编程成为了许多公司招聘的重要条件之一。本文将介绍一些与PHP并发编程相关的...
    99+
    2023-06-16
    并发 面试 分布式
  • 你是否知道这些Python和Git面试问题的答案?
    Python和Git是现代开发中最常用的工具之一,因此在技术面试中,面试官通常会问一些相关问题。这篇文章将介绍一些常见的Python和Git面试问题,并提供相应的答案和演示代码。 Python面试问题 Python的GIL是什么?它对Py...
    99+
    2023-08-03
    numy git 面试
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作