软件测试之验收测试流程

浅谈ERP系统验收测试流程、方法原则及内容
由安博测试空间技术中心https://www.360docs.net/doc/c73454222.html,/提供


引言

软件测试是为了发现错误而执行程序的过程。它不仅是软件开发阶段的有机组成部分,而且在整个软件工程(即软件定义、设计和开发过程)中占据相当大的比重。软件测试是软件质量保证的关键环节,直接影响着软件的质量评估。软件测试不仅要讲究策略,更要讲究时效性。验收测试作为软件测试过程的最后一个环节,对软件质量、软件的可交付性和软件项目的实施周期起到"一锤定音"的作用。

1、ERP验收测试的现状

验收测试是一种有效性测试或合格性测试。它是以用户为主,软件开发人员、实施人员和质量保证人员共同参与的测试。ERP(企业资源规划)作为提高企业管理创新能力的有力工具,其定义、设计、开发、实施和应用的过程遵循一定的规律。这些规律表现在软件过程控制、质量保证和软件测试等方面。验收测试关系到ERP能否成功验收,能否平滑步入维护期,能否快速实现效益。ERP验收测试的全面性、效率性、科学性、规范性、彻底性在广大制造业企业和ERP软件供应商中还是一个崭新的话题。

当前很多人对ERP验收测试工作存在一些误解:

(1)由于ERP软件的复杂性、规模性,人们可能更多地关注它多变的需求定义、个性化解决方案、定制化开发过程,却轻视了项目的验收工作。这些"只重视开题和过程,不重视结题和维护"的做法,最直接的后果就是,形成了一个个延期工程或"烂尾"项目。

(2)ERP实施工作做好了,用户企业可以把系统跑起来了,文档移交了,客户签字了,还有什么必要做验收测试。这种误解源于对验收测试的目的、流程、方法和意义缺乏认识。

(3)验收测试是用户企业的事,与软件服务提供商无关。事实上,只有两者密切配合,才能提高测试效率。

(4)将验收测试理解成给用户做演示。验收测试要讲究策略,不是走走过场,而是有计划有步骤的执行活动,要进行科学的用例设计。

(5)验收测试就是验证软件的正确性。验收测试和其他的测试一样,既要验证软件的正确性,又要发现软件错误。只不过,验收测试是以确认软件功能是否满足需求为主。

2、ERP验收测试的流程及方法原则

软件包括程序、数据和文档。ERP验收测试的对象应当含盖这三个方面。验收测试的主体要以用户企业为主,ERP软件服务供应商积极配合;或以第三方测试为主,用户和软件供应商共同配合。

ERP验收测试的基本流程如下图所示,软件实施人员要适时配

合和敦促用户做好验收测试的各项准备工作,按计划按步骤执行验收测试,形成规范的测试文档,客观地分析和评估测试结果,并跟踪不合格现象,对软件问题要分级分类管理,必要时要进行回归测试,确保所有问题能得到关闭,最终成功通过验收。

在测试方法上,由于验收阶段的特殊性,一般以黑盒测试和配置复审为主,以自动化测试和特殊性能测试为辅,用户、软件开发实施人员和质量保证人员共同参与。

ERP验收测试要注意以下几个原则问题:

(1)验收测试始终要以双方确认的ERP需求规格说明和技术合同为准,确认各项需求是否得到满足,各项合同条款是否得到贯彻执行。

(2)验收测试和单元测试、集成测试不同,它是以验证软件的正确性为主,而不是以发现软件错误为主。

(3)对验收测试中发现的软件错误要分级分类处理,直到通过验收为止。

(4)验收测试中的用例设计要具有全面性、多维性、效率性,能以最少的时间在最大程度上确认软件的功能和性能是否满足要求。

3、ERP验收测试的内容及用例设计

ERP验收测试的目的是确认系统是否满足产品需求规格说明和技术合同的相关规定。通过实施预定的测试计划和测试执行活动确认软件的功能需求、性能需求和文档需求。ERP是较复杂的大规模性软件,其验收测试应当涵盖确认测试和系统测试两个方面的内容。具体包括以下测试内容:安装测试、功能测试、界面测试、性能测试、文档测试、负载压力测试、恢复测试、安全性测试、兼容性测试等。下面结合ERP验收测试的具体内容,谈谈用例设计的注意事项。

