时间:2023-03-20 16:25:30
引言:易发表网凭借丰富的文秘实践,为您精心挑选了九篇软件测试论文范例。如需获取更多原创内容,可随时联系我们的客服老师。
1高效软件测试团队建设的可行性策略
1.1软件测试团队的特质建设
软件测试团队的素质建设对于整个软件工程质量而言具有非常重要的作用,人是测试工作中最具价值也是最重要的资源。因此,应该积极构建合格的、高质量的合作团队。(1)软件测试以及软件工程开发都需要程序员具备足够的自信心,对软件检测结构以及程序的缺陷要如实汇报。对于软件项目工程中出现的各种问题要认真处理,以此减少客户可能遇到的种种问题。(2)软件测试人员还要具备足够的怀疑精神,对可能存在的漏洞性错误要及时予以检测和纠正,进而提高其自我创造力。(3)软件测试团队要积极构建沟通协调能力。可以通过与客户进行必要的沟通来及时发现软件运行中存在的不足之处,其中测试者可以针对模拟环境下用户对于软件环境的应用情况进行科学分析,以此对软件编写过程和总结文档进行反复检查检测,提高软件的运行效率和正确性。(4)必备的检测技术能力。软件测试团队必须具备重要的专业技能,需要精通数据库、通信、网络、GUI测试、测试工具、自动化测试脚本和相关业务领域等,以此全面提升他们的测试能力和测试积极性。
1.2软件测试团队的制度性建设举措
一个优秀的软件测试团队必定拥有一套完善的团队管理制度,拥有明确的职责分工和高端测试人员,通过不断规范团队管理制度,做到扬长避短,及时提升整体测试质量。其中,软件测试团队需要不断加强汇报制度建设、工作总结制度建设、奖惩制度建设、测试审核制度建设、会议制度建设等,通过科学合理地分配职责关系来进一步强化团队成员的素质建设。在此过程中,还要注重对于资深测试人员的正确引导和建设,加强彼此间的沟通交流,不断丰富团队的测试知识库,通过科学吸收先进的测试管理知识来提升整体测试技能和技巧,以此减少开发团队协同工作中的一些领域瓶颈。
2结语
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结论
1Web应用程序性能测试实验
这部分实验目的是使学生熟练掌握使用Jmeter测试Web应用程序的一般流程和方法。实验任务测试绩效考核子系统中的评分模块。评分人登录系统后进入评分环节,选择其未完成的评分项目(若有多个未评分项,则需要全部对其评分)。每个评分项中包含对多个部门的评分,部门数大于等于3个时需符合正态分布,如可评出优秀3个、良好6个、合格4个、基本合格2个,否则可任意评分。按照循序渐进的原则,设计了3个步骤:一是Jmeter的基本应用,包括脚本录制、添加http请求、添加断言以及查看测试结果等;二是Jmeter的逻辑控制结构,如分支和循环等;三是Jmeter的高级应用,如参数值可变以及参数个数可变等。
1.1Jmeter的基本应用
Jmeter可以手工添加脚本,但更方便的是使用脚本录制软件Badboy[9]。Badboy录制的脚本可以保存为Jmeter格式,然后在Jmeter中直接打开和修改。脚本主要是一系列的http请求,其中可以设置请求的URL,请求方法(get/post)及请求参数等,如图1所示。通过添加断言(如是否含有特定字符串)检查请求是否返回正确结果。添加查看结果树并运行测试脚本查看程序的测试结果。
1.2Jmeter的控制结构
Jmeter具有丰富的逻辑控制结构,包括控制器,switch控制器,while控制器以及forEach控制器等。实验重点练习控制器和forEach控制器。控制器判断Jmeter变量是否满足给定条件,若满足则执行其包含的测试元素,否则不执行。ForEach控制器对Jmeter变量的每一个取值都执行一遍其包含的测试元素。图2是一个控制器,其条件为变量COUNT小于10且变量VAR等于字符串“abcd”。图2Jmeter的控制器图Jmeter的变量引用使用${变量名}的方式,变量一般提取自返回页面中的某些信息,如满足特定条件记录的行数或某个特定位置的字符串取值等。变量提取可采用正则表达式或Xpath进行匹配,讲解其匹配原则并现场演示。图3利用正则表达式提取需评选优秀的单位个数,其中引用名称youxiu就是变量名。匹配失败则取设置的缺省值0。如对于页面中返回的html代码“…您当前可以评出优秀<spanid="ltYSMsg">3</span>个…”可提取出优秀个数为3。
1.3Jmeter的高级应用
本部分着重解决实际测试过程中的一些常见问题,如参数内容可变及参数个数可变等。测试登录环节时需模拟不同的用户登录行为,即图1的http请求中txtUserName一项的值应是变化的。Jmeter提供的CSVDataSetConfig可解决这一问题,如图4所示。将所有评分人的信息存储在一个CSV文件中,把其中的列名填入VariableNames项,之后将图1中的txtUserName值改为userAccount(即CSV文件的第1列)实现参数值的动态变化。进入评分项后需根据情况选择优秀和良好等的个数,且要反映在http请求的参数中。由于参评单位的个数因评分人和评分项各异,因此无法在GUI界面中一一添加。需动态添加的参数包括评分列表中的name及其value,value的取值从优秀到基本合格依次为1234。为简单起见,我们按顺序对单位进行评分。如系统要求评出3个优秀,则测试中前3个部门打优秀,其余依次类推。由于同一部门的优秀良好等单选按钮的name值相同(如图5所示),我们选择提取该组唯一的ID号,然后将其转换为name,其对应关系是用$代替下划线(如ID号为gbBSCExamList_ctl02_rbExamerLevel,name为gbBSCExamList$ctl02$rbExamerLevel)。Jmeter的Beanshellpreprocessor可在提交http请求前动态调整参数个数及参数值。下面给出了Beanshellpreprocessor的代码。其中ExamerLevel_matchNr为Jmeter的系统变量,提供了正则表达式匹配项ExamerLevel匹配成功的个数(即参评单位的个数)。如前所述匹配数量小于3时可任意评分,为简单起见我们均将其评为优秀。N=Integer.parseInt(vars.get("ExamerLevel_match-Nr"));(N>=3){YX=Integer.parseInt(vars.get("youxiu"));LH=Integer.parseInt(vars.get("lianghao"))+YX;HG=Integer.parseInt(vars.get("hege"))+LH;BHG=Integer.parseInt(vars.get("jibenhege"))+HG;for(i=1;i<=N;i++){item=vars.get("ExamerLevel_"+i);item=item.replace("_","$");(i<=YX){sampler.addArgument(item,"1");}else(i<=LH){sampler.addArgument(item,"2");}else(i<=HG){sampler.addArgument(item,"3");}else(i<=BHG){sampler.addArgument(item,"4");}}}else{for(i=1;i<=N;i++){item=vars.get("ExamerLevel_"+i);item=item.replace("_","$");sampler.addArgument(item,"1");}}设计了含35个并发线程的线程组,模拟实际35个评分人的评分过程。全部线程在1秒钟之内启动,比实际情况更严格。得到聚合报告如图6所示,其中点击考核评分页面响应时间最长,为335毫秒。且测试过程中无错误发生,说明系统评分模块可靠。
2数据库性能优化实验
除应用程序外,数据库设计的优劣亦影响系统性能。这部分实验目的是使学生熟练掌握使用SQLServer测试数据库性能的一般流程和方法,并进行简单的数据库调优。为减少复杂性,设计一个简单的由三张表组成的人员组织结构数据库:user、or-gan及userorgan表。其中user表含4586条记录,or-gan表含1722条记录,userorgan表含6804条记录(一人可在多部门任职)。实验任务根据账号查询其姓名及所在单位信息。
2.1SQL语句执行计划对应用程序中频繁执行的SQL语句检查执行计划非常重要。初始时,三张表均未建立任何索引,下面SQL语句的执行计划如图7所示。由图7知,三张表均采用全表扫描的方式。对大表全表扫描可能涉及多次磁盘I/O,非常费时,应尽力避免此种情况。SQLServer报告由于缺少索引影响了查询性能,并给出了相关建议。selectA.vcAccount,A.vcName,C.vcNamefromtest.dbo.[user]Ainnerjointest.dbo.[useror-gan]BonA.vcAccount=B.cnvcempidinnerjointest.dbo.organConB.cnvcorgid=C.nNodeIDwhereA.vcAccount='testuser'为表格建立以下索引:indexIND_USERACCOUNTontest.dbo.[user](vcAccount)clusteredindexPK_ORGANontest.dbo.[organ](nNodeID)indexIND_USERORGANontest.dbo.[userorgan](cnvcempid,cnvcorgid)再次运行后显示执行计划如图8所示。可见所有表扫描均已替换为相应的索引查找,且SQLServ-er未报告缺少索引影响查询性能。两次执行查询的磁盘I/O和CPU时间见表1,可见为表添加正确的索引可提高查询性能。
2.2索引建立原则总结
建立索引的一般满足原则如下[10](篇幅所限,未给出实例):(1)为主键所在的列创建索引。为经常进行连接但未指定为外键的字段建立索引。(2)在频繁进行排序或分组的字段上建立索引。(3)在条件表达式中经常用到的不同值较多的字段上建立索引,在不同值较少的字段上不建立索引,如性别字段。不在查询很少引用的列上创建索引。(4)若经常同时使用多个字段排序,可在这些字段上建立复合索引。要尽量使关键查询形成索引覆盖,其前导字段一定是使用最频繁的字段。(5)查看索引并删除不使用的索引。需频繁进行数据查入操作的数据库应有较少的索引,需频繁进行读取操作的数据库应有更多的索引。(6)在聚集索引中,避免包括不必要的列,尽可能使用较小的数据类型。(7)在支持排序和范围查询的字段上考虑使用聚集索引。(8)具有高选择性的列是索引的好候选列,具有高密度的列是索引最糟糕的候选列。
3结语
在数据或信号通信网络中,按照一种链路协议的技术要求连接多个数据站的通讯设施,成为数据链路。数据链路一般包括传输的物理媒介、链路通讯协议、相关设备等,但不包括提供数据信号的功能设备和接收数据信号的功能设备。数据链路通常根据不同的用途或特定的需求来研制的,各种数据链路都有其相应的标准与编号,例如美军有link13、link14等多种数据链路。本文提到的数据链简称J链和U链,它是根据我国实际的用途和需求,定义了专用的传输协议,将处于不同地理位置的作战平台,实现紧密的战术链接,组合为完整战术共同体。
2软件概述
2.1总述
数据链测试系统软件安装在数据链测试系统的计算机系统上,驱动整个测试系统硬件系统,完成对测试工作的控制、数据分析处理、测试结果的判断与显示。为了给用户友好的操作界面,测试系统的计算机操作系统采用基于图形界面的WindowsXP操作系统。测试软件的开发,利用当今流行的可视化编程语言VisualC++6.0编制出一个完全图形化的用户操作界面,设计出操作方便的集成化数据链测试系统软件结构设计。
2.2功能简介
数据链测试系统软件主要实现以下功能:(1)与电子飞行仪表系统建立通信。(2)模拟指挥仪系统发送J链和U链的数据链信息;基于VC的数据链测试系统软件设计文/蔡军本文主要论述了在VC++6.0环境下进行的数据链测试系统软件设计。数据链测试系统软件是为测试、验证某电子飞行仪表系统的数据链功能而研制的软件,该软件在某综合测试系统上配套使用,是一款用于模拟大批量数据链信息,并实现与电子飞行仪表系统建立通信的软件。数据链测试系统软件可完全模拟指挥仪系统发送J和U数据链交联数据信息,并实时接收电子飞行仪表系统对自由文电信息的应答。摘要(3)接收电子飞行仪表系统的自由文电应答信息;(4)打印输出RS422数据的封装结果;(5)多视图方式实现双链多事件型数据界面的切换;(6)通过配置文件一次性装载、修改多批目标数据。
2.3层次划分
分层的设计思想有利于实现设计的模块化,减小模块间的耦合度,从而有利于提高系统可靠性和方便升级维护。从层次结构上讲,整个测试系统可以包括三个层次:硬件层、硬件接口层以及软件层,从软件设计的角度看,测试系统软件可认为由三部分组成:硬件驱动层、软件支持层和用户应用层。系统层次关系如图1所示。各层功能划分如下:
2.3.1硬件层即为了实现具体测试的各数据采集科和总线接口卡,它们将插在测试主机上,实现测试主机与被测系统的互连和通讯;
2.3.2物理接口层该层是软件和硬件的结合层,主要指主机内插卡提供的可通过ISA或PCI总线访问的板卡上的资源。
2.3.3硬件驱动层提供上层软件访问板卡硬件的方法,是软硬件通讯的桥梁。
2.3.4软件支持层在本系统里包括对硬件访问功能封装的API函数,以及对测试系统软件界面支持的导出类。对于硬件功能封装,也将按照接口统一的理念,比如初始化,中断句柄传递,重置,执行等等,以实现统一的函数调用;对于对测试系统软件界面支持的导出类,主要是为了实现界面增强的功能,使测试界面更加人性化,更直观。动态连接库的设计也是模块化设计思想的具体体现。
2.3.5用户应用层即提供给用户的控制测试流程和观察测试结果的可视化视图界面。为了方便用户使用,减少误操作以及无效操作,测试系统软件采用了多视图的构架,将视图客户区主要分成两个部分:视图选择按钮和为多视图,每次只有一个视图处于顶层激活状态。测试需求所要的所有功能都是在功能视图中完成,对于J链测试、U链测试等视图采用了基于FormView的视图类,对于测试结果则采用了ListView作为基类,对于帮助文档采用了HtmlView作为基类。多视图的形式解决了为了实现不同需求功能,而测试界面不同的要求,使测试界面更简洁,用户更容易操作,同时也使代码更加模块化。
3软件设计
3.1软件模块数据链测试系统软件采用模块化、分层的设计思路以保证系统本身的健壮性和有效管理繁杂的测试数据。测试软件具体功能由8个相互联系的模块实现,各模块具体组成和结构如图2所示。
3.2驱动程序模块驱动程序模块通过串口通信控件MSComm控件实现,本模块采用了事件驱动法,主要是考虑MSComm控件在接收到数据事件发生时能及时相应并获取缓冲区中的数据,而且可靠性高。
3.3应用程序类模块在MFC框架里,在工程的其他类实现文件CPP中,只需要利用AfxGetApp()函数就可以很方便的获得应用程序入口类指针。
3.4框架类模块在应用程序框架类中管理所有与测试框架有关的东西,包括加载菜单,加载工具栏,加载状态栏,组织多视图等等,同时还将管理中断的传递,以及测试板卡的指针(长整型)。在本测试软件中,主程序采用了MFC生成向导里面的单文档视图结构,为显示测试结果,视图基类为ClistView。不选择多文档视图,是因为在测试过程中,任何一个时刻J链数据发送、U链数据发送,这两者中只能一个处于激活状态,这是由测试需求中测试项目选择决定的,因此就不存在同时开启多个测试界面,用单文档视图结构是适合的。测试系统的菜单采用了动态连接库封装的CpicMenu类,以支持图形化菜单,工具栏为部分菜单功能的映射。在CstatusBar派生类中重载OnCreate函数,创建一个静态文本框用来显示图片,其中风格设置成WS_CHILD|WS_VISIBLE|SS_ICON|SS_CENTERIMAGE,表示静态文本框是子框架、可见、图表显示、图片居中。
3.5文档类模块文档和视图分离是MFC推荐的一种程序结构,在这种结构下,视图类处理跟界面有关的东西,而文档类处理跟存储有关的东西,两者通过GetDocument函数相关联。这样处理给程序编程带来了很多好处,首先这种方法强调了模块化的思想,两个类中分别处理各自的事情,而需要数据交换时再相关,而这种情况往往是打开文档或者保存文档时发生,因此提高了程序的模块化;其次两个类中都有很多各自的支持类和函数,特别是视图类,这样就便于各自编程,而不互相影响,最大方便的实现每个类。在本测试系统中也采取了这种文档视图分离的结构。
3.6视图类模块数据链测试系统软件将显示界面划分为三块,左1右2,左边加载的是具有Outlook风格的窗口,它可以通过鼠标单击选择右边是J链视图还是U链视图;右边上面是数据输出视图(J链或U链),右边下面是数据输入视图,它显示的电子飞行仪表系统的心跳和自由文电的应答信息。
4主要技术难点
4.1多线程技术数据链测试系统最大可支持的为同时在J链发送200批/400ms,U链发送100批/400ms,二十多个事件型数据不定期的发送,周期数据每批最多有65个字节,事件型数据最多有240个字节。要完成这么大数据量的输出,一般的在定时器里设置400ms时间输出是无法实现该功能的。为此该软件采用了多线程技术,分别创建了J链目标数据输出线程和U链目标数据输出线程,在线程里设置400ms等待时间。
4.2配置文件装载数据链测试系统有空中、水面、陆地、电子战等目标数据,该数据在J链时最多有200批目标,每批目标最多有30多个属性,包括目标编识号、目标属性、目标位置等,如此多的目标完全手动输入的话,测试工作量太大了。为此,该软件建立配置文件,测试人员可以通过修改配置文件,一次性将目标属性全部输入,同时能够将目标属性保存进配置文件,可供下次调用。
4.3数据结果的打印输出为了更好的调试产品软件,数据链测试系统软件里增加了输出RS422数据的打印显示功能,将已经输出的RS422数据按数据类型打印在TXT文档里,通过比较每个字节数据,可以很好的验证产品软件,协助产品软件自测试和软件排故。
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结语
1 关于计算机软件测试的介绍
1.1 软件测试的概念
软件测试是指在软件运行之前,对软件的产品介绍和代码进行审核,从而保障软件的正常运行。软件测试不仅代表软件系统出现问题的可能性,同时还表示软件能够完成预定功能的程度,这两部分对于软件测试都有重要的意义。
1.2 软件测试的特点
1.2.1软件测试的动态性
软件测试是在规定输入值的情况下运行的,是一种动态的检测软件的运行状态的过程。
1.2.2软件测试的有限性
在对软件进行测试的过程中,测试的次数是有限的,不可能无限制的测试下去,同时,整个测试过程还要具有可管理性,即在测试时需要平衡测试需求与测试资源之间的关系。
1.2.3软件测试的预测性
进行软件测试之前,应该判断测试的结果是否妥当,常常采用预示程序来预测运行的可能结果,但预测程序也是软件测试技术的一大难点。
2 软件测试技术的过程分析
2.1软件测试的方案
在进行软件测试之前,都需要制定一个合适有效的软件测试方案,以确定软件测试的目的和过程,为软件测试的完成提供一个清晰有效的目标。
2.2 软件测试的开发设计
软件测试设计就是在软件开发的过程中进行的软件质量测试工作,在测试时需要提供规范的应用说明、程序设计情况,同时,软件测试设计在软件测试过程中有着重要的作用。测试设计的基本步骤为:首先利用先进的技术手段设计分析样式,然后讨论测试结果,并做成有效的测试方案,最后确定每一项测试任务都完成了,从而保障测试结果的有效性。
2.3 软件测试的准备
在测试方案开始前,需要先进行测试准备,列举测试方案中所需要的重点问题,这些问题常常有测试数据集、驱动程序和实际执行测试所需的软件等,同时需要为整个测试过程寻找合适的测试环境和测试工具。
2.4 软件测试的实施
参照之前设计的软件测试方案,利用测试用例对软件测试的项目进行全面有效的测试,并将测试情况与实际运行情况对比起来研究,从而判断测试是否成功,并进行下一步测试工序。在测试的过程中对软件的质量问题进行记录,并进行有效的修改,修改之后再按照之前的测试步骤重新进行测试,观察问题是否会再次出现,从而确保软件的质量。同时,应制定合适的测试计划,定期将软件运行测试,以保障之前测试的问题不会在出现。每完成一个测试部分,比较整个运行结果与测试方案的不同之处,并针对不同之处进行有效的调整。
2.5 软件测试的报告
将软件测试阶段得到的运行结果拿来观察和处理,观察测试观点是否完整,确认方法是否有效,并依次评定软件测试过程中的测试用例和软件质量等级,并进行测试报告总结。
3 软件工程中存在的测试问题
软件工程出现后,软件的运行质量越来越受到人们的关注,软件测试技术也开始慢慢发展,但在软件工程中常常出现一些测试问题,导致软件的质量受到影响。下面笔者就软件工程中常见的测试问题进行阐述。
(1)目前很多软件开发公司没有比较正规的软件开发手段,没有产品说明书,因此,在进行软件测试时需要先利用试探性测试技术。而利用试探性测试技术需要先了解软件的特性,并对软件的运行情况进行有效的记录,全面描述软件的功能特点,然后应用常用的几种软件测试技术来找出软件的质量问题。但在这样的情况下,一些错误、非法的没有利用价值的数据容易被作为输入数据,这样测试软件的输出结果存在较大问题,对于软件测试的进行有较大的影响。
(2)在进行软件测试时,首先要对软件的逻辑流程进行了解,描述软件的详细状态,但在一些规模很大、结构复杂的软件测试中,了解软件的运行情况是很困难的,这时,就需要降低软件测试的状态以及数量。但是在测试中,必须对每种状态都进行测试,但在实际测试中往往忽略这一问题,这将会大大影响到软件测试的效果,并产生一定的后果。
4 计算机软件测试的常用技术
软件测试技术对于计算机软件行业的发展有重要的促进意义,关系到计算机软件的运行质量,同时,还能方便人们的日常生活。计算机软件测试主要有两种手段,即白盒测试和黑盒测试,下文笔者将对此进行阐述。
4.1 白盒测试
白盒测试即逻辑驱动测试或结构测试,该方法是对系统的内部构造进行测试,检测整个应用软件内部是否正常运行的手段,在测试中,把待测系统当作一开放的盒子,通过对系统的内部程序结构进行测试来检测它的逻辑路径,从而根据在不同区域的检测信息来测试软件的实际运行情况是否与预期结果相同。目前,采用白盒测试技术常用的方法有:基本路径测试法、逻辑覆盖法、静态结构分析法和代码检查法等。与其他的软件测试技术相比,白盒测试技术需要充分了解到系统的内部构造,以便对系统的全部逻辑路径进行检测。在应用这种测试技术时,首先要检查系统的内部构造,并从整个应用的逻辑来
统计检测数据。另外,白盒测试技术对于软件测试人员快速发现软件运行异常情况,提高软件的运行效率有重要的现实意义。 4.2 黑盒测试
黑盒测试即功能测试,该方法是对软件产品的功能进行测试,从而观察软件能否正常运行的手段,在测试中,把测试系统看成封闭的黑盒子,不需要考虑整个软件系统的内部特征,只需要依靠传输数据来得出检测结果。黑盒测试主要对软件的界面和功能进行测试,仅仅只需要考虑系统的外部结构,从而达到有效进行软件测试的目的。同时,黑盒测试主要测试软件的功能,常常用于检测这样几种错误:运行界面、程序初始化和终止、数据库的访问情况、软件性能和功能等错误。在黑盒测试之前,需要采取合适有效的测试方案,以保障软件测试有计划的进行。相比其他的软件测试技术,黑盒测试操作方便,设计代码也很简单,能够从用户的角度出发去解决问题,并实现软件的功能。
1.软件开发类课程翻转课堂教学模式研究
2.浅谈软件项目开发过程中的需求分析
3.软件开发方法的创新发展过程研究
4.基于Java语言的安卓手机软件开发
5.软件开发的风险分析与控制
6.软件开发过程模型的发展
7.需求工程对于软件开发的重要性
8.软件复用技术及其在软件开发中的应用
9.试论VB编程语言在软件开发中的应用
10.软件开发的风险分析与控制
11.分析软件开发中数据库设计理论的实践
12.基于WBS-RBS的软件开发风险识别与控制
13.敏捷软件开发的双迭代模型
14.基于MATLAB的汽车制动系统设计与分析软件开发
15.软件开发劳动计量方法与软件成本估算
16.基于计算机软件开发的JAVA编程语言分析
17.一种以软件体系结构为中心的网构软件开发方法
18.基于构件的软件开发的方法与实践
19.ABC:基于体系结构、面向构件的软件开发方法
20.面向软件开发信息库的数据挖掘综述
21.浅谈三层架构在软件开发中的应用
22.使用开源软件进行软件开发的风险分析
23.汽车电子控制单元软件开发模式研究
24.软件开发与层次化思维方式
25.SQA规范对于教育软件开发的启示
26.基于证据理论的软件开发风险评估方法
27.软件开发人员绩效管理中的问题及对策
28.敏捷型软件开发方法与极限编程概述
29.信息化软件开发项目经理绩效考评研究
30.基于“众包”的软件开发模式
31.软件开发模型研究综述
32.支持第四代语言的并行进化式软件开发模型CESD
33.光滑粒子动力学核心算法与软件开发中的关键问题
34.面向重用的软件开发价值链
35.基于MVC模式的应用软件开发框架研究
36.支持模型驱动式软件开发的建模语言框架研究
37.3G智能终端软件开发实验教学改革的思考
38.软件开发国际合作模式研究
39.地理信息系统专业学生GIS软件开发能力的培养
40.有色Petri网在软件开发中的应用
41.浅谈软件开发的成本核算
42.一种高效率的软件开发方法——以用户为中心的软件开发方法(UCD)
43.软件开发成本估算技术综述
44.基坑双排桩支护结构设计计算软件开发及应用
45.软件构架设计在软件开发中的意义
46.面向软件开发信息库的数据挖掘综述
47.谈软件开发中的需求分析
48.浅谈插件化软件开发
49.计算机软件技术在植保软件开发中的应用
50.Onboard:以数据驱动的敏捷软件开发协同工具
51.软件开发综合能力培养的案例教学
52.软件配置管理在软件开发平台中的应用
53.软件开发成本估算模型的研究
54.软件开发绩效评价指标体系的构建
55.浅谈计算机软件开发技术的应用研究与趋势
56.军用软件开发工程化质量管理研究
57.计算机软件开发中的分层技术探讨
58.基于学生软件开发团队的沟通机制研究
59.项目管理在软件开发中的应用
60.面向农业软件开发的构件库研究与实现
61.搭建式GIS软件开发及其对软件工程的影响
62.软件开发过程中的质量管理探析
63.软件开发本体构建与模块化的应用研究
64.基于CDIO的高职软件开发专业课程体系设计
65.典型建筑火灾风险评估体系及其软件开发
66.有效的软件开发项目风险管理模型
67.框架技术在软件开发中的研究与实践
68.浅论新时期计算机软件开发技术的应用及发展趋势
69.基于软构件的软件开发框架研究
70.面向软件开发信息库的数据挖掘综述
71.模型驱动的软件开发模式研究
72.以《数据结构》为核心的软件开发课程群建设
73.护理信息网络化管理的研究与软件开发
74.分层技术在计算机软件开发中的应用
75.软件开发生命周期法比较之敏捷与传统
76.基于虚拟硬件在环的控制软件开发
77.项目管理在软件开发中的应用分析
78.项目管理在软件开发中的应用研究
79.软件开发中的设计原则
80.基于学习遗忘作用的人员调度实验设计及其软件开发
81.基于网络的可信软件大规模协同开发与演化
82.华池油田结垢预测及软件开发
83.探析计算机软件开发的规范化
84.软件开发自动化平台的研究与应用
85.架构和面向对象技术在PLC软件开发中的应用
86.国外XBRL软件开发技术比较及启示
87.企业软件开发标准化探讨
88.智能手机操作系统及其Google Android上的软件开发
89.浅析软件测试在软件开发中的重要意义——从软件功能测试的作用谈起
90.软件开发方法及其应用
91.使用嵌入式Linux操作系统进行软件开发的特点及优势
92.基于VB中MSComm控件的通信软件开发与实现
93.软件开发管理中的沟通与协调问题研究
94.基于Java语言的安卓软件开发的研究
95.关于计算机软件开发语言的研究
96.新时期计算机软件开发技术的应用研究
97.培养大学生软件开发创新能力的探索与实践
98.自适应多Agent系统的面向Agent软件开发方法学ODAM