摘要随着中国IT行业的发展和软件市场的成熟,人们对软件作用期望值越来越高,软件的质量、性能、可靠性等方面也正逐渐成为人们关注的焦点。
近年来,由于软件错误而造成经济损失,导致严重后果的事例屡见不鲜。
因此,如何让保证软件产品的质量和可靠性就成为人们必须解决的一个重要问题,而软件测试是保证软件质量的一个重要手段。
在软件行业日新月异的发展进程中,软件的品牌以及种类已经到了数不胜数的地步,而软件测试已成为其中一个不可分割的部分。
新的测试理论,测试方法,测试技术手段在不断涌出,软件测试机构和组织也在迅速产生和发展,由此软件测试技术职业也同步完善和健全起来。
本软件的开发过程完全遵循软件开发流程来完成的。
经历了需求分析阶段,数据库设计阶段,界面开发阶段,编码阶段,最后通过软件测试,完成整个软件的开发。
测试软件使用Qucktest Professional(QTP)软件,该软件是一个比较全面的,能对被测软件比较完美分析。
并且能从中测试出被测软件的一些列的问题。
而傻瓜进销存系统是一款提供进货、出货以及库存管理一款全方位软件,是做的比较好的一款软件,它的开发,不仅为使用商提供了极大的便宜,也使得办公的效率明显的得到提高。
傻瓜进销存项目简单实用为目标,以通用型为基础的进销存财务一体化管理软件,可以用最简洁的方法掌控货物与财务的变化,我承担的的工作就是对傻瓜进销存的采购和库存功能模块进行测试,傻瓜进销存的采购和库存方面包括供应商、采购入库、采购退货、库存查询、采购订单、采购入库查询、采购退货查询、调库管理、库存盘点、仓库资料、报溢管理、商品拆分管理、报损管理、商品合并管理。
关键字:软件测试、需求分析、测试用例、QTP测试、目录摘要 (1)第一章引言 (3)1.1软件测试的背景和意义 (3)1.2软件测试的理论基础 (3)1.2.1 软件测试的定义 (3)1.2.2 软件测试的目的 (3)1.2.3 软件测试的容 (4)第二章相关技术和工具介绍 (5)2.1 相关技术介绍 (5)2.1.1 白盒测试 (5)2.1.2 黑盒测试 (5)2.1.3等价类划分 (5)2.1.4边界值分析法 (5)2.1.5因果图方法 (6)2.1.6错误推测法 (6)2.2相关工具介绍 (6)2.2.1 QTP (6)2.2.2 LR (8)第三章需求分析 (10)第四章项目软件测试的过程 (13)4.1 测试计划 (13)4.1.1编写目的 (13)4.1.2背景 (13)4.1.3傻瓜进销存软件介绍 (13)4.1.4参考资料 (13)4.2测试容 (13)4.2.1测试条件 (14)4.2.2测试资料 (14)4.2.3测试培训 (16)4.3测试设计说明 (17)4.3.1输入 (17)4.3.2输出 (17)4.3.3过程 (18)4.4评价准则 (18)4.5 测试用例 (18)4.6测试总结 (32)4.7 缺陷报告 (32)第五章项目自动化工具测试 (34)5.1 用QTP进行功能测试 (34)第六章总结 (40)致 (41)参考文献 (42)第一章引言1.1软件测试的背景和意义随着计算机技术的迅速发展和越来越广泛深入的应用于国民经济和社会生活的各个方面,随着软件系统的规模和复杂性与日俱增,软件的生产成本和软件中存在的缺陷和故障造成的各类损失也大大增加,甚至会带来灾难性的后果。
软件质量问题已成为所有使用软件和开发软件的人关注的焦点。
由于软件是人脑的高度智力化的体现和产品这一特殊性,不同于其他科技和生产领域,因此软件与生惧来就有可能存在着缺陷。
如何防止和减少这些可能存在的问题呢?回答是进行软件测试。
测试是最有效的排除和防止软件缺陷与故障的手段,并由此促进了软件测试理论与技术实践的快速发展。
新的测试理论,测试方法,测试技术手段在不断涌出,软件测试机构和组织也在迅速产生和发展,由此软件测试技术职业也同步完善和健全起来。
1.2软件测试的理论基础1.2.1 软件测试的定义软件测试使用人工或者自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。
它是帮助识别开发完成(中间或最终的版本)的计算机软件(整体或部分)的正确度(correctness) 完全度(completeness)和质量(quality)的软件过程;是SQA(software quality assurance)的重要子域。
(1)测试并不仅仅是为了找出错误.通过分析错误产生的原因和错误的发生趋势,可以帮助项目管理者发现当前软件开发过程中的缺陷,以便及时改进;(2)这种分析也能帮助测试人员设计出有针对性的测试方法,改善测试的效率和有效性;(3)没有发现错误的测试也是有价值的,完整的测试是评定软件质量的一种方法。
1.2.2 软件测试的目的如果测试的目的是为了尽可能多地找出错误,那么测试就应该直接针对软件比较复杂的部分或是以前出错比较多的位置。
如果测试目的是为了给最终用户提供具有一定可信度的质量评价,那么测试就应该直接针对在实际应用中会经常用到的商业假设。
在谈到软件测试时,引用Grenford J. Myers在《The Art ofSoftware Testing》一书中的观点: (1)软件测试是为了发现错误而执行程序的过程; (2)测试是为了证明程序有错,而不是证明程序无错误; (3)一个好的测试用例是在于它能发现至今未发现的错误; (4)一个成功的测试是发现了至今未发现的错误的测试。
这种观点可以提醒人们测试要以查找错误为中心,而不是为了演示软件的正确功能。
但是仅凭字面意思理解这一观点可能会产生误导,认为发现错误是软件测试的唯一目,查找不出错误的测试就是没有价值的,事实并非如此。
首先,测试并不仅仅是为了要找出错误。
通过分析错误产生的原因和错误的分布特征,可以帮助项目管理者发现当前所采用的软件过程的缺陷,以便改进。
同时,这种分析也能帮助我们设计出有针对性地检测方法,改善测试的有效性。
其次,没有发现错误的测试也是有价值的,完整的测试是评定测试质量的一种方法。
1.2.3 软件测试的容验证(verification)是保证软件正确地实现了一些特定功能的一系列活动, 即保证软件做了你所期望的事情。
(Do the right thing)1.确定软件生存周期中的一个给定阶段的产品是否达到前阶段确立的需求的过程;2.程序正确性的形式证明, 即采用形式理论证明程序符号设计规约规定的过程;3.评市、审查、测试、检查、审计等各类活动, 或对某些项处理、服务或文件等是否和规定的需求相一致进行判断和提出报告。
确认(validation)是一系列的活动和过程, 目的是想证实在一个给定的外部环境中软件的逻辑正确性。
即保证软件以正确的方式来做了这个事件(Do it right)1.静态确认, 不在计算机上实际执行程序, 通过人工或程序分析来证明软件的正确性;2.动态确认, 通过执行程序做分析, 测试程序的动态行为, 以证实软件是否存在问题。
软件测试的对象不仅仅是程序测试, 软件测试应该包括整个软件开发期问各个阶段所产生的文档, 如需求规格说明、概要设计文档、详细设计文档, 当然软件测试的主要对象还是源程序。
第二章相关技术和工具介绍2.1 相关技术介绍按照软件测试用例的设计方法而论,软件测试可分为黑盒测试和白盒测试;2.1.1 白盒测试白盒测试也称结构测试或逻辑驱动测试,它是知道产品部工作过程,可通过测试来检测产品部动作是否按照规格说明书的规定正常进行,按照程序部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑测试、基路测试等,主要用于软件部结构的验证。
2.1.2 黑盒测试黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序部结构和部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。
黑盒测试方法主要有等价类划分、边界值分析、因—果图、错误推测等,主要用于软件确认测试。
2.1.3等价类划分等价类划分:是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例.该方法是一种重要的,常用的黑盒测试用例设计方法.2.1.4边界值分析法边界值分析法:边界值分析方法是对等价类划分方法的补充.边界值分析方法的考虑:长期的测试工作经验告诉我们,大量的错误是发生在输入或输出围的边界上,而不是发生在输入输出围的部.因此针对各种边界情况设计测试用例,可以查出更多的错误.2.1.5因果图方法前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系, 相互组合等. 考虑输入条件之间的相互组合,可能会产生一些新的情况. 但要检查输入条件的组合不是一件容易的事情, 即使把所有输入条件划分成等价类,他们之间的组合情况也相当多. 因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例. 这就需要利用因果图(逻辑模型).2.1.6错误推测法错误推测法: 基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法. 其基本思想: 列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例.2.2相关工具介绍2.2.1 QTPQTP是quicktest Professional的简称,是一种自动测试工具。
使用QTP 的目的是想用它来执行重复的手动测试,主要是用于回归测试和测试同一软件的新版本。
因此你在测试前要考虑好如何对应用程序进行测试,例如要测试那些功能、操作步骤、输入数据和期望的输出数据等1)QTP是一个侧重于功能的回归自动化测试工具;提供了很多插件,如:.NET 的,Java的,SAP的,Terminal Emulator的等等,分别用于各自类型的产品测试。
默认提供Web,ActiveX和VB。
2)QTP支持的脚本语言是VBScript,这对于测试人员来说,感觉要“舒服”得多(如相比SilkTest采用C语言)。
VBScript毕竟是一种松散的、非严格的、普及面很广的语言。
3)QTP支持录制和回放的功能。
录制产生的脚本,可以拿来作为自己编写脚本的template。
录制时,还支持一种lower level 功能,这个对于QTP不容易识别出来的对象有用,不过它是使用坐标来标识的,对于坐标位置频繁变动的对象,采用这种方式不可行。