关于测试版手机软件的几点看法
2024-06-09 17:59:25
供稿:网友
关于测试版手机软件的几点看法
前段时间论坛里面就索尼爱立信T102软件版本进行讨论,有同学提出了客户服务中心给T102用户手机安装测试版软件(也叫BETA版)的问题。在前面讨论手机软件升级的文章里面曾经说过,由于手机软件是计算机软件的一个分支,所以有着很多和计算机软件相似的特点和共性。在计算机软件里面,软件的测试是一个必须和复杂的过程,我们经常都可以看见一些软件的测试版本在网上供大家下载试用,可以说,目前我们使用的各种软件都经过了严格的测试。那么平时我们很少可以看见测试版的手机软件,正式的手机软件和测试版手机软件有什么区别,手机软件的测试需要经过那些过程呢?结合计算机软件的测试,我谈谈对测试版手机软件的一些看法。
一、软件测试
(一)软件测试的理由:为了保证软件的质量和可靠性,应力求在分析、设计等各个开发阶段结束前对软件进行严格的技术审评,以便能够尽早地发现错误。但是,实践证明,由于人们能力的局限性,审查并不能发现所有的错误。如果在软件投入运行之前,没有发现并纠正大部分的错误,那么这些错误将会在软件的运行过程中暴露出来。到这时,不仅要为纠正这些错误付出巨大代价,同时也会造成恶劣的后果。这种情况就迫使人们必须认真地、彻底地进行软件测试。
软件测试是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是保证软件质量的关键步骤。
软件测试的定义:软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及预期的输出结果),并应用这些测试用例去运行程序,以发现程序错误的过程。
从上面的软件测试的理由和定义可以看出,测试版手机软件并不是让用户正式使用,而是一个发现错误的过程。测试版的手机软件就是通过运行来找到和修正隐藏的错误。这一点非常重要,说明测试版手机软件并不是一个正式的产品,那只是让大家试用的一个半成品,里面可能有我们(当然也包括程序员和生产厂商)所不知道的错误和漏洞。所以我们要慎重、小心地使用一些测试版的手机软件,因为毕竟手机软件不是计算机软件,自己可以随意安装和删除,你发现问题后必须到客服那里才能解决。
(二)软件测试的目标可以归纳为以下几点:
1.测试是为了发现软件中的错误而运行软件的过程;
2.好的测试方案是尽可能地发现至今尚未发现的错误的测试方案;
3.成功的测试是发现出至今尚未发现的错误的测试方案。
测试的目标是以最少的时间和人力找出软件中潜在的各处错误和缺陷。除了发现软件中的错误外,测试还能够证明软件的功能是否同性能和需求说明相符。此外,实施测试所收集到的测试结果数据为可靠性分析提供了依据。
从软件测试的目标可以看出,软件测试的目的是找出软件中的错误和缺陷,所以在使用测试版的手机软件时应该对手机的全部功能在各种情况下进行使用,力争及时发现软件中的错误和漏洞,为及时更改提供便利。
(三)软件测试应遵循的原则:
1.不要抱有“软件不会有错或认为查不出错”的幻想;
2.设计测试试用例时,应同时确定输出结果;
3.设计测试试用例时,应包括合理的输入数据和不合理的输入数据;
4.软件设计者应当避免测试自己的程序;
5.严格全面地执行测试计划;
6.测试完成后,应妥善保存测试计划、测试用例、出错统计和最终分析报告。
(四)软件测试方式:人工测试、动态测试和自动测试三种。
1.人工测试:人工测试是由人工对软件进行阅读和检查。主要方法有:走查和会查。主要内容有:检查软件的结构是否合理;功能是否达到设计说明中的要求;检查各模块之间的接口是否正确;检查各模块内部控制逻辑的正确性;进行数据结构和语法分析。经验表明,使用这种方法能够有效地发现30%到70%的逻辑设计和编码错误。
2.动态测试:就是上机测试,用设计好的测试用例作为输入,执行程序,以发现软件中的错误。
3.自动测试:就是利用一些测试工具,代替人工进行静态分析和动态测试。测试工具分为:静态分析工具、动态分析工具和测试评估工具。
从上面测试的方式分类看,使用测试版手机软件的过程是属于第一种人工测试这一类的(当然是当了生产厂商的免费测试员)。
(五)软件测试过程:按单元测试、组装测试、确认测试和系统测试四个步骤进行。
1.单元测试:又称模块测试。它的测试目的是发现模块的子程序或过程的实际功能与该模块的功能和接口的描述是否相符,以及是否有编码错误存在。主要内容有:模块接口测试;局部数据结构测试;重要路径测试;出错处理能力测试;边界条件测试。严格地来讲,单元测试从程序编写完毕,着手对程序模块进行检查的时候就开始了。它包括人工测试(代码检查)和上机测试两个步骤。
2.组装测试:又称集成测试或联合测试。单元测试之后,应按要求把模块组装起来,进行组装测试。组装测试过程中的模块组织方式有非渐增式和渐增式两种。
(1)非渐增式组装测试:这种组装方式是先对每个模块分别进行测试,然后再把所有模块组装在一起进行整体测试。
(2)渐增式组装测试:这种方式是先对一个个模块进行模块测试,然后把这些模块逐步组装成较大的系统,在组装过程中,每连接一个模块便进行一次测试,直到把所有模块集成成为一个整体并进行测试,则软件的组装测试完成。分为两种:自底向上测试和自顶向下测试。
3.确认测试:又称有效性测试。组装测试结束后,得到一个完整的软件系统,这时进行最后的测试,即有效性测试。有效性测试阶段主要进行的测试有:有效性测试(黑盒测试)、软件配置复查、α测试和β测试以及验收测试。
(1)有效性测试:是在模拟的环境下,运用黑盒测试(注)的方法,验证被测试的软件是否满足需求规格说明书上的需求。
(2)软件配置复查:是为保证软件配置齐全。即要保证所有文档资料的完整性和正确性,同时还要保证软件各方面的质量都要符合要求。
(3)α测试:是一个用户在开发环境下,并且在开发者的陪同下进行的测试。目的在于评价软件的功能、可使用性、可靠性、性能和支持等。
(4)β测试:是多个用户当开发者不在现场的时候在一个或者多个用户的实际使用环境下进行的测试。必须在α测试达到一定的可靠程序时才可以进行的,目的在于测试可支持性。测试版的别称BETA版的喊法应该就是从这里来的,β的英文名称就是BETA。
(5)验收测试:是以用户为主的测试。目的在于确定系统功能和性能的可接受性。
4.系统测试:是指将经过确认测试后的软件系统与计算机(手机)硬件、外设、其他支持软件以及其他系统元素一起进行测试。主要内容有:功能测试、吞吐量测试、可用性测试、保密性测试、安装测试、可恢复性测试、资料测试和程序测试。
上面详细介绍了软件测试的全过程,从我们实际使用测试版软件的情况看,一般用户使用的测试版软件应该是确认测试里面的最后两项:β测试和验收测试所使用的软件。后面只要再通过系统测试,测试软件就可以成为一个可以正式给用户使用的软件了。但是,需要特别强调的是,即使在前面经过了那么多测试、后面只剩最后一个测试项目的情况下,我们通常使用的测试版软件仍然只是一个测试的产品,和真正的可以交给用户使用的正式产品还是有明显的区别。这种区别不仅仅是在名称(或软件版本号)上,而且在软件的程序上有很大的可能存在区别。这是因为,如果软件测试顺利有可能一次就通过β测试、验收测试和系统测试,那么用户使用的测试版软件和正式的软件就没有区别,但出现这种情况的机会从概率上来说是很低的(无论对于复杂的计算机程序还是相对简单的手机软件来说都几乎不可能);如果测试发现了错误和问题,那么程序就会需要更改,那么最后真正交给用户的软件和测试版软件就会存在区别,出现这种情况的概率是很高的,原因就是前面讲的,任何软件在设计时就不可能没有错误和漏洞,如果有,在测试时发现后,那么就必须要进行更改。
最关键的一点是,由于测试软件不可避免地存在错误和漏洞,那么对于使用者来说就存在隐患,而且一些错误和漏洞可以在后来出的正式的软件中被消除,减少不必要的麻烦。因此,对于消费者来说,使用测试版的手机软件带来的风险要明显高于正式版的手机软件,而且发现问题后要重新到客服那里安装手机软件对消费者来说无疑是增加负担和麻烦,所以建议最好安装正式版本的手机软件,如果只有测试版的,即使等待一段时间安装正式版的也是值得的。
二、客服在使用测试版软件时的提示
相信很多人都曾经下载和使用过一些计算机软件的测试版本,象我们很多人使用的网络寻呼工具QQ就经常提供测试版给大家试用。一般这些程序对计算机的运行影响都不会很大,即使发现问题了,反安装或者删除掉就可以了,甚至还可以直接升级到新的版本。但对于手机用户来讲就不是那么容易的了,原因是:1.目前使用的手机软件就是一个象WIN98一样的操作系统,如果有太多的BUG和漏洞对使用者来说就很痛苦了,就象计算机安装的操作系统如果毛病太多,想必谁用着都不爽;2.对于普通用户毕竟不可能自己安装和修改手机软件(少数高手除外),只有到客服那里去维护。所以,手机客户服务中心在使用测试版的手机软件给用户安装时应该向用户说明,并且应该把风险讲清楚,避免今后给用户和客服带来麻烦。
目前,在网上经常下载的一些测试版的软件都会在名称和注解中明确地告诉使用者,这是一个测试版软件(就是BETA版),并不是一个正式的软件,让用户在使用前就已经知道风险。那么客服人员在给手机软件进行维护时,如果要给用户的手机安装一个测试版软件,就应该准确、清楚地告诉用户安装的是测试版软件以及因此而有可能带来的风险,让用户自己去选择是否安装,并且让用户在发现问题后及时反馈信息,便于软件的改进。如果客服人员在安装前没有向用户进行这种必须的提示和解释,那么后果将是非常严重的,这也违反了作为服务人员的一种职业道德标准;而且用户完全不知道自己使用的是测试版软件,在使用中发现问题就会带来一些不必要的麻烦,用户发现后完全有理由对此行为追究客服的法律责任。就好象一些医药公司在对新药进行投入市场前的临床实验时,都必须要告诉患者使用药物是测试产品,而且会有不可预知的风险。所以,客服人员必须在安装测试软件前告知用户准确的信息,而不是使用一些模糊的说法或者向用户隐瞒事实。
三、总结
1.手机软件在成为正式产品之前进行全面的测试是十分正常和非常必要的。
2.手机软件的测试是一个复杂、系统而且是严格的过程,普通用户如果要使用测试版手机软件必须要有足够的心理准备;
3.无论是计算机软件还是手机软件,它们的测试版由于本身存在的不知道的错误,在使用过程中难免会遇到不可预知的问题;
4.客服人员在对用户手机进行软件维护时,在使用测试版软件前,应该明确地告知用户,由用户自行抉择;
5.如果用户自愿安装测试版软件,在使用过程中应尽量使用各种功能,发现问题后及时向厂商反映,以便能够使软件中的错误得到修正。
注:常用的测试方法有黑盒测试和白盒测试两种。
1.白盒测试:又称结构测试或逻辑测试。所谓“白盒”是指将测试对象看作一个打开的盒子,测试人员可利用程序内部的逻辑结构及有关的信息来设计或选择测试用例。因此白盒测试主要考虑的是测试用例对程序内部逻辑的覆盖程度,而不考虑程序的功能。测试用例对程序的覆盖程度从低到高分别为:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖。
2.黑盒测试:又称功能测试或数据驱动测试。在这种测试方法中,程序对测试者是完全透明的,测试者不考虑程序的内部结构和特性,就象把程序看作一个不能打开的盒子,只根据程序的需求规格说明中的程序功能或程序的外部来设计测试用例。方法包括:等价分类法、边缘值分析法、因果图法和错误推测法。
后记:针对索爱T102在软件维护时客服不同的态度,有同学提出了R6E版本是测试版的推测,从上面分析,我个人认为这种假设是不可能的,原因有二:
1.上面的分析已经讲了,客服如果在不事先声明的情况下使用测试版手机软件给用户使用,无疑是非常冒险的行为和违反职业道德的,从客服和厂商的角度讲,是完全没有必要的,而且就算有测试版软件,他们自己也可以进行测试,没有必要偷偷摸摸地让用户进行;
2.T102的软件发展到R6B版本,已经经历了好几个软件版本,目前没有发现功能上有什么大的改动,相信每个新版本软件都是对上一个版本软件的改进(就是减少BUG和漏洞),而且用户也经过了长时间的使用,因此,没有必要这个时候还推出测试版软件。