起点作文网

软件测试论文(整理2篇)

时间: 2024-07-30 栏目:办公范文

软件测试论文范文篇1

关键词:软件测试;专业课程;教学方法

中图分类号:G424.21文献标识码:A文章编号:

1、引言

软件测试是软件开发过程的重要组成部分,是用来验证一个程序的品质或性能是否符合开发之前所提出的一些要求。软件测试的目的有三个:一、确认软件的质量,一方面是确认软件是否做了你所期望的事情,另一方面是确认软件是否以正确的方式来做了这个事件;二、提供信息,包括提供给开发人员或程序经理的反馈信息以及为风险评估所准备的信息;软件测试不仅是在测试软件产品的本身,而且还包括软件开发的过程。如果一个软件产品开发完成之后发现了很多问题,说明此软件开发过程很可能是有缺陷的。因此软件测试的第三个目的是保证整个软件开发过程是高质量的。

现在许多软件企业开始重视软件测试,越来越多的软件技术人员开始投身测试行业。在一些大型软件公司里,软件测试甚至比开发投入的资源还要多。目前,国内的软件测试人员大多数还停留在简单、重复的黑盒手动测试阶段,软件测试人员也常常觉得自己所从事的工作和计算机技术关系不大,只要了解产品的业务逻辑就可以完成工作。这也导致很多测试人员对本身的工作失去兴趣。近年来自动化测试技术逐渐进入软件测试人员的视野。通过对比,人们逐渐发现:软件测试和软件开发一样具有挑战性、有技术含量。开发人员有自己的开发工具,软件测试人员同样也有像QTP、LoadRunner、RationalRobot等测试工具;开发人员有例如Java、C#等语言来编写代码,测试人员也有测试专用的语法来编写脚本、调试脚本;开发人员生产出来的产品可以为企业直接创造效益,测试人员通过质量手段防止更多的缺陷遗留给客户。因此软件测试再也不是一般非专业人员所能够胜任的,而是和软件开发一样具有技术含量、前景美好的技术。

2、理解基本概念,理清知识脉络

软件测试的主要工作内容是验证和确认,在此要注意理解验证和确认的概念,验证是保证软件正确地实现了一些特定功能的一系列活动,即保证软件做了你所期望的事情。对于这个概念,可以举一些日常生活中的例子说明。确定软件生存周期中的一个给定阶段的产品是否达到前阶段确立的需求的过程;程序正确性的形式证明,即采用形式理论证明程序符号设一计规约规定的过程;评市、审查、测试、检查、审计等各类活动,或对某些项处理、服务或文件等是否和规定的需求相一致进行判断和提出报告。确认是一系列的活动和过程,目的是想证实在一个给定的外部环境中软件的逻辑正确性,即保证软件以正确的方式来做了这个事件。其中静态确认,不在计算机上实际执行程序,通过人工或程序分析来证明软件的正确性;动态确认,通过执行程序做分析,测试程序的动态行为,以证实软件是否存在问题。

学习全面的软件自动化回归测试流程最好要有一定的开发基础,另外最好对软件工程中的质量体系、配置管理、度量管理有所了解和认识。例如理解回归测试,要懂得回归测试的策略,要知道为什么要进行回归测试,进行回归测试有什么好处等等,只有这样,才能真正理解回归测试的含义。

3、善于运用启发式教学

启发式教学是指教师在教学过程中根据教学任务和学习的客观规律,从学生的实际出发,采用多种方式,以启发学生的思维为核心,调动学生的学习主动性和积极性,促使他们生动活泼地学习的一种教学指导思想。这不仅是教学方法,更是教学理念。

运用启发式教学,要尽量引导学生主动学习,适当进行启发、指点,而不能简单地灌输。例如,在讲述商业案例中,首先讲解了商业案例的定义,确定业务的需要,然后讲述在成本和收益方面调整自动化,最后讲述评估ROI。紧接着是自动化测试的总节省,在此,我并没有马上展开讲述不同类型的时间节省,而是让同学们自己先想想,利用自己的知识展开讨论,可以进行3个同学分组讨论,然后分别叫不同的组回答讨论的结果,结果讨论的结果都不是很理想。这时,我继续讲解自动化测试的总节省,测试环境建立的时间节省以及测试开发的时间节省等等,学生通过听讲,他们感到印象特别深刻。另外,对于某些知识点,要采取对比的方法,以求消化。比如,测试开发的时间节省、测试执行时间的节省、测试评估/诊断的时间节省这三个时间节省的概念,有哪些相似点和不同点,通过对比学习,学生反映良好。最后,启发式教学离不开讨论,讨论可以加深对问题的理解,它不是简单告诉答案,而是指引他们往正确的方向思索。学生们反映交互式、讨论式与单向灌输式的教学方法最大的差别是“我们都很紧张,思想不敢开小差,不知道老师什么时候提问,不知道会问什么问题,不知道会不会问到自己。”

4、培养学生自学能力

法国教育家第斯多惠指出:“一个不好的教师奉送真理,一个好的教师则教人发现真理。”这句话足以说明老师不但要传授知识给学生,更重要的是让他们能自主学习。当我讲解测试自动化软件测试框架时候,我只是讲完了验证ASTF是否满足特定需求,功能是否表现如预期那样、对所有ASTF相关工作,包括设计、开发以及相关测试用例进行同级评审,还有作为软件开发生命周期一部分的同级评审以及评估所有ASTF软件时候,剩下的评审测试用例留给学生自己自学。刚开始时,学生还不习惯,部分人根本没有去自学,为了让他们养成这一良好习惯,上课时我经常会提问需要学生自学部分的问题,比如评审测试用例的概念和主要思想等,并把他们的回答作为平时成绩对待,结果,绝大多数学生开始重视,并按照老师的要求积极去图书馆或网上查阅资料。后来,学生们反映,其实测试用例中的内容并不是想象中的那样难。自学能加深他们对课本内容的理解,能开阔他们的视野,可以提高学生解决问题的能力,实现创新人才培养的教学目标。

5、结束语

本文从实际教学的角度出发,探讨了《软件测试自动化》课程的几点教学方法和体会,当前,除了课堂学习外,建议学生可以充分利用网络资源学习。另外我们要不断吸收其他优秀老师的教学经验,并注重个人平时的积累和创新,逐渐形成个性化的教学风格。我们相信,通过老师和学生的共同努力,《软件测试自动化》的课程一定能讲得更好,学生也一定能学得更好。

参考文献

[1]张克东.软件工程与软件测试自动化教程[M].北京:电子工业出版社,2010

[2]李秉德教学论[M]北京:人民教育出版社,2005

[3]赵斌.软件测试技术经典教程[M].北京:科学出版社,2007

[4]王立峰,延伟东等.软件工程理论与实践[M].北京:清华大学出版社,2010

软件测试论文范文篇2

在国内,目前大型的软件工程中大都使用国外的软件测试平台,我们在测试工程中使用法国的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

    【办公范文】栏目
  • 上一篇:诗歌同学聚会有感(收集2篇)
  • 下一篇:医药化学论文(收集5篇)
  • 相关文章

    推荐文章

    相关栏目