白盒测试与黑盒测试【史上最全】

🍅点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快

本文介绍白盒测试与黑盒测试有关内容,并伴随例子讲解

测试用例

测试用例就是一个文档,描述输入、动作、或者时间和一个期望的结果,其目的是确定应用程序的某个特性是否正常的工作。
软件测试用例的基本要素包括测试用例编号、测试标题、重要级别、测试输入、操作步骤、预期结果。

定义

满足特定目的的测试数据、测试代码、测试规程的集合
是发现软件缺陷的最小测试执行单元
有特殊的书写标准和基本原则

生成的基本准测

代表性:能够代表并覆盖各种输入数据、操作和环境设置等
可判定性:测试结果的正确性是可判定的
可再现性:对同样的测试用例,系统的执行结果应当是相同的

设计步骤

为测试需求确定测试用例->为测试用例确定输入输出->编写测试用例->评审测试用例->跟踪测试用例

作用

避免盲目测试;估算测试工作量;减少回归测试的复杂程度;方便书写软件测试缺陷报告;实施不同级别的测试

测试数据和测试用例的区别

测试数据:被用来测试系统的输入数据(输入)
测试用例:被测试系统的输入和根据规格说明书预测的该系统的输出(输入&输出)

黑盒测试

定义

黑盒测试又称功能测试、数据驱动测试或基于规格说明书的测试,是一种从用户观点出发的测试。

等价性划分、边值分析、组合测试、随机测试和误差猜测、场景测试

黑盒测试主要测试的错误类型有:
①不正确或遗漏的功能;
②接口、界面错误;
③性能错误;
④数据结构或外部数据访问错误;
⑤初始化或终止条件错误等等。

优点

(1)有针对性地寻找问题,并且定位问题更准确。
(2)黑盒测试可以证明产品是否达到用户要求的功能,符合用户的工作要求。
(3)黑盒测试与软件如何实现无关,如果实现发生变化,黑盒测试用例仍然可用(可重用性,面向回归测试)
(4)测试用例开发可以与软件开发同时进行,可节省软件开发时间,通过软件的用例就可以设计出大部分黑盒测试用例。
(5)能重复执行相同的动作,测试工作中最枯燥的部分可交由机器完成。

缺点

(1)需要充分了解待测试软件产品所用到的各项技术,测试人员需要具有较多经验。
(2)测试用例数量较大
(3)测试用例可能产生很多冗余
(4)功能性测试的覆盖范围不可能达到100%
(5)在测试过程中很多是手工测试操作。
(6)测试人员要负责大量文档、报表的编制和整理工作。

黑盒测试的实施过程

(1)测试计划阶段
(2)测试设计阶段
依据程序需求规格说明书或用户手册,按照一定规范化的方法进行软件功能划分设计测试用例
(3)测试执行阶段
按照设计的测试用例执行测试;
自由测试(作为测试用例测试的补充)。
(4)测试总结阶段

等价类划分法

等价类是指某个输入域的子集合。 在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。
并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试,因此每个等价类取一个数据就行

有效等价类

无效等价类

示例:

设有一个档案管理系统,要求用户输入以年月表示的日期。假设日期限定在1990年1月~2049年12月,并规定日期由6位数字字符组成,前4位表示年,后2位表示月。现用等价类划分法设计测试用例,来测试程序的“日期检查功能”。
1)划分等价类并编号

2)设计测试用例,以便覆盖所有的有效等价类在表中列出了3个有效等价类,编号分别为①、⑤、⑧,设计的测试用例如下:

3)为每一个无效等价类设计一个测试用例,设计结果如下:

边界值分析法

边界值分析法用例设计原则:
1)如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。

例如,如果程序的规格说明中规定:“重量在10公斤至50公斤范围内的邮件,其邮费计算公式为……”。作为测试用例,我们应取10及50,还应取10.01,49.99,9.99及50.01等。

2)如果输入条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据。
比如,一个输入文件应包括1~255个记录,则测试用例可取1和255,还应取0及256等。

