掌握基本测试

一些基本的测试方法 产品测试车轮图 测试类型,即测试要从哪些角度去测试产品,确定了测试的思路。接下来我们要讨论的就是怎么做的问题了,即具体的测试方法。 图描绘的质量属性的六大类和测试类型之间的关系,并没有深入到各个质量子属性和各个子属性对应的测试类型中去(大家不妨自己动手绘制一下“质量子属性”的车轮图)。 从“车轮图”中能够分析出产品测试的两个关键问题: 一是如何保证测试验证的“全面性”的问题。显然,只要... 阅读详情

 

测试对接

在公司中一般测试需要对接的人员是开发人员和运维。其它的项目设计和产品规划都有专门人员负责,一般和开发人员都没用关系,所以测试就需要和开发和运维打好一点就行。

对接时需要看的文档

首先测试也是需要知道需求文档的,其次是测试计划要了解到底要进行那些分析测试。

测试人员需要写的文档

  • 1.测试计划:测试计划由测试小组编写完成后,需同项目中相关人员进行评审,以确保当前的计划与项目进度等方面是一致的。

  • 2.测试策略:一般情况下,较大型的项目会有附加的测试策略文档 ,即详情测试设计。与开发小组中的概要设计文档类似。测试策略文档编写完成后也需要由相关项目经理、开发人员进行评审 。了解测试设计的同时可以针对自己的开发习惯与出错点进行分析比较,使开发人员在项目早期避免一些Bug的产生。

  • 3.测试用例文档:前边已提到过如何提升测试用例设计思维,可见测试用例是考察测试人员真实测试技能与水平的一项活动。同时测试用例一般根据测试计划及测试策略来编写,测试计划中会写清楚case设计的颗粒度及测试范围等等,并运用测试策略中提到的一些设计方法,同时结合当前项目中业务的特性来完整、有序的编写。与项目小组评审时,目的是查漏补缺,让项目经理清楚覆盖面,从而更准确评估项目风险。

  • 4.测试报告 :主要供项目相关人员如项目经理、产品经理、开发经理、测试组成员及管理层查阅,以获得对本次项目的测试进度、产品问题等信息。并为后期迭代项目提供参考依据。

  • 5.缺陷报告:主要记录产品的相关质量信息,以使项目相关成员了解缺陷集中区域,及缺陷类型,利用统计好的图表更直观展示。

转载于:https://blog.51cto.com/hongz/2074374

测试计划和测试用例里的重点关注的部分

测试计划

最主要思考的是功能及其测试需求,从而有条不紊的从高层概念过度到可以被直接实现的底层细节。

测试用例

      

缺陷报告

缺陷编号(Defect ID)

缺陷标题(summary)

缺陷的发现者(Detected By)

发现缺陷的日期(Detected on date)

缺陷所属的模块(subject)

发现缺陷版本(Detected in release)

指派给谁(Assigned to)

测试报告

测试报告内容 >> 概述,内容,环境,时间,综述

 

 

白盒测试---基本路径 控制流图是一种有向图,可以形式化为: G = (N, E, N_entry, N_exit) N是节点集,程序中的每个语句都对应图中的一个节点,有时一组顺序执行、不存在分支的语句也可以合并为用一个节点表示。因为环形复杂数为5,所以最多有5条基本路径 : path1:1—2—4—5—6—7 path2:1—2—3—4—5—6—7 path3:1—2—3—8—4—5—6—7 path4:1—2—3—8—4—5—9—7 path5:1—2—3—8—4—5—6—9—7。 阅读详情

相关推荐

第五节 Amesim《直动型溢流阀HCD建模》HCD5 学习资料

利用HCD原则创建直动型溢流阀的界面。这可能包括图形化表示直动型溢流阀的工作原理、操作方式和调节方法。这样的界面应当直观且易于理解,使用户能够轻松了解阀门的功能和使用方法。

m0_58052642的博客 1330

测试在公司和哪些人员来对接,需要看哪些文档,需要写哪些东西。

一般只需和产品经理(项目经理)、开发人员、运维人员对接。 需要看需求文档、部署文档。 需要写测试用例、测试计划、测试报告、测试方案、缺陷报告。 测试计划和测试用例里的重点关注的部分。 测试计划: 1.测试环境 2.测试资源 3.测试策略 4.任务分配 测试用例:1.前置条件 2.操作步骤3.测试数据 4.预期结果 缺陷报告和测试报告的重点关注部分。 缺陷报告:1.缺陷标题...

hx_cly_zyq的博客 1041

浅析MOS管导通过程及RC吸收电路设计要点

RC吸收电路 米勒电容 MOS导通过程

liangbo1999的博客 2万+

你需要掌握的3种测试方法

  黑盒测试   在不了解应用程序内部工作原理的情况下进行测试的方法称为黑盒测试。 测试人员忘记了系统架构并且无法访问源代码。 通常,在执行黑盒测试时,测试人员将通过提供输入和检查输出与系统的用户界面进行交互,而不知道如何处理输入。      白盒测试   白盒测试是对内部逻辑和代码结构的详细研究。 白盒测试也称为玻璃测试或开箱测试。 为了在白盒上测试应用程序,测试人员需要了解代码的内部工作原理。   测试人员需要查看源代码以找出哪个代码单元/代码块行为不当。   灰盒测试   灰盒测

