软件测试里的可访问性测试方法

全面掌握软件测试:从零基础到实战技能提升 软件测试是确保软件质量的关键步骤。它包括对程序的执行和分析,以查找软件产品中的错误、缺陷或不符合预期的行为。测试工作不仅限于发现缺陷,也包括验证和验证软件的功能是否满足客户需求、业务目标和规定的标准。 阅读详情

今天来简单描述下可访问性测试方法。

可访问性测试是软件测试的一种,它是测试软件应用程序对具有一定残疾的个人的易用性的过程。这样做是为了确保任何新的组件都可以方便身体残疾的人使用,尽管他们各自有任何障碍。

可访问性测试是系统测试过程的一部分,在某种程度上类似于可用性测试。在可访问性测试过程中,测试人员使用系统或组件,就像它将被残障人士使用一样。这些人可能有视力障碍、听力障碍、学习障碍或器官功能不全。

可访问性测试是可用性测试的一个子集,其中所考虑的用户是残疾人士。这个测试的重点是验证可用性和可访问性。

无障碍测试的目标:

为残疾人市场服务。

遵守无障碍环境法例。

避免潜在的法律诉讼。

残疾类型:

以下是残疾的类型:

视觉障碍:

包括完全失明、色盲或视力差。它还包括一些视觉问题,如视觉频闪和间歇性闪光问题。因此测试软件布局的亮度和对比度是否可调。

身体障碍:

它包括难以使用键盘或鼠标。它还包括缓慢和懒惰的身体,如手部运动和肌肉迟钝。因此,软件的测试是为了方便懒人。

听力障碍:

它包括耳聋和听力障碍等听觉问题。它还侧重于听清楚或听清楚的困难。因此,测试软件是否能被听力较差的人正确使用。

认知障碍:

它包括学习困难、记忆力差和理解复杂场景的问题。因此,为了使软件可靠,测试它是否能被一个记忆力差的人使用。

学习障碍:

它包括阅读问题和词汇困难的问题。因此,测试软件的语言是否兼容阅读,所使用的单词是否易于理解。

可访问性测试可以通过两种方式执行:

1. 手动测试:

市场上有各种可用的工具来测试软件应用程序的可访问性,但可用的工具可能是非常昂贵的和/或根据需求不太熟练。因此,需要执行手动测试来检查软件产品的可访问性。例如:

(a)检查软件产品亮度。检查是否可调。检查它对视力较差的人是否有好处。

(b)检查软件的声音表现。检查它是否能被聋人正确使用。

(c)将字体大小修改为大:我们可以使用大字体,并检查可用性。
(d)测试标题:在这里,我们将测试标题是否可见,并确保它具有表现力。正如我们所知,当我们访问Facebook应用程序时,有时图片和视频需要大量的时间来加载,其中的说明文字将帮助我们了解图片和视频中的内容。
(e)通过禁用样式:我们可以禁用该方法并测试表的内容是否准确对齐。
(f)我们可以使用高对比度模式:如果我们可以使用高对比度模式,我们可以突出网站的内容。当我们在窗口中打开高对比度模式时,网站的内容会自动高亮显示,因为它变成了白色或黄色,背景变成了黑色。

2. 自动化:

自动化被广泛应用于不同的测试技术中。在自动化过程中,可访问性测试有几种自动化工具。这些工具包括:

(a) webbanywhere -这是一个屏幕阅读器工具。

(b) Hera -用于检查软件应用程序的样式

最后感谢每一个认真阅读我文章的人!作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,坚持几天便放弃的感受的话,在这里我给大家分享一些软件测试的学习资源,这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,希望能给你前进的路上带来帮助。如果你用得到的话可以直接拿走:

软件测试资料领取:[内部资源] 想拿年薪40W+的软件测试人员,这份资料必须领取~

软件测试面试刷题工具领取:软件测试面试刷题【800道面试题+答案免费刷】

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

【ChatGPT实战案例】ChatGPT如何帮助产品经理高效工作? 1. 产品经理主要工作方向, 2. 具体工作中,向ChatGPT提问参考 阅读详情

相关推荐

【Unity报错】Unity导入海康SDK 报错 DllNotFoundException: PlayCtrl assembly

2.尝试按网上其他的办法(包括使用depengs查看dll依赖等)1.先检查Plugins文件夹中是否存在PlayCtrl文件。3.如果网上查阅的办法都不能解决,请继续往下看。更换低版本的SDK库文件。

weixin_42968584的博客 1127

测试可访问性文档:帮助系统

摘要 软件可访问性测试中,帮助系统(如文档、工具提示)常被忽视,但其不可访问性会显著影响残障用户体验并带来合规风险。本文提出专业测试框架:1) 结构测试:验证文档语义层级与辅助技术兼容性;2) 内容测试:确保语言简洁度符合WCAG要求;3) 多媒体测试:检查字幕、键盘可操作性等;4) 上下文测试:评估动态帮助的精准性。通过结合自动化工具(如axe-core、WAVE)与残障用户测试,可降低20%用户体验缺陷。案例显示,优化帮助系统后用户满意度提升25%,支持成本减少40%。未来需关注AI驱动测试与全球化合规