3)将规则1)和2)应用于输出条件,即设计测试用例使输出值达到边界值及其左右的值。
例如,某程序的规格说明要求计算出“每月保险金扣除额为0至1165.25元”,其测试用例可取0.00及1165.24、还可取一0.01及1165.26等。
再如一程序属于情报检索系统,要求每次”最少显示1条、最多显示4条情报摘要”,这时我们应考虑的测试用例包括1和4,还应包括0和5等。

4)如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。
5)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例。
6)分析规格说明,找出其它可能的边界条件。

例题:

程序的输入文件由一些有80个字符的记录组成,如右图所示,所有记录分为3组:

① 标题:
这一组只有一个记录,其内容为输出成绩报告的名字。
②试卷各题标准答案记录:
每个记录均在第80个字符处标以数字“2”。该组的第一个记录的第1至第3个字符为题目编号(取值为1一999)。第10至第59个字符给出第1至第50题的答案(每个合法字符表示一个答案)。该组的第2,第3……个记录相应为第51至第100,第101至第150,…题的答案。
③每个学生的答卷描述:
该组中每个记录的第80个字符均为数字“3”。每个学生的答卷在若干个记录中给出。如甲的首记录第1至第9字符给出学生姓名及学号,第10至第59字符列出的是甲所做的第1至第50题的答案。若试题数超过50,则第2,第3……记录分别给出他的第51至第100,第101至第150……题的解答。然后是学生乙的答卷记录
学生人数不超过200,试题数不超过999
程序的输出有4个报告:
a)按学号排列的成绩单,列出每个学生的成绩、名次。
b)按学生成绩排序的成绩单。
c)平均分数及标准偏差的报告。
d)试题分析报告。按试题号排序,列出各题学生答对的百分比。
解答:分别考虑输入条件和输出条件,以及边界条件。给出下表所示的输入条件及相应的测试用例。

错误推测法

基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法。比如输入数据为0

例如,针对例3,采用错误推测法还可补充设计一些测试用例:
1、 程序是否把空格作为回答
2、 在回答记录中混有标准答案记录
3、 除了标题记录外,还有一些的记录最后一个字符即不是2也不是3
4、 有两个学生的学号相同
5、试题数是负数。

再如,测试一个对线性表(比如数组)进行排序的程序,可推测列出以下几项需要特别测试的情况:
1)输入的线性表为空表;
2)表中只含有一个元素;
3)输入表中所有元素已排好序;
4)输入表已按逆序排好;
5)输入表中部分或全部元素相同。

因果图

左结点表示输入状态(或称原因),右结点表示输出状态(或称结果)。
Ci表示原因,通常置于图的左部; ei表示结果,通常在图的右部。 ci和ei均可取值0或1,0表示某状态不出现,1表示某状态出现

关系
①恒等:若ci是1,则ei也是1;否则ei为0。
②非:若ci是1,则ei是0;否则ei是1。
③或:若c1或c2或c3是1,则ei是1;否则ei为0。“或”可有任意个输入。
④与:若c1和c2都是1,则ei为1;否则ei为0。“与”也可有任意个输入。

例子:
原因:
1.售货机有零钱找 2.投入1元硬币
3.投入5角硬币 4.押下橙汁按钮
5.押下啤酒按钮
结果:
21. 售货机〖零钱找完〗灯亮
22. 退还1元硬币
23. 退还5角硬币
24. 送出橙汁饮料
25. 送出啤酒饮料

因果图方法是一个非常有效的黑盒测试方法,它能够生成没有重复性的且发现错误能力强的测试用例,而且对输入、输出同时进行了分析。
从因果图生成的测试用例(局部,组合关系下的)包括了所有输入数据的取TRUE与取FALSE的情况,构成的测试用例数目达到最少,且测试用例数目随输入数据数目的增加而线性地增加。
如果哪个开发项目在设计阶段就采用了判定表,也就不必再画因果图,而是可以直接利用判定表设计测试用例了。

判定表