duoceshi的博客 447

PostgreSQL隐式类型转换全解析:告别operator does not exist

强类型数据库是现代数据系统的基石,它在带来严谨性的同时,也常常让开发者在类型不匹配报错前束手无策。当一条SQL因bigint与text比较而抛出operator does not exist时,根源往往在于对数据库隐式转换规则的误解。PostgreSQL通过pg_cast系统表将转换划分为隐式、赋值与显式三个级别,并依据操作符解析逻辑决定是否自动提升类型。理解这些机制,不仅能快速定位JOIN、UNION、函数调用等场景下的类型错误,还能帮助开发者合理使用EXPLAIN VERBOSE、pg_typeof等工

weixin_29587015的博客 304

QMT量化交易实战:如何用通达信预警数据自动买卖股票(附完整Python代码)

本文详细介绍了如何利用QMT平台结合通达信预警数据实现股票自动化交易,提供完整的Python代码实现。通过实时监控通达信预警板块文件,系统自动执行买卖操作,提升交易效率。文章涵盖系统架构设计、数据对接、信号处理、订单执行等核心模块,适合量化交易初学者和通达信用户参考实践。

weixin_29251567的博客 678

计算机测试之基本测试知识

文章目录测试流程1. 测试内容的原理与架构2. 具体测试流程3. 记录测试流程与结果 测试流程 在做测试的时候,主要有以下几个步骤 了解测试内容的原理或架构 测试前,先将测试流程(要测什么、怎么测)写出来。在测试过程中,尽量使用控制变量法,避免多个因素的影响。 记录测试流程与结果 1. 测试内容的原理与架构 测试定义:实际输出与预期输出间的比较过程 测试内容:正确性、完整性、安全性、总体质...

RunFromHere的博客 1497

1. BES2700ZP概述

恒玄BES2700采用RTX5操作系统,配合mindmics算法或者自研算法。

雪飞_海 4467

软件测试基础

软件测试目标 测试效率 测试覆盖率 软件测试的原则 一、测试证明缺陷存在,但不能保证系统不存在缺陷 二、穷尽测试不可能,设置终止条件 三、测试尽早进行 四、缺陷具备群集特性 五、测试的杀虫剂悖论:不定期修改测试用例和方法 六、测试的二八原则:20%重要模块测试 七、测试活动依赖于测试背景:安全性/并发性 软件测试分类 ————————————————————————...

洞玄之境的博客 1万+

C# 开发实战:深度解析 13.56MHz 射频卡读写应用

本文详细介绍了如何在 C# 环境下开发 13.56MHz 射频卡的读写应用。通过 ACR122U 作为硬件设备,结合 C# 提供的 COM 组件或 SDK,我们能够实现对射频卡的读取与写入功能。在实际开发中,开发者还需要根据具体应用场景选择合适的卡片类型与设备,并注意性能优化和异常处理。随着技术的发展,RFID 技术的应用场景会越来越广泛,开发者可以根据不同需求,灵活扩展读写功能,实现更加智能化和自动化的系统。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1602

从苏宁电器到卡巴斯基(第二部)第14篇:我在卡巴的日子 XIV

目录 WannaCry 我的感慨 邻里矛盾 WannaCry 如果大家对于科技互联网圈子的新闻比较感兴趣的话,相信会对2017年5月的“WannaCry勒索病毒”事件记忆犹新,因为这个病毒在当时的全世界范围内掀起了极大的波澜,众多的企事业单位深受其害,造成的金钱和数据损失难以估量,从某种意义上来说,它甚至引领了勒索病毒新一轮的爆发浪潮。而通过这样的一次爆发,也让我对于卡巴斯基的技术实力有了更进一步的了解。 我记得很清楚,爆发的那天是周六,没记错的话Seth那天有事,就请假没来,只有我自己在公司值

Gleam的专栏 4919

基本路径测试

基本路径测试

weixin_45979976的博客 9956

【WRF-Chem教程-附录B】使用 MOZART 与WRF-Chem

使用MOZART与WRF-Chem

WW、forever的博客 242

详解软件测试中基本路径测试法

基本路径测试法又称独立路径测试,是在程序控制流图的基础上,通过分析控制结构的环路复杂性,导出基本可执行路径集合,从而设计出相应的测试用例的方法。设计出的测试用例要保证在测试中程序的语句覆盖100%,条件覆盖100%。

萌面超人的博客 7万+

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

基本路径测试方法

