时间:2022-11-22 13:09:23
绪论:在寻找写作灵感吗?爱发表网为您精选了8篇软件测试论文,愿这些内容能够启迪您的思维,激发您的创作热情,欢迎您的阅读与分享!
在国内,目前大型的软件工程中大都使用国外的软件测试平台,我们在测试工程中使用法国的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
1.1测试设计重点偏离使用QC软件测试发现bug统计,如表1所示。根据表1工作量统计,25人/日为5个中级测试工程师一周的工作量,但是根据测试用例发现的bug数量仅占bug总量的44.18%,该比例显示测试用例的设计重点严重出现偏离。需要在测试用例设计的方向上进行调整。
1.2测试过程不可控QC软件测试计划中测试执行阶段为2013.3.8-2013.3.27,执行三轮测试;实际测试时间为2013.3.23-2013.4.20,执行测试三轮,计划完成时间严重偏离,表2为原计划与实际计划的对比。表2显示测试计划进行了较大调整,计划截止时间比原计划延迟23天。延迟原因经分析主要为开发提交测试时间延迟,开发提交版本问题较多,测试计划安排不合理,在两轮测试间为安排开发修改bug时间等。想要解决该问题,不仅需要对测试过程进行管理,同时也需要对开发提交的测试版本质量进行管理。
2软件质量管理改进对策
2.1需求工程管理软件开发过程中,需求不明确会带来需求的频繁变更,浪费了很多时间。针对此项问题,可对需求相关的活动进行统一管理,其需求管理结构图如图2所示。加强需求开发和需求管理的有机结合,不仅减少了需求的变更次数,还解决了工程师对需求不能理解到位的问题。需求开发和需求管理同样重要,只有两者互相配合才能做出用户满意的产品。
2.2立项管理为了使有限的资源发挥更高的价值,公司可通过立项管理流程进行立项管理,立项管理流程分为立项建议、立项评审和立项筹备三个阶段,其具体流程图3所示。
2.3测试流程管理针对测试流程中发现的问题,可对整体的测试流程做如下的改变:(1)测试部门可进行需求学习及需求讨论,对理解不清楚及有疑问的需求,由研发设计部门进行解答,研发设计部门不能解答的由其联系用户确认后作出解答;(2)需求确认后,针对系统功能和性能等指标,由测试工程师进行测试测用例的设计,设计从两个方面进行,一方面测试工程师根据需求进行测试用例的编写,另一方面测试工程师可根据用户反馈问题进行分析汇总;(3)使用QC功能测试工具对应用软件兼容性、操作系统兼容性进行测试,以便于使用测试工具完成多种环境下的功能和兼容性测试;(4)进行自由测试以便于对系统测试用例进行补充,分析测试用例未覆盖问题的原因;(5)定期分析缺陷库中的问题,分析问题产生的原因,进行测试用例的修改。
3结论
目前制定实现规范并比较适用于复用的组件模型有CORBA/ORB、COM/ActiveX、JavaBean以及.NET等。通过对以上组件模型的研究与对比,本系统选定.NET中的WindowsForms作为本实时测控软件的组件模型,使用.NETFramework的公共语言运行时,组件都建立在一个共同的底层基础上,不再定义使用复杂的管道接口,对象可以直接交互访问,有利于组件的自由配置,同时,利用.NET技术的分层结构特点,采用“搭积本”的方式生产软件,大大提高软件开发效率。
2基于组件技术的实时测控软件开发
2.1软件架构设计
在组件技术中,一个组件就是一个接口集,它通过接口对功能进行封装。因此,对于同一个应用程序架构,只要其使用的接口集合不变,即可通过更换支持同样接口集的组件来获得不同应用,也可重复利用同一个组件或对组件进行二次开发。而基于组件建立的软件架构和应用开发,其最大优点在于可以复用的应用结构和软件单元。实时测控软件主要是对实时测控数据的处理、评估和显示,而测控数据主要包括光测、雷测、遥测及GPS测量等类型,其处理过程通常包括数据采集、数据解析、数据处理和结果评估等四个部分,针对以上4种数据类型,在基于组件技术思想下,其处理架构可统一进行设计,如图1所示。针对靶场测控系统中光测、雷测、遥测及GPS测量等数据处理应用,通过将数据采集组件、数据解析组件、数据处理组件、结果评估组件替换成相应功能的组件,即可实现在保持软件架构不变的前提下开发出不同的应用系统。
2.2基于组件技术的软件升级维护
组件接口是对某一功能的一套抽象描述,具有封装性,它通过接口与其功能实现分离开了,并以接口作为客户与组件(或组件之间)交互的唯一方式,因此,只要保持接口不变,就可以将系统中的组件用新的组件替换,以随时进行系统升级维护。下面以实时测控数据处理软件中的雷测数据处理应用为例,其软件的架构如图2所示。当需要对系统进行升级维护时,在软件架构完全保持不变的前提下,对具体的组件进行替换,只要保持接口不变,程序无需重新编译链接,系统即可通过使用更新后组件中的新接口来获得新特性,从而实现系统的升级维护。
2.3利用组件复用技术实现软件功能扩展
组件复用是利用已有组件创建新组件,即通过第三方产品来构建自己产品。组件复用是通过包容和聚合来实现的,包容时外部组件包含内部组件的接口,它由外部组件接收此调用请求再交由内部组件来处理,聚合时外部组件直接调用内部组件的接口,它让内部组件直接处理该调用请求。在C++语言,通过在外部组件中增加内部组件接口,并把调用请求转发给内部组件即可实现包容,对于聚合,在内部组件中维护一个外部组件接口指针(如m_pUnknownOuter),通过委托机制,让内部组件接口提出的查询接口请求由一个委托接口转发至外部组件,再由外部组件接口查询内部组件。这样就可以实现一致的访问,即不管是通过外部组件的接口,还是内部组件的接口,都可以查询到内外组件所支持的接口集合。在实际应用中,软件开发不仅有大量的、功能强大的商业化组件可以使用,而且有应用广泛的、成熟的靶场测控系统专用组件可以使用,如组件化的数据接收、量纲复用、坐标转换、滤波平滑、精度评估等功能模块。因此,利用好组件复用技术可以有效扩展靶场测控数据处理系统的软件功能,对于靶场测控系统建设具有重要的现实意义。
3结束语
软件的功能划分为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结束语
1.1阶段划分
软件的生命周期主要由软件定义、软件开发和软件维护三部分组成。对于软件的各个不同阶段,尽可能地将软件的开发设计工作划分为具体的任务,并且使任务之间的关联性降低,尽可能地相互独立,从而可以有效地降低软件开发的复杂性,利于软件开发工作的组织管理,简化其工作流程。
1.2软件定义时期
对软件进行定义的主要目的是明确软件开发工作的总目标和该软件工程的可行性,分析软件系统需要实现的具体功能及采取何种手段实现该功能,并对整个系统所需要的成本和资源进行初步的估算,设计出工程的进度表。该阶段的工作主要由系统分析员完成,其主要工作有:
(1)问题描述和可行性分析。
进行此阶段分析时,主要由软件系统的需求方和软件开发方相互协商,明确软件系统的目标及可行性。问题描述主要是明确需要解决什么问题,对问题进行准确的定位,将问题的困难程度、性质、规模及目标等内容以书面的形式进行描述,并上报给上级主管部门。对软件需求方的使用者进行走访,对问题的理解进行扼要的描述,并将写好的报告反馈给用户,查看问题的描述是否准确,统一双方的意见,直至达到最终的协议。对于可行性的分析,当前对于该定义并没有给出明确的定义,其主要目的是描述该系统是否值得去做,是否有合适的技术能够解决此问题。在该阶段的可行性相对比较简短,只是从总体上进行分析,并不涉及具体的问题。
(2)分析需求。
明确软件系统可行之后,就需要对软件的功能进行详细的分析,即:为了达到使用者的要求,软件系统必须能够做什么和具备哪些具体的功能。另外,用户当进行软件操作时,必须有个清晰的认识,利用该软件系统要达到哪个具体的目标。开发人员和使用者必须进行详细的、准确的沟通,利用数据模型、数据字典、数据流图及算法设计出整个软件系统的逻辑模型。在该阶段,必须让用户参加,并给出具体的意见。
1.3软件开发时期
对于软件的开发,主要由计划、设计、编码和测试四部分组成,计划和设计是系统设计,编码和测试是系统实现。软件的开发由计划开始,完善的计划可以为软件的开发节省大量的时间和精力;设计是在计划的基础上,进一步的完善,给出问题的每一个步骤,是对整个系统功能的完整描述;系统设计完成后,开始进行编码操作,即对问题的具体实现,在编码中,要符合编写规范的要求,保证程序的易读易维护;没有一个软件是一次编写成功的,需要反复的测试才行,当前的测试从小到大,分别是单元测试、集成测试和验收测试,每次测试都要进行详细的记录,为以后软件的维护打好基础。
1.4软件维护时期
如果说前面的步骤是软件的实现过程,那么软件的维护时期就是软件的使用过程,软件的维护时期最长,由于软件随着使用环境的不断变化,软件的功能逐渐不能满足用户的需求和无法正常使用,为了延长软件的使用寿命,必须对软件进行维护处理。对于软件的维护活动主要分为4类,分别是:改正性维护、完善性维护、适应性维护和预防性维护。根据维护的情况不同,每个维护都要有详细的报告,通过报告来进行制定维护计划、修改软件设计、代码修改和测试等一系列的过程。
2测试自动化
开发人员设计好程序之后,无法直接投入使用,需要对代码进行测试,而软件测试是一个非常烦琐的过程。据统计,软件工程人员无法及时交付软件的主要原因是在规定的时间内没有对软件进行完整的测试和修订。21世纪,时间就是金钱,时间就是企业的生命,软件投入市场越早,就越有可能提前掌握先机,从而获得更高的利润。传统的软件测试方法无疑已经无法适应当前IT行业的发展,自动化测试软件可以使测试流水化,使得在较短的时间内充分对软件进行测试,现在,越来越多的软件企业选择测试自动化。
2.1测试自动化的定义
当前,对于测试自动化的定义比较多,但总结起来为:能够通过自动化的测试工具,针对软件测试,在预设条件下运行系统或应用程序,评估运行结果,预先条件应包括正常条件和异常条件。从而达到减轻手工测试的劳动量,节省测试时间的目的。测试自动化在很多情况下都具有非常大的使用价值,例如在进行脚本测试时,可以产生许多重复调用的代码,在进行压力测试时,可重用很多次该脚本。如果利用手工测试方式进行压力测试,那么可能要花费相当长的时间,而且有时有些软件的缺陷还不能及时地发现,测试自动化保证了软件的稳定性和准确性。
2.2测试自动化的生命周期
进行自动化测试的工具也是一种软件,有其自身的生命周期,主要分为需求分析、计划、设计、实现、集成、维护和终结等过程。对于需求分析阶段,主要是对测试的用例进行详细的分析,明确测试用例的可行性,考察用例是否可以重复利用,对测试有何价值;在计划阶段,设计测试的进度和生成相关的文档;设计主要是描述自动化测试的模块,而描述是对这些模块的实现;对写好的软件模块进行集成,生成相应的具有特定功能的测试包;最后对软件的测试自动化工具进行维护,随着时间的推移,结束自动化测试生命周期。
3测试自动化软件的实现
3.1需求分析阶段
在该阶段,测试工程师和手机终端使用者要一起参加需求分析的讨论,分析测试的环境和过程,测试不同的环境下手机的使用情况。在进行手机通信测试的需求分析里,假定使用300个测试用例,分析其自动化测试的流程,形成书面的需求规格说明文档,并进行专门的评审,对测试用例进行审查。
3.2计划阶段
主要完成计划进度表的建立。例如整个手机终端测试需要五周时间完成,计划和设计需要半周,开发和执行需要三周,测试需要一周半。在规划测试计划时,在对每一次进行操作进行相关文档的说明,其中文档的完成工作也需要在计划时间以内,建立和维护一个测试环境文档是非常重要的。
3.3设计阶段
对于手机通信系统来说,软件的升级不会带着新的错误,即功能是不变的,由于测试的脚本具有共用性,模块化的设计是非常有必要的。在设计的过程中,要注重命名规则,以免发生混淆,使得模块发生混乱。
3.4实现和集成阶段
实现主要是在设计的基础上,进行编码,最终完成软件,每次代码更改运行要记录初始状态和运行后状态,及时进行备份。对软件进行集成分块测试,将生成的测试包提交给组装集成测试人员,对其进行评审和验证,详细记录其结果。
3.5维护和终结阶段
软件自动化测试生成后,要根据使用环境和用户的不同进行维护处理,并不断对其进行改进,这个过程可以通过问题跟踪工具来完成。随着新技术的来临,软件会越来越不适应企业的要求,就要对其进行终结,重新研发新的测试软件。
4结语
关键词:CMS;软件测试;对策;问题
一、CMS简介及软件测试原则
CMS是英文Content Management System的缩写,中文含义“内容管理系统”,该系统具有多种现存的优秀模版,在软件开发或者网站制作中可以起到很大的促进作用,能够有效提高开发速度、减少开发费用。
软件测试是软件工程中的一个概念,是指软件测试人员采用人工或自动的方式对开发的软件进行测试,旨在发现其中的问题既未达到设计要求的部分或者发现实际结果和预期设计结果的差别。软件测试不仅仅在于发现问题,更重要的在于改进问题。当发现问题以后,测试人员会及时与设计人员联系进行沟通,解决问题。软件测试必须遵循六个原则:考虑用户需求是软件测试的首要原则;在真正的软件测试开始之前就要制定完整细致的测试计划;采用Pareto原则进行测试;软件测试应从小到大,首先从小模块开始,逐渐向大模块发展;软件测试采用抽样检测方式,穷举检测室是不可能实现的;软件测试最好由第三方或者非设计人员进行测试以确保软件测试的客观和准确性;过分和不充分的测试是不合理的,测试时应选取适当的测试案例,能达到测试目的即可。软件测试的内容主要包括:正确性测试;容错性测试;性能与效率测试;易用性测试;文档测试。
二、CMS软件测试中存在的问题
本文以某公司的购物软件为例进行,下面简称该软件开发为S项目。S项目是该公司接手制作的一个大型的客户到客户的网络购物系统,可以提供商家开店及客户购买服务。在软件设计与开发过程中需要不断进行软件测试,同时也出现了很多问题。
1.软件测试与开发数据间存在相互影响
软件测试人员与开发人员使用的是同一个数据库,所以在测试与开发过程中两组人员工作时产生的数据都保存到同一个数据库,这样就出现了使用混乱。测试人员在进行测试时产生的数据将对开发人员的工作带来不便,开发人员工作时产生的数据同时影响测试人员的进程。虽然这种问题不会导致系统瘫痪等大的问题,但是有时会因为出现因为某个公用数据的问题而导致原本设定好的系统运行方式而无法执行。
2.各组测试人员缺乏交流
该公司S项目中的购物系统是一个很大的系统项目,所以开发和测试人员很多,为了明确职责,这些人员分工细密,同时也正是由于细致的分工导致人员之间交流的缺乏。首先开发人员和测试人员缺乏交流,这直接导致开发与测试脱节,很多简单技术问题被放大,需要浪费很大的人力物力财力才能解决。比如在进行系统开发时,客户的要求开发人员需要对系统设计进行改编,但是由于庞大的人员系统的存在,改信息不可能及时传递到测试人员手里,因此测试人员仍采用预定测试数据对系统进行测试,测试结果肯定是不正确的,因此测试人员需要花很大的努力寻找错误源。
3.不同的测试环境导致系统异常情况出现
该公司的S项目完成以后首先在江苏省苏州市公司进行测试,通过测试后再已送到日本总公司进行第二次的测试。由于日本和中国不同测试环境的存在,可能出现一些异常情况。有些系统模块在苏州可通过测试,但是在日本公司却不能通过出现错误。这些错误也许是因为测试工具的不同造成,也许是因为日本和中国网络服务器的不同造成,但是最终结果是软件测试没有获得通过。
4.系统需求的不断变更
系统开发之前需要进行需求分析和软件可行性分析,只有在确定了软件需求以后软件开发公司才会进行开发。但是意外总是存在的,客户是有头脑有思想的人,所以在软件开发过程中经常出现需求变动,尤其像该公司S项目一样大型的购物软件系统,消费者需求在变,软件也要跟着进行改变。需求变更带来的损失是巨大的,需求的每次变更都需要组织软件开发与测试人员开会商讨后期事宜,浪费时间。
三、问题对策
针对上述软件测试中的四项问题,本文将给出具有针对性的解决策略。
针对测试人员与开发人员数据库共用问题,可在系统进行开发之前就先设计出两个数据库,开发人员和软件测试人员分别使用不同数据库数据。
针对各组人员缺乏交流问题可以采取的措施有:定期召开圆桌会议,各组人员进行工作交流;公司可组织召开一些文体活动,增进交流等。
针对环境不同导致的测试结果不同可采用的方法是在苏州公司设置一台测试服务器,在日本设置两台。在苏州通过测试以后将服务器内容拷贝到日本的第一台服务器,通过以后再在第二台上进行测试。
针对系统需求不断改变的问题可在系统开发之前进行详细的需求分析与调查,明确客户需求。同时软件测试人员参加设计开发人员的例会,去发现系统要修改的内容,从而及时更新测试方案。
四、结语
软件测试对于提高软件开发过程的效率和成果质量具有重要作用,也是唯一可以确定开发出来的软件质量的方式。近年来随着软件工程技术的不断发展,软件测试技术也得到了一定的发展,各种测试技术不断涌现,使得软件测试更加准确和高效。但是在实际的软件测试技术选择上要根据具体情况具体分析,力求既完成了软件测试也要注意经济合理性。本文以公司实例为研究对象,对该公司采用的CMS软件测试方法进行研究,对其中存在的问题及缺陷一一阐述,并提出了具有针对性的解决方案,对于相似案例的研究具有重要的启发意义。
参考文献:
[1]杨根兴,宗宇伟.软件测试不确定性研究及解决途径[J].计算机工程.2004(07)
关键词 电子商务 动态实验 模拟环境 教学体系
中图分类号: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).