(1)安装测试

安装测试的目的在于验证软件能否在不同的配置情况下完成安装,并确认能否正常运行。ERP安装测试的用例设计要注意以下几点:

第一,根据ERP的可移植性,选择不同操作系统。

第二,选择不同层次的硬件配置和软件配置,一般选用最低、中等和最高三种配置进行测试,验证系统对软硬件环境的依懒性。

第三,观察ERP安装程序在软硬件资源充足的情况下能否正常安装,安装过程中是否给予充足的提示,是否存在流氓软件的一些弊病,安装完成后能否正常运行,能否彻底删除。

第四,在资源不充沛的情况下,如磁盘空间不够、内容不足等,系统能否完成安装,能否给予各种提示。

(2)功能测试

功能测试是验收测试中的主要内容。ERP功能测试要包含以下项目:单个模块的查询、增加、删除、修改、保存等操作;数据的输入与输出;数据处理操作,如导入

、结转等;基础数据定义的精度;计算的准确性,如仓库的历史库存、当前库存、货位库存是否准确;数据共享能力;身份验证和权限管理;接口参数和系统控制参数;单据流转情况;状态控制,如系统是否对MPS在执行MRP分解、工单下达、车间任务调度等操作前后的状态做了标识,状态的改变是否正确;报表的打印输出;审批流程定义及各种审批、反审批操作;短信发送及管理;岗位及部门业务的操作,如从请购管理、采购计划到采购订单管理,再到采购到货管理;跨部门的业务操作,如从销售订单到主生产计划,从车间领料到仓库出库等等。

ERP功能测试的用例设计要注意以下几点:

第一,测试项目的输入域要全面。要有合法数据的输入,也要有非法数据的输入。如,在测试基础数据的定义时,若规定是数字,则既要输入数字进行测试,也要输入字母、空格等非数字进行测试。数字包含整数、负数、小数,因而还要输入这些不同的数字验证数字的精度。

第二,划分等价类,提高测试效率。在考虑测试域全面性的基础上,要划分等价类,选择有代表意义的少数用例进行测试,提高测试效率。如,若MRP记录有"刚形成"、"已派工""正执行"、"已完成"四种状态,系统只允许对刚形成的MRP记录做局部性修改或删除操作,那么在测试时,将MRP记录划分为四类,每种状态对应一类,每类各选一条记录作为测试用例即可。

第三,要适时利用边界值进行测试。如"订单预排"中一般要求预排的数量大于0,那么测试数据可以分别为0,-1,1,10000000(一个非常大的正数)。

第四,重复递交相同的事务。

第五,不按照常规的顺序执行功能操作。

第六,验证实体关系,实体间的关系有三种:一对一,一对多,多对多。如,一个MPS对应多个MRP,一个MRP对应多个车间任务。

第七,执行正常操作,观察输出结果的异常性。如,删除某条记录对排序的影响;执行审批后,单据的状态是否改变。

(3)界面测试

ERP界面要符合现行标准和用户习惯。软件企业可以形成自己的特色,但要确保整个软件风格一致。界面测试要从友好性、易操作性、美观性、布局合理、分类科学、标题描述准确等方面入手。测试用例的设计要重点掌握以下几点:

第一,背景和前景的颜色是否协调,颜色反差是否用得恰当。

第二,软件得图标、按钮、对话框等外观风格是否一致,美观效果所要求的屏幕分辨率。

第三,窗口元素的布局是否合理,并保持一致。

第四,各种字段标题的信息描述是否

准确。

第五,快捷键、按钮、鼠标等操作在软件中是否一致。

第六,窗口及报表的显示比例和格式是否能适应用户的预期需求。

第七,误操作引起的错误提示是否友好。

第八,活动窗口和被选中的记录是否高亮显示。

第九,是否有帮助信息,菜单导航能否正常执行。

第十,检查一些特殊域和特殊控件能否运行。

(4)性能测试

