软件测试概论 软件测试概论 <!-- @page { size: 8.27in 11.69in; margin: 0.79in } P { margin-bottom: 0.08in } H2 { margin-bottom: 0.08in } H2.western { font-family: "Times New Roman", serif } H2.cjk { font-family: "AR PL SungtiL GB"; font-style: normal } H2.ctl { font-family: "Tahoma" } H4 { margin-bottom: 0.08in } H4.western { font-family: "Times New Roman", serif } H4.cjk { font-family: "AR PL SungtiL GB"; font-style: normal } H4.ctl { font-family: "Tahoma" } -->
什么软件生存周期 一个软件从开始计划起,到废弃不用止,称为软件生存周期。一般来说,软件生存周包括计划、开发、运行三个时期,每一时期又可分为若干更小的阶段。计划时期 的主要任务是分析用户要求,分析新系统的主要目标以及开发该系统的可行性。开发时期要完成设计和实现两大任务具体。具体分为需求分析、概要设计、详细设 计、编码、测试。其中编码和测试是软件开发期的最后两个阶段。运行时期是软件生存周期的最后一个时期,软件人员在这一时期的工作,主要是做好软件维护。 统计表明,开发较大规模的软件,有40%以上的精力是耗费在测试上的,即使富有经验的程序员,也难免在编码中发生错误,何况,有写错误在设计甚至分析阶段 早已埋下祸根,无论是早期潜伏下来的错误或编码中新引入的错误,若不及时排除,轻者降低软件的可靠性,重者导致整个系统的失败。为防患于未然,强调软件测 试的重要性是必要的。 好的测试工程师 1、沟通能力 一名理想的测试者必须能够同测试涉及到的所有人进行沟通,具有与技术(开发者) 和非技术人员(客户,管理人员)的交流能力。既要可以和用户谈得来,又能同开发人员说得上话,不幸的是这两类人没有共同语言。和用户谈话的重点必须放在系 统可以正确地处理什么和不可以处理什么上。而和开发者谈相同的信息时,就必须将这些活重新组织以另一种方式表达出来,测试小组的成员必须能够同等地同用户 和开发者沟通。 2、技术能力 就总体言,开发人员对那些不懂技术的人持 一种轻视的态度。一旦测试小组的某个成员作出了一个错误的断定,那么他们的可信度就会立刻被传扬了出去。一个测试者必须既明白被测软件系统的概念又要会使 用工程中的那些工具。要做到这一点需要有几年以上的编程经验,前期的开发经验可以帮助对软件开发过程有较深入的理解,从开发人员的角度正确的评价测试者, 简化自动测试工具编程的学习曲线。 3、自信心 开发者指责测试者出了错是常有的事,测试者必须对自己的观点有足够的自信心。如果容许别人对自己指东指西,就不能完成什么更多的事情了。 4、外交能力 当你告诉某人他出了错时,就必须使用一些外交方法。机智老练和外交手法有助于维护与开发人员的协作关系,测试者在告诉开发者他的软件有错误时,也同样需 要一定的外交手腕。如果采取的方法过于强硬,对测试者来说,在以后和开发部门的合作方面就相当于"赢了战争却输了战役"。 5、幽默感 在遇到狡辩的情况下,一个幽默的批评将是很有帮助的。 6、很强的记忆力 一个理想的测试者应该有能力将以前曾经遇到过的类似的错误从记忆深处挖掘出来,这一能力在测试过程中的价值是无法衡量的。因为许多新出现的问题和我们已经发现的问题相差无几。 7、怀疑精神 可以预料,开发者会尽他们最大的努力将所有的错误解释过去。测式者必须听每个人的说明,但他必须保持怀疑直到他自己看过以后。 8、自我督促 干测试工作很容易使你变得懒散。只有那些具有自我督促能力的人才能够使自己每天正常地工作。 9、洞察力 一个好的测试工程师具有"测试是为了破坏"的观点,捕获用户观点的能力,强烈的质量追求,对细节的关注能力。应用的高风险区的判断能力以便将有限的测试针对重点环节。 软件测试工程师成为IT就业新热点 日前,招聘网站——中华英才网发布了最新一期的IT职场人气排行榜。根据统计,IT人才仍是企业需求量最大的人群,其中软件测试工程师、高级程序员、产品 项目经理高级职位进入“三甲”,成为IT就业市场最新风向标。作为软件开发流程中的重要一环,软件测试岗位渐渐“浮出水面”,并凭借其庞大的人才需求和广 阔的职场发展前景日渐成为IT职场就业的大热门。 近年来,软件产品的质量控制与质量管理越来越受到重视,并逐渐成为企业生存与发展的核心。在许多IT企业中,软 件测试并非只担当“挑错”的角色,其重要性不亚于软件的开发环节。越来越多的IT企业已逐渐意识到测试环节在软件产品研发中的重要性。此类软件质量控制工 作均需要拥有娴熟技术的专业软件测试人才来协作完成,软件测试工程师作为一个重头角色正成为IT企业招聘的热点。 随着测试重要性的日趋凸显,我国软件测试人才正处于一个“双高”地位,即地位高、待遇高,职场前景非常广阔,因而,近两年来,软件测试工程师也成为了IT就业最新的亮点。 由于我国企业对于软件测试自动化技术在整个软件行业中的重要作用认识较晚,因此,这方面的专业技术人员在国内还是凤 毛麟角,人才供需之间存在着巨大的缺口。有关数据显示,我国目前软件从业人才缺口高达40万人。即使按照软件开发工程师与测试工程师的岗位比例计 算,我国对于软件测试工程师的需求便有数十万之众。业内专家预计,在未来5到10年中,我国社会对软件测试人才的需求数字还将继续增大。 笔者了解到,日前在国展举办的一次招聘会上,多家企业纷纷打出各类高薪招聘软件测试人员的海报,出人意料的是收到的简历尚不足招聘岗位数的50%,而合格的竟不足30%。有行业专家表示,软件测试人才“供远小于求”的现实问题正影响着我国软件业的健康发展。 一方面,企业对软件测试人才有大量需求,但苦于招不到合适的人;而另一方面,很多应聘者却因为缺乏相关技能而被用人 单位拒之门外,软件测试人才职场正面临着“有人没活干,有活没人干”的尴尬局面。对此,业内专家表示,软件测试行业已显现出实际需求与人力资源之间的尖锐 矛盾。设立软件测试人才的职业培训体系应是解决IT职场“结构性失业”的一条捷径。 专家表示,软件测试是一项需具备较强专业技术的工作。在具体工作过程中,测试工程师要利用测试工具按照测试方案和流 程对产品进行性能测试,甚至根据需要编写不同的测试工具、设计和维护测试系统,对测试方案可能出现的问题进行分析和评估,以确保软件产品的质量。一名合格 的软件测试工程师必须要经过严格的系统化职业教育培训,作为产品正式出厂前的把关人,没有专业的技术水准、没有高度的工作责任心和自信心是根本无法胜任 的。 目前,国内少数具有远见的IT培训机构已经充分认识到了测试工程师的供需矛盾,开始针对软件测试行业人才需求启动系 统化专项培训,为IT行业求职者提供了一个进入软件测试行业的途径。据了解,这些课程科学、系统以提升就业竞争力为目标,根据软件测试岗位工作的实际要求 设计而成,以实际应用场景为核心,配以实际测试项目和测试工作流程,注重学习的系统性、教学的渐进性及学员的参与性,使学员能够用最少的时间掌握测试工作 中最实用的必备职业技能,具备测试岗位需求的工作经验和综合素质,从而具备较强的竞争力。 有关专家表示,随着各类软件测试培训课程体系的推出,我国软件企业人才结构将日趋合理,软件测试业的人才供需矛盾也将得到逐步缓解,这无疑有利于我国软件行业整体品质的进一步提升。 软件本地化测试 本地化的主要工作就是翻译产品的用户界面( UI ),有时也更改某些初始设置以使产品适合于另一个地区。本地化测试检查针对特定目标区域的产品本地化质量。此测试基于国际化测试的结果,后者验证对特定区 域性或区域设置的功能性支持。本地化测试只能在产品的本地化版本上进行。 本地化测试过程中的测试工作集中在:
受本地化影响的方面,如 UI 和内容 特定的区域设置、特定的语言和地区方面的内容
另外,本地化测试还应包括: 基本功能测试 在本地化环境中运行的安装和升级测试 根据产品的目标地区计划应用程序和硬件兼容性测试。
用户界面和语言的本地化测试应包括的项有: 验证所有应用程序资源 验证语言的准确性和资源属性 版式错误 书面文档、联机帮助、消息、界面资源、命令键顺序等的一致性检查。
确认是否遵守系统、输入和显示环境标准 用户界面可用性 评估文化适合性 检查政治上敏感的内容 当交付本地化产品时,确保包含本地化文档(手册、联机帮助、上下文帮助等)。要检查的项包括:
翻译的语言质量 翻译的完整性 所有文档和应用程序 UI 中使用的术语一致
软件测试理论 1.什么是软件测试 无论怎样强调软件测试的重要性和它对软件可靠性的影响都不过分。在开发大型软件系统的漫长过程中,面对着极其错综复杂的问题,人的主观认识不可能完全符合 客观现实,与工程密切相关的各类人员之间的通信和配合也不可能完美无缺,因此,在软件生命周期的每个阶段都不可避免地会