1、软件测试毕业论文摘要随着中国IT行业的发展和软件市场的成熟,人们对软件作用期望值越来越高,软件的质量、性能、可靠性等方面也正逐渐成为人们关注的焦点。近年来,由于软件错误而造成经济损失,导致严重后果的事例屡见不鲜。因此,如何让保证软件产品的质量和可靠性就成为人们必须解决的一个重要问题,而软件测试是保证软件质量的一个重要手段。在软件行业日新月异的发展进程中,软件的品牌以及种类已经到了数不胜数的地步,而软件测试已成为其中一个不可分割的部分。新的测试理论,测试方法,测试技术手段在不断涌出,软件测试机构和组织也在迅速产生和发展,由此软件测试技术职业也同步完善和健全起来。本软件的开发过程完全遵循软件开发流
2、程来完成的。经历了需求分析阶段,数据库设计阶段,界面开发阶段,编码阶段,最后通过软件测试,完成整个软件的开发。测试软件使用Qucktest Professional(QTP)软件,该软件是一个比较全面的,能对被测软件比较完美分析。并且能从中测试出被测软件的一些列的问题。而傻瓜进销存系统是一款提供进货、出货以及库存管理一款全方位软件,是做的比较好的一款软件,它的开发,不仅为使用商提供了极大的便宜,也使得办公的效率明显的得到提高。傻瓜进销存项目简单实用为目标,以通用型为基础的进销存财务一体化管理软件,可以用最简洁的方法掌控货物与财务的变化,我承担的的工作就是对傻瓜进销存的采购和库存功能模块进行测试
3、,傻瓜进销存的采购和库存方面包括供应商、采购入库、采购退货、库存查询、采购订单、采购入库查询、采购退货查询、调库管理、库存盘点、仓库资料、报溢管理、商品拆分管理、报损管理、商品合并管理。关键字:软件测试、需求分析、测试用例、QTP测试、第一章 引言11软件测试的背景和意义随着计算机技术的迅速发展和越来越广泛深入的应用于国民经济和社会生活的各个方面,随着软件系统的规模和复杂性与日俱增,软件的生产成本和软件中存在的缺陷和故障造成的各类损失也大大增加,甚至会带来灾难性的后果。软件质量问题已成为所有使用软件和开发软件的人关注的焦点。由于软件是人脑的高度智力化的体现和产品这一特殊性,不同于其他科技和生产
4、领域,因此软件与生惧来就有可能存在着缺陷。如何防止和减少这些可能存在的问题呢?回答是进行软件测试。测试是最有效的排除和防止软件缺陷与故障的手段,并由此促进了软件测试理论与技术实践的快速发展。新的测试理论,测试方法,测试技术手段在不断涌出,软件测试机构和组织也在迅速产生和发展,由此软件测试技术职业也同步完善和健全起来。12软件测试的理论基础1.2.1 软件测试的定义软件测试使用人工或者自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。它是帮助识别开发完成(中间或最终的版本)的计算机软件(整体或部分)的正确度(correctness) 完全度
5、(completeness)和质量(quality)的软件过程;是SQA(software quality assurance)的重要子域。(1)测试并不仅仅是为了找出错误.通过分析错误产生的原因和错误的发生趋势,可以帮助项目管理者发现当前软件开发过程中的缺陷,以便及时改进; (2)这种分析也能帮助测试人员设计出有针对性的测试方法,改善测试的效率和有效性; (3)没有发现错误的测试也是有价值的,完整的测试是评定软件质量的一种方法。 1.2.2 软件测试的目的如果测试的目的是为了尽可能多地找出错误,那么测试就应该直接针对软件比较复杂的部分或是以前出错比较多的位置。如果测试目的是为了给最终用户提供
6、具有一定可信度的质量评价,那么测试就应该直接针对在实际应用中会经常用到的商业假设。在谈到软件测试时,引用Grenford J. Myers在The Art of Software Testing一书中的观点: (1)软件测试是为了发现错误而执行程序的过程; (2)测试是为了证明程序有错,而不是证明程序无错误; (3)一个好的测试用例是在于它能发现至今未发现的错误; (4)一个成功的测试是发现了至今未发现的错误的测试。 这种观点可以提醒人们测试要以查找错误为中心,而不是为了演示软件的正确功能。但是仅凭字面意思理解这一观点可能会产生误导,认为发现错误是软件测试的唯一目,查找不出错误的测试就是没有价
7、值的,事实并非如此。 首先,测试并不仅仅是为了要找出错误。通过分析错误产生的原因和错误的分布特征,可以帮助项目管理者发现当前所采用的软件过程的缺陷,以便改进。同时,这种分析也能帮助我们设计出有针对性地检测方法,改善测试的有效性。其次,没有发现错误的测试也是有价值的,完整的测试是评定测试质量的一种方法。1.2.3 软件测试的内容验证(verification)是保证软件正确地实现了一些特定功能的一系列活动, 即保证软件做了你所期望的事情。(Do the right thing) 1.确定软件生存周期中的一个给定阶段的产品是否达到前阶段确立的需求的过程;2.程序正确性的形式证明, 即采用形式理论证
8、明程序符号设计规约规定的过程;3.评市、审查、测试、检查、审计等各类活动, 或对某些项处理、服务或文件等是否和规定的需求相一致进行判断和提出报告。确认(validation)是一系列的活动和过程, 目的是想证实在一个给定的外部环境中软件的逻辑正确性。即保证软件以正确的方式来做了这个事件(Do it right)1.静态确认, 不在计算机上实际执行程序, 通过人工或程序分析来证明软件的正确性;2.动态确认, 通过执行程序做分析, 测试程序的动态行为, 以证实软件是否存在问题。软件测试的对象不仅仅是程序测试, 软件测试应该包括整个软件开发期问各个阶段所产生的文档, 如需求规格说明、概要设计文档、详
9、细设计文档, 当然软件测试的主要对象还是源程序。第二章 相关技术和工具介绍2.1 相关技术介绍按照软件测试用例的设计方法而论,软件测试可分为黑盒测试和白盒测试; 2.1.1 白盒测试白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑测试、基路测试等,主要用于软件内部结构的验证。 2.1.2 黑盒测试黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在
10、测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。黑盒测试方法主要有等价类划分、边界值分析、因果图、错误推测等,主要用于软件确认测试。2.1.3等价类划分等价类划分:是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例.该方法是一种重要的,常用的黑盒测试用例设计方法.2.1.4边界值分析法边界值分析法:边界值分析方法是对等价类
11、划分方法的补充.边界值分析方法的考虑:长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误.2.1.5因果图方法前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系, 相互组合等. 考虑输入条件之间的相互组合,可能会产生一些新的情况. 但要检查输入条件的组合不是一件容易的事情, 即使把所有输入条件划分成等价类,他们之间的组合情况也相当多. 因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例. 这就需要利用因果图(逻辑
12、模型). 2.1.6错误推测法 错误推测法: 基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法. 其基本思想: 列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例. 2.2相关工具介绍 2.2.1 QTPQTP是quicktest Professional的简称,是一种自动测试工具。使用QTP的目的是想用它来执行重复的手动测试,主要是用于回归测试和测试同一软件的新版本。因此你在测试前要考虑好如何对应用程序进行测试,例如要测试那些功能、操作步骤、输入数据和期望的输出数据等1)QTP是一个侧重于功能的回归自动化测试工具;提供了很多插件,如:
13、.NET的,Java的,SAP的,Terminal Emulator的等等,分别用于各自类型的产品测试。默认提供Web,ActiveX和VB。 2)QTP支持的脚本语言是VBScript,这对于测试人员来说,感觉要“舒服”得多(如相比SilkTest采用C语言)。VBScript毕竟是一种松散的、非严格的、普及面很广的语言。 3)QTP支持录制和回放的功能。录制产生的脚本,可以拿来作为自己编写脚本的template。录制时,还支持一种lower level 功能,这个对于QTP不容易识别出来的对象有用,不过它是使用坐标来标识的,对于坐标位置频繁变动的对象,采用这种方式不可行。另外,QTP的编辑
14、器支持两种视图:Keyword模式和Expert模式。Keyword模式想法是好的,提供一个 描述近似于原始测试用例的、跟代码无关的视图(我基本很少用,除了查看、管理当前test中各个action的完整流程),而Expert就是代码视图,一般编写脚本都在这个区域。 4)一个有用的工具:Object Spy,可以用来查看Run-time object和Test object属性和方法。 5)QTP通过三类属性来识别对象:a)Mandatory; b)Assitive; c)Ordinal identifiers。大部分情况下,通过对象的一些特定属性值就可以识别对象(类型a)。这些属性可以通过To
15、ols-Object Identification 定义。 6)Object Repository(OR)是QTP存储对象的地方。测试脚本运行后,QTP根据测试脚本代码,从这个对象库中查找相应对象。每个Action可以对应有一个或者多个OR,也可以设置某个OR为 sharable的,这样可以供其他Action使用。注意,使用QTP录制功能时,默认将被测对象放在local OR中,可以通过 Resources-Object Respository,选择Local查看。 7)说到QTP的要点,不得不说Action。Action是QTP组织测试用例的具体形式,拥有自己的DataTable和Objec
16、t Repository,支持Input和output参数。Action可以设置为share类型的,这样可以被其他test中的Action调用(注意:QTP是不支持在一个test中调用另外一个test的,只有通过sharable action来调用)。 8)如3)所述,一个test中,多个action的流程组织,只有通过Keyword视图查看和删除,在Expert视图中没有办法看到。 9)调用Action可以通过菜单Insert-Call to * 来实现。QTP提供三种类型的调用方式:a)call to new Action,在当前test中创建一个新的Action;b)call to Co
17、py of Action;c)call to existing action,调用一个re-usable action,如果这个re-usable action来自另外一个test,将以只读的方式插入到当前test中。 10)QTP提供excel 形式的数据表格DataTable,可以用来存放测试数据或参数。DataTable有两种类型:global 和local。QTP为DataTable提供了许多方法供存取数据,在对测试代码进行参数化的时候,这些方法非常有用。 11)环境变量(Environment Variables)。在一个test中,环境变量可以被当前test中所有action共享。
18、环境变量也有两种类型:build in 和user defined。用户自定义的环境变量可以指向一个XML文件,这样可以实现在众多test之间共享变量。 12)QTP可以引用外部的VBS代码库,通过Settings-Resource加入,也可以ExecuteFile命令在代码中直接执行。这种VBS库可以为所有action和test共享。 13)QTP默认为每个test提供一个测试结果,包括Passed,Failed,Done,Warning和information几种状态类型,可以进行对结果Filter。但是,只能为每个test产生一个testing result,不能为多个testing产生
19、一个总的testing result.Mercury QuickTest Professional 甚至可以使新测试人员在几分钟内提高效率。您只需通过按“记录”按钮,并使用执行典型业务流程的应用程序即可创建测试脚本。系统使用简明的英文语句和屏幕抓图来自动记录业务流程中的每个步骤。用户可以在关键字视图中轻松修改、删除或重新安排测试步骤。 QuickTest Professional 也加快了更新流程。当测试中应用程序出现变动(例如“登录”按钮重命名为“登入”)时,您可以对共享对象库进行一次更新,然后此更新将传播到所有引用该对象的脚本。您可以将测试脚本发布到 Mercury TestDirecto
20、r,使其他 QA 团队成员可以重复使用您的测试脚本,从而消除了重复工作。 2.2.2 LRMercury LoadRunner 是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner 能够对整个企业架构进行测试。通过使用LoadRunner ,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。 目前企业的网络应用环境都必须支持大量用户,网络体系架构中含各类应用环境且由不同供应商提供软件和硬件产品。难以预知的用户负载和愈来愈复杂的应用环境使公司时时担心会发生用户响应速度过慢,系统崩溃等问题。这些都不可避免地
21、导致公司收益的损失。Mercury Interactive 的 LoadRunner 能让企业保护自己的收入来源,无需购置额外硬件而最大限度地利用现有的IT 资源,并确保终端用户在应用系统的各个环节中对其测试应用的质量,可靠性和可扩展性都有良好的评价。虚拟用户生成器用于捕获最终用户业务流程和创建自动性能测试脚本(也称为虚拟用户脚本)。 . Controller 用于组织、驱动、管理和监控负载测试。 . 负载生成器用于通过运行虚拟用户生成负载。 . Analysis 有助于您查看、分析和比较性能结果。 . Launcher 为访问所有 LoadRunner 组件的统一界面。LR在安装和卸载问题上
22、的一点总结 在安装 Loaderunnner 过程中也许你经常遇到,提示无法安装的情况,我也遇到过相关问题,于是查阅了相关资料,总结了一下,好东西不敢独享,拿出来和同行一起交流 (一) 提示: the link file . may be corrupted or has illegated link string 的,提示重复多次均无法安装。 原因 :你的 Loaderunner 的安装文件夹名写成中文了,造成 Lr 的安装教本无法识别路径,最终导致不断有这样的错误提示。 解决方案:把安装文件的目录名改为非中文就可以了。 (二) 没法完全卸载 要想把 LR 的老版本完全卸载,正确的步骤是:
23、1. 停止所有的运行的 LR 的进程和服务( including the Controller, VuGen, Analysis , or the LoadRunner Agent Process/Service ) 2. 备份已有的脚本,你的脚本有可能在你的默认安装路径下 3. 在控制面板的添加删除程序中,删除 LR ,并重启机器 4. 手动删除所有 LR 的文件夹,包括您的开始菜单里的 LR 快捷方式 5. 如果你的版本是 6.0 系列的,删除 Borland 文件夹(通常在 C:Borland or C:BDE 目录下) 6. 搜索 wlrun.* 、 vugen.* ,除了安装文件夹中
24、的文件,其他的都删除 7. 打开注册表,找到 如果只安装了 MI 公司的 LoadRunner 这一个产品,请删除: HKEY_LOCAL_MACHINESOFTWAREMercuryInteractive HKEY_CURRENT_USERSOFTWAREMercury Interactive 否则请删除: HKEY_LOCAL_MACHINESOFTWAREMercuryInteractiveLoadRunner HKEY_CURRENT_USERSOFTWAREMercury InteractiveLoadRunner 删除所有和 LR 有关的数值,除了你的 License2 或 Lic
25、ense。 8. 清空回收站 实现以上步骤后,即可放心安装了,切记在重装后,一定要重启机器,因为一些必要信息要写入注册表。 (三) 卸载后 , 执行安装过程时出现 license security violation.Operation is not allowed 提示信息 , 安装失败 解决方案: 1. 进入一台 Loadrunner 运行正常的电脑(安装路径要和你的相同)进入注册表,导出以下两个目录: HKEY_CURRENT_USERSoftwareMercury Interactive HKEY_LOCAL_MACHINESOFTWAREMercury Interactive 2.
26、回到刚才安装不成功的电脑 , 进入注册表导入刚才这两个文件。 3. 再次执行安装。 建议:如果有用 Ghost 提前做 Ghost,或者为系统设置还原点 第三章 需求分析在目前超市中,商品的管理至关重要。这里对商品的管理包括进、销、存3个方面。可以建立一个超市进销存管理系统,对超市的管理者、营业员、库存管理员等减轻其工作量,便于经营管理。功能需求:采购管理功能模块:采购计划、采购订单、采购入库、采购退货、应付款、采购付款。销售管理功能模块:库存查询、销售订单、销售出库、销售、顾客、销售出库查询、销售退货查询、历史查询、POS查询、积分兑现、积分兑现查询、积分兑现设置、应收款、销售收款。库存管理
27、功能模块:调库管理、库存盘点、库存查询、报溢管理、报损管理、商品拆分管理、商品合并管理、仓库资料、调库查询、变动库存查询、库存不足预警查询、报损报溢查询、商品拆分合并查询。管理库存商品 实时性、准确性,任何时间都能看到准确的现库存数量 方便准确的库存盘点,轻松查找数量不对的商品 商品销售快速方便,打印美观的小票或单据,样式支持自定义 管理财务和欠款 欠款(即应收应付款)的管理一目了然,支持多票一次性付款 支持期初欠款,支持预收预付款管理 整体财务数据准确,支持财务交接班,查询统计方便直观 管理会员和营销 灵活设置会员等级,销售按等级折扣,自动跟踪历史价 销售后自动计算会员积分,支持积分兑现,查
28、看积分记录 生日提醒、短信群发、优惠抹零等营销方式一应俱全功能需求:1 功能精简版标准版增强版基础平台数据库平台Access小型数据库Access小型数据库MSDE大型数据库数据安全数据安全性比较安全比较安全非常安全强力推荐资 料供应商、客户、商品、仓库、商品分类、员工.等等进 销 存采购、销售、退货、库存调拨、报损报溢、库存盘点、库存预警进 销 存拆分、合并、交接班、分批盘点1营销促销会员管理、生日提醒、短信群发、自动积分、自动折扣、积分兑现、优惠抹零、POS销售、历史价跟踪可选功能双单位管理、预付款管理、商品属性管理、序列号管理、订单管理1财务管理进销存自动进入财务、现金银行、费用管理、明
29、细查询、汇总查询1应收应付对供应商预付、对顾客预收款、退预付款、使用预付款、预付款往来记录预收预付对供应商预付、对顾客预收款、退预付款、使用预付款、预付款往来记录1报 表销售曲线、销售排行、商品明细账、日月统计、进销存统计、营业员提成、自定义打印单、导出Excel.等数 据 库多仓库管理、多帐套、数据库自动备份、清空数据库、升级数据库其他功能多用户管理、菜单权限、业务权限设置、万能查询、万能汇总、商品图片超市需要处理大量的库存信息,还要时刻更新产品的销售信息,不断添加商品信息。面对不同种类的信息,需要合理的数据库结构来保存数据信息,需要有效的程序结构支持各种数据操作的执行。它最主要的特点是能够
30、实时的和准确的控制店内的销售情况。如果可以能够实时掌握销售流程及销售情况,则可以有效地加速商品的周转率并提高服务质量,而且可以减少产品售价不符等所产生的问题。顾客的消费要求的是希望在超市购物中能基本上都能购得所需的商品,并且还要既保证商品质量还要享受优质,方便的服务。第四章 项目软件测试的过程4.1 测试计划4.1.1编写目的通过测试,傻瓜进销存系统强大而完善的功能,描述需要测试的特性、测试的方法、测试环境的规划、测试用例的设计方法、明确测试策略。4.1.2背景说明:a本测试计划是为傻瓜进销存而规划的;b该开发项目的历史,列出用户和执行此项目测试的计算中心,说明在开始执行本测试计划之前必须完成
31、的各项工作。4.1.3傻瓜进销存软件介绍傻瓜进销存,由邢台新海科技开发有限公司设计和开发,以简单实用为目标,以通用型为基础的进销存财务一体化管理软件,软件的口号是:“您意想不到的简洁易用!” 4.1.4参考资料傻瓜进销存系统需求分析说明书软件测试与测试技术说明书测试计划说明书4.2测试内容列出组装测试和确认测试中的每一项测试内容的名称标识符、这些测试的进度安排以及这些测试的内容和目的,例如模块功能测试、接口正确性测试、接口正确性测试、接口正确性测试的测试、设计约束和极限的测试等。测试类型是否进行测试测试优先级说明模块功能测试是中各模块功能能正确实现接口正确性测试是中各接口正确的链接接口正确性测试的测试是中各接口正确的链接设计约束的测试是中操作设计的步骤清晰极限的测试是中验证软件系统是否能够达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈及问题,找到软件的可扩展点,优化软件,最后起到优化系统的目的。4.2.1测试条件陈述本项测试工作对资源的要求,包括:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1