性能测试主要测试软件的运行速度和对资源的消耗。通过调整ERP所依赖的软硬件配置、网络拓补结构、工作站点数、数据量和服务请求数来测试软件的移植性、运行速率、稳定性和可靠性。一般借助WinRunner之类的企业级自动化测试工具来辅助测试,通过极限测试来分析评估软件性能。

(5)文档测试

文档是软件的重要组成部分,也是软件质量保证和软件配置管理的重要内容。文档测试主要通过评审的方式检查文档的完整性、准确性、一致性、可追溯性和可理解性。ERP作为一个大规模软件,覆盖了企业的各种业务。它至少要具备需求定义、开发设计、测试评估、项目管理、用户应用这五类文档,具体而言,应包含GB8567-88中规定的14种软件文档。

在文档复审时,要特别注意以下几点:

第一,要明确文档验收的标准,软件企业和用户企业要达成一致。

第二,确定文档的重要性和项目文档需求,比如,在验收阶段,用户文档(用户手册、操作手册、维护手册、联机帮助文件)显得特别重要,需要认真评审。

第三,检验文档完整性,主要是文档的种类和内容的完整性。

第四,检验文档的一致性和可追溯性,主要是:软件的设计描述是否按照需求定义进行展开的;应用程序是否与设计文档的描述一致;用户文档是否客观描述应用程序的实际操作;关于同一问题的描述是否存在不同的说法。

第五,检验文档的准确性,主要是文档的描述是否准确,有无歧义,文字表达是否存在错误。

第六,检验文档的可理解性,主要审核文档是否针对特定的读者群体,表达是否详细。如,ERP操作手册,除了描述每个模块的操作,应该还提供关联性岗位业务、部门业务和跨部门业务的操作说明。

(6)其他测试

除了上述的测试外,还有必要对系统的其他特性和需求加以测试。如检测软件遇突发性故障后对数据的恢复能力,软件的安全保密性和对硬件、软件、数据的兼容性,系统所能承担的最大数据量和健壮性等。

其他测试一般包含以下几种:

第一,负载压力测试。它主要包括并发性能测试、

疲劳强度测试、大数据量测试和速度测试。一般采用自动化技术分别在客户端、服务器端和网络上进行测试。用例设计时,要以真实的业务为依据,选择有代表性的、关键的业务操作作为测试对象。

第二,恢复测试。通过模拟硬件故障或故意造成软件出错,检测系统对数据的破坏程度和可恢复的程度。

第三,安全性测试。通过非法登陆、漏洞扫描、模拟攻击等方式检测系统的认证机制、加密机制、防病毒功能等安全防护策略的健壮性。

第四,兼容性测试。通过硬件兼容性测试、软件兼容性测试和数据兼容性测试来考察软件的跨平台、可移植的特性。

4、结语

ERP用户和软件开发实施人员要明确验收测试的真正意图。开发人员和实施人员不应该掩盖软件错误或不关心用户不熟悉的测试项目。用户也不能因为存在一些当前无法实现的需求而搁置验收工作。相反,两者应当精诚合作,相互信任,拨云见日。对于那些不可行的需求或不明确的需求,双方要协商进行需求变更,并达成一致意见。只有这样的验收测试,才能促使ERP工程项目得以快速圆满验收。
性能测试的门槛?? 软件测试
随着软件测试行业的逐渐发展,性能测试也变得火热起来。从各大测试论坛和测试交流群的交流主题的热门程度来看,性能测试已经成为大家非常感兴趣的话题。性能测试作为软件测试行业技术性相对较高的工作(自动化测试、白盒测试、性能测试)来说,个人觉得其操作门槛还是不低的。对于测试新手来说入门有一定的难度,做的好就更加不容易了,可能花了不少时间而实际收获不大。因此觉得有必要来专门探讨一下性能测试的门槛,以及如何更好的迈进这个门槛。
先来分析一下一些关于性能测试入门级的常见问题:
1、请问怎么做象PhotoShop这类单机程序的性能测试;
2、用Delphi开发的程序,应该用什么协议来录制脚本;
3、用IP欺骗能对外网进行测试吗;
关于第1个问题,问题本身并没有错误,单机版也有性能问题。但和我们通常所说的性能测试是两回事,不能混为一谈。如果这个算是问题的话,那我想是由于不清楚性能测试的概念和原理所造成的。第2个问题也不少见,但这种问题无法回答。我们知道,性能测试采用的协议是由被测系统的体系架构和通信协议决定的,而不在乎你用什么开发工具或开发语言。第3个问题,关于IP欺骗一般只用在内网,不管你在内网如何欺骗,经过网络地址转换后到了外网上的IP地址表现就是你的公网的IP,除非你一开始就设置成公网的IP地址,但这个一般都不可能。这