判定表通常由四个部分组成:
条件桩(Condition Stub):列出了问题的所有条件,通常认为列出得条件的次序无关紧要。
动作桩(Action Stub):列出了问题规定可能采取的操作,这些操作的排列顺序没有约束。
条件项(Condition Entry):列出针对它左列条件的取值,在所有可能情况下的真假值。
动作项(Action Entry):列出在条件项的各种取值情况下应该采取的动作。

例子:
问题要求:”…… 对功率大于50马力的机器、维修记录不全或已运行10年以上的机器,应给予优先的维修处理……” 。 这里假定,“维修记录不全”和“优先维修处理”均已在别处有更严格的定义 。 请建立判定表。
①确定规则的个数:这里有3个条件,每个条件有两个取值,故应有222=8种规则。
②列出所有的条件茬和动作茬:

③填入条件项。可从最后1行条件项开始,逐行向上填满。如第三行是: Y N Y N Y N Y N第二行是: Y Y N N Y Y N N等等。
④填人动作桩和动作顶。这样便得到形如图的初始判定表。

⑤化简。合并相似规则后得到图

判定表例题

请根据判定表方法为以下a、b、c边的直角三角形问题设计测试用例。
a、b和c应为1至100的正整数;
如果任何一侧小于1或大于100,则输出为“无效输入”;
如果任意两条边的和小于或等于第三条边,则输出为“非三角形”;
如果任意两边的平方和等于第三边的平方,则输出为“直角三角形”;否则输出为“一般三角形”;
1) 请绘制决策表。
2) 请列出测试用例。

首先我们假设输入一定为整数,确定规则个数,这里有3个条件,其中第一个条件有3种取值,规则数量为322 = 12

这里列出所有条件茬和动作茬:

判定表:

白盒测试

介绍

白盒测试也称结构测试或逻辑驱动测试,是一种测试用例设计方法,它从程序的控制结构导出测试用例
白盒测试使用被测单元内部如何工作的信息,允许测试人员对程序内部逻辑结构及有关信息来设计和选择测试用例,对程序进行测试。

基本要求:
保证一个模块中的所有独立路径至少被执行一次;
对所有的逻辑值均需要测试真、假两个分支;
在上下边界及可操作范围内运行所有循环;
检查内部数据结构以确保其有效性。

应用白盒法时,手头必须有程序的规格说明以及程序清单。
白盒法考虑的是测试用例对程序内部逻辑的覆盖程度。
最彻底的白盒法是覆盖程序中的每一条路径,但是由于程序中一般含有循环,所以路径的数目极大,要执行每一条路径是不可能的,只能希望覆盖的程度尽可能高些。

覆盖程度

从低到高:

语句覆盖:选择足够的测试用例,使得程序中每个语句至少都能被执行一次。
判定覆盖(也称为分支覆盖):执行足够的测试用例,使得程序中的每一个分支至少都通过一次(仅要求取到每一个结果)。
条件覆盖:执行足够的测试用例,使程序中每个判断的每个条件的每个可能取值至少执行一次;
判定/条件覆盖:执行足够的测试用例,使得判定中每个条件取到各种可能的值,并使每个判定取到各种可能的结果(所有结果被取过)。
条件组合覆盖:执行足够的例子,使得每个判定中条件的各种可能组合都至少出现一次。
基本路径测试:设计足够多的测试用例,运行所测程序,要覆盖程序中所有可能的路径。这是最强的覆盖准则。但在路径数目很大时,真正做到完全覆盖是很困难的,必须把覆盖路径数目压缩到一定限度。

例子:

语句覆盖:x=4、y=5、z=5 程序执行的路径是:abd
分支覆盖:①x=4,z=0,y=6 (沿路径acd执行);
② x=5,z=5,y=2(沿路径abe执行)
条件覆盖:
对于第一个判断:
条件x>3 取真值为T1,取假值为-T1
条件z<10 取真值为T2,取假值为-T2
对于第二个判断:
条件x=4 取真值为T3,取假值为-T3
条件y>5 取真值为T4,取假值为-T4

注意“条件覆盖”并不包含“分支覆盖”,