基本路径测试方法 基本路径测试方法是在控制流图的基础上,通过分析控制结构的环形复杂度,导出执行路径的基本集,再从该基本集设计测试用例。基本路径测试方法包括以下4个步骤: void Sort ( int iRecordNum, int iType ) 1 { 2 int x=0; 3 int y=0; 4 while ( iRecordNum-- > 0 ) 5 ...

weixin_44931542的博客 2万+

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

白盒测试之基本路径测试法

基本路径测试法 基本路径测试是一种白盒测试方法,它在程序控制图的基础上,通过分析控制构造的环行复杂性,导出基本可执行路径集合,从而设计测试用例的方法。设计出的测试用例要保证在测试中程序的每一个可执行语句至少执行一次。 工具/原料 图形矩阵 控制流图 方法/步骤: 1、画出控制流图 使用控制流图制作方法对程序流程图进行简化,以突出的表示程序控制流的结构。 对于复合条件,则可将其分解为多个单个条件,并映射成控制流图。 2、确定程序基本集的独立路径数量,再确保所有语句至少执行一次的测试数量的上界。 需要注

weixin_44772874的博客 8287

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

白盒测试——基本路径测试

基本路径测试是将程序流程图转化为控制流图,通过分析控制结构的环路复杂性,进而找出路径的基本独立集,最终导出测试用例。 基本独立集: 从基本独立集导出的测试用例保证对程序中的每一条语句至少执行一次。 控制流图: 定义: 百度百科: 是一个过程或程序的抽象表现,是用在编译器中的一个抽象数据结构,由编译器在内部维护,代表了一个程序执行过程中会遍历到的所有路径。它用图的形式表示一个过程内所有基本块执行的可能流向, 也能反映一个过程的实时执行过程。 个人理解: 控制流图是顶点和有向...

qq_63635872的博客 8928

白盒测试——基本路径测试法

本次实验旨在通过白盒测试中的基本路径测试法,掌握其基本概念并应用于具体问题。实验内容包括绘制程序控制流图、计算环路复杂度,并设计测试用例以覆盖所有独立路径。以计算两个整数最大公约数的程序为例,实验步骤包括:1) 绘制控制流图并计算环路复杂度为3;2) 设计三个测试用例分别覆盖三条独立路径。测试用例1和2分别验证x>y和x<=y的情况,测试用例3验证不进入循环的情况。通过实验,学生能够理解基本路径测试法的原理,并提升具体问题分析能力。

枫原万叶的博客 1424

白盒测试-基本路径测试-例题解析

基本路径测试法的步骤: 1. 导出程序流程图的拓扑结构-流图(控制流程图) 2. 计算流图G的环路复杂性V(G) 3. 确定只包含独立路径的基本路径集 4. 设计测试用例

weixin_43845524的博客 2万+

基本路径覆盖法设计测试用例 (软件测试作业 基本路径测试)

前置知识:定义基本路径测试法又称独立路径测试,是在程序控制流图的基础上,通过分析控制结构的环路复杂性,导出基本可执行路径集合,从而设计出相应的测试用例的方法。设计出的测试用例要保证在测试中程序的语句覆盖100%,条件覆盖100%。测试步骤基本路径测试法包括以下4个步骤:描述程序控制流的一种图示方法;McCabe复杂性度量;从程序的环路复杂性可导出程序基本路径集合中的独立路径条数,这是确定程序中每个可执行语句至少执行一次所必须的测试用例数目的上界;

m0_56164661的博客 7286

白盒测试--基本路径测试法

1.为什么要有基本路径测试法? 对于路径测试,最理想的情况是路径全部覆盖,单对于复杂的大程序要做到路径覆盖是不可能的,因此可以采用基本路径测试。 2.基本路径测试法的步骤? (1)画出程序的控制流图 (2)计算环形复杂度 (3)求出基本路径集合 (4)根据独立路径设计测试用例。 3.关于控制流图的补充? 4.例子 (1)画控制流图。 化简控制流图 (2)环形复杂度为图中区域的数量,为4 封闭的区域有3个,最外面的区域算1个。 (3)写独立路径集合 4-6-7-14 4-6-9-10-12-4-14

失眠的树的博客 7344

测试基本流程

一测试流程 立项(确定项目)——>产品说明书(PRD)——>需求文档(需求人员)——>需求评审(开发、测试人员、经理)——>开发人员进行(详细概要设计——>编码——>自测——>提测)——>测试人员进行(测试计划——>编写测试用例——>测试用例评审)——>冒烟测试(测试主流程是否通过)——>功能测试——>禅道记录bug——>回归测试(验证上个版本出现的问题是否解决,是否出现新的问题)——>验收测试(客户、经理、需求、开发

罗先生 1万+

软件测试—第六章白盒测试基本路径测试法

一,基本路径法 1,为什么使用基本路径法 一是降低了测试用例设计的难度。只要搞清了各种流程,就可以设计出高质量的测试用例来,而不用太多测试方面的经验。 二是在测试时间较紧的情况下,可以有的放矢的选择测试用例,而不用完全根据经验来取舍。 2,什么是基本路径法 从一个程序的入口开始,执行所经历的各个语句的完整过程。在不能保证做到所有路径覆盖的前提下,需要对路径数量进行压缩,如果可以保证程序中...

XU_MAN_的博客 2万+
上一篇: 基本的开发流程模型
下一篇: linux初步学习,简单的命令
我欲凌霄
博客等级 码龄6年 2粉丝 12原创
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值