2501_94436372的博客 1001

基于STM32F407标准库与SimpleFOC实现无刷电机2804位置闭环控制的实战解析

本文详细解析了基于STM32F407标准库与SimpleFOC算法实现2804无刷电机位置闭环控制的实战过程。通过硬件选型、速度闭环调试到位置环PID参数整定,提供了完整的工程实现方案和抗饱和策略,帮助开发者掌握高精度电机控制技术。

oauth7security的博客 918

Web可访问性测试:全面合规指南

本文全面解析Web可访问性测试的核心要点:1)强调WCAG2.2等国际标准的重要性和合规要求;2)提出系统化测试策略,包括手动测试(键盘导航、屏幕阅读器)、自动化工具(AXE、Lighthouse)和用户测试相结合;3)分享常见挑战解决方案,如动态内容处理和移动端适配;4)提供实施指南,建议将可访问性测试融入开发全流程。文章指出,随着2025年法规趋严,测试人员需掌握这些方法,既能规避法律风险,又能提升产品包容性。

2501_94471289的博客 1008

数据库行转列的sql语句

 问题描述假设有张学生成绩表(CJ)如下Name Subject Result张三 语文 80张三 数学 90张三 物理 85李四 语文 85李四 数学 92李四 物理 82现在 想写  sql 语句     查询后结果 为    姓名 语文 数学 物理张三 80 90 85李四 85 92 82       该怎么实现 ?研究意义        这是个并不复杂的问题,但却是数

jb303的专栏 2248

ShardingSphere分库分表教程,java后端开发面试题

???? 简介:Java领域优质创作者????、优快云哪吒公众号作者✌ 、Java架构师奋斗者???? ???? 扫描主页左侧二维码,加入群聊,一起学习、一起进步 ???? 欢迎点赞 ???? 收藏 ⭐留言 ???? 目录 一、分库分表 二、分库分表的方式 1、垂直分表 2、垂直分库 3、水平分表 4、水平分库 三、分库分表带来的问题 1、学习成本问题 2、事务问题 3、跨节点join问题 4、跨节点的count、order by、group by以及聚合函数问题 5、数据迁移、容量规划、扩

m0_64205716的博客 3016

软件测试类型大集合(105个示例汇总)

软件测试类型是将不同测试活动进行分类,每一类都有明确的测试目标、测试策略和测试成果。划分测试类型的目的是针对既定测试目标对被测应用程序(AUT)进行验证。例如,可访问性测试的目标是验证被测应用程序(AUT)是否便于残疾人使用。因此,如果你的软件解决方案必须对残疾人友好,你就需要依据可访问性测试用例对其进行检查。一份包含100种软件测试类型及其定义的列表。这是任何质量保证(QA)专业人员的必读内容。可将其视为你了解所有软件测试类型的指南。1、

MJH827的博客 1124

Cadence电路原理图全部变成黄色如何解决?

Cadence电路原理图全部变成黄色如何解决?现象:解决方法: 最近用cadence仿真锁相环,拷贝师哥的library后打开,发现schematic中全部变成了黄色,但可以正常修改元件参数,正常仿真。仅仅影响使用效果,看起来超级难受。 现象: 1.电路元件及连线全部变为黄色 2.可以正常修改参数,电路ADE仿真 如下图所示: 解决方法: 重新导入display.drf文件,步骤如下: tool——Display Resource Manager,截图如下 完成上述步骤,显示如下界面,选择Merge选项

virtuoso~晓晓 1万+

抢先看!2024年6大软件测试趋势

在本博客中,我们深入研究了预计将塑造 2024 年及以后行业格局的六大关键软件测试趋势。

励志做最业余的专业博主,控件产品可以私我~ 1995

保姆级教程:用GD32F470的EXMC Bank0 Region0与FPGA实现16位并行通信(附完整代码)

本文详细介绍了如何利用GD32F470的EXMC Bank0 Region0与FPGA实现16位并行通信,涵盖硬件连接、寄存器配置、时序优化及FPGA接口设计等关键步骤。通过实例代码和调试技巧,帮助开发者快速掌握高效数据交互技术,提升嵌入式系统设计能力。

weixin_26918763的博客 226

铁路场景雷达点云目标识别与追踪系统

本文介绍了一种基于毫米波雷达的铁路货运车站安全监控系统。该系统采用分布式架构,通过多个毫米波雷达节点采集点云数据,经过坐标转换、多雷达融合等处理后,利用机器学习算法实现列车、行人等目标的实时识别与追踪。系统包含数据采集层、处理层、目标识别层、追踪层、预警决策层和可视化层,能够克服传统视频监控受环境影响大的缺点,实现全天候可靠监测。文中详细展示了雷达数据解析和点云预处理的代码实现,包括坐标转换、数据格式解析和体素网格滤波等关键技术。该系统可有效预警铁路场景下的碰撞风险,提升货运车站的安全管理水平。