而“分支 /条件覆盖”,它的含义是:执行足够的测试用例,使得分支中每个条件取到各种可能的值,并使每个分支取到各种可能的结果。它才是包含前两者的覆盖

条件组合覆盖:
1、x>3,z<10 记做T1 T2,第一个判断的取真分支
2、x>3,z>=10 记做T1 -T2,第一个判断的取假分支
3、x<=3,z<10 记做-T1 T2,第一个判断的取假分支
4、x<=3,z>=10 记做-T1 -T2,第一个判断的取假分支
5、x=4,y>5 记做T3 T4,第二个判断的取真分支
6、x=4,y<=5 记做T3 -T4,第二个判断的取真分支
7、x!=4,y>5 记做-T3 T4,第二个判断的取真分支
8、x!=4,y<=5 记做-T3 -T4,第二个判断的取假分支

根据定义取4个测试用例,就可以覆盖上面8种条件取值的组合。上面的测试用例覆盖了所有条件的可能取值的组合,覆盖了所有判断的可取分支,但是却丢失了一条路径abe(路径组合可能丢失)

基本路径覆盖

步骤:
程序的控制流图:描述程序控制流的一种图示方法
程序圈复杂度:McCabe复杂性度量。从程序的环路复杂性可导出程序基本路径集合中的独立路径条数。
导出测试用例:根据圈复杂度和程序结构设计用例数据输入和预期结果。
准备测试用例:确保基本路径集中的每一条路径的执行

下面是基本路径覆盖的结果用例

程序流程图简化成控制流图


在将程序流程图简化成控制流图时,应注意:
在选择或多分支结构中,分支的汇聚处应有一个汇聚结点。
边和结点圈定的区域叫做区域,当对区域计数时,图形外的区域也应记为一个区域。

计算圈复杂度

圈复杂度是一种为程序逻辑复杂性提供定量测度的软件度量,将该度量用于计算程序的基本的独立路径数目

有以下三种方法计算圈复杂度:

对应上面图中的圈复杂度,计算如下:
流图中有四个区域;
V(G)=10条边-8结点+2=4;
V(G)=3个判定结点+1=4。

导出测试用例

第三步:导出测试用例
根据上面的计算方法,可得出四个独立的路径。(一条独立路径是指,和其他的独立路径相比,至少引入一个新处理语句或一个新判断的程序通路。V(G)值正好等于该程序的独立路径的条数。)
路径1:4-14
路径2:4-6-7-14
路径3:4-6-8-10-13-4-14
路径4:4-6-8-11-13-4-14
根据上面的独立路径,去设计输入数据,使程序分别执行到上面四条路径。

准备测试用例

路径1:4-14
输入数据:iRecordNum=0,或者
取iRecordNum<0的某一个值
预期结果:x=0
路径2:4-6-7-14
输入数据:iRecordNum=1,iType=0
预期结果:x=2
路径3:4-6-8-10-13-4-14
输入数据:iRecordNum=1,iType=1
预期结果:x=10
路径4:4-6-8-11-13-4-14
输入数据:iRecordNum=1,iType=2
预期结果:x=20

void Sort(int iRecordNum,int iType) { int x=0; int y=0; while (iRecordNum-- > 0) { if(0==iType) {x=y+2; break;} else if(1= =iType) x=y+10; else x=y+20; } }

例题

请使用以下白盒测试技术完成测试用例设计。
1)请绘制控制流程图。
2) 请列出所有决定及其条件分支。
3) 请使用判定/条件覆盖测试方法来设计测试用例。
4) 请使用条件组合测试方法来设计测试用例。
5) 请使用路径覆盖方法来设计测试用例。
6) 请使用基本路径测试方法来设计测试用例

1) 绘制控制流图

先画出程序流图再转为控制流图

2)列出所有决定及其条件分支

注意列出的时候利用字母进行标记

3) 使用判定/条件覆盖测试方法来设计测试用例

4) 请使用条件组合测试方法来设计测试用例

5) 请使用路径覆盖方法来设计测试用例

6) 请使用基本路径测试方法来设计测试用例

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1189334.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

模组的功耗说明