个问题体现提问者对于网络知识的理解还不深入。
以上问题反映了在学习性能测试人员的一个比较普遍的现象,缺乏必要的知识积累、知识面不足,但又由于学习兴趣或工作压力期望急于求成,由此而形成这样一个矛盾的局面。
在我看来,性能测试是一项综合性很强的工作,甚至可以作为一项工程来看待。
从性能测试的知识体系来看,性能测试需要掌握性能测试的基础知识、业务知识、开发相关知识、以及性能测试工具。
基础知识包括性能测试的原理、常见的测试类型、方法、策略,如何进行一个计划、设计、实施、分析等性能测试过程。没有性能测试基础知识,一切简单的性能测试在你手上都将出现各种问题,测试交流将变得难以沟通,同时性能测试的成功率将大大降低。
业务知识通常都被忽略了。性能测试要基于被测系统的应用场景才有实际的价值,测试场景对性能测试结果有决定性的影响,因此测试场景的设计是非常关键的,场景的设计需要和业务应用结合起来。在一些比较正规的性能测试过程中,会有业务人员配合一起做性能用例设计的。
开发相关的知识也是必须具备的知识,通常在这方面也是我们最大的缺点。这方面的知识包括操作系统、数据库、应用服务器、中间件、网络等,每一个都是一门很深的学问,而要求性能测试人员都精通好像也不太现实。但起码的知识还是需要掌握的,比如通常有哪些参数需要监控和调整,它们之间是如何通信和运作的,某一方面知识的欠缺都可能导致测试模拟不准确或问题定位不充分,没有这些知识的支撑性能测试将变得难以下手或者学习工作的进展都会有很大的影响。
测试工具的应用,这个是目前学习的焦点。只有在前面3点的基础上,采用合适的测试工具,才有助于测试目标的达成。
从另外的角度分析,性能测试又可以分为技术、方法和管理方面的范畴。没有方法的指导光有技术那是行不通的,那是有勇无谋的体现。同时性能测试经常作为一个独立的阶段和活动,更需要用项目管理的方法进行,比如一个在客户现场的性能测试验收测试,与客户进行交流、时间计划的制定、测试进度的控制、测试脚本和测试数据的版本管理、各种资源的谐调等,都是需要用管理的思想进行的。
从以上分析可以看出,由于性能测试工作需要具备这么多的知识,因此在一定程度上也成为了性能测试的门槛。这个综合的门槛将会成为很多性能测试新手入门的一道障碍,要突破这道障碍,建议结合自己的知识体系有针对性地去学习和提高。
性能测试

是一个技术与方法并重的工作,目前论坛上多谈技术,少谈方法,很多人甚至在没有任何性能测试基础知识的情况下就埋头苦学测试工具,我觉得是不应该的。我们应该意识到,测试工具只是性能测试中的一部分,仅是为达到性能测试目的而采用的一种手段。性能测试对于我们最大的价值在于方法和经验,我们学习的目标是整个性能测试过程上方法学的东西,而不是掌握具体某个测试工具。LoadRunner并不是万能的,在什么情况下应该采用什么工具才能达到最佳的效果,需要我们去判断。
另外,学习需要有一个循序渐进的过程,性能测试需要长时间的知识积累,没有什么捷径可言。从学习效率和职业发展方面考虑,本人不太建议没有工作经验的测试新手一上来就扎进性能测试之中去,这样将花费你更多的时间精力去学习,是一种事倍功半的效果。

相关文档
最新文档