huanghm88的专栏 125

企业软件可访问性测试全面指南

企业软件可访问性测试是确保产品能被残障人士使用的关键环节,涉及视觉、听觉等多类障碍。其重要性体现在法律合规、商业价值及用户体验提升等方面。测试方法包括自动化扫描、手动模拟及专业工具检测,需遵循WCAG标准。尽管面临技术复杂、资源不足等挑战,但通过建立标准、加强培训、工具整合等措施可有效应对。建议采取"测试左移"策略,将可访问性纳入开发全流程。随着法规完善,可访问性测试已成为企业社会责任和战略发展的必要组成部分。

2501_94456679的博客 710

华为OD机试真题-国际移动用户识别码(IMSI)匹配

华为OD机试双机位C卷 国际移动用户识别码(IMSI)匹配 , 提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解。华为OD机试 - 国际移动用户识别码(IMSI)匹配

qq_45776114的博客 4927

‌测试可访问性银行应用:面向软件测试从业者的专业实践指南

摘要:本文探讨银行应用可访问性测试的关键要点,强调金融数字化背景下无障碍服务的重要性。从测试标准体系(WCAG2.1等)、测试策略(自动化+人工+用户三重验证)到典型缺陷模式(无语义标签、焦点丢失等),系统阐述如何确保银行应用满足残障用户需求。测试从业者需兼顾技术验证与用户体验,采用专业工具与用户实测相结合的方式,实现真正的数字包容性。

2501_94449311的博客 355

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

深度学习工具包 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")

【软件测试】软件测试分类与方法解析:目标到工具

本文详细介绍了软件测试中的不同的测试分类,包括按照不同的维度进行分类,按照测试目标、执行方式、测试方法、执行阶段进行分类;如静态测试、动态测试、白盒黑盒灰盒测试、单元测试、集成测试、系统测试等。

卜及中的博客 1131

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

‌政府网站可访问性测试专业实践指南:面向软件测试从业者的实战框架

中国政府网站的可访问性测试必须以《GB/T 37668-2019 信息技术 互联网内容无障碍可访问性技术要求与测试方法》为唯一法定技术基准。该标准等同采用WCAG 2.0,并融合本土化适配,明确要求政府网站必须满足‌。美国USWDS(United States Web Design System)的测试策略表明,‌。依据中国信通院2025年数据,全国已完成超3000家政府网站无障碍改造,其中‌。‌,此方法在政府项目中应被制度化。政府网站可访问性测试应构建“‌。政府网站可访问性测试已进入‌。

2501_94436372的博客 1012

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

智能软件测试方法探究

本章根据汇总资料通过AI生成,仅供参考

manok的专栏 385

DeepSeek 与 ChatGPT:软件测试领域的智能助手大比拼

本文将从实际应用场景出发,深入探讨这两款工具在不同测试任务中的独特优势,并结合实际案例展示它们如何帮助测试人员提升效率和质量。

伤心的辣条 800

‌测试可访问性电子商务:购物流程

本文探讨电商购物流程的可访问性测试,指出全球超10亿人面临数字访问障碍,忽略可访问性既违反法规又损失收入。文章分解购物流程四个阶段(产品浏览、购物车管理、结账支付、订单确认),详述各阶段测试焦点、常见问题及解决方案,强调需遵循WCAG2.1原则。提出专业测试策略,包括自动化与手动测试结合、用户参与测试,并分析行业案例。结论指出可访问性测试是构建包容性数字体验的核心,需融入开发生命周期,实现商业价值与社会责任的双赢。

2501_94449023的博客 293

如何选择好的软件测试技术?

软件测试技术是指测试软件或软件一部分的方法或方式。每种测试技术都有其自身的优势。不同的技术针对不同类型的缺陷。因此,说一种技术是最好的是错误的。根据软件及其要求,一种测试技术可能比另一种更适合用于该目的。有时,结合使用不同的测试技术可能是测试软件的好方法。讨论确定应使用哪种测试技术的各种因素:时间限制–根据分配给测试的时间线,它有助于消除and/or选择测试类型。例如,测试时间较短的软件很可能会跳过耐力测试。预算–预算可能会限制测试的不同方面,例如,资源,测试用例等,可能会影响测试技术的选择。

主要分享测试的学习资源,帮助快速了解测试行业,帮助想转行、进阶、小白成长为高级测试工程师。 787

软件测试和车载测试的区别

软件测试和车载测试虽看似相似,实则存在诸多差异。接下来,让我们一同深入探究二者的不同之处。

人生不怕起点低,就怕没追求 1048
上一篇: postman的常见断言
下一篇: 使用Selenium破解滑动验证码的原理及解决思路
程序员可可
博客等级 码龄2年 3536粉丝 428原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值