专业科信息科班级计算机应用06(软日)学号0611307147江苏省联合职业技术学院南通商贸分院毕业设计(论文)审核设计(论文)题目:浅谈对日外包中的软件测试作者王婷婷专业计算机应用班级计算机应用06(软日)成绩2011年6月1日浅谈对日外包中的软件测试王婷婷(无锡海辉软件有限公司214135)摘要:“对日软件外包”是现代中国软件行业出现的一个新名词,是一个很专业的名词,不是搞软件的也许就没听说过.很多在校大学生也许听说过,但是根本就不知道那到底是干什么,就知道跟软件有关,下面我就浅谈一下“对日软件外包”的理解。随着社会信息化的需求不断增长,软件业最近十几年来得到飞速的发展,其利润非常大!因此也出现很多很多的软件企业,不光是在我国,全球都是这样!由于我国的劳动力价格低廉,就想其他行业一样,软件开发的工作也越来越多地转到我们中国来做,因为在外国做软件开发成本很高.国外从事软件开发的人员待遇是非常好的,就想印度虽然穷,但是他们国家从事软件行业的人员比我们国家的同行的平均工资高两倍多!现在大家可能想到“对日软件外包”的一些含义了,它指的就是日本软件企业把他们公司接下来的软件开发任务给我们中国的软件公司做,其原因嘛很多,但最主要的有两点,第一是日本软件企业为了节省成本,第二日本软件企业的实力不够。接下来将重点介绍一下实习一年中从事的对日软件测试。本论文就对日外包中软件测试的相关理论,采用查阅文献资料、网上调查和对软件项目经理访谈等方法了解行业和市场,总结而成。关键词:对日软件外包;项目管理;干系人;流程一、软件外包的中的利与弊发展软件外包可以通过在接包过程中,不断学习国外软件先进设计和管理经验,不断地完善和提高自身的实力,是壮大软件行业的必由之路。不可否认,直到现在,软件外包服务仍然被看作是一个传统意义上纯粹的服务行业。具体而言,服务提供商对客户提供的外包工作不具有任何知识产权,他们更多是被动地为客户执行那些相对简单、低附加值的任务(比如从客户方获得的测试用例,进行机械的按照Case执行;进行最底层代码的堆积等等),获取单位时间内的技术服务报酬。这导致提供外包服务的企业被估价很低,含金量比较低学不到什么东西这是大多数人的想法,从根本上低估了外包所创造的价值。但是我们国家的软件企业如果想要发展起来,成为可以在国际上具有核心竞争力的大企业,从软件外包做起,可以说是一种不错的选择。在软件承包的过程中,既可以不断的累积公司的资本,又可以增强自己的行业经验,学习软件开发的先进管理经验和设计理念。举例来说,高水平的管理是做好软件外包的保证,没有一个成熟的管理模式和管理团队,是无法按时保质完成客户委托的任务的,尤其是国际外包项目。最困难的是,做到了1000人,2000人,10000人的时候,企业管理的难度和管理的方法都发生了根本的变化,一个管理1000人的方法,无法用来管理10000人的队伍。在接包的过程中为我们提供了丰富的学习的平台,也对管理者提出了更大的挑战,也是需要向发达国家学习的地方。企业规模小、资金不足、缺乏核心企业是导致目前中国软件外包企业动作迟缓的主要原因。中国已经成为了一个软件外包基地。从最初的北京、上海、深圳,到现在的大连、南京、无锡等软件外包发展迅速,随着IT外包市场的扩大,软件外包正变得炙手可热,但当前中国的软件外包市场对日软件外包越来越火,据海关统计,我国60%以上外销软件出口到了日本,北京对日软件出口甚至占到了70%。总而言之,软件外包存在着利于弊,对我国当前所处的阶段而言,软件外包是利大于弊。二、大学毕业生从事软件测试存在的问题我国的软件人才从总量来说储备是很丰富的,但是软件企业普遍认为要招聘到合格的人才非常难,我觉得这主要是教育体制的问题。国家在计算机教育方面在不断地探索和改革,其中包括示范性软件学院、软件高职等多种形式。体制的改革毕竟是需要时间的,所以短时期内我们年轻人还是要从自身找原因,我认为现在大多存在以下几点需要改善的地方:1、外语水平普遍不理想,达不到软件国际化的基本需求。现在我们发展软件外包,需要大量的具备一定外语水平的软件人才,才能抓住宝贵的机遇,可是如果我们无法培养出这样一批软件人才,那么就只能是坐失良机。国家针对这一点采取了很多措施,比如开办示范性软件学院并采取双语教学;对所有培养日文软件人才的大学或者学院给予特殊补贴等。用人单位针对这一问题也采取了一定的措施,比如免费进行日语培训、技能培训等。我们自身应该利用一切可以利用的时间加强日语和英语方面的学习,早日成长为复合型测试人员。2、知识结构不完整。软件公司招聘时常有一个很有趣的现象,就是大都会收到几尺高的简历,可仔细一看我们大多数同学掌握的东西都差不多:基本都是一些比较常见的、流行的编程语言和测试技术。如果再深入地了解一下,基本没有人能够掌握扎实的基本理论知识和过硬的外语能力,也很少有人有实际项目的测试经验。这样一来既没有经验,也不具备过硬的技术能力和学习潜力,所以就形成了“软件人才富余而企业招不到合适的软件人才”共存的矛盾现象;其次就是知识面狭窄。软件是一个工具,它最终是要为社会经济服务的,所以我们做软件的人要具备较为完整的知识结构,知识结构不完整将很难适应现代社会的需要。3、缺乏团队精神,缺乏软件测试业特需的规范纪律。做软件测试需要认真,但更需要有严格的规范纪律,这是所有大型软件项目所必需的。可是我们经常给自己留有过大的自由空间,这可能是大学特有的散漫教育养成的。我认为:一个好的软件测试工程师,沟通能力远远大于他的专业能力。缺乏团队精神,与我们自己的软件测试工程师之间沟通都有问题,那何谈去和客户沟通、去做软件外包呢?4、缺乏踏踏实实的工作态度。这一点是最重要的,例如:与我一起进入实习公司的时候大约有十几人,但是随着工作中不断的遇到困难与批评,很多人选择的是放弃与退缩,而不是克服困难迎难而上完善自身的缺点,到最后只有五人坚持了下来。所以从事一行就要爱上这一行,勤勤恳恳工作踏踏实实做人。所有的这些我觉得都是我们年轻人成长当中必经的阶段,没有经验、知识结构不完整等等都是无可厚非的,但是最终态度决定一切。如果我们没有要为软件产业改变自己、努力地提高自己以适应产业发展的精神的话,那么结果会终将会越来越远离这个行业;如果自身的水平提高不了、软件人才还是如此匮乏的话,那么整个产业的水平自然也就提高不了;如果无法培养一批合格的软件人才作为产业的坚实后盾,那么我们中国的软件产业的未来只能是空谈而已。三、软件外包项目管理的体会对日软件测试中一部分是软件测试的执行,那么另一个方面就是项目过程中的管理了,二者缺一不可。其中项目管理非常重要,按我的理解的话项目管理大体可以分为:范围、时间、成本、人力资源、风险、质量、采购、沟通及集成管理九大知识领域。但其核心还是质量、成本和进度控制。1.营造和谐的外部环境和谐的外部环境是项目成功的重要条件。营造和谐的外部环境,就是处理好与项目干系人(转发包商、供应商、最终用户,本公司的上级、职能部门等)的关系。除通过耐心协调,公平合理处理利害关系外,以下几点更为重要。○1尊重客户。要认知日本的国家和公司的文化、习惯,尊重彼此间的差异;还要尊重客户对项目的相关要求,如保密要求、不能泄露未发布新产品的信息、禁止将带有摄像头的手机带入现场等。②诚信负责。坚持诚信、勇于负责,才能赢得对方的信任。遇事设身处地多为客户着想,不仅要满足对方对成本、工期、质量等硬性指标的要求,还要满足用户对支持、服务等软性指标的期待。发现问题要及时迅速的跟客户报告,商讨解决策。③重视沟通。加强与客户的沟通交流是促进了解,避免误解、减少失误的有效保证。双方交流沟通一定要及时,否则会延误工作;交流沟通一定要有良好的语言表达能力和恰当的方法,否则难以互相理解、甚至会发生误解。在对日软件测试中十分重视(ホウレンソウ)即報告(ほうこく)、連絡(れんらく)、相談(そうだん),这也体现了沟通的重要性。在实际的测试过程中我们就被要求,如果发现可疑的问题一定要先报告给所属的测试组长,在组长解决不了的情况下提QA还是报告给上级。如果出现突发事件,例如测试设备损坏,电脑崩溃可能影响测试进度的时候,要及时有PL通过邮件与客户进行共同,以免影响客户对我们的满意度。④注重知识产权和产品安全。知识产权和最新产品是客户大量投入的结晶,是获利的重要资源,是根本利益所在,保护对方知识产权,是获得信任、维系合作的基础。在办公室作业环境、连接访问管理,权限控制等方面注意防范,禁止用存储设备将测试相关的文件带出测试场所;对自己的员工进行相关教育、制定相关制度等。很多外包公司在员工入职前都会要求其签定保密协议,也是出于这方面的考虑。如果涉及到最新的未上市的产品的时候,要注意保密,禁止将相关的信息透漏给项目组以外的其他人员。2对项目实施有效管理管理出效益,定单到手后项目的成败,效益的好坏,就看内部项目的管理水平了。①管好团队。好团队体现在:团队成员对团队有强烈的归属感及一体感;团队成员间相互合作及共为一体;团队成员对团队事务尽心尽力、全方位投入。作为团队建设主角的项目经理和测试组长,应关心、爱护团队成员,随时掌握每个成员的喜怒哀乐,经常开展丰富多彩的业余活动,以缓解员工巨大的压力;根据每个成员的综合素质,用其所长,避其所短尽情发挥他们的积极性和创造性,让他们在干中体现自我价值、成就感;不失时机的赞扬成功,对失误适度宽容、帮其汲取失败的教训,使他们时刻感到受到重用、信任、体会到家的温暖;要用好激励机制,把握好奖惩尺度;团队内要提倡沟通、团结、协作;外语一般是外包项目的工作语言,有时候要直接面对外国人,团队成员外语能力是非常重要的基本技能,因此,要注意在团队内营造外语学习、锻炼的氛围。②风险管理。软件项目外包是高收益、高竞争、高风险的领域,风险管理尤其重要。风险体现在,能不能按时、按质向客户提供所需产品,客户对产品和服务满不满意,项目是赔还是赚。风险管理就是预先防范、有效的处置,以最小的代价换取最大的安全。对项目预测风险点、评估风险后果、制定有效的处置预案。软件外包项目一般对项目的即时性、连续性要求较高,天灾、人祸都都可能造成计算机系统的崩溃,成果的丢失,结果很可能是灾难性的,为规避此类风险,应采取灾难恢复的预防措施,比如在异地设置备用设备,计算机系统和网络带宽等也需要有足够的冗余和备份,对计算机病毒也要时时加强防范。将带有病毒的文件发送给客户的话是一件十分严重的事情,直接影响到客户对测试环境和管理的评价,更严重的话会直接影响之后的合作,所以测试机器一定是Clean的环境,安装了客户要求的杀毒软件和防护软件。③质量管理。满足用户需求的程度是软件和服务质量的衡量标准,体现在功能、性能、稳定性、安全性、技术先进性、支持和服务等方面。质量是控制出来的而不是检测出来的,质量管理的基本任务就是通过规范、严格的过程控制,提供让用户满意的交付物。我们在实际的测试中的质量控制是十分严格,测试人员在自己测试完毕之后要自己进行Check,之后进行交叉Check,再之后交给测试组长Check,最后又有PL的抽查;测试一般分为后几个阶段,不同阶段的TestCase一般是相同的,将相同的TestCase在不同的阶段分给不同的测试人员测试,可以将不同人员的测试结果进行对比,就可以客观的对一个人的测试质量有一个相对公平的评价。除此之外项目管理还有器材管理、安全管理、个人KPI管理(个人绩效)、文件管理(CVS、VSS等)、Knowhow管理、Training管理等。总之要从一个软件测试的菜鸟,成为一位独挡一面的团队的管理者的话,需要有很长的一段时间要走,要有一颗向上的心,一颗对得起自己、团队和客户的心。四、软件测试的基本流程一个严谨成熟的项目的话都应该有一套完整的测试和管理的流程。下面谈一下自己参与过的项目中的实际情况。对日软件测试的基本流程可以参照下图(图1):1.开发方软件发布→转包方将软件发送给测试方→测试方获得软件→软件升级→新版本测试试行→报告测试结果(结果OK继续全体测试,结果NG的话联系转包方,暂停测试)→全体版本升