软件测试是软件质量保证的关键步骤。其中,对于不同企业的不同类产品、同一企业的不同类产品、或不同企业的同一类产品,实际操作上都会有很大的不同。汉化软件的测试工作更有其特殊性,不同于一般软件的测试。
一、测试的目的:
1、 确保产品完成了它所承诺或公布的功能,并且所有用户可以访问到的功能都有明确的书面说明;一般测试只需要测试出产品的功能,并测试出是否与书面说明一致就可以的了。而汉化测试则必须先测试出原版中承诺的功能是否都具有,还要测试出汉化后的功能与原版是否相同,并找出原因。
2、 确保产品满足性能和效率的要求。软件汉化后往往性能和效率都有一定距离,测试除了测试出原版和汉化版的性能和效率外,还要找出原因。
3、 确保产品是健壮的和适应用户环境的。一般原版都是在非中文的环境下运行,汉化后在中文的环境下运行。汉化测试还需测试出在不同环境下不同版本的健壮性和适应性。
当然,软件测试员的目标是一致的:尽可能早、尽可能多的找出软件缺陷,并关闭软件的缺陷。
二、测试的计划
“工欲善其事,必先利其器”。专业的测试必须以一个好的测试计划作为基础。一个测试计划应包括:产品基本情况调研、测试需求说明、测试策略和记录、测试资源配置、计划表、问题跟踪报告、测试计划的评审、结果等等。其中,汉化测试的侧重点与一般测试不同,则重于测试需求说明中的功能和整体测试、测试策略和记录、问题追踪报告等等。
软件测试的方法和技术是多种多样的,可以从不同的角度加以分类:从是否需要执行被测软件的角度,可分为静态测试和动态测试;从测试是否针对系统的内部结构和具体实现算法的角度来看,可分为白盒测试和黑盒测试;从软件测试的组成的角度来看,可分为单元测试、综合测试、确认测试、系统测试。
汉化测试一般包含有确认测试、单元测试、综合测试、确认测试、系统测试等等。
一 、确认测试:
确认测试就是检查软件能否按合同要求进行工作,即是否满足软件需求说明书中的确认标准。
实现软件确认要通过一系列墨盒测试,着重考虑软件是否满足合同规定的所有功能和性能,文档资料是否完整、准确人机界面和其他方面(例如,可移植性、兼容性、错误恢复能力和可维护性等)是否令达到汉化前的要求。汉化测试一般用α测试,即是指软件开发公司组织内部人员模拟各类用户行对即将面市软件产品(称为α版本)进行测试,试图发现错误并评估。
确认测试的结果有两种可能,一种是功能和性能指标满足软件汉化前的要求,可以进行汉化;另一种是软件不满足软汉化前的要求,无法汉化,必须退回原版公司重新修改。确认测试是软件汉化前的一项必须的工作。
二、单元测试
汉化测试的单元测试可分为两部分:汉化前和汉化后。
汉化前、后的单元测试都必须包括以下任务:1 模块接口测试;2 模块局部数据结构测试;3 模块边界条件测试;4 模块中所有独立执行通路测试;5 模块的各条错误处理通路测试。
单元测试过程:主要为取得原版中的单元代码,进行复查、编译的同时进行单元测试。在单元测试中,详细记录整个测试过程:包括方式、边界值、数据等,并考虑用同样的方法在汉化版的测试中会得到的结果。汉化后,利用原版的单元测试的资料进行测试,并以原版所考虑的结果进行对比。如结果出入较大,应增加汉化版的测试任务。
三、综合测试
时常有这样的情况发生,每个模块都能单独工作,但这些模块集成在一起之后却不能正常工作。主要原因是,模块相互调用时接口会引入许多新问题。例如,数据经过接口可能丢失;一个模块对另一模块可能造成不应有的影响;几个子功能组合起来不能实现主功能;误差不断积累达到不可接受的程度;全局数据结构出现错误,等等。
在单元测试完成后,必须分别在原版和汉化版中进行综合测试。
在原版中,一般采取自顶向下集成。自顶向下集成是构造程序结构的一种增量式方式,它从主控模块开始,按照软件的控制层次结构,以深度优先或广度优先的策略,逐步把各个模块集成在一起。原版用这种方法是因为:自顶向下集成的优点在于能尽早地对程序的主要控制和决策机制进行检验,因此较早地发现错误。在测试较高层模块时,所需的下层模块功能均已具备,所以不再需要桩模块。
在汉化版中,一般采取自底向上集成。自底向上测试是从"原子"模块(即软件结构最低层的模块)开始组装测试,因测试到较高层模块时,所需的下层模块功能均已汉化,所以不再需要桩模块。汉化版用这种方法是因为:测试用例的设计亦相对简单。
四、确认测试:
在综合测试结束后,汉化的主要工作也做完了。这里的确认测试主要是汉化版的测试,并可利用原版中的测试数据等进行汉化版的确认测试。此外,还需要汉化版的特点进行一些额外的确认测试。
五、系统测试:
为了节省时间和开支,只需在汉化版中进行系统测试。系统测试应该由若干个不同测试组成,目的是充分运行系统,验证系统各部件是否都能政党工作并完成所赋予的任务。系统测试的任务是:1、恢复测试;2、安全测试;3、强度测试;4、 性能测试;5系统兼容性测试。其中,系统兼容性测试包含:操作系统兼容性、异构数据库兼容性、新旧数据转换、异种数据兼容性、硬件兼容性。
汉化测试除了要进行上述的测试外,还必须有良好的外语基础,还跟一个人的素质、心理影响有很大的关系。
一个好的测试工程师要具备以下素质:沟通能力、移情能力、技术能力、自信心、外交能力、幽默感、很强的记忆力、耐心、怀疑精神、自我督促、洞察力等等。