一&#xff0c;模组的低功耗特性概述二、三种不同的功耗模式1&#xff0c; 三种功耗模式的简捷定义模组有三种功耗模式&#xff0c; 分别是&#xff1a; 常规模式&#xff0c;低功耗模式&#xff0c;PSM模式&#xff0c;定义如下&#xff1a;- 1&#xff09;常规模式&#xff1…

2026 年 1 月最新 厦门室内装修公司排名前十强推荐 - 品牌测评鉴赏家

2026 年 1 月最新 厦门室内装修公司排名前十强推荐一、装修公司排名的重要性 在厦门,装修公司多如繁星,这让业主们在选择时常常感到迷茫。参考排名挑选装修公司,就像是在茫茫大海中找到了航标。排名靠前的公司通常在…

操作系统管道 = 水管管道?

不&#xff0c;操作系统管道&#xff08;Pipe&#xff09; ≠ 水管管道&#xff08;Physical Pipe&#xff09;。 二者仅在中文里共享“管道”一词&#xff0c;实则属于 抽象计算模型 vs 物理流体系统 的完全不同的范畴。混淆二者会阻碍对操作系统原理和工程隐喻的准确理解。一…

PHP的localhost 需要走互联网吗?

不需要&#xff0c;PHP 的 localhost 完全不经过互联网&#xff08;Internet&#xff09;。 localhost 是 本地回环&#xff08;Loopback&#xff09;接口 的主机名&#xff0c;其通信 仅在本机内核网络栈中完成&#xff0c;不涉及任何物理网卡、路由器或外部网络。一、网络层级…

Java中的异常与Error

Error 一般为系统导致的错误&#xff0c;和程序无关&#xff0c;不应该由程序处理。例如OOM, StackOverFlow 异常Exception 程序可以处理的非致命问题 可查异常&#xff1a; 程序编译阶段就会发现的异常&#xff0c;例如ClassNotFoundException&#xff0c;FileNotFoundExcepti…

自然语言处理与开源库SpaCy的技术探讨

简介 本期节目采访了某机构的联合创始人兼首席执行官。深入探讨了网络和机器学习的演进、SpaCy的开发历程、自然语言处理与自然语言理解的区别、创业误区等丰富内容。 嘉宾是一位专注于人工智能和自然语言处理技术的软件开发者。作为某机构的联合创始人兼首席执行官&#xff0c…

远程固件升级服务(第三方服务器,使用libfota2扩展库)

一、FOTA 概述 FOTA 即远程升级功能&#xff0c;此功能可以让客户在不方便大量线刷升级(设备不在身边/量产 PCB 没引出 USB/需要大批量进行功能升级)的情况下&#xff0c;快速进行底层固件/脚本/脚本 底层固件的远程更新。 LuatOS 开发模式下&#xff0c;固件分为两部分&…

/var/run/php-fpm.sock = 127.0.0.1:9000?

不&#xff0c;/var/run/php-fpm.sock ≠ 127.0.0.1:9000。 二者是 PHP-FPM 与 Web 服务器通信的两种不同传输机制&#xff1a; /var/run/php-fpm.sock 是 Unix Domain Socket&#xff08;UDS&#xff09;127.0.0.1:9000 是 TCP Socket 虽然功能相同&#xff08;传递 FastCGI 请…

13.3GB《ArcGIS Pro 地理信息系统应用与实践》配套练习数据

前段时间有朋友问&#xff0c;哪里有《ArcGIS Pro 地理信息系统应用与实践》这本书的配套练习数据&#xff1f; 其实&#xff0c;我们早前也买过这本书&#xff0c;但此书确实没有附光盘&#xff0c;也没有附上配套练习数据的下载地址。 当我们拿到这本书的之后&#xff0c;也…

事件驱动架构设计思路和笔记

事件驱动架构完整学习指南 作者: smj 日期: 2025-01-20 版本: V1.0 项目: HCMS-WMS 机器人管理模块 V3.0📚 目录核心概念三大核心类详解完整工作流程代码实战示例设计模式深入性能优化要点常见问题FAQ扩展知识�…

