IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 关于测试集成系统的思考和学习 -> 正文阅读

[开发测试]关于测试集成系统的思考和学习

目前,在测试领域中,很少有一种集成多种测试方法和将测试可视化的一种系统。对于一些开发人员和业务人员来说,他们可能不会使用一些专业的测试工具。所以,我们是否可以开发出一种系统来集成一些测试方法和工具,并将这些测试方法简单化和可视化,使一些程序员和业务人员也可以很方便的使用这个测试系统来对代码或者测试用例来进行测试。

所以,本文就是一个测试初学者对测试集成系统的一些探索和学习。如果有一些不同的意见,也欢迎大家来进行讨论和指导。

(一)什么是测试?

在进行测试集成系统设计之前,我们首先要了解什么是测试。从网上一些资料中,我们可以很容易的找到对测试的一些定义。

软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。具有人工操作或者软件自动运行两种方式。 它是帮助识别开发完成(中间或最终的版本)的计算机软件(整体或部分)的正确度(correctness) 、完全度(completeness)和质量(quality)的软件过程;是SQA(software quality assurance)的重要子域。(来自https://www.zhihu.com/topic/19562409/intro

换句话说,测试工程师就相当于一个“质检员”,来对开发人员生产出的产品进行质量的测试。此外,“质检员”还要思考这些功能是否可以满足用户的需求。所以,测试人员不光要测试产品的质量还要了解用户的需求和产品的可用性。这就要求测试人员要参与整个软件的开发流程。

(二)?软件开发流程

在上文中提出,测试人员要参与整个软件开发流程。那软件开发流程究竟是什么?

软件开发流程软件设计思路和方法的一般过程,包括对软件先进行需求分析,设计软件的功能和实现的算法和方法、软件的总体结构设计和模块设计、编码和调试、程序联调和测试以及编写、提交程序等一系列操作以满足客户的需求并且解决客户的问题,如果有更高需求,还需要对软件进行维护、升级处理,报废处理。(来自https://baike.baidu.com/item/%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E6%B5%81%E7%A8%8B/3430246

通俗来讲,传统的瀑布式软件开发流程包括:

需求分析,设计(包括概要设计和详细设计),代码编写,测试,验收交付以及最后运营和维护

但是随着敏捷开发在IT项目中的应用,使得测试环节不单单只存在于软件开发的后期,而是变成测试要和开发并存。敏捷开发不会在一次产品发布中包含大量的功能,而是在基本的核心功能实现之后,就立刻对外发布。然后在之后迭代开发,根据反馈和之前的计划来对产品进行升级和改良。这就使测试人员不用一次性进行大量的测试工作。

特别是在快速迭代阶段,?对于一些测试用例的复测,可以使用一些自动化测试工具来减少一些重复性工作。

(三)?测试的主要工作

让我们回到测试集成系统的设计中。如果我们想要设计一个集成测试的系统,我们首先需要知道这个系统主要的功能即在测试环节中,测试工程师需要进行哪些方面的工作。

在上文中,我们了解到测试工程师要参与整个系统开发流程。所以在整个部分,我们要针对每个开发流程来具体说明测试在这些阶段的主要工作主要工具

需求分析:

? ? ? ? 在需求分析阶段,测试人员特别是测试经理(总监)需要和项目经理、产品经理、前后端开发等人员参加需求评审会。在参与会议之前,测试人员要提前理解需求,了解项目的目标和限制,了解用户应用背景。特别是对一些问题,要提前和需求方进行沟通。与会之后,测试经理要编写测试计划准备一些资源来提供给测试人员。

设计:

? ? ? ? 在设计阶段,测试人员主要是要根据需求来编写测试用例

? ? ? ? 对于测试用例,我们需要了解测试的覆盖率问题。测试覆盖率是用来衡量测试的充分性和完整性。从广义的角度来讲,测试覆盖率主要分为两大类,一类是面向项目的需求覆盖率,另一类是更偏向技术的代码覆盖率

????????需求覆盖率,是指测试对需求的覆盖程度

????????通常的做法是将每一条分解后的软件需求和对应的测试建立一对多的映射关系,最终目标是保证测试可以覆盖每个需求,以保证软件产品的质量。这里可以使用来形成成对组合覆盖

????????PICT工具:?????https://www.cnblogs.com/kknote/p/15135460.html

????????????????????????????????https://blog.csdn.net/Aenan/article/details/54601636

编码:

? ? ? ? 在编码阶段,开发人员主要要进行代码的审核单元测试。在单元测试中,又有着代码覆盖率的概念。

? ? ? ? 代码审查就是保证和改善代码质量,确保代码符合团队代码规范

? ? ? ? 代码扫描工具:

  1. Coverity源代码静态分析工具
  2. cppcheck c++静态扫描工具
  3. gcover代码覆盖率工具
  4. findbugs:基于字节码分析,大量使用数据流分析技术,侧重运行时错误检测,如空指针引用等
  5. SonarLint
  6. TscanCode

????????其他静态代码工具:https://www.infoq.cn/article/W0dQwY4dWzXyIxBaxl5D

? ? ? ? 单元测试主要就是白盒测试,即开发人员检查程序的内部结构,对程序的逻辑结构进行检查,从中获得测试数据。在单元测试中,代码覆盖率可以相对反映单元测试的质量。

????????代码覆盖率,通常是指至少被执行了一次的条目数占整个条目数的百分比。通常包括三个判定:?????????????????? ? ?

  • ?????????条件覆盖:用以度量代码中每个判断取真分支取假分支是否各被覆盖至少各一次
  • ????????判定覆盖率:条件覆盖,是指判定中的每个条件的可能取值至少满足一次
  • ?????????行覆盖率:已经被执行到的语句占总可执行语句的百分比

????????对于代码覆盖率,各个语言都有自己的工具。最常见的java,就有一个工具叫 JaCoCo.Coverage是一个用来测试代码覆盖率的 Python 第三方库。业界主流开源js覆盖率工具有ScriptCover,Istanbul和JSCover

? ? ? ? JaCoCo:https://www.jianshu.com/p/4c728b39185e

? ? ? ? Coverage:https://www.jianshu.com/p/7eaf04924be8

? ? ? ? ScriptCover等:https://www.jianshu.com/p/ea7a89173325

????????单元测试中在敏捷开发的思想下又进化产生了测试驱动开发(TDD Test-Driven Development)。TDD的原理是在开发功能代码之前,先编写单元测试用例代码,即通过测试来推动整个开发的进行。

? ? ? ? TDD:https://www.jianshu.com/p/62f16cd4fef3

测试:

????????在测试阶段的测试主要是e2e测试。e2e测试是站在用户角度的测试也就是黑盒测试,即我不懂你内部是怎么实现的,我只负责打开浏览器,把测试内容在页面上输入一遍,看是不是我想要得到的结果。e2e代码是测试所有的需求是不是都可以正确的完成,而且最终要的是在代码重构,js改动很多之后,需要对需求进行测试的时候测试代码是不需要改变的,你也不用担心在重构后不能达到客户的需求。

? ? ? ? 此阶段包括:功能测试,性能测试,压力测试,接口测试,用户界面测试,安全测试,可靠性测试等。

? ? ? ? 功能测试:

  1. Robot?Framework
  2. Selenium(Web端)
  3. Appium(移动端)

????????接口测试:

  1. Jmeter(开源)
  2. postman
  3. SoapUI?

????????性能测试工具:

  1. loadrunner(大而全,要学精通还是有点难度,重量级工具)
  2. Jmeter (基于java平台的性能开源测试工具,其实也很强大,而且比较好用)
  3. Web bench (一个简单的web基准指标测试工具)
  4. Load UI (一款开源的压力测试工具,支持图形化)
  5. httperf (一款高性能的web性能测试工具)
  6. Siege (一款开源的压力和指标测试工具)
  7. Gatling

其他的一些工具可以参考:https://www.zhihu.com/question/47700000

以上都属于一些功能测试的分类,

如果按照开发阶段划分:单元测试,集成测试,系统测试,回归测试,冒烟测试,验收测试等。

测试分类:https://blog.csdn.net/cherrydreamsover/article/details/81385643

验收交付及运营:

在验收交付中,相关的用户和独立测试人员根据测试计划和结果对系统进行测试和接收。它让系统用户来决定是否接收系统。它是一项确定产品是否能够满足合同或用户所规定需求的测试。这是管理性和防御性控制。

验收测试范围:

  1. 界面测试(所有页面浏览、连接的正确、所有功能按钮及界面显示正确)
  2. 功能测试(所有需求文档描述的各项功能均能正确实现)
  3. 软件性能测试(重点业务功能、性能技术指标能满足上线运营需求)
  4. 系统安全性测试(接口和数据调用等方面符合安全性规范;没有安全性漏洞)

验收测试基本工作流程如下:

1、准入条件检测

(1)文档 :进入验收测试的文档(需求文档,测试用例,测试告)准备齐全:

(2)缺陷:要求开发方在不同浏览器兼容环境中,对需要文档上提及的所有功能进行全面测试,且提交验收测试时,承建方发现的所有缺陷都已解决。

(3)测试环境:验收测试环境准备完成,与线上真实环境一致。承建方负责测试环境控制,保证测试期间环境一致、稳定

(4)沟通和联系

2、验收测试

(1)文档验收

(2)程序功能验收

(3)验收评测完成

3.验收评测完成后质量保证部提交的文档:

  1. 最终版需求文档
  2. 提交方提供的最终版测试用例
  3. 提交方提供的最终版测试报告
  4. 质量保证部提供的最终版验收测试报告

3.验收完成后提交程序:

验收完成锁定的程序最终版本,要求保存至版本库中。

流程参考:https://blog.csdn.net/wunian570/article/details/116789368

在运营过程中,运营人员可以通过一些自动化测试脚本的定时运行来对产品进行一些长期的监控和报警。

总结:

设计阶段:提供测试用例的记录,测试用例可以作为一个Test?Case进行测试。用例的编写可以有一些工具的支持

开发阶段:提供一个静态扫描和单元测试(TDD)的功能

测试阶段:整合性能测试,压力测试,接口测试的一些功能,最好可以包含一些UI和功能测试的一些自动化测试脚本。

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-09-08 11:02:20  更:2021-09-08 11:03:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 0:27:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码