前言:想要写出一篇令人眼前一亮的文章吗?我们特意为您整理了5篇软件测试论文范文,相信会为您的写作带来帮助,发现更多的写作思路和灵感。
在国内,目前大型的软件工程中大都使用国外的软件测试平台,我们在测试工程中使用法国的LOGISCOPE测试平台对C语言开发的实时嵌入式软件进行测试。
由于实时嵌入式软件主要是对外部接口设备进行控制,而被送检的软件需要大量不同的硬件环境,在进行测试时,由于无法建立大量不同的接口设备的硬件仿真环境,每当执行输入输出指令时,程序便无法继续运行,因此,测试软件无法完整地覆盖整个程序的各个分支和语句。同时,被测试软件常常需要多个模块同时对某个外设进行共同测试,需要通过网络环境进行集中测试。
为了完成对各种实时嵌入式软件的测试工作,我们研制开发了基于网络的接口设备的软件仿真环境,使得用户程序运行时不再需要真正的接口硬件设备,而是与仿真软件进行通讯,交换数据,从而使得被测程序在脱离硬件的环境中顺利运行。本课题主要解决C语言和汇编语言混合编程中,把所有原来控制外设的输入输出指令都修改成与仿真软件进行通信的函数,同时,把原来由硬件触发的中断处理功能转由软件触发,以及通过网络环境完成多模块的集中测试。
本课题的意义在于建成一种通用的方法,使得不同软件开发的程序都能够使用这些功能模块与接口仿真软件进行通信,从而顺利地进行软件测试。
被测软件的运行环境绝大多数是基于DOS的,在仿真环境下进行测试时,由于原来的硬件环境不再存在,因此要求对被测软件进行相应的修改,使其在一个新的系统模型当中运行:原来与硬件进行I/O的指令,变成对仿真软件通讯动态链接库中函数的调用;由硬件触发的中断信号变成来自仿真软件的消息;更重要的是,原来由CPU负责调度的中断服务函数必须由新的模型来负责(因为不再有硬件中断信号),而由于DOS是一个单任务的操作系统,系统模型需要解决以下的问题:系统如何在程序运行的时刻检测到通过网络发过来的“中断信号”,如何中断当前的程序,去执行相应的中断服务函数,如何具有中断嵌套的功能。
基于以上要求,系统模型采用以下两种:
基于DOS的多任务调度系统模型
基于Windows多线程环境的系统模型
2.基于DOS环境的多任务调度模型
2.1实现原理
想要在DOS环境下实现多任务调度,必须使每个任务具有自己的堆栈。首先,栈用来实现任务切换,其次,它用来存贮任务的局部变量。
任务的切换是通过调用一个子程序来实现的,该子程序将堆栈指针由原来指向老任务的堆栈置为指向新任务的堆栈。程序返回时,新的任务指令指针(IP)就从栈中弹出。新任务就开始自动开始执行。
这个负责调度的子程序是通过时钟中断来定期触发的。当产生时钟中断时,需要做两件事情。首先,将标志(Flags)寄存器的内容压入栈中,其次,紧跟在指令指针(IP)之后,将CS(代码段)也压入栈中。最后,将中断服务子程序的段地址装入CS寄存器中,将偏址装入IP寄存器中.这样可以使ISR开始运行.中断返回时,CS,IP和Flags寄存器的内容自动弹出。为了实现任务的调度,新的时钟中断服务函数要完成两项工作。首先,它将除了栈指针(SP)和栈段(SS)寄存器之外的所有寄存器的值都存到栈中。(SP和SS的值存在另外的位置)。其次,它改变SS和SP寄存器的值,使它们指向另一个任务的堆栈。因此,当ISR返回时,新的任务的堆栈被弹出到各寄存器中,这使得机器的状态是针对新的任务的。由于IP中也是弹出的寄存器的值,因此新任务就开始执行。
在任务运行前,它必须按一定方式使堆栈初始化,这样使得当第一个时间片到来时,从栈中弹出的值能够使该任务从头开始运行。因此,任务的堆栈必须初始化并存放正确的寄存器值,同时指令指针也必须指向程序中的第一条指令。
2.2调度内核实现所用到的数据结构
interrupt类型
当说明一个函数为interrupt类型时,它告诉编译器自动保存所有寄存器(sp和ss除外)的值,并且IRET指令终止该函数。每当进入到interrupt函数时,执行下列指令:
pushax,pushbx,pushcx,
p
ushdx,pushes,pushds
pushsi,pushdi,pushbp
发生中断时,CPU自动将Flags,cs和IP寄存器压栈。因此,在interrupt函数入口处,堆栈如图2.2.1.2所示。我们将利用interrupt函数的栈的安排方式对要执行的任务的堆栈进行初始化。
Bp<-topofstack
DI
SI
DS
ES
DX
CX
BX
AX
IP
CS
PLAGS
任务中使用的寄存器的数据结构
typedefstructint_regs{
unsignedbp;
unsigneddi;
unsignedsi;
unsignedds;
unsignedes;
unsigneddx;
unsignedcx;
unsignedbx;
unsignedax;
unsignedip;
unsignedcs;
unsignedflags;
};
此结构严格按照interrupt函数入口处堆栈的结构定义,初始化时,将结构中的代码段(CS),指令指针(IP)设置成构成此任务的函数的段地址和偏移地址。
用于任务管理的数据结构
structtask_struct{
unsignedsp;
unsignedss;
unsignedchar*stck;
unsignedLastTask;
unsignedIntNum;
unsignedStatus;
}
当执行任务切换时,sp和ss保存当前栈指针和堆栈段地址,而任务调度程序将当前栈指针(_SP)和栈地址(_SS)设置成下一个将要执行的任务的栈指针和栈地址,当调度程序结束运行时,由于从栈中弹出的各个寄存器,包括代码段和指令指针都是指向新任务的,因此,新任务将自动运行,从而达到任务切换的目的。
2.3应用多任务调度功能实现对中断的仿真处理
由于被测试的用户源程序是工作在仿真环境下,无法接收硬件产生的中断信号从而自动执行相应的中断服务程序。因此,改编后的程序应该能够定期检查是否有从仿真软件发过来的中断信号,若有,则中断当前程序的执行,转入相应的中断服务函数执行。
因为用户的程序当中显式地设置中断向量,在改写用户的程序时,将每个中断服务函数入口都置于一个向量数组当中,此数组即为全局中断向量表,将任务号与相应的中断号一一对应。
当时钟中断触发任务调度程序时,调度程序首先检测由仿真软件发来的中断信号,如果有,则调度程序在当前运行的任务的数据结构中保存堆栈段段地址寄存器(_SS)、栈指针寄存器(_SP)、当前任务号,并将堆栈段段地址寄存器和栈指针寄存器设置成新的中断服务程序所在的任务的相应的值,使得当调度程序返回时,能够从新的任务开始运行。然后生成一个新的任务,在此任务当中调度对应于此中断号的中断服务程序这样就可以实现中断功能。
3.基于Windows多线程环境的系统模型
3.1实现原理
考虑部分由C语言编写的实时嵌入式程序经过适当的修改可以由VC编译后,在Windows环境中运行。因此可以利用Windows的多线程特性构造系统模型:把用户的主函数放在系统初始化时生成的一个主线程当中运行,同时,系统主函数监测由Socket端口发来的数据,如果是一个中断产生信号,系统主函数挂起当前正在执行的线程,新生成一个新的线程,并在新线程中执行相应的中断服务函数。
3.2系统的结构
由于CSocket类不能够由各个线程之间共享,而各个线程内部又要通过Socket端口接收和发送数据,因此应建立高效而又防止各线程之
当线程需要通过Socket接口收发数据时,首先检测/设置相应函数的信号量,若此资源不能使用,则线程被自动挂起。系统的主调函数负责轮询来自Socket接口的数据以及各个信号量资源,当资源可用时,唤醒相应的线程,完成其请求的操作。如果接收到中断产生信号,则生成新的线程,并挂起当前的线程,从而完成对中断请求的响应。
4.结束语
本文介绍了针对实时嵌入式软件的测试工具的研究与完善工作,根据不同的软件特点,
构造了两种系统模型。通过实际的使用,都达到了比较满意的结果。
这两种系统模型经过适当的修改,可以应用在其它语言编写的软件上,从而可以实现通用的模块功能。
参考文献
吕强杨季文等C语言的DOS系统程序设计清华大学出版社
李沐孙TURBOC常驻内存实用程序及窗口式软件编程技术北京科海
陈宗海基于C/S体系的工业过程仿真模型调试环境.计算机应用.1999,4
张海藩软件工程导论.清华大学出版社,1995
软件的功能划分为4类:变电站管理、装置程序维护、在线浏览操作、一键归档分析功能。定义上位机调试软件为控制方向,装置侧服务器程序为监视方向。
1、1变电站管理
变电站管理功能按照不同电压等级、间隔名称,分层次多级目录管理若干装置。可新建、打开和关闭变电站工程;支持在人机界面中输入装置地址发起连接请求创建装置;支持装置重命名、排序、复制、粘帖和导入导出等操作。以层次树的资源管理器方式展示变电站结构。装置分离线和在线两种状态,离线模式下可进行数据分析、离线定值设置、主画面编辑等操作,在线模式下可进行程序维护、状态浏览、数据归档收集等操作。
1、2装置程序维护保护测控装置调试软件设计与实现上传配置文件、日志文件等文本。控制方下发需要上装的文件名,监视方打开文件,并分段上传数据,到达文件尾部后给出结束帧标记,控制方将数据存储到文件。上装是下载的反向过程。在程序运行调试过程中,往往需要通过调试相关变量进行状态诊断。在调试上位机程序时,可以使用IDE或gdb等进入调试状态,设置断点并查看变量值。嵌入式装置在运行状态下,监视相关变量时不能随意切换到调试状态,而是将调试变量作为一个实时响应的处理线程。通过调试变量协议,控制方下发需要调试的变量名,装置侧获取相关变量的地址信息和类型后,访问变量地址,读取数据,周期上送变量值,控制方显示实际值。调试变量的关键步骤是获取变量的地址,全局变量可以通过分析编译器形成的map文件获取,对于动态分配的内存,则需通过辅助手段实现。为此制定相关嵌入式程序编程规范,用结构体元件来封装各功能模块数据。元件结构体的内存是动态分配的,编译器在编译时没有为其分配静态地址,map文件里没有这些变量的地址信息。需要在装置启动阶段才能得到变量地址。对于动态分配内存的结构体变量,装置侧提供注册接口,可记录首地址。调试软件根据输入的元件结构体类型名、成员变量名、文件存放路径和CPU字节对齐等信息,对相关的文件进行词法分析和语法分析,进行宏表达式求值,计算出变量在结构体中的偏移量,并下发相对偏移信息。装置侧程序由结构体首地址+变量的相对偏移地址得到变量的真正地址。调试人员只需输入层次实例名,不需手工计算变量地址,调试软件在计算相对地址时已考虑了各种CPU的字长对齐设置。调试变量的流程如图3所示。可通过查询内存的功能实现一次查看连续区域内存数据。控制方可下发查询起始绝对地址,监视方一次回复若干个字节的内存数据。也支持通过下发变量名的方式查询内存。
1、3在线浏览操作在线浏览的通信协议基于继电保护国际标准规约IEC60870-5-103协议[6],可以实现不同厂家的设备、后台的交互通信,减少了私有协议转换过程,方便运行管理和维护。其协议结构如图4所示。类结构图如图5所示。在线浏览操作功能包括:装置模拟量开关量实时显示、装置定值整定和比较、可编程逻辑编辑和状态显示、事件查看、动作报告显示、波形文件上传和分析、HMI遥控模拟、信号复归等。通过在线浏览模块,可实时显示装置的状态数据、参看监视报文、分析跳闸逻辑、查看并设置定值、开关分合遥控等操作。其中涉及到遥控、定值整定、报告清除等关键操作,需要输入用户名和密码,进行权限校验。以定值设置整定为例,其报文交互流程如图6所示。
1、4一键归档分析通过一键归档操作,批量上装日志文件、配置文件等文件,自动截取装置当前的断面数据(包括装置模拟量、状态量、定值、报告、用于问题诊断的特定变量等内容),将各分立文件压缩存储为一个数据包。当现场运行的装置出现异常或跳闸动作时,通过一键归档,可自动打包相关数据,并以邮件方式发送到指定邮箱,装置研发人员可离线打开查看分析。
2软件风格设计
2、1基于软件管家模式由于软件功能复杂,采用了模块化设计思想,进行分层、分模块设计,以去除界面、数据、接口之间具体耦合,方便扩充。调试软件由引导主进程和按照功能划分的子进程组成。如图7所示,引导主进程是安装软件的启动程序,提供变电站资源管理器功能,在左侧树形区域点击装置节点时,会在右侧按照模块划分,分类显示相关功能。点击功能图标,传入形参,启动独立的子进程。通过组件化的设计思路,可确保增加一个新的模块时,不会影响已经稳定的模块。基于子进程的软件管家模式,也减少了人机界面的操作复杂度,用户在一个时间段内只需专注于单一图4在线浏览报文协议结构图5在线状态浏览类结构图图3调试变量流程图2《工业控制计算机》2014年第27卷第11期的功能,并可快捷地切换到另一个功能的操作界面。
2、2类浏览器界面风格当各个子进程启动后,为避免顶层窗体过多,采用类似Chrome的界面风格,用标签页管理子进程的界面。对各子进程的界面、颜色进行了统一设计,基于QT-CSS技术,设计了统一的界面风格库,并提供风格设置接口,可设置标签页QTabWid-get、层次树QListTreeWidget、停靠栏QDockWidget等控件的边框、缩进、标题、字体、颜色等内容。类浏览器的界面规范使不同人员开发的子进程在风格上高度统一。
3软件分层设计
除按照主进程-子进程的模块化设计外,单个通信子进程按照分层原则设计,共分为三层,最底层为数据收发层,中间层为数据处理层,最上层为展示层。如图8所示:图8软件分层结构数据收发层的功能是负责从装置接收报文并将数据处理层的报文发送到装置。针对不同类型的装置,该层需要支持串口通信、以太网链路层通信与以太网传输层通信三种通信方式。同时为了保证通信状态的可靠性,数据收发层还支持出错重传及超时重传机制。其中网络通信采用ACE中间件实现,串口通信采用Qt的QExtSearialPort实现。数据处理层是整个系统的主体部分,主要负责报文解析,报文生成,提供接口供展示层调用,实现了业务与操作接口的分离。展示层提供数据的展示与用户交互功能,不涉及具体的业务流程处理。针对不同的数据,展示层提供二维表格、层次树等不同的展示方式,采用Qt的Model-View模式,可高效快速显示刷新数据。展示层还提供个性化的右键菜单、按钮与工具栏。当用户点击某个菜单或按钮时,展示层会调用数据处理层的对应接口,对用户的操作进行处理。
4结果
实现与分析软件主界面如图9所示:左侧为资源管理器,用来管理变电站,变电站下支持新建多个装置。右侧为工作区,用来展示当前活动装置支持的功能。图9软件主界面点击工作区某个功能按钮,主进程将启动相应的子进程。以在线浏览功能为例,图10所示为装置报告查看界面。
5结束语
关键词 电子商务 动态实验 模拟环境 教学体系
中图分类号:G424 文献标识码:A
1 绪论
1.1 研究的意义
目前高校逐步建立了电子商务专业综合实验室,通过计算机硬件和电子商务软件来构建综合电子商务实验环境。电子商务是集经济学科、管理学科、信息学科、计算机学科的交叉和边缘学科,它的综合性学科特点决定了电子商务理论知识和实验教学具有复杂性和多样性的特点。电子商务理论知识是实践教学的基础,理论知识让学生深入了解整个电子商务框架结构,而实验教学则是实现专业实践教学的重要训练手段,只有通过实验教学,模拟现实环境和参与企业实践,才能使学生深刻领会电子商务的理论框架、概念模型、技术手段、表现形式、交易规则,应用途径、技巧方法等,才能让学生了解企业电子商务需要什么专业人才。电子商务设计实验课程的合理性,实验教学方式多样性,实验教学的先进性都将直接影响到电子商务人才培养质量和培养目标。因此建立一个动态的、多层次、多样化的适合现代社会需求的电子商务实验室是电子商务专业建设目前亟需解决的一项重要工作。
1.2 研究的思路与结构
以建立一个现代的、动态的、多层次、多样化的电子商务实验环境也叫做实践教学体系为目标,综合运用现代实验教学方面的最新研究成果,通过对电子商务实验教学必要性和目前电子商务实验教学开展现状的分析,最终建立一个现代的、动态的、多层次、多样化的电子商务实践教学体系。
(1)现状背景分析:了解目前理论界对电子商务实验教学环境的研究和电子商务实验教学中存在的问题。
(2)理论模型构建:综合运用现代实验教学方面的最新研究成果,结合电子商务专业的特点,建立现代的、动态的、多层次、多样化的实践教学体系模型。
(3)核心观点形成:探讨如何运用此模型选择适当的电子商务实验教学模式。
1.3 国内外电子商务实验教学研究综述
目前电子商务实验教学环境作为电子商务课程教学的重要内容和组成部分,对于高校培养电子商务专业人才具有重要作用,影响到课程教学质量乃至人才培养目标的实现(杨红兵,2008)。国外高校较早开始了电子商务模拟环境的研究和尝试(Philip Joyce,1999;Howard Rosenbaum,2000),已经有很成熟的教学方法和实验环境,而国内高校电子商务实验环境与教学方式目前不是很成熟,主要是购买一些软硬件,学习国际上的成功案例(马洪娟,2010;樊斌,2010;陈晴光,2010;张金辉,2010;李曼,2009)。但是模拟实验软件内容很难与电子商务日新月异的发展速度相匹配,与实际电子商务也存在差距。伴随电子商务快速发展,在实验经费不足、实验课程内容复杂,教材更新速度慢,与社会联系少导致实际环境脱节,学生学习较为被动的局面,是一个亟需解决的问题(谈晓勇,2010)。目前电子商务教学方法研究上主要有,建立建全完善的电子商务教学体系,大融合的电子商务教学方法,个性化需求的电子商务教学方法和面向实际应用的电子商务教学方法等。
2 电子商务实验教学必然性
2.1 由电子商务的学科特点决定
电子商务人才培养模式中,除了强化理论教学外,还需要通过一些实践环节使学生对电子商务整个应用过程进行深入了解,同时学生也应该经常浏览和参与目前的电子商务网站的交易活动,才能有更清晰的认识。由于目前不可能让每个学生都到电子商务企业去参与各个方面的实习,所以电子商务实验教学成为链接电子商务理论与实践内容的重要桥梁与纽带。
2.2 由电子商务人才社会需求决定
21世纪是网络经济、知识经济和互联网高速发展的时代,电子商务领域的商业模式创新发展使得电子商务的人才需求范围得以持续扩大。而互联网的普及应用和移动商务的快速发展,包括电子商务、移动商务应用在内的互联网应用开始提速,相关的人才需求数量也相应增加。企业招聘电子商务人员多数希望招到既掌握一般计算机网络技术,又具有商务策划、营运推广、物流管理的综合型商务人才。对于电子商务人才必须要掌握相应的理论知识和网络技术在实践中的应用,两者相辅相成,缺一不可。因此,电子商务人才市场社会需求的特点,也决定了电子商务实验教学的必然性。
3 目前电子商务实验教学环境的现状
3.1 目前电子商务实验教学的主要环境
良好的实验环境是开展课程实验教学的基础,目前电子商务实验教学的主要环境有基于电子商务模拟软件的实验教学,基于互联网准公司的实验教学,基于实战型实验教学。基于电子商务模拟软件的实验教学,优势在于创立一种高度仿真系统,使学习者如身临其境,和现实情况很相似,更贴近真实的电子商务活动,自由空间更多,更加符合学生的思维习惯,学生在实验中学会电子商务工作的主要业务技能。目前电子商务模拟实验软件有多个开发公司开发,没有统一的标准,存在着流程固定、内容形式和版权保护等问题。随着电子商务在企业和用户中广泛应用,模拟实验软件内容很难与实际电子商务相似,于是基于实际电子商务网络应用的实验教学环境得到大多数老师和学生的喜爱。基于互联网准公司的实验教学环境为学生提供了一个全面、系统和灵活的实验训练,几乎和实际环境一样,保证了与现实发展同步,有效地解决了课程教学与实际需求脱节的矛盾。基于实战型实验教学是指在学校建立校园网网上商城,通过在学校内部进行推广使用,通过校内的电子商务对学生的实践能力,技术应用能力、社会活动能力的培养有更积极直接的影响,为学生提供了电子商务真实活动环境,为毕业以后的工作奠定了坚实的基础。
3.2 目前电子商务实验教学中存在的问题
目前,电子商务实验室建设在实际使用和操作中,主要存在以下问题。首先,电子商务实验室功能上的不完善,过多重视电子商务业务的实现,而忽视了一些辅助业务的环节,电子商务网站最大的优势是给学生提供了一个真实的实验环境,例如阿里巴巴、易趣网、京东商城、苏宁易购等电子商务网站,通过这些企业电子商务网站不仅使学生学习更具有现实意义,而且也可以为学生日后网上开店积累经验,对于提高学生的电子商务应用技能极为有利。但网上实验环境的缺陷是无法看到电子商务运作的全部流程,无法全面了解电子商务技术和管理内容,如域名申请与解析,搜索引擎设定,网络营销服务,第三方的业务接口等。因此,在实验教学中,必须和企业结合使用企业的电子商务系统让学生亲自体验电子商务中的厂商、消费者、银行、认证中心、物流等各环节的具体操作过程和管理内容。电子商务模拟软件将电子商务的业务流程固定化、实验流程固定化,系统一定开发完成,很少能够根据各学校的应用需求进行个性化和本地化的开发,虽然业务固化固然加强学生对这一流程的深入了解,但是过于强调流程固化,对学生创造性思维培养极为不利。由于电子商务的快速发展,教学老师具有很深的理论知识,但是缺乏一定的实践经验,和实际有可能有些脱节,因此,加强教师队伍建设,让教师进入企业实习,提高教师的实践动手能力也是重要的内容。
4 现代化电子商务实验教学体系的构建
电子商务教学实验环境不应仅仅包括实验教学的软硬件设备,而应该是一个现代的、动态的、多层次、多样化的立体实践教学体系。既要考虑学校的基础条件,也要考虑今后发展的可扩展性,它应该既要包括传统的实验室教学软硬件,同时还应该包括完整的教学组织模式和丰富灵活的教学支持。
为了弥补传统的电子商务实验教学环境的不足,我们应在此基础上进行扩展,首先,以专业竞赛带动实践教学,组织教师和学生参与政府、企业和学校举办的各种专业竞赛,师生通过专业竞赛能够调动大家的主观能动性和学生参与电子商务竞争意识,培养学生的学习兴趣和创造性思维能力。
其次,利用互联网资源。比如目前有很多的电子商务网站,通过电子商务网站流程了解一部分实验环境,同时利用互联网上电子商务网站源代码,下载并安装在学校的服务器上,让学生了解建立互联网网站的整个过程,同时熟悉网站的管理流程、资金结算等信息。
另外,通过校企合作开展电子商务实验。企业永远站在市场的最前沿,通过企业建立学生实验实训基地,教师利用企业实训基地进行现场教学,学生参与商业软件测试版测试,到企业直接顶岗实习,同时企业也为学生建立实习导师,采用双导师制,同时指导学生将理论知识应用到企业实践中,双导师根据学生的实习情况给予指导,开展现场教学,使学生在实验中得到锻炼,了解目前电子商务可能会出现的各种问题,进而提高分析问题、解决问题的能力。
最后,学校组织编写实验大纲、实验教材,教学指导书、学生实验报告、实验记录卡,师生答疑与反馈交流平台等,对学校组织学生参与电子商务实验教学而言,都是必不可少的。
通过建立电子商务教学动态实验环境,按照体现基础性、先进性、系统性、综合性和创新性的原则,建立分层次、多模块、互相衔接的、科学系统的实验教学体系,全面提高电子商务实验教学水平,使学生完整、系统地掌握电子商务实验的基本原理、方法和技能,才能培养满足社会需求的电子商务实用人才。
参考文献
[1] 齐向明.经济管理类本科专业“五三一”实践教学体系研究[J].中国科技论文在线,2007.11.
[2] 曾晓彬.试论经济管理类本科人才培养的实践教学体系[J].实验室研究与探索,2007(1).
[3] 毛太田,邹凯.电子商务专业课程体系与培养模式探讨[J].中国科技论文在线,2004-02-13.
[4] 何宏贵,何建民.电子商务专业实践教学研究[J].中国现代教育装备,2007(7).
[5] 杨红兵.电子商务教学实验模拟系统的分析与设计[D].电子科技大学,2008.
[6] 马洪娟.电子商务专业实践教学体系的研究与构建[J].商业经济,2010(12).
[7] 陈晴光.电子商务课程群实验教学内容体系研究[J].中国科教创新导刊,2010(13).
[8] 张金辉.浅谈电子商务实践教学[J].新课程(教研),2010(5).