2026年苏州正规灵活用工企业排行榜推荐

2026年苏州正规灵活用工企业排行榜推荐行业痛点分析当前&#xff0c;灵活用工领域面临诸多技术挑战。一方面&#xff0c;企业在招聘和管理临时工、合同工时&#xff0c;往往难以实现高效匹配和精细化管理&#xff1b;另一方面&#xff0c;结算流程复杂且存在合规风险。数据显示…

基于springboot的少数民族交流论坛

运行效果:https://lunwen.yeel.cn/view.php?id=5808 基于springboot的少数民族交流论坛摘要:随着互联网技术的快速发展,我国少数民族交流日益频繁,传统的交流方式已无法满足现代交流需求。本文以Spring Boot框架为…

基于SpringBoot的5种签到打卡设计思路及实现方案

签到打卡的多样性需求 在我们的日常开发工作中,经常会遇到各种签到打卡的需求:日常签到:用户每天签到获取积分奖励 活动签到:线下活动参与者扫码签到 考勤打卡:员工上下班打卡记录 位置打卡:基于地理位置的打卡签…

WX-0813 AI 降噪回音消除模组

一、产品概述WX-0813 是一款高集成度一体化语音处理模组&#xff0c;专为解决音频设备开发中的噪音干扰、回音叠加、功放适配三大核心痛点设计。模组集成 AI 降噪&#xff08;ENC&#xff09;、全双工回音消除&#xff08;AEC&#xff09;、双声道 5W 数字功放三大功能&#xf…

伊朗离我们的距离,竟然比上海飞深圳还近!

提到伊朗&#xff0c;不少人觉得它是遥远中东的神秘国度&#xff0c;却不知它与中国的距离远比想象中更近。 中国新疆塔什库尔干县到伊朗最东边境仅1200多公里&#xff0c;比上海飞深圳的距离还要短。 当下的伊朗正面临内忧外患的动荡局势&#xff0c;但这份动荡从未蔓延至中…

【收藏】提示词工程:大模型应用的核心技术,小白程序员必学的提效秘籍

提示词工程是打通大模型应用落地的核心技术&#xff0c;更是程序员、职场人与大模型高效对话的“通关密钥”。想要让大模型精准完成任务&#xff0c;而非输出“答非所问”的内容&#xff0c;就必须掌握科学设计提示词的方法——用清晰的指令、完整的上下文引导模型&#xff0c;…

昆明市英语雅思培训辅导机构推荐,2026权威出国雅思课程中心学校口碑排行榜 - 苏木2025

随着留学热度持续攀升,雅思考试已成为昆明学子通往世界名校的重要门槛,然而在雅思培训选课过程中,多数考生深陷“优质机构难甄别、提分技巧难掌握、个性化方案缺失”的困境。据云南省教育国际交流协会数据显示,202…

免费的考试软件哪个好?实测指南与避坑技巧

无论是学生自测复盘、教师布置随堂测验,还是企业开展基础内训考核,很多人都想找到一款好用的免费考试软件,却屡屡踩坑:要么功能残缺,连主观题都无法支持;要么弹窗广告泛滥,严重干扰答题节奏;要么稳定性极差,答题…

全球主流双转盘高内涵成像分析系统品牌有哪些?一文掌握双转盘共聚焦高内涵分析系统怎么选择 - 品牌推荐大师1

高内涵成像分析系统是一种结合了高分辨率成像和多参数分析技术的先进工具,广泛应用于生命科学研究、药物开发和细胞生物学等领域。随着技术的不断进步,双转盘共聚焦高内涵分析系统因其高速度、高灵敏度和低光毒性的特…

广西北部湾,将成为未来最繁忙的航运地!

作为西部陆海新通道的关键枢纽&#xff0c;广西北部湾港已经迈入到了千万标箱的大港行列。 由钦州、北海、防城三大港口组成的北部湾港&#xff0c;正通过智能化、自动化转型升级&#xff0c;为这条国际大通道持续注入强劲动力。 2025年截至12月30日&#xff0c;班列开行量达…