在测试的道路上,越走越远,越飞越高

发布新日志

  • HP-UX:查看文件大小 check the file's size

    2008-06-11 12:44:38

    bdf
    单位:kbyte
  • self - evaluation英文自我评价常用句子

    2008-01-29 12:00:40

     Mature,self-motivated and strong interpersonal skills.思想成熟、上进心强,并具极丰富的人际关系技巧。

      Energetic,fashion-minded person.精力旺盛、思想新潮。

      With a pleasant mature attitude.开朗成熟。

      Strong determination to succeed.有获得成功的坚定决心。

      Strong leadership skills.有极强的领导艺术。

      Ability to work well with others.能够同他人一道很好地工作。

      Highly-motivated and reliable person with excellent health and pleasant personality.上进心强又可靠者,并且身体健康、性格开朗。

      The ability to initiate and operate independently.有创业能力,并能独立地从业。

      Strong leadership skill while possessing a great team spirit.有很高的领导艺术和很强的集体精神。

      Be highly organized and effecient.工作很有条理,办事效率高。

      Willing to learn and progress.肯学习进取。

      Good presentation skills.有良好的表达能力。

      Positive active mind essential.有积极、灵活的头脑。

      Ability to deal with personnel at all levels effectively.善于同各种人员打交道。

      Have positive work attitude and be willing and able to work diligently without supervision.有积极的工作态度,愿意和能够在没有监督的情况下勤奋地工作。

      Young,bright,energetic with strong career-ambition.年轻、聪明、精力充沛,并有很强的事业心。

      Good people management and communication skills. Team player.有良好的人员管理和交际能力。能在集体中发挥带头作用。

      Able to work under high pressure and time limitation.能够在高压力下和时间限制下进行工作。

      Be elegant and with nice personality.举止优雅、个人性格好。

      With good managerial skills and organizational capabilities.有良好的管理艺术和组织能力。

       The main qualities required are preparedness to work hard, ability to learn, ambition and good health.主要必备素质是吃苦耐劳精神好、学习能力优、事业心强和身体棒。

      Having good and extensive social connections.具有良好而广泛的社会关系。

      Being active, creative and innonative is a plus.思想活跃、有首创和革新精神尤佳。

      With good analytical capability.有较强的分析能力。
      
           以上文章转载自:傲英英语学习网 http://www.oenglish.cn
           还有一些其它求职英语资料,如果需要的话,就去看看吧:http://www.oenglish.cn/html/Job/Interview/

    Mature,dynamic and honest.思想成熟、精明能干、为人诚实。
    Excellent ability of systematical management.有极强的系统管理能力。
    Ability to work independent1y,mature and resourcefu1.能够独立工作、思想成熟、应变能力强。
    A person with ability plus flexibility should app1y.需要有能力及适应力强的人。
    A stable personality and high sense of responsibility are desirable.个性稳重、具高度责任感。
    Work well with a multi-cultural and diverse work force.能够在不同文化和工作人员的背景下出色地工作。
    Bright,aggressive applicants.反应快、有进取心的应聘者。
    Ambitious attitude essential.有雄心壮志。
    Initiative,independent and good communication skill.积极主动、独立工作能力强,并有良好的交际技能。
    Willing to work under pressure with leardership quality.愿意在压力下工作,并具领导素质。
    Willing to assume responsibilities.应聘者须勇于挑重担。
    Mature,self-motivated and strong interpersonal skills.思想成熟、上进心强,并具极丰富的人际关系技巧。
    Energetic,fashion-minded person.精力旺盛、思想新潮。
    With a pleasant mature attitude.开朗成熟。
    Strong determination to succeed.有获得成功的坚定决心。
    Strong leadership skills.有极强的领导艺术。
    Ability to work well with others.能够同他人一道很好地工作。
    Highly-motivated and reliable person with excellent health and pleasant personality.上进心强又可靠者,并且身体健康、性格开朗。
    The ability to initiate and operate independently.有创业能力,并能独立地从业。
    Strong leadership skill while possessing a great team spirit.有很高的领导艺术和很强的集体精神。
    Be highly organized and effecient.工作很有条理,办事效率高。
    Willing to learn and progress.肯学习进取。
    Good presentation skills.有良好的表达能力。
    Positive active mind essential.有积极、灵活的头脑。
    Ability to deal with personnel at all levels effectively。善于同各种人员打交道。
    Have positive work attitude and be willing and able to work diligently without supervision。有积极的工作态度,愿意和能够在没有监督的情况下勤奋地工作。
    Young,bright,energetic with strong career-ambition.年轻、聪明、精力充沛,并有很强的事业心。
    Good people management and communication skills. Team player.有良好的人员管理和交际能力。能在集体中发挥带头作用。
    Able to work under high pressure and time limitation.能够在高压力下和时间限制下进行工作。
    Be elegant and with nice personality.举止优雅、个人性格好。
    With good managerial skills and organizational capabilities.有良好的管理艺术和组织能力。
    The main qualities required are preparedness to work hard, ability to learn, ambition and good health.主要必备素质是吃苦耐劳精神好、学习能力优、事业心强和身体棒。
    Having good and extensive social connections.具有良好而广泛的社会关系。
    Being active, creative and innonative is a plus.思想活跃、有首创和革新精神尤佳。
    With good analytical capability.有较强的分析能力。


  • 本地化软件测试与国际化软件测试 collection

    2008-01-09 14:16:13

    本地化翻译

    http://www.paper-translation.com/localization/knowledge/18.htm

    •  Back translation(回译):将已被翻译成另一种语言的文档再翻译回源语言的过程,最好由独立的译员执行
    • Character(字符):代表写入系统或脚本中最小抽象组件的符号,包括声音、音节、概念或元素,与字型相对。
    • Corpus(语料库):大量自然语言文本的集合,用于收集有关自然语言文本的统计资料。语料库常常包括一些额外的信息,例如表示每个单词的词性的标记。
    • Globalization (G11N,全球化):解决产品全球发布的相关商业问题。例如,产品经过适当的国际化过程和产品设计后,在整个公司范围统一进行本地化。
    • Internationalization (I18N,国际化):使产品具有普遍适应性,从而无需重新设计就可适应多种语言和文化习惯的过程。
    •   Localization (L10N,本地化):即根据某个特定国际语言和文化对产品或软件进行改编和调整,使之如同该语言市场当地产出的一样。彻底的本地化需要考虑目标地区的语言、文化、习俗和其它特点,通常需要改变软件的写入系统,甚至可能需要改变键盘使用、字体、日期、时间和货币格式的设置。
    •  Morphology(词态学):词态学的释义是指研究词的组成方式的学科,包括词形变化、派生和混合。也指对任何特定语言的组成方法和组合规则的研究,以及对词形变化方式本身的研究。
    • Original equipment manufacturer(OEM,原始设备生产商):即制造设备并出售给最终设备制造商的制造商,设备将
       
          以后者的商标或名字转售。
    •  Parser(语法分析程序):一种计算机程序。将一组句子输入计算机后,该程序可根据给定的语法辨别句子的结构。语法分析程序有时也泛指句子由各式各样的信息单元组成的情况。
    • Pseudo-localization(伪本地化):伪本地化将产品的代码串转换成“伪字符串”。由此产生的伪语言可以用来测试本地化的不同方面对产品的功能和外观的影响。
    • Quality assurance (QA,质量保证):为确保产品或服务足以满足既定的质量需求而采取的一切必要的计划性和系统性行为。
    • Tidy functions(整理功能):整理是 Tidy HTML 清除/修补实用程序的一种绑定功能,它允许用户清除或以其它方式操纵 HTML 文件,并可用于遍历文件树。
    • Truncation(截断):在显示中截断文本行是指截断超出显示窗口边界的文本。另外,在数据库搜索中,指在单词末尾添加符号,以使计算机寻找这个单词的所有变体。
    • Unicode(统一码):统一码国际字符标准 (Unicode) 是一种字符编码标准,用来表示要进行计算机处理的文本。统一码最初设计为仅可支持 65,000 个字符,但目前的编码形式可以支持 100 万以上字符
    •   Usability(可用性):用户浏览界面、查找信息和获取知识的方便程度

    本地化翻译

    http://www.paper-translation.com/localization/knowledge/16.htm

    • 对本地化测试人员的技术要求:
          1、测试人员必须具有软件编码和计算机操作系统方面的丰富经验。如果项目需要转换 DBCS(双字节字符集),那么测试人员应该具有基本的 DBCS 相关知识。
          2、测试人员必须掌握所有的软件测试技能和流程。
          3、测试人员应该具有计算机技术方面的全面知识和技能。
          4、测试人员应该具备良好的英文写作能力,可以向软件开发商描述软件的程序错误,有时候还需要用英语和软件编程
       
         人员进行口头交流。

    本地化测试:

    http://www.paper-translation.com/localization/trial.htm

    • 国际化 (I18N) 测试服务     我们使用 I18N 测试方法来判断您的产品对国际字符编码标准的支持是否足够,产品的开发方法是否考量了国际代码标准
    • 本地化 (L10N) 测试服务
    • 两种类型的测试:基于脚本的测试和考察性测试。这些服务包括:
      -- L10N 功能验证测试 --
      -- L10N 用户界面外观测试 --
      -- 多语种操作系统验证 --
      -- 翻译验证测试 (TVT) --
      -- 本地测试 --
      -- 版本工程 --

    I18N、L10N、G11N的区别?[本地化世界网论坛]

    http://bbs.giltworld.com/dispbbs.asp?boardID=22&ID=3880&page=1

    • I18N、L10N、G11N的区别?

      I18N--是“Internationalization”的缩写,由于 “Internationalization”单词较长,所以为了书写简便,通常缩写为“I18N”。中间的 18 代表在首字母“I”和尾字母“N”之间省略了 18 个字母。单词“Internationalization”翻译成中文是国际化的意思-是使产品或软件具有不同国际市场的普遍适应性,从而无需重新设计就可适应多种语言和文化习俗的过程。真正的国际化要在软件设计和文档开发过程中,使产品或软件的功能和代码设计能处理多种语言和文化习俗,具有良好的本地化能力。

      G11N-- 是“Globalization”的缩写,由于“Globalization”单词较长,所以为了书写简便,通常缩写为“G11N”,中间的 11 代表在首字母“G”和尾字母“N”之间省略了 11 个字母。单词“Globalization”翻译成中文是全球化的意思-是使产品或软件进入全球市场而进行的有关的商务活动。包括正确的国际化设计,本地化集成,以及在全球市场进行的市场推广、销售和支持的全部过程。企业通过全球化实现其全球化发展战略,实现全球化业务,扩大市场规模,降低软件成本,提升综合竞争力,展现企业发展实力,增强用户信心,树立市场形象。

      L10N--是“Localization”的缩写,由于“Localization”单词较长,所以为了书写简便,通常缩写为“L10N”,中间的 10 代表在首字母“L”和尾字母“N”之间省略了 10 个字母。单词“Localization”翻译成中文是本地化的意思,是将产品或软件针对特定国际语言和文化进行加工,使之符合特定区域市场的过程。真正的本地化要考虑目标区域市场的语言、文化、习俗、特征和标准。通常包括改变软件的书写系统(输入法)、键盘使用、字体、日期、时间和货币格式等。

    用户界面问题 -

    http://www.cnblogs.com/mayingbao/archive/2006/09/20/509944.html

      • 应特别注意下列 UI 组件的设计:

        • 消息
        • 菜单和对话框
        • 图标和位图
        • 访问键和快捷键
        • UI 控件

    本地化翻译

    http://www.paper-translation.com/localization/knowledge/1.htm

    • “GILT”是“Globalization”、“Internationalization”、“Localization”和“Translation”单词的首字母组合的缩写,因为这四个单词长度较长,所以为了书写简便,业界人士通常缩写为“GILT”。
    • 是使产品或软件进入全球市场而进行的有关的技术和市场活动。包括全球化战略、国际化设计,本地化集成,语言翻译等紧密联系的系列过程。
    • “GILT”已经成为跨国公司进行全球战略发展的重要流程,包含信息、技术和语言等多学科交叉的领域,形成了产品或软件的供应商、服务提供商、方案咨询、科研、教育、协会等构成的完整行业。

    本地化翻译

    http://www.paper-translation.com/localization/knowledge/2.htm

    • “I18N”是“Internationalization”的缩写,因为“Internationalization”单词长度较长,所以为了书写简便,业界人士通常缩写为“I18N”,中间的 18 代表在首字母“I”和尾字母“N”之间省略了18个字母。
    • 是使产品或软件具有不同国际市场的普遍适应性,从而无需重新设计就可适应多种语言和文化习俗的过程。
          真正的国际化要在软件设计和文档开发过程中,使产品或软件的功能和代码设计能处理多种语言和文化习俗,具有良好的本地化能力。

    本地化翻译

    http://www.paper-translation.com/localization/knowledge/3.htm

    • “CAT”是“Computer Aided Translation”的缩写,因为这三个单词长度较长,所以为了书写简便,业界人士通常缩写为“CAT”。
          单词“CAT”翻译成中文是“计算机辅助翻译”,是为了提高翻译的效率和质量开发的辅助翻译软件。主要运用翻译记忆库、术语库和模糊匹配等技术,保证翻译的速度和一致性。
          本地化行业使用的主要“CAT”软件是 Trados,国内比较知名的包含“雅信CAT”等。

    本地化翻译

    http://www.paper-translation.com/localization/knowledge/4.htm

    • “L10N”是“Localization”的缩写,因为“Localization”单词长度较长,所以为了书写简便,业界人士通常缩写为“L10N”,中间的 10 代表在首字母“L”和尾字母“N”之间省略了 10 个字母。
    • 是将产品或软件针对特定国际语言和文化进行加工,使之符合特定区域市场的过程。
          真正的本地化要考虑目标区域市场的语言、文化、习俗和特性。通常包括改变软件的书写系统(输入法)、键盘使用、字体、日期、时间和货币格式等。

    本地化翻译

    http://www.paper-translation.com/localization/knowledge/5.htm

    • “G11N”是“Globalization”的缩写,因为“Globalization”单词长度较长,所以为了书写简便,业界人士通常缩写为“G11N”,中间的 11 代表在首字母“G”和尾字母“N”之间省略了11个字母。
    • ”,是使产品或软件进入全球市场而进行的有关的商务活动。包括正确的国际化设计,本地化集成,以及在全球市场进行的市场推广、销售和支持的全部过程。

    本地化翻译

    http://www.paper-translation.com/localization/knowledge/11.htm

    •  加速键或快捷键(accelerate key)。常应用在Windows应用程序中,同时按下一系列组合键,完成一个特定的功能。例如,Ctrl + P,是打印的快捷键。
    • 带重音的字符(accented character)。例如在拉丁字符的上面或下面,添加重音标示符号。对于汉字没有此问题
    •  校准(alignment)。通过比较源语言文档和翻译过的文档,创建翻译数据库的过程。使用翻译记忆工具可以半自动化地完成此过程。
    • 双向语言(bi-directional language)。对于希伯莱语言或者阿拉伯语言,文字是从右向左显示,而其中的英文单词或商标符号从左向右显示。对于中文,都是从左向右显示。
    • 编译版本(build)。软件开发过程中编译的用于测试的内部版本。一个大型的软件项目通常需要执行多个内部版本的测试,因此需要按计划编译出多个版本用于测试。
    • 版本环境(build environment)。用于编译软件应用程序的一些列文件的集合。
    • 版本健康检查(build sanity check)。由软件编译者对刚刚编译的版本快速执行基本功能检查的活动,通过检查后,再由测试者进行正规详细测试。
    • 级连样式表(cascading style sheet -CSS)。定义html等标示文件显示样式的外部文档。
    •  字符集(character set)。从书写系统到二进制代码集的字符映射。例如,ANSI字符集使用8位长度对单个字符编码。而Unicode,使用16位长度标示一个字符。
    • 简体中文,日文,韩文,繁体中文(CJKT)。也可以表示为SC/JP/KO/TC或CHS/JPN/KOR/CHT,是英文Simplified Chinese, Janpanese, Korean, Traditional Chinese的简写。
    • 代码页(code page)。字符集和字符编码方案。对每一种语言字符,都用唯一的数字索引表示。
    •   附属条目(collateral)。软件本地化项目中相对较小的条目。例如,快速参考卡,磁盘标签,产品包装盒,市场宣传资料等。
    • 计算机辅助翻译(Computer Aided Translation-CAT)。计算机辅助翻译。采用计算机技术从一种自然语言到另一种语言自动或支持翻译的技术术语。
    •   串联(Concatenation)。添加文字或字符串组成较长字符传的方式。
    • 控制语言(Controlled language)。自然语言的子集,常用于技术文档的写作,采用更加结构化和易于理解的语言。
    •  外观测试(cosmetic testing)。应用程序用户界面测试。
    • 桌面排版(desktop publishing-DTP)。使用计算机软件对文档、图形和图像进行格式和样式排版,以便打印输出的过程。
    • 双字节字符集(double bytes character set-DBCS)。用两个字节长度表示一个字符的字符编码系统。中文,日文和韩文都用双字节字符集表示
    • 双字节支持能力(double-byte enablement)。在软件的国际化设计中,支持亚洲的双字节字符的输入、显示、输出等处理的能力。
    • 动态网站(dynamic web site)。组合使用数据库、样式表、脚本语言、HTML动态现实网页内容的网站。
    • 可扩展标示语言(Extensible Markup Language-XML)。语言分析用的语言,为了实现特定目的创建自定义的标示的语言。XML是SGML的子集,专为网页(Web)语言设计。
    •    法语/意大利语/德语/西班牙语(French/Italian/Germany/Spanish-FIGS)。软件本地化时要考虑的欧洲主要的语言。
    •  全部匹配(full match)。源文字部分与以前存储在翻译数据库工具中的句子完全相同。
    • 功能测试(functional testing)。通过运行软件,测试产品的功能是否符合设计要求。
    •  模糊匹配(fuzzy matching)。翻译记忆工具中用于识别文字字段与以前翻译的句子一致程度的方法。
    •  全球化(globalization-g10n)。为进入全球市场而进行的有关的商务活动。包括软件进行正确的国际化设计,软件本地化集成,以及在全球市场进行的市场推广、销售和支持的全部过程。
    •  术语表(glossary)。用于软件翻译/本地化项目的包含源语言和本地化语言的关键词和短语的翻译对照表。
    •  硬编码(hard-coding)。直接嵌入在程序源代码内的可以本地化的字符。硬编码字符不能很方便的本地化

    本地化翻译

    http://www.paper-translation.com/localization/knowledge/12.htm

    • 热键(hot key)。菜单命令和对话框选项中带有下划线的字母或数字。通过按下Alt键和下划线的字母或数字,可以机或命令和选项。
    • 超文本标示语言(Hypertext Markup Language)。SGML语言的子集。定义了一组标示符控制页面内容的显示方式
    • 输入方法编辑器(Input Method Editor-IME)。通过按下键盘的多个键完成输入本地化文字的应用工具。对于汉字,常用的有微软拼音输入法,标准输入法,五笔字形输入法等。
    •  国际化(internationalization-i18n)。在程序设计和文档开发过程中,功能和代码设计能处理多种语言和文化传统,使创建不同语言版本时,不需要重新设计源程序代码的软件工程方法。
    • 国际化测试(international testing)。软件国际化的支持和可本地化能力的测试方法。
    • 日文汉字(Kanji)。来自汉字的单个日文字,有些与当前的汉字书写完全相同,但按照日文发音。
    • 启动会议(kick-off meeting)。新的本地化项目正式开始前的会议,一般由原软件开发商和本地化服务商中的项目组主要代表人员参加。主要讨论项目计划,各方责任,提交结果,联系方式等与项目紧密相关的内容。
    • 分层图像(layered graphic)。为了便于翻译,可以翻译的文字单独存放在文字层的图像。
    • 重复利用(leverage)。在翻译/本地化过程中,以前已经翻译的内容再利用和循环使用的方法。
    • 语言测试(linguistic testing)。对本地化的产品执行与语言有关的内容的测试活动。
    •  本地化行业标准组织(Localization Industry Standard Association-LISA)。1990年在瑞士成立,成为本地化和国际化行业的首要协会,目前已经加入的会员超过400多家。LISA的目标是促进本地化和国际化行业的发展,提供机制和服务,使公司间能够交换和共享与本地化、国际化和相关主体相关的流程、工具、技术和商务模型信息。
    • 本地化(localization-l10n)。将一个产品按特定国家/地区或语言市场的需要进行加工,使之满足特定市场上的用户对语言和文化的特殊要求的软件生产活动。
    •   本地化工具包(localization kit)。由软件开发商提供的包好文件、工具和指导文档的系列文件集。本地化项目开始前,软件开发商提供给本地化服务商。
    •   本地化测试(localization testing)。对本地化的软件进行语言和用户界面测试,以保证软件本地化质量的活动。
    •  本地化服务商(localization vendor)。提供本地化服务的机构,包含软件翻译、软件工程、测试和项目管理等活动。
    • 机器翻译(machine translation-MT)。利用术语表、语法和句法等技术,自动实现从一种人类语言到另一种语言的翻译的方法和技术。
    •  标识语言(markup language)。与文字结合的标识和标签集合,应用程序(例如HTML网页浏览器)将处理这些标识并以正确的形式显示出来。
    •  多字节字符集(multi-byte character set)。每个字符用单个字节或两个字节表示的字符集。
    •  多语言服务商(multi-language vendor-MLV)。提供多种语言软件本地化能力的服务商。大多数多语言服务商主要集中在多语言项目的项目管理上,它们在全球范围内由多个分公司和合作伙伴。
    •  国家语言支持(national language support-NLS)。允许用户设置区域等软件功能。识别用户使用的语言、日期和时间格式等信息。也包括支持键盘布局和特定语言的字体。
    • 外包(outsourcing)。对软件本地化而言,将某些本地化任务交付给第三方的活动。源软件开发商将软件本地化项目交付给本地化服务商,很多本地化服务商,将翻译工作交给自由翻译人员。
    •  便携式文档格式(Portable Document Format-PDF)。由Adobe公司开发的基于Postscrīpt标准的文件格式。PDF文件可以由其他软件创建,主要用于电子文档的发布。
    •  伪翻译(pseudo translation)。将软件中的可以翻译的字符串用长的本地化的字符代替的自动或手工处理的过程,主要用于发现编译和执行本地化文件时潜在的问题。
    •  质量保证(quality assurance-QA)。保证最终产品质量的步骤和流程。
    •  报价单(Request for quotation-RFQ)。软件开发商发送给本地化服务商的包含项目内容和报价的报价单
    • 投入回报率(Return of Investment-ROI)。判别项目投入费用和受益回报的指标。
    • 调整(resizing)。调整翻译后的对话框的元素,如按钮、列表框、静态控件等的大小和位置,保证翻译后的字符的显示完整和美观。
    • 资源动态链接库(Resource-only .dll )。包含可以本地化的资源,例如,菜单、对话框、图标、屏幕提示字符的动态链接库。
    •    屏幕捕捉(screen capture, screenshot)。使用图像截取软件截获菜单和对话框等软件界面的过程。

    本地化翻译

    http://www.paper-translation.com/localization/knowledge/13.htm

    • 项目总结报告(Post Project Report-PPR)。由软件开发商和软件本地化服务商的项目主要成员填写的关于项目执行情况、发现的问题和建议的项目文档。在完成本地化项目后填写此报告。
    •  校对(proofreading)。对翻译的文档内容进行语言和格式进行检查的过程,一般由本地化公司内部具有丰富经验的编辑进行校对。
    •   复审(review)。对翻译的文档内容进行语言检查的过程,一般由本地化公司聘任的具有丰富经验的外部产品专家或软件开发商的语言专家复审
    • 简体中文(Simplified Chinese-SC)。主要用于中国大陆和新加坡的中文汉字,与繁体汉字相比,笔划更简
    • 同时发布(simutaneous ship-simship)。源语言软件与本地化的软件同时发布。要达到同时发布,软件本地化必须与软件开发同步进行。
    • 单语言服务商(single language vendor-SLV)。只能提供一种本地化语言服务的本地化服务商
    •  软件一致性检查(software consistency check)。一种质量保证步骤。翻译者对比翻译的软件界面字符与联机帮助和文档文件字符翻译的一致性。
    •  标准通用标识语言(Standard Generalized Markup Lanugag-SGML)。一种信息交换的国际标准。在文档中使用规定的标识定义文档的三层标准格式:结构、内容和样式。
    • 术语管理系统(terminology management system-TMS)。使用字典存储和编码术语资源的管理软件。例如,STAR 的TermStar和塔多斯(Trados)的MultiTerm。
    • 文字扩展(text expansion)。翻译后的文字比源语言文字包含更多的字节和长度的特征。例如,凡以后的德文和法文,通常要比对应的英文长约30%左右。
    •  繁体中文(Traditional Chinese-TC)。主要用于香港和台湾的笔划比较多的汉字。与简体中文相比,字符编码方案、术语和语言样式都有很大不同。
    •   软件汉化(Software Chinese build)。根据源语言软件创建中文软件版本的过程,可以创建简体中文汉化版和繁体中文汉化版。
    • 翻译记忆(translation memory-TM)。能使用户在数据库中存储翻译的短语和句子的技术。
    • 翻译记忆交换(translation memory exchange-TMX)。由一些软件工具开发商设计的基于XML的开放标准。目的在于简化翻译记忆在不同翻译记忆工具之间自动转换的过程。
    • 通用字符集(Unicode)。对已知的字符进行16位编码的字符集,已经成为全球字符编码标准。
    • 用户界面(user interfance-UI)。软件中与用户交互的全部元素的集合,包括对话框、菜单和屏幕提示信息等。
    • UTF-8。支持ASCII向后兼容和覆盖世界绝大多数语言的一种Unicode编码格式。UTF-8是8-bit Unicode Transfer Format的简写。
    •   Windows 帮助(Windows Help-WinHelp)。包含编译的.hlp和.cnt内容文件的联机帮助系统。通过创建一系列RTF格式的文件和位图文件创建Windows 帮助。
    • 本地化工具(localization application)。提供软件界面资源重复使用的专用本地化工具软件,例如,Alchemy Catalyst和Passolo等。
    • 翻译记忆工具(translation memory application)。支持翻译记忆数据库的专用本地化工具软件。例如,Trados WorkBench。主要用于联机帮助和文档的翻译。

    [本地化软件测试与国际化软件测试]

    http://bbs.51testing.com/forum-137-1.html

    本地化世界网

    http://www.giltworld.com/Modules/Resource.htm?boardid=29

    软件本地化测试类型

    http://bbs.51testing.com/thread-98576-1-3.html

    • 按照测试对象分类
        按照测试的对象分类,软件本地化测试分为软件程序测试(Software Testing),联机帮助测试(Online Help Testing),其他文档测试(Document Testing)。其中,文档包括各种印刷的手册、用户信息卡、产品包装材料和市场宣传材料等。 
    • 按照测试阶段分类
        按照测试的阶段分类,软件本地化测试分为软件版本接受测试(Build Acceptance Testing, BAT),软件常规测试(Normal Testing),软件最终接受测试(Final Acceptance Testing, FAT)。
    • 软件版本接受测试又称为版本健全检测(Build Sanity Check, BSC),也称作冒烟测试(Smoke Testing),是对刚刚编译的新版本在尽量短的时间内,进行基本功能测试,如果通过测试,则可以按照测试计划要求,运行测试用例,进行大规模的软件常规测试。软件最终测试又称为软件交付测试(Delivery Testing),是软件本地化测试的最后阶段,通过该测试,软件供应商就可以准备发布本地化软件了。
    • 手工测试是指软件测试工程师,通过安装和运行被测软件,根据测试文档的要求,运行测试样例,观察软件运行结果是否正确的过程。
    • 自动测试是指使用各种自动测试工具软件,通过运行事先设计的测试脚本等文件,测试被测软件,自动产生测试报告结果的过程。
    • 按照测试特征分类
        按照被测软件的测试特征分类,软件本地化测试分为安装/卸载测试(Install/Uninstall Testing),本地化语言测试(Linguist Testing),软件外观测试(Cosmetic Testing),软件功能测试(Function Testing)。

    软件本地化测试内容构成

    http://bbs.51testing.com/thread-98577-1-3.html

    • 软件本地化测试的内容大体上包括安装/卸载性能测试 (Install/Uninstall Testing)、软件功能测试(Function Testing)、本地化语言测试(Linguistic Testing)、软件外观测试(Cosmetic Testing)。
    • 软件本地化测试的目的
        保证本地化的软件与源语言软件具有相同的功能和性能。
        保证本地化的软件在语言、文化、传统观念等方面符合当地用户的习惯。
    • 软件本地化测试的测试策略
        本地化软件要在各种本地化操作系统上安装并测试。
        源语言软件安装在另一台相同源语言操作系统上,作为对比测试。
        重点测试因本地化引起的软件功能和软件界面的错误。
        测试本地化软件的翻译质量。
        手工测试和自动测试相结合。

    软件测试错误的类型及其产生的原因

    http://bbs.51testing.com/thread-98580-1-2.html

    • 第一,测试顺序不同。首先要对源程序软件进行测试,然后再创建本地化软件,测试本地化软件。
    • 第二,测试内容和重点不同。源程序软件主要测试功能和性能,结合软件界面的测试。本地化软件的测试,更注重因本地化引起的错误,
    • 软件本地化的错误主要分为两大类:第一、由于源程序软件编码错误引起的;第二,由于软件本地化引起的。其中由于软件本地化产生的错误类型包括语句没有翻译、翻译错误、控件布局错误。对于东亚语系软件,可能存在双字节字符显示错误等。
    • 布局错误
      • (1) 产生原因:
        1) 软件本地化后,由于源语言和本地化语言的表达方式不同,本地化后的字符数与源语言不同,每个字符所占空间尺寸不同,使得在英文版本正确显示的控件字符,可能在本地化版本显示不正确。

        2) 本地化人员调整程序资源不当引起,例如,对话框及其控件高度或宽度的不正确调整。

        (2) 表现特征:
        1) 控件相互重叠或排列不均匀。
        2) 控件中字符显示不完整。
        3) 主要出现在本地化版本的对话框中。

        (3) 测试要求:
        1) 对话框中控件布局均匀,字符显示完整正确。
        2) 对话框中控件数量相等,没有多余或丢失的控件
        (4) 测试方法:
        1) 执行将要打开对话框的菜单或工具栏按钮,观察打开对话框中的控件布局。
        2) 对比检查源语言软件和本地化软件对应的对话框中控件的数量
        (5) 说明:
        1) 可能在执行不同的操作后,如选择了不同单选或复选按钮后,编辑框显示重叠等。
        2) 执行后带省略号的菜单或命令按钮,将会显示对话框。
    • 综合分析本地化软件的错误类别,可以归结为四种类型:翻译错误,功能错误,界面错误,双字节错误。
    • 翻译错误:
      • (1) 产生原因:
        1) 翻译人员不熟悉翻译要求。
        2) 翻译人员工作疏漏。
        3) 用户界面的翻译与标准词汇表不一致。

        (2) 表现特征:
        1) 应该翻译而没有翻译的英文字符。
        2) 不应该翻译而翻译的中文字词。
        3) 错误翻译的字词。
        4) 只在本地化版本中存在该类型错误。
        5) 较多隐含在对话框各控件以及帮助文档中。

        (3) 测试要求:
        1) 明确需要翻译和不需要翻译的内容。
        2) 明确正确的翻译方式。
        3) 根据术语表,确认术语翻译的正确性与一致性。

        (4) 测试方法:
        1) 主要同时打开中英文版本,执行相同的操作。
        2) 结合标准界面词汇翻译表,参照对比。

        (5) 说明:
        1) 对于对话框,如果含有下拉列表框,要打开列表框查看全部项。
        2) 特别要注意选项中开关类翻译错误。
    • 功能错误:
      • (1) 产生原因:
        1) 软件编码错误。
        2) 错误本地化,如将程序中的变量进行了翻译等。

        (2) 表现特征:
        1) 不能实现设计要求的功能。
        2) 产生与设计要求不符合的结果。
        3) 英文和中文都存在同样的错误。
        4) 可能隐含在软件的任何位置或任何操作步骤中。

        (3) 测试要求:
        1) 保证输入数据正确,或者打开了正确的测试用例。
        2) 明确正确的输出结果和中间数据数值及格式。

        (4) 测试方法:
        1) 对于菜单项或工具栏按钮,通过全面测试各个选项,认真观察每一步是否正确执行,输出结果(包括格式和数值)是否正确。
        2) 对于一个命令中的多个并列选项,采用路径跟踪法,按分支顺序测试嵌套的全部子项。
        3) 对于对话框,可以逐个执行各按钮,各个列表选项等观察执行结果。

        (5) 说明:
        1) 特别注意不同选项、不同按钮相互操作的影响。
        2) 注意检查快捷键是否遗漏,是否多余,是否不同,是否起作用。
    • 布局错误:
      • (1) 产生原因:
        1) 软件本地化后,由于源语言和本地化语言的表达方式不同,本地化后的字符数与源语言不同,每个字符所占空间尺寸不同,使得在英文版本正确显示的控件字符,可能在本地化版本显示不正确。

        2) 本地化人员调整程序资源不当引起,例如,对话框及其控件高度或宽度的不正确调整。

        (2) 表现特征:
        1) 控件相互重叠或排列不均匀。
        2) 控件中字符显示不完整。
        3) 主要出现在本地化版本的对话框中。

        (3) 测试要求:
        1) 对话框中控件布局均匀,字符显示完整正确。
        2) 对话框中控件数量相等,没有多余或丢失的控件
        (4) 测试方法:
        1) 执行将要打开对话框的菜单或工具栏按钮,观察打开对话框中的控件布局。
        2) 对比检查源语言软件和本地化软件对应的对话框中控件的数量
        (5) 说明:
        1) 可能在执行不同的操作后,如选择了不同单选或复选按钮后,编辑框显示重叠等。
        2) 执行后带省略号的菜单或命令按钮,将会显示对话框。
    • 双字节错误:
      • (1) 产生原因:
        1) 源程序在设计时没有考虑双字节语言的支持。
        2) 软件本地化后,单字节字符向双字节字符转化过程中,由于单字节和双字节之间的差别,可能使得某些本地化后的双字节字符的显示乱码。
        3) 软件本地化后,对程序中控制符号如换行键 “\\n” 的处理错误而引起乱码。

        (2) 表现特征:
        1) 控件或对话框中显示不可辩识的字符。
        2) 控件或对话框中显示无意义的明显错误的字符。
        3) 不支持双字节字符的输入,包括双字节的文件名和路径名。
        4) 仅出现在本地化后的版本中。

        (3) 测试要求:
        1) 本地化后的软件字符显示正确完整,无乱码或明显错别字。

        (4) 测试方法:
        1) 执行菜单或按钮,检查对话框中的字符。
        2) 打开帮助文档,检查所有需要翻译的字符。

        (5) 说明:
        1) 注意检查对话框下拉列表中需要拖动滚动条才能显示的内容。

    软件本地化测试团队成员的技术概览

    http://bbs.51testing.com/thread-98578-1-2.html

    • 软件测试项目团队中包括测试工程师、错误修复工程师、测试主管、项目经理等不同的角色,不同的角色需要掌握和运用不同的测试技术知识
    • 测试工程师需要的技术
      • 1. 软件测试的基本知识
        2. 被测软件的使用知识和本地化语言知识
      • 3.  常用测试工具的使用技术
        4. 软件测试错误数据库使用的技术
    • 错误修复工程师需要的技术
      • 1.软件测试错误数据库使用的技术
        2.软件开发环境的使用经验
        3.软件本地化语言知识
        4.软件安装技术和软件使用经验
    • 测试主管需要的技术
      • 1.测试主管除了具备测试工程师和错误修复工程师的知识,还需要下面的知识。

        2.设计或修改测试用例、测试脚本的能力
        3. 开发或定制软件错误跟踪数据库的能力
        4.软件质量保证的知识
        5.团队管理的知识
    • 测试项目经理需要的技术
      • 1.测试项目经理除了具备测试主管的知识,还需要下面的知识。
        2.设计或修改测试方案、测试计划的能力
        3. 沟通技巧和协调能力
        4.具备资源管理、项目跟踪、风险管理、质量保证的能力

    DTP工作内容及需要掌握的知识

    http://bbs.51testing.com/thread-98697-1-1.html

    • DTP (Desktop publishing),可理解为:“DTP 桌面排版服务”或是“桌面出版物排版”。它是本地化项目流程中的一个环节。具体来说,就是以英文文档为基础,根据本国家/地区文字方面的特殊规定或要求,排版文档。

    iYAF for AutoIt PPT - iYAF | Google 网上论坛

    http://groups.google.com/group/iyaf/web/iyaf-for-autoit-ppt

  • 23 birthday~~

    2007-12-10 11:11:08

    on birthday,
    收到了很多好朋友的祝福,很开心。
    跟wisdom 暴走成都春熙路和一二环,很开心。
    收到了朋友送的一副图片,很开心。
    希望自己真真能很开心~~
  • 终于鼓起勇气骑动感单车了

    2007-12-07 16:16:17

    上次骑了一次,感觉不爽,因为觉得屁股很痛。问了其他一些同伴,她们也有同感,不过都说过段时间就好了。
    但我就没有再骑了。

    每次经过单车室,看见她们跟着教练一起挥洒热情和汗水时,自己就默默的走过去。

    昨天,收集的一些单车之前需要注意的资料,比如需要检查车的高度是否符合自己,鞋扣是否牢固等等;我鼓起勇气,很早来到单车室,咨询了一下旁边的一个朋友,于是自己慢慢的调整单车。

    其实上次骑单车,让我最心有余悸的就是,当骑的很快的时候,脚就感觉要从鞋扣里飞出来。我很害怕膝盖被打到。

    教练来了,跟着教练一块开始练习。

    教练说,女士膝盖不要内扣,要保持中立。避免膝盖受伤。当然男士的话,膝盖也不要太外翻。

    跟着教练的口令,震耳欲聋的音乐和节奏,我开始骑行。开始一曲热身。

    然后上坡,好久。始终不是很明白教练说肩膀左右摇是什么意思。似乎是为了把中心加上,腿上受力轻点。

    然后阻力减小,开始飞速快蹬。考虑到上次,因为第一次骑,努力跟上教练的节奏,自己很辛苦。所以当很快一段时候,我就休息慢骑一下。

    呵呵。在我自己的控制下,竟然上完了整节课 。
    开始上课的时候,单车室人满,下课时,只有一半左右了。。

    很佩服自己。

    现在大腿好疼。真有效果。相信对减腿很有好处。

    以后就去骑单车。。。。。


  • 男人至少的品质底线(你做到多少?)

    2007-12-03 20:44:53

    1:能不抽烟最好不抽,它或许可以帮助你吸引一些女生,但不抽绝不会招来厌烦,表现男子气概的途径有很多,没必要拿健康做赌注。

      2:给自己定目标,一年,两年,五年,也许你出生不如别人好,通过努力,往往可以改变70%的命运。破罐子破摔只能和懦弱做朋友。


      3:找女朋友外表是第一关,但要了解她的品行之后再做打算也不迟。


      4:不要在乎小钱,工作的人都后悔从前对自己的GF不够好。记住你们的重要日子,你们的谈话,女生要敏感得多,这样做,至少可以证明你对她的重视。


      5:爱她,但别怕她,你们是恋人,也是朋友,她要的不是宠物,这样的感情,走不长远。


      6:她要是病了,带她去医院,她害怕时,找个人少的地方抱着她,给她勇气,帮她排队,挂号,放下你那点可悲的面子,周围人只会向她投来羡慕的眼光,不会对你说三道四。


      7:别把两个人的生活绞在一起,空间才是爱情的长寿药。不要经常吃醋,谁都有异性朋友,该吃的时候才吃,并且让她知道。


      8:善待她的朋友,即使她讨厌的人,你也没资格说坏话,你要做的,就是静静的听她倾诉。适当给她安慰。有时候,她们更需要依靠,即使你们都还是学生。


      9:不要问她过去,时机到了,她会毫无保留的告诉你。她要是想见从前那位,让她去,原因是你不让她去,她也会去。为何不表现得大度点,但要让她知道你相当的郁闷。


      10:珍惜身边人,不要见异思迁,大家都需要安定。即使对方比你GF漂亮10倍,还主动靠近你,给你暗号,请严肃的告诉她,你有女朋友!


      11:她开始管你的生活,你的钱,对你唠叨,频繁发消息询问你的位置。别担心,她只是把自己交给了你,害怕失去你。


      12:带她去你从前常去的地方,她内心会无比快乐,你失意时,她会在第一时间找到你。


      13:发生口角后,别关机,也别在街上和其他异性闲逛,那只能使矛盾激化。


      14:过生日,送她草莓蛋糕,不要太大,但要足够精致,把你对她的腻称放在蛋糕上。再买一个大的,让她和朋友一起过。


      15:牵手时,即使你的手有多汗,也别放开。


      16:把她介绍给你最好的朋友,包括异性朋友。


      17:别总是让她打电话来,她也需要被重视的感觉。


      18:衣着尽量和她的品位搭调,即使你要提升品质,请带上她一起。


      19:别偷看她的隐私,不要去猜测,在一起是缘分,离开也是缘分。


      20:如果失恋,不要轻信江湖上传言的借酒消愁,吐的滋味不好受,即使喝了,也别急着喝茶,茶不但不能解酒,反而还会伤肾。


      21:不要整天想着如何重修旧好,除了爱情,前面还有许多问题需要你去解决。这是个现实的社会,感情不能当饭吃,贫穷夫妻百事哀。不要相信电影,那只是个供许多陌生人喧嚣情感的场所。


      22:分手之后,可以伤心难过,但过渡期不能太长,因为这期间是绝佳的学习和工作时间。


      23:如果你实在奈不住寂寞,至少等上大半年,否则你不仅否定了她,也否定了你自己。


      24:当她不再爱你的时候,无论你有多想她也别打电话告诉她,因为有些人会记住第一个,而有些人只会记住上一个。


      25:好朋友里面,一定要培养出一个知己,不要以为你有多么八面玲珑,到处是朋友,最后真心对你的,只有一个,相信我。


      26:她的离开如若是一个重大打击,找间手艺不错的发型设计理个发,这样可以让你涣然一新。


      27:不要去打扰她的生活,她只会觉得从前看错人,你也会鄙视自己。


      28:你们在街上相遇,请向她微笑,把微笑留给伤你最深的人。


      29:告诉周围人,你和她已经分手,避免他们给你打报告,哪天又看见谁谁谁了。


      30:不要相信星座命理,那是哄小朋友的,命运在自己手中。难道你想等出栋房子或是车子?


      31:你的朋友最好以你自己为中心发散,允许少数支点连接,千万不要把朋友圈变成密不透风的多边型,你要为自己留底牌。


      32:不喜欢的人少接触,但别在背后说坏话,说是非之人,必定是是非之人,谨记,祸从口出。


      33:朋友圈里的你,平时都很忍让,请注意适当拿出你的主见。反之,不要太计较。


      34:给老师或者领导留下好印象,他们不会在你沉沦时再踩你几脚,相反可能会拉你一把。在社交中,原则是跌停股,世俗是潜力股。


      35:少玩游戏,这不是韩国,你打不出房子车子还有女人。进了大学,就进了社会,这是场马拉松。北京现在一个砖头抛上去,砸下来78个研究生受伤,现在的你是否该有点打算。


      36:拿出极限,尽力而为。你要想的是成功,而不是失败。所以面对困难首先就是拿出信心。除了你心爱女人的鼓励,这应该是最有用的东西。


      37:定时整理书桌书柜,良好的精神面貌可以让你事半功倍。


      38:学好英语,那些说学英语没用的暂时可以不去管,他们要么年纪大了,要么就是自己早过了CET6准备托福了,在这里哗众取宠。你可以不拿证,但一定要学好。


      39:不是足够热爱你的专业,并且学出来前途不够光明,趁早转业。现在更多人更看重钱途


      40:知道自己要干什么,寝室的卧谈会的确可以帮你磨嘴皮子,夜深人静,问问自己,将来的打算,并朝着那个方向去实现。


      41:偶尔翻翻时尚类的杂志,女朋友和女性朋友都可以从中受益。


      42:尽量少看A片,正常的男人即使是单身,也不会成天迷恋肉欲。而每次你SY后都会有大量锌元素流失,此元素与你大脑活动有密切联系。


      43:坚持做运动,俯卧撑可以锻炼你的胸肌和腹肌,请记住游泳圈是成功人事才有资格拥有的奢侈品。


      44:每天早上一杯水,预防胆结实。睡前一小时不要喝水,否则会过早出现眼袋。


      45:宁愿要深色袜子也少买白色的,这样会让人觉得你不够成熟,学生朋友自便。


      46:新同事或新朋友请你吃饭,不要觉得理所当然,请礼尚往来,否则你的名声会越来越臭。无论是大学还是公司,很多故事都是听来的。


      47:有男友的女人不要碰,即便你想onenightstand也要做好心理准备。后果同上,严重时会出现体肤之痛。


      48:朋友的女人不要碰,无论是现在的还是曾经的,后果同上。要知道,男人经营自己就像经营一个公司,要树立品牌文化。想问为什么的朋友请先做个你是受害者的假设,再跟我发短消息讨论。


      49:博爱的女人不要碰,往往这种女人连自己要什么都不知道,我想没人愿意和若干成年男性分享自己的爱。天作孽,犹可活,自作孽,不可活。


      50:没主见,不上进,懒惰的女人不要碰。就算你有钱,你有的是钱,最终你也会厌烦其中。何况不见得她们个个都是花瓶,何况你还有审美疲劳。

    51
    :不以物喜,不以己悲,我知道这很难,但要成功,这是必修课。


      52:空闲时间不要全拿去泡BAR,读点文学作品,学习一些经营流程,管理规范,国际时事,法律常识。这能保证你在任何聚会都有谈资。


      53:每年回母校看看那些为你付出过的老师,走上社会你才了解她们才是无私的,比起那点学费,她们简直太伟大了。学会感恩。


      54:回家帮父母做点简单家务,陪他们买菜,做饭,逛街,冬天送他们一人一件羽绒服,他们并不奢望什么,但他们需要得到你的承认,中国的父母是最苦的,孩子是最幸福的。(离婚除外
    )

      55:大家都年轻,没什么钱,不用太在意谁谁又穿ADNIKE,或者其他。而GF对于PRADA,蓝寇,CDLV,的热恋,你也不必放在心上,女人天生和美挂上了勾,她们只是宁愿相信你能够为她们买一样昂贵的礼物,以满足她们的虚荣心,然后在同伴面前炫耀一番。实则她们也是热爱生活的,而当你有能力完成时,也会觉得把她包装得漂漂亮亮的很是欣慰。


      56:告诉她,你喜欢的内衣。或者在UNDERWEAR店要打佯时陪她去买。


      57:欺负她时,请带上套子,如不习惯,请自行解决,直到无法忍受为止,或者泼自己一身冷水。流产很痛苦,我只是听说。


      58:有正义感,但请更理智,你父母不希望养育二十多年的儿子化为泡影。但当她遇到流氓时,请你勇敢的挡在她前面。大声说话可以让你的勇气迅速提升。(这是我答辩时认识到的)


      59:最好不要在她面前玩天真,多数MM都不喜欢,除非她要求。


      60:接吻前先嚼块口香糖,接吻时请闭上眼睛,睁开时,告诉你有多爱她。


      61:尊重每一个人,包括为你擦鞋的,卖报的,环卫工人...等等。


      62:接到陌生电话请先说,你好,找哪位


      63:想发脾气时,尽量忍,忍不住就去厕所蹲半个小时,或是找个海拔较高的地方站半个小时。


      64:如果GF要跟你吵,尽量克制,不能避免时,跟她吵,吵架是最好的交流方式。你们互相可以得到心里渴望已久的答案。但别带脏字,别把对方的亲戚带出来,最后尽量妥协,有些事,只能暂时妥协。不要把问题留过夜。


      65:出差回来给她一个惊喜,并带上礼物。(想在这条上跟我开玩笑的朋友,请私下跟我开)


      66:在她兜里放些零钱,在她不常用的兜里放张一百。


      67:尊老爱幼,帮助别人后,你会感到无比轻松快乐。


      68:去市场买东西,杀价先杀四分之三,现在杀一半行不通了。


      69:如果可以,给你的对手留条生路,钱是赚不完的。这个世界上,没有天生的敌人。


      70:饮水思源,永远做一个有思想的人,即使你不会有大成就,钱也会足够花。


      71:为她学一首歌,如果可能,结婚时当着大家的面唱给她听。


      72:要做一件事,成功之前,没必要告诉其他人,成功之后,和他们分享快乐。


      73:每年去寺庙为家人点几盏油灯,告诉自己的良心,你不在的时候,同样是爱他们的。


      74:学会察言观色,不要意气用事,否则会有许多不必要的麻烦。


      75:享受孤独,地球不会因为只有你一个人而停止转动,也许她会很晚才出现,在此之前,你要学会正确利用时间,并且让自己发光发亮。


      76:从前的她,深夜给你打电话,如果你还爱她,接电话。如果你不爱她,关机。(没听见不在讨论范围之内)


      77:夜里的约会最好不要选择偏僻的地方,有些突发事件,会让你痛不欲生。如果你还爱她的话。


      78:公司的东西不要带回家,即使有小便宜,也别参与,在你成为领导前,也别指责,这是你管不到的。


      79:开发你的另外一个情感宣泄功能,倾听。


      80:朋友之间不要合作做生意,或者办公司。麻烦会接踵而来。你要减轻负担,减小风险,可以,找陌生人。


      81:今日事,今日毕,不要日复一日,年复一年。不然到你60岁,你还告诉孙子,爷爷明年一定要毕业!


      82:感谢曾经爱过你的人,她祝福你的短信,一定要回。


      83:朋友之间发生争执,不要次次都是忍让,每个人都有坚持自己的权利,让他们知道你的想法,你所坚持的。没关系,不出两天,你们又是好朋友。


      84:说该说的,不说不该说的。对朋友,也应当有所保留。对她,不要把她和从前那个相提并论,谁都受不了。


      85:头发,指甲,胡子,打理好。社会是个排斥性的接受体,这个星球所需要的艺术家极其有限,请不要冒这个险,就算你留长头发比较好看,也要尽量给人干净的感觉。


      86:牌局可有可无,那不是年轻人该干的,除非工作需要,否则不要培养这种兴趣。当你看见GF坐在赌博机面前聚精会神的呐喊着某张牌时,你是什么感觉?


      87:每学期给自己写总结,上课认真学习,所谓的好好学习,天天向上,学好了,就是最管用的绝招。机会常常伪装成麻烦,从你身边路过,也只会留给做好准备的人。上班的朋友同理。


      88:不要整天把国家大事摆在嘴上,去改变你能改变的,接受你无法改变的。


      89:选一个生日陪你母亲过,那也是她的受难日。不要年年都和同样一群人过。到头来,全心为你的,只有她。


      90:有了手机,尽量少上网,就算你仅仅是看新闻,读文章,大把时间也会不经意从你身边流失。


      91:不要以为你是个男人,就不需要保养。至少饮食方面不能太随便,多吃番茄,海产品,韭菜,香蕉,都是对男性健康有益处的食物。你要是看不到价值,我可以告诉你。至少你能把看病节约下来的钱给她多买几盒DIOR


      92:善待小动物,你以后也有子子孙孙,同样是生命,培养一下自己的爱心吧。这并不表示你懦弱。


      93:如果考公务员,要有十足的心理准备。早点开始托关系吧,还不见得一定就有收效。


      94:力求上进的人,不要总想着靠谁谁,人都是自私的,自己才是最靠得住的人。


      95:如果你们相处几年下来,她开始冷落你,对你不闻不问,请别怪她,让她离开。给不了她幸福,给她自由。


      96:如果你想和她说分手,请在考试之后,人都是脆弱的。


      97:她给你买礼物,你可以高兴,但不要太高兴。人生就是场经营,有人经营感情,有人经营利益,有人经营幸福,而有人经营阴谋。


      98:面对失败,不要太计较,天将降大任于斯人也,必先苦其心志,劳其筋骨,饿起体肤....但要学会自责,找到原因,且改掉坏习惯。二十岁没钱,那很正常,三十岁没钱,那是宿命。


      99:学会微笑,以后在很多场合都用得上它。如何让微笑好看,首先你得拥有健康的牙齿。如何保证牙齿健康,一,早晚,饭后刷牙;二,每年去探望一次牙科医生;三,少管闲事

  • 用户体验和可用性测试

    2007-11-28 11:03:49

         今天我师傅做用户体验和可用性测试时,让我在旁边观摩。他给我讲了很多东西。我觉得实践结合理论才是学习的好办法。感谢om19先。

       做用户体验时,要让用户在一个相对宽松,类似其真实工作环境的场景下,要求用户完成特定的操作。我们只在开始做测试前,对用户的目标操作给予描述。之后就安静的观察用户的操作步骤,使用时的心理状态等等,从而发现自己产品的不足。


      做用户体验可用性测试前,要对用户进行谈话。分为四个层次:
    1. 用户基本情况:职业,年龄,专业,兴趣爱好等
    2.用户使用习惯:每周上网时间,电脑配置,电脑软件环境,有意识的挖掘用户是否是目标用户的操作
    3.用户的目标:通过对用户目标操作的挖掘,了解其用户目标。从而挖掘改进的地方
    4.对用户进行测试的目标操作的描述。


  • css’s display:block inline

    2007-11-27 17:56:22

     css语法由三步分构成:选择器,属性和值

    • 记得写引号

      提示:如果值为若干单词,则要给值加引号:

      p {font-family: "sans serif";}
    • 多重声明:

      提示:如果要定义不止一个声明,则需要用分号将每个声明分开。

    • 空格和大小写敏感

      大多数样式表包含不止一条规则,而大多数规则包含不止一个声明。多重声明和空格的使用使得样式表更容易被编辑:

    • 选择器的分组

      你可以对选择器进行分组,这样,被分组的选择器就可以分享相同的声明。用逗号将需要分组的选择器分开

    • 继承及其问题

      根据CSS,子元素从父元素继承属性。

    • 派生选择器

      通过依据元素在其位置的上下文关系来定义样式,你可以使标记更加简洁。

      在CSS1中,通过这种方式来应用规则的选择器被称为上下文选择器(contextual selectors),这是由于他们依赖于上下文关系来应用或者避免某项规则。

    • 派生选择器允许你根据文档的上下文关系来确定某个标签的样式
    • id选择器

      id选择器可以为标有特定id的HTML元素指定特定的样式。

      id选择器以"#"来定义。

    • id选择器和派生选择器

      在现代布局中,id选择器常常被用来建立派生选择器。

      #sidebar p {
      font-style: italic;
      text-align: right;
      margin-top: 0.5em;
      }
    • id选择器作为派生选择器也可以被使用很多次
    • 单独的选择器

      id选择器即使不被用来创建派生选择器,它也可以独立发挥作用

    • 在CSS中,类选择器以一个点号显示:

      .center {text-align: center}

      在上面的例子中,所有拥有center类的HTML元素均为居中。

    • 不要使用数字起始类名!它无法在Mozilla或Firefox中起作用
    • 和id一样,class也可被用作派生选择器
    • html有标签,CSS有选择器。选择器是给内部和外部样式里面的样式命名。
    • 每个选择器都有属性在{}里面
    • 值在冒号(不是等号)后面
    • 分号分离属性
    • em比如font-size:2em给于字体计算出的大小,所以2em就是实际字体大小的两倍。
        px比如font-size:12px是pixel像素的单位。
        pt比如font-size:12px是points镑的单位。
        %比如font-size:80%是百分比
    • pc(12点西文活字)、cm(厘米)、mm(毫米)和in(英寸)
    • 当值是零的时候,不需要单位
    • 建议使用"em"和"%"在font-size上(宽度和高度),相比下px不能够在大部分浏览器改变大小,所以要少用,可以用在边框的大小上

      display:inline/block/inline-block/none

    • inline:内联对象的默认值。将对象强制作为内联对象呈递,从对象中删除行
      • none:不显示
    • display:inline-block; 将对象呈递为内联对象,但是对象的内容作为块对象呈递。旁边的内联对象会被呈递在同一行内
      • 当display被设置为block(块)时,容器中所有的元素将会被当作一个单独的块,就像
        元素一样,它会在那个点被放入到页面中。(实际上你可以设置的display:block,使其可以像
        一样工作。 将display设置为inline,将使其行为和元素inline一样---即使它是普通的块元素如
        ,它也将会被组合成像那样的输出流。
      • visibility属性用来确定元素是显示还是隐藏的,这用visibility="visible|hidden"来表示(visible表示显示,hidden表示隐藏)。 当visibility被设置为"hidden"的时候,元素虽然被隐藏了,但它仍然占据它原来所在的位置
      • display是指显示状态,inline表示内联,特点是紧贴着前一个内联元素,通常默认的内联元素有span,a,em,strong等。而float表示的是浮动,float:left,是针对块级元素的浮动形式,是不同形式的两种状态
    • display:block; 块对象的默认值。将对象强制作为块对象呈递,为对象之后添加新行
  • 时刻保持自己的饥饿意识

    2007-11-20 11:03:22

    任何人都会花很多时间、做各种的努力去完成自己想要做的事情。可是在取得初步成就后,很多人就会形成“守成”的观念,不肯再前进一步了。

    据统计,有些获得诺贝尔奖的人在后半生里一直碌碌无为,已经取得的成就占满了他们的内心,有种“饱”的错觉。所以,要想取得更大的成就,就必须学会忘记曾经取得的成绩,让自己时刻保持饥饿感。

    要获取饥饿意识,就应该为自己定一个远大的目标。

    为自己制定一个远大的目标,这个目标必须高于你现有的能力。目标过低,实现的机率就过大,太容易让人产生满足感。只有拥有远大的目标,心中的欲望和追求才会时刻提醒你:我必须前进,充实自己,为实现目标而努力奋斗。

    远大目标是拥有饥饿意识的必要条件。只有追求远大目标的人,才会看到自身上的不完美因素,可望改善和提高。他们身上洋溢着旺盛的生命力,他们把每一项工作,每一次挑战都看作是栽培自己的机会。

    饥饿意识是一种积极进取的态度,不满足是获取饥饿意识的第一步。容易满足的人,一旦得到舒适安逸的位置,便稳定下来。这样的人只会盲目工作,争取勉强维持温饱的薪金。而那些不容易满足的、追求成功的人则会不断地将满意变为不满意,然后继续前进。

    很多刚进企业的新人,开始时做事雷厉风行。可是不久就会变得拖拖拉拉,对现有状况感到自满。一个拥有抱负的人,不应该如此。除非你是一个甘愿平凡的,安守现状的人(谁不会有抱负呢?),那么就不要再轻松地满足于以前取得小小成就了。看看这个例子:

    美国某铁路公司总经理,年轻时在铁路沿线做三等列车上管制动机的工人,周薪只有12美元。有一位资深的工人对他说:“你不要以为做了管制动机的工 人,便趾高气扬。我告诉你,起码要在四五年后,你才会升做车长呢。而且,那时你还得小心翼翼,以免被开除,如此才能安度周薪100美元的一生。”

    可是他却冷冷答道:“你以为我做了车长,就满足了吗?我还准备做铁路公司的总经理呢。”

    理所当然,这个人最终获得了成功,成为了这家铁路公司的总经理。可见,对自身的不满足,是一个人成就更大成功的关键。

    本文来自 http://www.mifengtd.cn/

  • [转]追求代码质量: 使用 Selenium 和 TestNG 进行编程式测试

    2007-11-13 15:59:28

    追求代码质量: 使用 Selenium 和 TestNG 进行编程式测试

    轻松实现用户验收测试自动化

    Andrew Glover (aglover@stelligent.com), 总裁, Stelligent Incorporated

    2007 年 4 月 30 日

    Selenium 是一种测试框架,它使您可在 Web 应用程序上轻松地运行用户验收测试(user acceptance test)。本月,Andrew Glover 将向您展示如何以编程的方式运行 Selenium 测试,并使用 TestNG 作为测试驱动程序。在将 TestNG 灵活的测试特性(包括参数化 fixture)添加到 Selenium 固有的工具包后,您需要做的就是借助 DbUnit 和 Cargo 的帮助编写完全自动化、逻辑可重复的验收测试。

    Selenium 是一种 Web 测试框架,它搭建了验证 Web 应用程序的新途径。与大多数尝试模拟 HTTP 请求的 Web 测试工具不同,Selenium 执行 Web 测试时,就仿佛它本身就是浏览器。当运行自动的 Selenium 测试时,该框架将启动一个浏览器,并通过测试中描述的步骤实际驱动浏览器,用户将使用这种方式与应用程序交互。

    由于开发人员和非开发人员都能够使用 Selenium 轻松地编写测试,使得它从众多测试框架应用程序中脱颖而出。在 Selenium 中,可以通过编程的方式编写测试,或者使用 Fit 样式的表,并且编写了测试后,可以使测试完全自动化。使用一个 Ant 构件(比方说)运行完整的 Selenium 套件非常简单,并且还可以在持续集成(Continuous Integration,CI)环境中运行 Selenium 测试。

    这个月,我将介绍 Selenium,并逐一查看使它成为优秀 Web 测试框架的一些特性 —— 尤其是在结合使用 TestNG、DbUnit 和 Cargo 这样的软件时。

    验收测试
    由于 Selenium 能够很好地模拟用户的行为,它常常用于进行验收测试,即在完成的系统上运行一整套测试。验收测试通常需要运行整个应用程序,以使测试发挥作用。如果您要测试一个 Web 应用程序,则需要访问应用程序数据库,以及一台 Web 服务器,一个容器和运行应用程序所需的任何配置元素。

    使用 Selenium 进行编程式测试

    在 Selenium 中,您可以使用自己喜爱的语言或者 Fit 样式的表通过编程来编写测试。从测试的角度来说,不管使用什么语言,测试过程和结果都不会有显著的差别。在此,我希望研究 Selenium 的编程方法,因为在结合使用 TestNG 时,它提供了一些有趣的可行方法能性。

    使用具有类似 TestNG 这样的框架的 Selenium 进行编程式测试具有这样一个优点,它允许您创建智能 fixture,而使用 Fit 样式的表则很难做到这一点。TestNG 尤其适合与 Selenium 结合使用,因为它使您能够完成其他框架无法做到的测试,例如使用依赖项进行测试,重新运行失败了的测试,以及使用单独文件中定义的参数进行参数化测试。所有这些特性结合在一起,当然能够使它在众多 Web 应用程序测试框架中脱颖而出,但是,正如您将看到的,在完全自动化的验收测试中使用这些特性令它更加出众。

    配置第一个测试

    Selenium 架构实际上由两个逻辑实体组成:您编写的代码以及能够简化与测试中的应用程序的交互的 Selenium 服务器。要成功地执行测试,必须要启动并运行 Selenium 服务器实例以及要测试的应用程序。(当然,测试结果取决于您编写的应用程序是否优秀!)

    幸运的是,Selenium 服务器是一种轻量级程序,可以在实际的测试范围内通过编程启动和停止它。Selenium 服务器(使用 Selenium 对象嵌入)的启动和停止由一个 fixture 来执行。

    要通过编程的方式启动 Selenium 服务器,必须创建一个新的 Selenium 对象,并告诉它要使用哪一种兼容的浏览器 —— 我在下面的示例中使用的是 Firefox。您还必须提供运行服务器实例的位置(通常是 localhost,但不是必须的),以及被测试的应用程序使用的基 URL。

    在清单 1 中,我配置了一个本地 Selenium 实例,使用它在本地安装的 Web 应用程序上驱动 Firefox(http://localhost:8080/gt15/)。正如您从参数中推断的一样,Selenium 是作为被测试的应用程序的代理,并相应地促进测试。


    清单 1. 配置 SeleniumServer
                    
    Selenium driver = 
      new DefaultSelenium("localhost", SeleniumServer.getDefaultPort(), 
       "*firefox", "http://localhost:8080/gt15/");
    
    driver.start();
    //go to web pages and do stuff...
    driver.stop();
    

    创建了 Selenium 实例后,您可以 启动并在运行时 停止它。这意味着您可以通过编程与 Selenium 服务器交互,并通过一个测试程序使它驱动浏览器。

    驱动应用程序

    通过编程与 Web 页面进行交互是一种使用本地 id 的应用。(一些读者可能对这种源自 本系列二月份关于 TestNG-Abbot 的文章 的概念比较熟悉)。与页面元素进行交互的第一步就是查找该元素,通常可以使用 HTML 元素 ID 进行查找。Selenium 还允许您使用 XPath、正则表达式,甚至是 Javascrīpt 来查找特定的元素(如果您希望这样做)。

    清单 2 所示的 HTML 是使用 Groovlet 的简单 Web 应用程序的一部分。这段代码定义了包含输入和提交按钮的表单。如果希望 Selenium 与该表单交互,我必须为输入按钮提供 ID 以及相应的值。我还需要为提交按钮提供一个 ID,这样 Selenium 才能 “单击” 它。单击按钮后,表单将被提交给 Groovlet —— 本例中为 FindWidget.groovy


    清单 2. 简单的 HTML 表单
                    
    <form method=post action="./FindWidget.groovy">
     <table border="0" style="border-style: dotted">
      <tr>
       <td  class="heading">Widget:</td>
       <td class="value"><input type="text" name="widget"></td>
      </tr>
      <tr>
       <td></td>
       <td class="value"><input type="submit" value="Find Descrīption" name="submit"></td>
      </tr>
     </table>
    </form>
    

    现在就可以通过使用 ID widget(输入值)和 submit(单击按钮)与该 HTML 表单进行编程式交互,如清单 3 所示:


    清单 3. 驱动简单的 Web 页面

    driver.type("widget", "pg98-01"); driver.click("submit");driver.waitForPageToLoad("10000"); //assert some return value...


    Selenium 中用于和 Web 页面元素进行交互的 API 非常的直观。对于输入字段,我可以使用 type() 方法将值与 ID 关联起来。如果需要的话,可以通过编程 click 按钮。在清单 3 中,我将 click 设置为 10 秒的等待时间 —— 足够表单提交请求完成处理。当 FindWidget.groovy 中的代码运行其内容并返回响应后,我可以使用该响应来查找特定页面元素,并验证所有内容是否正常工作。


    Selenium 和 TestNG

    TestNG 以其灵活性和参数化 fixture 成为定义 Selenium 的驱动验收测试的首选。TestNG 能够定义测试依赖项并返回失败的测试,以及其易用性,使得 Selenium-TestNG 成为吸引人的组合。

    让我们首先从一个能够允许用户创建、查找、更新或删除小部件的 Web 应用程序开始。创建一个小部件需要三个属性:名称、类型和定义。图 1 显示了创建小部件的表单:


    图 1. 创建小部件的 Web 表单
    创建小部件的 Web 表单

    请注意:表单元素的类型是具有三个不同选项的下拉列表,如图 2 所示:


    图 2. 包含下拉列表的 Web 表单
    包含下拉列表的 Web 表单

    单击 Create Widget 将促使 Groovlet 处理这一请求。如果所有内容正确的话(即名字和定义不为空,并且数据库中不存在该实例),Groovlet 将创建一个新的小部件实例并类似图 3 所示的状态页面:


    图 3. 返回的 Web 页面显示状态
    返回的 Web 页面显示状态

    结合使用 Selenium 和 TestNG 验证简单的 Create Widget 用例是一种可管理的应用:

    1. 配置并启动 Selenium 服务器的实例。
    2. 与 Create Widget Web 表单交互并提交它。
    3. 检验结果页面是否包含具有小部件名称的成功信息。
    4. 停止 Selenium 服务器实例。

    请注意:用例中的每一步都是通过 Selenium 完成的 —— 所以说,TestNG 仅仅帮助进行查找。现在,我们来实践一下。

    Create Widget 测试用例

    我希望对 Selenium 服务器进行灵活的配置,所以我将编写一个参数化 fixture(TestNG-Selenium 样式),一般可以使用它来为不同浏览器、不同位置甚至混合的 Web 应用程序地址(类似 localhost 和产品)创建 Selenium 服务器。清单 4 定义了我所配置的灵活的 Selenium 服务器 fixture:


    清单 4. 灵活的 Selenium fixture

                    
     @Parameters({"selen-svr-addr","brwsr-path","aut-addr"})
     @BeforeClass
     private void init(String selenSrvrAddr, String bpath, 
       String appPath) throws Exception {
      driver = new DefaultSelenium(selenSrvrAddr, 
        SeleniumServer.getDefaultPort(), bpath, appPath);
      driver.start();
     }
     //....
     @AfterClass
     private void stop() throws Exception {
      driver.stop();
     }
    

    必须将参数名与 TestNG 的 testng.xml 文件中的值链接起来;因此,我定义了如清单 5 所示的三个参数。(默认情况下为 Firefox 定义了 brwsr-path 参数,但是我可以同样轻松地定义一组新的使用 Internet Explorer 的测试。)


    清单 5. TestNG testng.xml 文件中的参数值

                    
     <parameter name="selen-svr-addr" value="localhost"/> 
     <parameter name="aut-addr" value="http://localhost:8080/gt15/"/> 
     <parameter name="brwsr-path" value="*firefox"/>
    

    接下来,我将定义清单 6 所示的测试用例,它也包含一个参数,用于进行测试的应用程序的基 URL。该测试将促使浏览器在 Web 应用程序内打开特定页面,并操作 图 1 所示的表单。


    清单 6. 一个良好的测试用例

                    
     @Parameters({"aut-addr"})
     @Test
     public void verifyCreate(String appPath) throws Exception {
      driver.open(appPath + "/CreateWidget.html");
      driver.type("widget", "book-01");
      driver.select("type", "book");
      driver.type("definition", "book widget type book");
      driver.click("submit");
    
      driver.waitForPageToLoad("10000");  
      assertEquals(driver.getText("success"), 
        "The widget book-01 was successfully created.", 
        "test didn't return expected message");
     }
    

    通过调用 driver.click("submit") 提交表单后,Selenium 将等待响应的加载,然后我将断言成功的创建信息。(注意:响应 Web 页面具有一个 ID 为 success 的元素。)

    结果产生一个灵活的文本类,它将检验两种场景:一种是良好的场景,而另一种是没有提供定义的边界用例,如清单 7 所示:


    清单 7. 使用 TestNG 进行全部的处理

                    
    public class CreateWidgetUATest {
     private Selenium driver;
    
     @Parameters({"selen-svr-addr","brwsr-path","aut-addr"})
     @BeforeClass
     private void init(String selenSrvrAddr, String bpath, 
       String appPath) throws Exception {
      driver = new DefaultSelenium(selenSrvrAddr, 
        SeleniumServer.getDefaultPort(), bpath, appPath);
      driver.start();
     }
    
     @Parameters({"aut-addr"})
     @Test
     public void verifyCreate(String appPath) throws Exception {
      driver.open(appPath + "/CreateWidget.html");
      driver.type("widget", "book-01");
      driver.select("type", "book");
      driver.type("definition", "book widget type book");
      driver.click("submit");
    
      driver.waitForPageToLoad("10000");  
      assertEquals(driver.getText("success"), 
        "The widget book-01 was successfully created.", 
        "test didn't return expected message");
     }
    
     @Parameters({"aut-addr"})
     @Test
     public void verifyCreationError(String appPath) throws Exception {
      driver.open(appPath + "/CreateWidget.html");
      driver.type("widget", "book-02");
      driver.select("type", "book");
      //definition explicitly set to blank
      driver.type("definition", "");
      driver.click("submit");
    
      driver.waitForPageToLoad("10000");  
      assertEquals(driver.getText("failure"), 
        "There was an error in creating the widget.", 
        "test didn't return expected message");
     }
    
     @AfterClass
     private void stop() throws Exception {
      driver.stop();
     }
    }
    

    目前为止,我已经定义了两种足够灵活的 Selenium 测试,可以对多个浏览器进行测试,并且还可以对多个位置进行测试,这对初学者非常有利。尽管如此,我还想获得更高级点的应用,我开始考虑测试中的逻辑是否可重复使用。比如,如果对一行运行两次 CreateWidgetUATest 测试类会怎样?如何确保我的 Web 应用程序运行的是本地机器(或其他机器)上最新版本的代码?

    可重复的验收测试

    在执行 Selenium 测试时,必须运行 Selenium 服务器以及要检验的 Web 应用程序。言外之意,还必须运行应用程序中所有相关的架构依赖关系 —— 对于大多数 Java™ Web 应用程序来说,即 Servlet 容器和相关的数据库。

    正如在我的另一篇文章 repeatable system tests 中解释的一样,DbUnit 和 Cargo 是两种我最喜欢的技术,可以在依赖数据库的 Web 应用程序中实现逻辑重复。DbUnit 管理数据库中的数据,而 Cargo 使容器管理以通用的方式实现自动化。下面几节将向您展示如何结合使用 Selenium 和 TestNG 从而确保实现逻辑重复的验收测试。

    DbUnit 再次登场

    您可能回想起,DbUnit 通过有效地管理测试场景中的数据简化了使用数据库的工作。通过使用 DbUnit,可以在测试前将一组已知的数据加载到数据库中,这意味着您可以依赖这些在测试过程中呈现的数据。此外,在完成测试后,还可以从数据库中删除测试结果产生的数据。DbUnit 作为一种方便的 fixture(JUnit 或 TestNG)简化了所有这些工作,它能够读取包含测试数据的种子文件,逻辑插入、删除数据,或更新数据到相应的数据库表中。

    由于这里使用了 TestNG 驱动 Selenium,我将创建一个 DbUnit fixture,它将在测试 级别上运行。TestNG 支持在五种粒度级别上运行 fixture。最低的两种级别,方法和类是最常见的 —— 用于每个测试方法的 fixture 或者用于整个类的 fixture。之后,TestNG 为一个测试集合(定义在 TestNG 配置文件中并由 test 元素指定)定义了一个 fixture,为一 测试(定义在 TestNG 的 Test 注释中)定义了一个 fixture。

    测试细节

    创建一个 DbUnit fixture 并在测试级别上运行,这意味着运行任何测试之前,测试类的集合将共享相同的逻辑,为数据库正确地播种。在本文的示例中,在运行每个逻辑测试集合前,我希望数据库具有一组干净的数据。使用 DbUnit 的 CLEAN_INSERT 命令确保在先前运行的测试中创建的行被删除掉 —— 因此,我可以重新运行测试,该测试可以不断创建数据并且不用考虑数据库约束。

    此外,我希望 fixture 能够依赖参数化数据,这使我在运行某个测试之前,能够灵活地切换种子文件,甚至是特定数据库的位置。将 TestNG 与参数相关联起来再简单不过了:我所需做的仅仅是使用 Parameters 注释装饰 fixtrue,声明方法签名中相应的参数,并提供 TestNG 配置文件中的值。

    清单 8 定义了一个简单的 DbUnit fixture,它使用所需的种子文件播种数据库。请注意:该 fixture 被定义为包含五个 参数。(这可能非常多,但是在 fixture 中包含参数不是很好吗?)


    清单 8. 测试集合的 DbUnit fixture

                    
    public class DatabaseFixture {
    
     @Parameters({"seed-path","db-driver","db-url","db-user","db-psswrd"})
     @BeforeTest
     public void seedDatabase(String seedpath, String driver, 
       String url, String user, String pssword) throws Exception {
    
      IDatabaseConnection conn = this.getConnection(driver, url, user, pssword);
      IDataSet data = this.getDataSet(seedpath);
    
      try {
       DatabaseOperation.CLEAN_INSERT.execute(conn, data);
      }finally {
       conn.close();
      }
     }
    
     private IDataSet getDataSet(String path) throws IOException, DataSetException {
      return new FlatXmlDataSet(new File(path));
     }
    
     private IDatabaseConnection getConnection(String driver, 
       String url, String user, String pssword ) throws ClassNotFoundException,
        SQLException {
      Class.forName(driver);
      Connection jdbcConnection = 
        DriverManager.getConnection(url, user, pssword);
      return new DatabaseConnection(jdbcConnection);
     }
    }
    

    要将实际的值与清单 8 中的参数相关联,我必须在 TestNG 的 testng.xml 文件中定义它们,如清单 9 所示:


    清单 9. TestNG 的 testng.xml 文件中定义的特定于 DbUnit 的参数

                    
     <parameter name="seed-path" value="test/conf/gt15-seed.xml"/> 
     <parameter name="db-driver" value="org.hsqldb.jdbcDriver"/>
     <parameter name="db-url" value="jdbc:hsqldb:hsql://127.0.0.1"/>
     <parameter name="db-user" value="sa"/>
     <parameter name="db-psswrd" value=""/>
    

    通用参数值

    现在我已经定义了一个灵活的 fixture,它将处理数据库状态和相应测试。现在可以准备使用 TestNG 将所有内容连接起来。通常,第一步是了解希望实现的内容。在本例中,我想完成以下任务:

    • 我希望在运行任何逻辑测试集合前,DbUnit fixture 能够完成自己任务。
    • 我希望将相同的测试集合运行两次:一次用于 Firefox,一次用于 Internet Explorer。

    TestNG 的 parameter 元素的作用域是局部的,这对我来说是件好事。这样,我可以很容易地在 TestNG 配置文件中定义通用参数值,并且当需要时在 TestNG 的 test 组元素中重写它们。

    比如,要运行两组测试,简单创建两个 test 元素。我可以通过 TestNG 的 package 元素将我的 fixture 和相关测试包括进来,package 元素能够使包结构中所有测试(或 fixture)的查找变得简单。接着,我可以在两个定义了的 test 组中将 Firefox 和 Internet Explorer 的 brwsr-path 参数关联起来。所有这些都显示在了 testng.xml 文件中,如清单 10 所示:


    清单 10. 使 DbUnit 运行的灵活的 testng.xml 文件

                    
    <suite name="User Acceptance Tests" verbose="1" >
     
     <!-- required for DbUnit fixture   -->
     <parameter name="seed-path" value="test/conf/gt15-seed.xml"/> 
     <parameter name="db-driver" value="org.hsqldb.jdbcDriver"/>
     <parameter name="db-url" value="jdbc:hsqldb:hsql://127.0.0.1"/>
     <parameter name="db-user" value="sa"/>
     <parameter name="db-psswrd" value=""/>
     
     <!-- required for Selenium fixture -->
     <parameter name="selen-svr-addr" value="localhost"/> 
     <parameter name="aut-addr" value="http://localhost:8080/gt15/"/>  
    
     <test name="GT15 CRUDs- Firefox" > 
     
      <parameter name="brwsr-path" value="*firefox"/>
    
      <packages>
       <package name="test.com.acme.gt15.Web.selenium" />
       <package name="test.com.acme.gt15.Web.selenium.fixtures" />
      </packages>
     </test>
    
     <test name="GT15 CRUDs- IE" > 
      
      <parameter name="brwsr-path" value="*iexplore"/>
    
      <packages>
       <package name="test.com.acme.gt15.Web.selenium" />
       <package name="test.com.acme.gt15.Web.selenium.fixtures" />
      </packages> 
     </test>
    </suite>
    

    我很高兴地宣布,我已经完成了创建一套可重复验收测试所需的所有事情。剩下的工具就是处理 Web 应用程序容器本身。幸运地是,我可以使用 Cargo 来完成。

     

    Cargo 执行加载

    Cargo 是一个创新的以通用方式自动化容器管理的开源项目,比如,用于将 WAR 文件部署到 JBoss 的相同 API 还可以启动和停止 Tomcat。Cargo 还可以自动下载并安装容器 —— Cargo API 的用途很广泛,从 Java 代码到 Ant 任务,甚至是 Maven。

    诸如 Cargo 这样的工具将处理编写逻辑重复测试用例所面对的一个大的挑战,它避免一种潜在的假设,即运行 的容器具有最新最好的应用程序代码。此外,还可以构造一个利用 Cargo 的能力自动完成以下任务的编译过程(例如在 Ant 内):

    1. 下载所需的容器。
    2. 安装该容器。
    3. 启动容器。
    4. 将选择的 WAR 或 EAR 文件部署到容器上。

    稍后,您还可以使 Cargo 停止所选的容器。(并且,不需要对下载和安装容器发出警告,或者,如果本地机器中已经存在了正确的版本,Cargo 将跳过步骤 1 和 2。)

    我希望使用 Cargo 来确保启动并运行最新和最好的 Web 应用程序。并且,我不需要考虑在哪里部署 WAR 文件,或者必须确保正在使用的是最新的 WAR 文件。我真正想达到的目的是使用户验收测试实现无事件 —— 我仅需要发出一个 命令,然后坐下来等待结果。甚至可以更好,在一个 CI 环境中,我不用等待;当测试完成后我将获得一个通知!

    测试容器管理

    要在 Ant 内设置 Cargo,我需要定义一个任务,它将下载特定版本的 Tomcat 并将其安装到本地机器上的临时目录。接下来,将最新版本的代码部署到 Tomcat 上,如清单 11 所示:


    清单 11. 设置 Cargo 的任务

                    
    <target name="ua-test" depends="compile-tests,war">
    
     <taskdef resource="cargo.tasks">
      <classpath>
      <pathelement location="${libdir}/${cargo-jar}" />
      <pathelement location="${libdir}/${cargo-ant-jar}" />
      </classpath>
     </taskdef>
     
     <cargo containerId="tomcat5x" action="start" wait="false" id="${tomcat-refid}">
      <zipurlinstaller installurl="${tomcat-installer-url}" />
      <configuration type="standalone" home="${tomcatdir}">
       <property name="cargo.remote.username" value="admin" />
       <property name="cargo.remote.password" value="" />
       <deployable type="war" file="${wardir}/${warfile}" />
      </configuration>
     </cargo>
    
     <antcall target="_start-selenium" />
    
     <cargo containerId="tomcat5x" action="stop" refid="${tomcat-refid}" />
    </target>
    

    清单 11 中的 target 使用 antcall 调用另一个 target。实际上,清单 11 中最后的 cargo 任务封装了 _start-selenium target,并且确保运行测试后停止 Tomcat。

    在清单 12 中定义的 _start-selenium target 中,我需要启动(并稍后停止)Selenium 服务器。在此过程中,我的测试还将连接到其 Selenium fixture 中的服务器实例。请注意:该 target 是如何引用另一个 target ——


    清单 12. 启动和停止 Selenium 服务器

                    
    <target name="_start-selenium">
     <java jar="${libdir}/${selenium-srvr-jar}" fork="true" spawn="true" />
     <antcall target="_run-ua-tests" />
     <get dest="${testreportdir}/results.txt" 
            src="${selenium-srvr-loc}/selenium-server/driver/?cmd=shutDown" />
    </target>
    

    最后,该组中最后的 target 将通过 TestNG 实际运行我的编程式 Selenium 测试。注意,我是如何通过使用清单 13 中的 _run-ua-tests target 的 xmlfileset 元素,使 TestNG 使用我的 testng.xml 文件。


    清单 13. 运行 TestNG testng.xml 文件中的测试

    <target name="_run-ua-tests">
     <taskdef classpathref="build.classpath" resource="testngtasks" />
     <testng ōutputDir="${testreportdir}" 
             classpath="${testclassesdir};${classesdir}" haltonfailure="true">
      <xmlfileset dir="./test/conf" includes="testng.xml" />
      <classpath>
       <path refid="build.classpath" />
      </classpath>
     </testng>
    </target>
    




    结束语

    正如您看到的一样,Selenium 极大地简化了用户验收测试,尤其当使用 TestNG 驱动的时候。

    虽然编程式测试并不适用于所有人(非开发人员可能更喜欢 Selenium 的 Fit 样式的表),

    它确实让您了解到了 TestNG 非凡的灵活性。编程式测试还允许您使用 DbUnit 和 Cargo

    构建自己的测试框架,从而确保测试的逻辑可重复性。

    开源 Web 测试框架的发展绝不会停止,这对于追求代码质量的完美主义者是个好消息。

    Selenium 是驱动浏览器的开源 Web 测试框架中新出现的工具之一,它能够使用户验收测试自动化 ——

    因此,它非常优秀。结合使用 Selenium 和 TestNG,正如我在本文中演示的一样,您将获得一个

    非常好的测试驱动,并从依赖性测试以及参数测试中获得巨大的优势。尝试使用 Selenium 和

    TestNG 吧,您的用户将为此感谢您。

    参考资料

    学习


    获得产品和技术

    • 下载 Selenium:直接在 IE 或 Firefox 上运行用户验收测试。

    • 下载 TestNG:一种灵活的测试框架,可用于驱动 Selenium 测试。

    • 下载 Cargo:使 Web 应用程序的可重复测试更加简单。

    • 下载 DbUnit:在运行测试时,将数据库置于已知的状态。


    讨论



    关于作者

    Andrew Glover 是 Stelligent Incorporated 的总裁,这家公司用有效的开发人员测试策略和能够让团队在早期经常地监控代码质量的持续集成技术,帮助企业解决软件质量问题。请查阅 Andy 的 blog,查看他已出版作品的列表。


     

  • 跨入外企之路——面试前的准备(转)

    2007-10-22 11:40:14

    作者:JAMES ZHANG作者为威世半导体(西安)有限公司人事总监。

        毛主席教导我们说:不打无准备之仗。古人云:知己知彼,百战不殆!凡事预则立,不预则废。对于即将离开学校步入社会的你,一场面试可能决定你的未来!对于准备跳槽的你,一场面试可能改变你的现状!因此,没有什么比做好充分的准备更重要的了。

      搜集有关公司和职位信息:

      有关该公司和行业的信息(年度报告、产品、市场占有率、直接竞争者等)。公司组织机构图、性质、规模等。公司文化和价值体系。应聘岗位的职位说明。所属部门及汇报关系。你未来的老板的国籍、背景、风格。

      了解招聘流程:

      该公司的招聘过程。一般第一步是由人事部面试。还可能有笔试。然后是由用人部门经理面试。也可能人事与部门同时面试。有的岗位则首先进行电话面试。了解面试你的面试考官的姓名和职位。尽可能了解面试考官的背景和个性。

      资料准备:

      精心准备你的中英文简历(参阅本人另一篇文章-如何使你的求职简历打动人?),把你过去的经历与应聘的职位紧密联系。检查需要带的资料:学历资格证书、推荐信、身份证等)。不要带任何暴露你现任公司机密的资料。不要使用公司抬头纸制作资料(除了推荐信)。

      着装与打扮:

      与你应聘的公司的文化和岗位相适应。有的公司严格要求工作日着正装,如一些日本公司,而许多欧美公司着装较随意。有些公司的一些岗位(例如客户服务、销售代表)要求正式着装。为安全起见,着装保守一些更好。

      再开放的公司,对于背心、短裤、乞丐服、光脚凉鞋、拖鞋式凉鞋等也是不能接受的。男孩注意自己的头发干净整齐,领口袖口整洁,指甲修理干净。女孩不要浓妆艳抹、珠光宝气。要给人整洁和健康的印象。

      出发前:弄清面试地点

      计算好需要多长时间到达。带上联系电话。

      如果以上要点检查后没有问题,你就可以信心百倍地出发,去敲击那命运之门了!

    踏入外企之路-面试中

        提前到达面试地点: 留足充分的时间提前出发,考虑到堵车、走错路等所有可能。如果万一由于特殊原因还是不能在约定的时间到达,必须在约定的时间未到时给应聘公司的人事部打电 话说明。守时被许多公司看成是重要的职业素养,所以面试迟到,即便得到面试机会,在第一印象上已经扣分。我工作过的无论是日本公司还是美资公司,人事部都 有一条不成文的规定,迟到10分钟,又没有合理理由的,拒绝参加面试。因此,提前探清路线、计算好时间是值得的。

      保持镇定和放松:到达后如果被安排在会议室或前台等待。要坐在或站在指定的地方。不要乱跑乱串,不要东张西望,不要随便翻动周围的物品,除非人事部的人告诉你可以自己动手(如公司刊物)。注意,也许这时就有人在观察你的一举一动,所以保持优雅的姿势,坐有坐相,站有站相非常重要。

      关掉手机或置静: 进入面试室之前关掉手机。经常遇到应聘者正在回答问题时,手机打进来。有的人竟然当着面试官的面接打手机,也不道歉。手机来电不仅影响你的发挥,也浪费考 官的时间。如果你来电的事情确实重要,一定要先得到考官的谅解,然后快速处理。如果你真的重视这场面试,就应该避免一切不利影响,包括暂时忘掉自己现在的 工作。

      再次检查仪容仪表:进入面试室前,最后检查头发是否整齐、服装是否妥帖、资料是否齐备,然后深呼吸几次,从容地进入会议室。

      彬彬有礼:进入面试室后,与每一位在座的问好,对方有意时也可握手,在指定的座位坐下。身体端坐,面带微笑,目光保持接触,等待提问。

      让面试官控制进度:整个面试应由面试方控制节奏。问题先由面试官提出。有的人以为先提问是积极主动的态度,但这往往令人不悦,因为他喧宾夺主,打乱了面试方的计划。

      弄清问题再回答: 要彻底听清整个问题再回答。特别是用英语面试时。如果没有听懂问题,可以让对方重复。或者你用自己的理解重复问题。回答问题的逻辑性和准确性是面试成功的 关键。没有弄清问题就信口开河,会造成逻辑紊乱、抓不住要点的印象。回答后,可反问对方,你的回答是否是对方所要问的。

      斟字酌句:用洪亮的声音,清晰地表达你的意思。保持适当的语速。注意你的语法、用词和修辞。语言表达能力是很多高级职位所看重的重要能力。优美流畅的中英文为你的成功锦上添花。

      充满热情:在面试过程中,对讨论的话题,表现出兴奋和激情。对应聘的工作充满憧憬和期待。对应聘的公司充满崇拜和羡慕。目光呆滞、无精打采的精神面貌不会带给你成功。

      经历与成就:用流畅优美的语言浓墨重彩地描述你过去的工作业绩和成就:如完成的项目、组织的活动、达成的目标、创造的价值等。学生要重点放在学业成就和社会活动上。

      职业规划:向考官显示,你制定了明确的职业生涯规划,你有远大的人生目标。

      跳槽经历:准备好解释过去的改变工作的原因。跳槽并不是坏事情,只要频率不要太高。追求职业发展是最好的理由。注意由于人际关系而导致的变换工作是很容易引起对方警觉的。

      诚实评价自我:忠诚老实地回答关于个人优势与劣势的问题。世界上没有人是十全十美的。客观地告诉对方你所偏爱的工作类型和你的性格特点,有助于面试官把你放到一个有利于你发挥个人才能的位置。夸大不实的自吹自擂如果蒙混过去,也只能得到一个自己不擅长的工作。

      强调你的潜在贡献:用令人信服的话语告诉对方你将给公司可能带来的贡献,而不是专注于你将得到多少回报。

      提出你的问题:一般公司最后在所有问题问完后,会给应聘者一个提问的机会。把你的问题集中在有关这个岗位的职责、这家公司的情况和这个行业的状况上。让人感到你对这个工作的兴趣。

      薪资福利: 不要主动讨论薪酬问题。一般面试方在基本感到你可能会被录用时,会问到你现在的工资收入和对应聘的工作的基本工资的个人期待。你可以提出自己的期待。但不 要太介意。外资企业大多有完善的工资体系,你的期待只是参考,不会影响自己最后的工资。公司会按照自己的政策和你的面试表现给出你的工资标准,可能低于你 的期待,也可能高于。谈工资一般都是含税工资,或叫税前工资。

      要避免的行为:表现得傲慢、不可一世、懒散、只看重金钱、显得不耐烦、充满偏见、易于发怒、不接受批评、缺乏忠诚度、没有长期奉献的打算、不愿从基层做起。

      有力的握手:离开时与面试官的有力的握手,并衷心感谢对方给与面试机会,表示自己期待再见。

    跨入外企之路-面试

        发个感谢信(Thank-you Note:如果你特别对某个公司的职位感兴趣,面试后的第二天,通过手机或网络发个感谢短信给面试官或人事部,感谢他们的安排,表示你的兴趣,说明你将期待他们的回复。

      收到聘用信(Offer Letter)后:一般公司只对经理以上的职位签发书面聘用信,这个Offer letter只有在对方和你签字后才能生效,但这还不是雇用合同,也不能代替雇用合同。一旦你接受录用,这个Offer 将成为你的雇用合同的一个附件。仔细阅读Offer Letter, 重 点关注:入职日期、职位头衔、报告关系、基本工资、其他福利、股票、公车及住房条件(对于异地招聘)、休假政策、探亲政策(夫妻异地)、通知期等。如果任 何条件与当初口头谈的不一样,你可以通过猎头向对方提出。任何条件都是可以谈判的。但不要过分在工资上斤斤计较。要看你的整体薪酬。在工资收入上,要跟自 己现在比,还要跟市场比,跟其他同行比。一般,跳槽后工资提升30%以上就是不错的结果。头衔也很重要,如果你谈的是经理职位,但最后却给你主管的头衔,你应提出异议。如果当初答应提供交通和公寓,但 Offer上没有,那就要求在工资中考虑。对于一般岗位,通知期(辞职时需提前通知公司的时间)为一个月,对于管理岗位,根据其重要性,可达2-6个月。

      最后决定前:在签署Offer前, 再慎重考虑如下事项。这个工作是否是符合你职业生涯规划的,是否能够发挥你的专业特长?再回顾一下这家公司的整体情况,有机会拜访一次(很多公司,对于部 门经理以上的高级职位,都会给候选人一次参观公司的机会)这家公司,再作决定。跟朋友聊聊这家公司,听听他们的意见。跟家人讨论一下,看他们是否支持你的 决定。如果所有评估的结果都是绿灯,你就可以签字了。

      体检:在对方答应接受,提出辞职前,应按对方公司要求参加体检。拿到体检合格报告后,再提出辞职。有人越过这道手续,结果体检不合格,两头的工作都丢了。

      辞职:拿到并签署了Offer,你才能提出辞职。对于非管理岗位,你可能拿不到书面聘用函,但是一定要与对方人事部确认你已被录用后,再向现在的老板辞职。辞职要注意的事项参看本人的另一篇文章:《跳槽的技巧-平稳淡出公司十要点》。

      如果现公司要求你完成手头的工作再离开:答应。通知对方公司,你加入的时间必须因此推迟。一般公司会尊重你对现雇主的忠诚。如果因为你推迟而对方取消聘用,这个公司一定不怎么样。

      准备赴任:研究你加入公司的组织机构、行业特点、产品。阅读有关资料。写下你打算要作的所有事项。与对方公司人事部保持接触。可能的话,了解你的同事和下属的情况。搞清前往新公司的路线,准备上任。
  • linux 入门必读(转) 3

    2007-10-18 11:32:18

     如果还是搞不清楚如何使用,可以到插件的开发者zoudan的主页上看:http://www.zoudan.com 或在论坛上提问。

      使用icq:

      http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&p=4980&highlight=#4980

      使用msn:
    http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&p=4579&highlight=#4579

      如何上irc聊天室:
    http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&t=4995&highlight=irc

      网络下载工具:

      网络蝗虫(这个链接下的好像不能使用?在别的地方看看吧)
    http://www.linuxfans.org/nuke/modules.php?name=Site_Downloads&op=mydown&did=51

      你非常喜欢上bbs?
    http://www.linuxfans.org/nuke/modules.php?name=Site_Downloads&op=mydown&did=284

      ftp工具:redhat8。0自带有gftp,运行gftp就会调出这个程序,感觉就像win下的cuteftp

      九、模拟器的使用:CS这个游戏太好玩了,我实在不能割舍。另外,还有一些其他的windows下的程序我无法放弃……

      winex能运行的一些游戏(包括模拟器)!
    http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&t=4040&highlight=wine

      如何使用WINE运行<<半条命>>(英译版)
    http://www.linuxfans.org/nuke/modules.php?name=News&file=article&sid=64
    wine的配置使用
    http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&t=1642

      十、系统优化:我觉得linux似乎不够快,不知有没有什么办法优化一下?

      优化你的linux
    http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&t=2395&start=0&postdays=0&postorder=asc&highlight=
     
      无法打开硬盘的DMA?
    http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&t=5602&highlight=oss

      十一、编译内核:嗯。我好像对linux有一些了解了,我想定制一个合乎我需要的系统……
    编译你自己的内核:
    http://www.linuxfans.org/nuke/modules.php?name=News&file=article&op=view&sid=375
    Linux内核重编译常见故障及其解决方法
    http://www.linuxfans.org/nuke/modules.php?name=News&file=article&sid=587
    升级内核的一些重要体会
    http://www.linuxfans.org/nuke/modules.php?name=News&file=article&sid=284

      十二、软件下载:在哪儿可以找到我所需要的linux下的软件?

      LinuxApps 如果在这里找不到,那么任何地方你都找不到
    http://www.linuxapps.com/
    rpmfind:如果安装软件缺少一些库文件,可以到这里找找
    http://rpmfind.net/
    freshrpms:里面都是一些很有用的rpm包,不过好像没有什么搜索功能。
    http://freshrpms.net/
    斑竹gsb提供的一个linux有关的ftp服务器
    211.161.20.159:2100
    user:linux pass:linux 这个用户可以上传下载。

      十三、其他问题:经过一系列的操作,我的linux终于可以自由的飞翔了。但接下来我该干些什么呢?

      装完linux后应该做的事(A)!
    http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&t=5225

      Linux爱好者入门教程(斑竹atfa辛苦撰写的)
    http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&t=2089

      新手推荐参看文章:公社“系统安装版精华区”的扫盲行动系列

      linux学习方向:

      迷惘中……

      后记:文中相应的链接都是公社中的帖子或文章,整理出来很花了一些时间。由于我的水平很有限,——现在还是菜鸟一个——很多东西都考虑不周 全,很多方面都没有顾及到,毕竟我才开始使用linux。我只是将新手刚开始使用linux需要解决的一些问题总结了出来,让新手的linux可以正常运 转起来,其他方面的更多发展,还是让那些公社的高手指点了。此外,文中的大部分东西,都在我实践时成功了,应该是可以把问题解决的。而只有把这些问题解决 了,才好进一步的学习linux。文中有不全之处,还望各位朋友补充、修改。另外,我希望各位linuxer在提问题之前,先使用论坛的搜索功能搜一下, 查看一下精华区的文章,不要将同一个问题多次提出,这种做比较好一些。记得有一篇《提问的智慧》就不错,没看过的就看看吧。" (中国程序员)


    ~~the end
  • linux 入门必读(转) 2

    2007-10-18 11:30:52

         一、如何获得linux:我没有linux啊。

      1。到软件店购买。

      2。找自己认识的人借(不用考虑这的版权问题)

      3。在网上下载(如果你网速足够快的话)

      这些东东很久就在论坛上贴出来了,不知还有没有效

      mandrake9。0:

      http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&t=2131&highlight=mandrake9.0%CF%C2%D4%D8
    redhat8。0下载地址集:

      http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&t=2269

      二、linux的安装:这个软件怎么安装啊?是不是在windows下直接双击一个setup.exe的文件就可以了?咦,我怎么找不到exe文件啊?

      Redhat8.0:

      图形方式:http://www.sejishikong.net/tools/system/rh8_graphic_install.zip
    文本(硬盘)方式:http://www.sejishikong.net/tools/system/rh8_text_install.zip
    mandrake9。0:应该和redhat8。0差不多吧?

      三、硬件问题:我已经将linux正确装上了,而且可以正常的启动,但是好像有些硬件不能正常工作?

      1、我的usb接口光电鼠怎么用不了:(未找到解决的相应文章)

      2、显卡支持问题:请登陆相应的linux厂商的网址,查看你的显卡是否在支持之列。
    mandrake:http://www.linux-mandrake.com/zh-CN/hardware.php3
    redhat:http://hardware.redhat.com/

      3、我想聆听自由的声音:

      对于via芯片:如果用的是:redhat7.3/7.2/7.1/6.2lp/6.2/6.1/6.0,mandrake8.2/8.1/8.0,suSe8.0/7.3,redflag3.2/3.0/2.0/1.0

      可以下载:http://downloads.viaarena.com/drivers/audio/Audio_Linux_V1.20_Package.zip

      在里面找到适合你的版本,解压缩后,直接./vinstall就可以了。

      如果你的linux版本不在上列,或主板芯片组不是via,也不用着急,因为你还有以下两种解决方法。

      alsa:这种东西最普及,几乎支持所有的声卡芯片。

      alsa声卡驱动的安装(解决RH8中VIA8233声卡问题)
    http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&t=4227

      oss:这种东西比较简单,但要花美元注册,不然用一段时间后要再次安装。
    (未找到相应文章,不过安装比较简单,可参看下面的rh7。3声卡安装说明)

      rh7.3声卡安装说明:
    http://www.linuxfans.org/nuke/modules.php?name=News&file=article&sid=663
         4、我想在网络上自由的翱翔:

      网卡:

      可以参看一下这几篇文章

      Linux硬件通—网卡:http://www.linuxfans.org/nuke/modules.php?
    name=News&file=article&op=view&sid=49

      Linux下新手装网卡指南:http://www.linuxfans.org/nuke/modules.php?name=News&file=article&op=view&sid=168

      Linux系统启动时自动加载网卡:http://www.linuxfans.org/nuke/modules.php?name=News&file=article&op=view&sid=452

      如果以上的几种方法还是无法解决问题,你可以象我一样,用一种笨方法(我用的是redhat8.0):在x-windows中,选择网络设备配置,在 网卡类型中逐个选择,直到不出现错误提示为止,然后再配置ip之类的东西,如果又出错,再重新选择网卡类型,直到成功为止。——我就是这么搞定的。方法是 笨了点,但是比较有效。
        modern:

      这几篇文章看一下吧,不知有没有用。我没有用过modern,所以不知下面的东西能不能解决显示中会遇到的问题。

      让LINUX成功支持Cirrus Logic软猫
    http://www.linuxfans.org/nuke/modules.php?name=News&file=article&op=view&sid=39

      让“猫”跑在Linux上(llc贴的,应该不错吧。)
    http://www.linuxfans.org/nuke/modules.php?name=News&file=article&op=view&sid=443
    http://www.linuxfans.org/nuke/modules.php?name=News&file=article&op=view&sid=444

      5、鼠标的滚轮无法使用?
    http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&t=3098
         四、linux界面汉化:linux的界面怎么这么丑啊?字体怎么这么难看?完全不如windows嘛。

      linux美化的精华版
    http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewforum&f=modules.php?name=Forums&file=viewforum&f=10&jh=-1

      五、办公问题解决:我已经将linux汉化了,但是在Openoffice方面有一些问题?另外,如何查看pdf文件?

      openoffice1.01中文版界面乱码的解决方法:
    http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&t=5103

      如何让rh8.0正确显示pdf中的中文
    http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&t=4449

      六、多媒体应用:我习惯一边办公一边听音乐。而且,我还有rm,DVD,VCD,asf文件需要播放……

      1、redhat8。0中播放mp3的问题:由于版权问题,在Redhat8。0中不再支持mp3的播放,请安装一个mp3插件(8。0以前的版本不需要)

      下载插件:http://ftp.freshrpms.net/pub/freshrpms/psyche/xmms/xmms-mp3-1.2.7-13.p.i386.rpm

      2、xmms字体问题
    http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&t=1648

      3、mplayer指南:
    http://www.linuxfans.org/nuke/modules.php?name=News&file=article&sid=499

      4、mplayer的安装:

      《mplayer完美安装手册》
    http://www.linuxfans.org/nuke/modules.php?name=News&file=article&sid=684

      5、mplayer问题大集中:
    http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&t=3779&highlight=mplayer

      七、输入法问题:我想输入中文,但是rh8。0自带的输入法我不喜欢,用没有什么替代的方案?

      下载公社的xsim和xsimdata两个包,直接安装就可以使用xsim输入法了。

      xsim问题集:
    http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&t=5549

      应该如何才能让输入法(XSIM )自启动?
    http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&t=4241

      八、网络工具解决方案:linux有没有什么好用的浏览器?linux下可以使用qq吗?可以上聊天室吗……

      浏览器:可以使用自带的mozilla。如不习惯其英文界面,可以下载公社的mozilla1。2中文版,上面有详细的安装说明。

      觉得速度太慢?使用phoneix这个mozilla简化版。

      下载:http://www.linuxfans.org/nuke/modules.php?name=Site_Downloads&op=mydown&did=237

      使用qq:

      下载公社的gaim0.58版的rpm包,使用rpm -Uvh gaim-0.58-*.rpm --nodeps --force安装
    下载公社的libqq插件,拷到相应的位置即可。(该软件有详细的使用说明,我也记不清具体是哪儿了)

    ~~continue
  • linux 入门必读(转) 1

    2007-10-18 11:27:16

    序言:给Linux新手

      你从来只用过Windows,从来没接触过UNIX,只知道把一个文件拽来拽去,只知道硬盘就是C: D: E:却从来没有研究过分区表,也许会用VC编个程序,很习惯它的集成环境....

      有一天,不管什么原因了,也许是看报纸上那些把内存和硬盘都分不清楚的记者的吹嘘,或者是老板要求你用它作个项目,或者是同学们都有了你没有觉得很 土,或者你听说找工作有这个的经验就有更大希望....不管怎样,你想在自己的机器上安装一个Linux。OK,这个文章就是给你写的,因为从现在开始, 你会有成堆的问题你会觉得从前在windows那里得来的有关计算机的经验好像完全用不上。你会觉得“Linux怎么这样麻烦”。你会有种从来没有开过汽 车但是得把汽车拆开修理一样觉得无处下手。OK,这个文章就是为你写的。
       为什么要学Linux。其实你不必学习Linux,如果你就是想使用计算机让它使你的工作,比如打字,排版,统计数据等更有效率,Linux不行。 Windows,或者我推荐windows 2000是你最好的选择,它对中文的支持很好,非常稳定,上面有无数应用程序,而且如果你自己承担风险,还可以使用盗版,免费。Linux将会给你造成很 多麻烦,安装时会造成系统数据丢失,无法驱动网卡/声卡/显示卡/显示器,无法配置中文,图形界面速度慢,等等。
        从前在windows上很容易做到的比如修改显示频率或者安装新的网卡驱动在Linux下都变得好像要你自己重新上一次大一计算机原理课那么讨厌。呵呵, 那Linux有什么好处呢?你会问。其实Linux没什么好处,从使用角度,它唯一的好处是它是我们自己的,而windows再好,是Microsoft 的。“又能怎么样?”你也许又问。区别是,Linux可以让你来研究它,通过使用Linux你可以获得更深一步对计算机的了解 -- 而不只是一个全自动的盒子。
        计算机是一个很神奇的东西,你也许对那些写出windows的程序员很崇拜(我是的),或者对那些能发明更好的算法更安全的操作系统的hacker(对不 起,远程攻击系统的不是hacker)很崇拜,那么你应当知道,坐在一个windows的机器前面整天就会用鼠标拖拽也许能给你一个很好的打字员的薪水, 但是永远无法让你进入真正计算机的世界 -- 成为一个自由思想的Hacker,或者说,你只能永远是个windows的用户 -- 也没什么不好,很多领导还不会计算机呢 -- 而不可能有机会自己写一个windows。
        一个不太妙的结果是,当世界上充满了windows的奴隶时,我们就得花更大的价钱从Microsoft那里获得这样的技术,某些社会里,我们管这个叫做剥削。

      讲这么多,无非是说,萝卜不能两头切,至少现在是这样。要想什么别人都给你做好,系统安装一路回车,硬件配置点两下鼠标,对不起,请用windows 2000。如果你准备好了这一切,那么接着看吧。

    ~~~continue
  • 有时候,优秀的开发人员是被优秀的测试人员调教出来的(zhuan)

    2007-09-17 15:01:18

      7月,北京的天气非常的闷热。就在这个闷热的天气,公司走了两个优秀的开发人员,高兴的是,公司把我现在所跟的这个测试项目的开发人员给留住了。经过这么长时间的测试工作,让我体会到:有时候,优秀的开发人员是被优秀的测试人员调教出来的。

            记得刚到我现在的这个公司,试用期过后,我就开始测试A软件,这个软件的开发人员编写程序很细心,也很有责任感,心态态度也很好。因为,我在测试他的程序的时候,他设计的界面都很好,考虑到了用户使用起来怎么样会方便,当我发现他的程序的问题的时候,我告诉他,他第一反应是看我怎么操作出现这样的问题的,然后他回去分析程序,用程序进行跟踪,我也帮他分析,我俩配合沟通都非常的好。每次我发现的问题,他认同的会很快的改过来,他不认同的问题会向我讲解他的理由,理由非常的充分,让我很服他不修正问题的原因。我们的关系处的非常好,不像其它同行所说的测试人员是开发人员的敌人。这样一直配合到我们把A软件正式发布了。

            在这期间他还帮我写些小工具,方便我测试的时候好建造数据。一年半过去了,前不久,他在做其它用户的个性化程序,他都习惯性的先给我看看,看我能否给他找出问题,让我很高兴的发现,他的程序我无法在发现问题了,我只能提一些他有时忘记的用户操作的友好性问题。嘿嘿,他现在写程序的时候已经习惯注意到我测试时经常会发现他那些问题,他经常容易忽略那些问题。因此当他提交给我测试的时候,同样是在一段时间内,同样是个小功能的程序,但是我想尽我浑身招数我都找不到程序的一个bug了,当时,心里既是开心也是心酸,原因是:我不能在测试他的程序了,因为他对我太熟悉了,已经把我测试他程序中发现的问题在他写程序的时候就解决了。他已经在我这里顺利毕业了。以后有机会做白盒测试,兴许可以发现问题。^_^ 写到这里我还在回味着我曾经发现他的那些bug我们一起分析解决的场景。

            然而,测试职业的工作不可能总是碰上这么好沟通和上进的开发人员,在工作的过程中,还是会碰上不是这一类的开发人员,那是2004年的7月底,我出差去现场测试B软件了,当时见到项目组新成员,彼此都不了解,第一次见面时,其中一个开发人员见我个子很矮,比较显小,就问我:你是从北京来的?,我说:是的。接着问:你来公司多长时间了?我说:快一年了。在接着问:你来这里是测试B软件的那个功能模块啊?我说:测试B软件的所有功能。他无语。当时给我感觉很是不好。在后来的工作中,我发现他工作很不负责任,自己写的程序不自测,问题很多;写程序不按照用户的需求写、不考虑用户使用怎么方便。所以那段时间,我让他改bug简直是要和他吵架,我可不喜欢和人吵架了,因为我从来没有赢过。嘿嘿,现在想想,当时是平生第一次碰上这样的人,这样的事情。没有经验,没有很好的做好调教这种类型的开发人员的工作,主要还是没有找到很好的方法。后来这个开发人员由于工作不负责任、不好好的干活,公司就让他离开了。当时我心里在偷偷的乐啊,以后不用测试他的程序了。那时候,测试他程序的日子里有时候好怀念测试A软件的日子。

            现在测试的这个C软件有两个开发人员,嘿嘿,C1开发人员非常的优秀,沟通非常的好,和A软件的那个开发人员他俩不分上下。只不过他们的性格还是有些不太一样。然而C2开发人员心态就不太好、也没有很好的责任心。当我发现他负责领域的程序出现问题的时候,我告诉他,他第一反应就是没有问题啊,然后我复现给他,然后他分析是不是他的,而不是去找程序是怎么出错的,甚至让我在写bug的时候帮他定位问题出现在那里。在测试人员紧缺和时间有限的情况下,在我看不到原代码的情况下,我怎么去定位问题出现在那个地方。我们之间沟通的时间都花费在了谈论这个bug是谁的问题,这个bug要不要改,就这样花费在了这些没有价值的地方。还好,有了上一次的教训,这次面对C2的开发人员,我心态好好多,已经能平静和正常的对待这样的现象。

            现在经过请教有经验的人,思考采用的方法是:

            1、把这种情况反馈给项目经理,尤其在出现争论是否是bug的时候,如果出现分歧可以让项目经理来做判断,或者找他们部长之间进行讨论,不要和他直接产生冲突,因为我们是直接面对的,冲突对日常工作不好。

            2、关于他的态度我可以和他说,我们的目的是修改程序,并不是确定谁有责任的事情,告诉他,是不是他的责任,我并不关心,我只关心程序是否好用。让他感觉我们之间并没有什么利益性质的冲突。

            如果有那个同行看了这篇文章后有更好的方法,可以给我回信咯。嘿嘿,小女子在这里先谢谢了。

     

            休息一下,现在来谈谈最后关于上面这些事情我发出的感慨吧:

            优秀的开发人员,当他在发现问题的时候,他会和测试人员一起探讨问题是怎么发生的,甚至测试人员也会问开发人员为什么会出现,这样可以积累双方的经验。下次当他们在进行新产品的研发和测试的时候,开发人员就会知道测试人员会发现怎样的bug,他提交程序前就会给提前改了。那样测试人员可以用更多的时间去考虑那些没有被发现的bug。这样给公司节约不少成本和风险,对开发和测试本身来说都留下了更多的时间去探索更深层的东西。

            碰到不开窍的开发人员,测试就要花费很多成本在沟通上和重复验证老bug是否解决上。测试的价值就不能更进一步发挥,时间长了,测试会处于一种疲惫状态,发现的效率会降低,这样对开发和测试都不好。解决方法:只能从人力资源下手了,招人的时候要严格的考核这个人是否真正的符合这个岗位,不然的话,给公司和个人的成本损失太严重了。然而在实际工作中,对于一个开发人员的责任心往往很难一下子就了解,只有在项目中工作中逐渐的发现。

            最后我告诉自己:有度量去容忍那些不能改变的事,有勇气去改变那些可能改变的事,用智慧去区别上述两类事情。
  • TD的学习与总结(转)

    2007-09-11 12:19:11

    TD的学习与总结

    TD(TestDirector)是一个功能强大的测试管理系统,此系统涵盖了整个测试流程。相对一些其它的一些缺陷管理工具而言,TD容易操作、易学易上手。
        由于最早学习的就是TD,到现在已经有一段时间了,前两篇文章(自动化、QTP)居然把这个给淡忘了,惭愧万分    。
    下面开始介绍一下TD吧:
        安装与我就不细说了,上网下载安装手册“下一步”就OK了。如果可以的话,安装程序里也有英文的帮助说明。配置此篇暂略过……  
    TD主要分为四个功能版块:
        1、需求 Requirements
        2、测试计划 Test Plan
        3、测试实验室 Test Lab
        4、缺陷 Defects
        TD上需求是定义测试内容与详细的需求,理论上是由测试组完成的。但综合公司的具体环境,有些时候可能需要开发来完成。
        测试计划可以由需求直接转化(tools –> Convert to tests),也可根据需求文档自定义测试计划。
        测试实验室里,你可以创建执行流程。这里记录了所有你执行过的测试与结果。
        缺陷管理栏,记录了测试过程中发现的所有问题,与开发的交互多在于此。
        其实TD的操作并不难,没有代码,不会有太多文字,也全部都是很常用的控件组合。只要你熟悉这个测试流程,使用TD没有问题!  
        整体流程可概括为:创建项目,明确需求;根据需求生成测试计划;按照计划设计并执行测试;发现问题记录问题。
    但实际应用中可能会遇到一系统的阻力了。
        例如你公司开发整个流程是否正规,是否有文档可依。你是否有权力或有能力参与需求的设计与修改。之所以我所谓的“需求有些情况由开发定义”。TD的功能就在那里,该怎么做合适,我想没有定论,需要根据企业实际情况来定了。  
        对于测试而言,我觉得能设计出一个合理有效的测试用例是最很需要的。这个需要你动脑筋,需要对你产品的功能及业务非常熟悉,否则写用例也是纸上谈兵。用例的设计格式,可以参考TD安装生成的默认测试演示库,那里就是设计整个“订飞机票”网站的测试流程,很有学习价值。  
        在测试实验室里,你可以像开发设计业务流程一样,设计出一个测试步骤一步步的执行(Execution Flow)。在执行网格里你可以看到测试的历史记录与结果,我们需要在这里查看测试的进度和BUG的分部。
        缺陷管理里,就是测试和开交流的天堂了。我个人觉得很好用!你可以通过对列的筛选,很快到找到你要需要的信息并进行分析。在测试执行时可以自动添加缺陷,里面还自动记录一些测试信息。在以后的回归测试中,R&D Comments里记录了开发和测试的交互过程,也可以查看历史记录(history)。分析结果并输出……
        有一个很隐蔽的功能,在右上角的 tools -> Document Generator 。你可以选择TD里任何你想要的信息,然后设置格式输出到WORD,下班后拿回宿舍分析。  
        菜单里的Analysis也是比较常用的工具,可以帮助你分析结果并输出报告。
          在Add-Ins Page里有很多插件,可以根据需要下载安装。有office插件、TD浏览器等等……
        不同版本的TD,功能核心都是一样的,只是外观有些变化,增加了一些小功能。至于现在出现的QC我也有幸尝试过,界面色调完全改了,多了文字处理功能、强化了图像分析功能。这些我想用过TD的朋友们肯定很容易上手的啦。
        讲到最后,连最重要的用例设计都没详细讲到。因为每家公司的产品和面对客户都不尽相同,其实没有一个固定的说法。我只浅谈一下我的感想吧:  
        1、设计用例之前,你必要非常熟悉产品。用产品的每个功能模块与关联要很清楚。
        2、更多的去了解客户的需要,有机会多和客服勾通。如果能和客户面对面最好了,客户对产品的要求往往和开发者会有一定的差距。了解业务流你会设计更实际的用例,发现更有意义的BUG。
        3、多和组内同事讨论,“三人行必有我师”。即使你再强,你也会有想不到的地方,一个人的力量是有限的。
        4、用例的描述,要简要、清晰。因为你设计的用例可能被别人执行、新员工的参考和学习。
        5、每个步骤,尽可能多的想到他的关联,但不要冗余(容易理解不容易做)。
        6、一个完整的用例应涉及所有的功能与业务需求(需要很周全的考虑)。
    暂时想到的就这么多吧,欢迎广大的测试朋友们前来补充。
        所以,要设计出一个精炼而有效的测试用例,是不容易的。也是我们每个测试人员力求的!  
    TD对于管理而言,相对于对工作进行了量化的标准。在TD上,你可以看到某个人什么时候在做什么事情、当前测试进度到哪了、某个版本缺陷的分布等等等等。对公司而言,产品库的建立是公司的一个资本。IT的工作量的一直是很难衡量的一个问题,TD在此对企业的管理者也提供了一些帮助。
        由于某些需要,可能我们需要尝试一些其它的管理工具。我个人也尝试过Rational、开源、其它的。Rational的那一套,我在自动化里有谈到。内容太多了,关于他的CQ,仅仅是缺陷管理,没有TD强大。但Rational是一套解决方案,CQ只是其中一个模块,拿起来和TD比有些不合适。Rational的资料在网上可利用的就更少了,我一直没有研究出什么成绩来,在此就不多说了  。网上还有很多缺陷管理工具,开源的bugzilla就有很多人推荐。但安装都很麻烦,不易维护,功能不也多,我也没有多研究了。还有试过TestTrack..... 这些功能都很少,仅相当于TD中的Defects。还是推荐用TD吧,其它小工具也有他存在的理由,适合一定的需求环境,需要大家可以搜一下。  
        这些可都是白手起家,“搜”出来的喔
  • Windows常见性能计数器

    2007-09-10 11:01:40

    Windows常见性能计数器

    监测对象
    System
    计数器
    •  %Total Processor Time
      • 系统中所有处理器都处于繁忙状态的时间百分比,对于多处理器系统来说,该值可以反映所有处理器的平均繁忙状态,该值为100%,如果有一半的处理器为繁忙状态,该值为50%
    • File Data Operations/sec
      • 计算机对文件系统进行读取和写入操作的频率,但是不包括文件控制操作
    • Process Queue Length
      • 线程在等待分配CPU资源所排队列的长度,此长度不包括正在占有CPU资源的线程。如果该队列的长度大于处理器个数+1,就表示处理器有可能处于阻塞状态(参考值:<=处理器个数+1)

    监测对象
    Processor
    计数器
    • %Processor Time
      • CPU利用率,该计数器最为常用,可以查看处理器是否处于饱和状态,如果该值持续超过 95%,就表示当前系统的瓶颈为CPU,可以考虑增加一个处理器或更换一个性能更好的处理器。(参考值:<80%)
    • %Priviliaged Time
      • CPU在特权模式下处理线程所花的时间百分比。一般的系统服务,进城管理,内存管理等一些由操作系统自行启动的进程属于这类
    • %User Time
      • 与%Privileged Time计数器正好相反,指的是在用户状态模式下(即非特权模式)的操作所花的时间百分比。
    • %DPC Time
      • 处理器在网络处理上消耗的时间,该值越低越好。

    监测对象
    Memory
    计数器
    • Page Faults/sec
      • 当处理器在内存中读取某一页出现错误时,就会产生缺页中断,也就是 page Fault。如果这个页位于内存的其他位置,这种错误称为软错误,用Transition Fault/sec 来衡量;如果这个页位于硬盘上,必须从硬盘重新读取,这个错误成为硬错误。硬错误会使系统的运行效率很快将下来。Page Faults/sec这个计数器就表示每秒钟处理的错误页数,包括硬错误和软错误。
    • Page Input/sec
      • 表示为了解决硬错误而写入硬盘的页数(参考值:>=Page Reads/sec)
    • Page Reads/sec
      • 表示为了解决硬错误而从硬盘上读取的页数。
    • Page/sec
      • 表示为了解决硬错误而从硬盘上读取或写入硬盘的页数(参考值:00~20)
    • Available Mbytes
      • 剩余的可用物理内存,单位是兆字节(参考值:>=10%)
    • Cathe Bytes
      • 文件系统的缓存(默认为50%的可用物理内存)

    监测对象
    Process
    计数器
    • private Bytes
      • 进程无法与其他进程共享的字节数量。该计数器的值较大时,有可能是内存泄露的信号
    • Work set
      • 最近处理线程使用的内存页

    监测对象
    PhysicalDisk
    计数器
    • %Disk Time
      • 表示磁盘驱动器为读取或写入请求提供服务所用的时间百分比,如果只有%Disk Time比较大,硬盘有可能是瓶颈
    • Average Disk Queue Length
      • 表示磁盘读取和写入请求提供服务所用的时间百分比,可以通过增加磁盘构造磁盘阵列来提高性能(<=磁盘数的2倍)
    • Average Disk Read Queue Length
      • 表示磁盘读取请求的平均数
    • Average Disk write Queue Length
      • 表示磁盘写入请求的平均数
    • Average Disk sec/Read
      • 磁盘中读取数据的平均时间,单位是s
    • Average Disk sec/Transer
      • 磁盘中写入数据的平均时间,单位是s

    监测对象
    Network Interface
    计数器
    • Byte Total/sec
      • 表示网络中接受和发送字节的速度,可以用该计数器来判断网络是否存在瓶颈(参考值:该计数器和网络带宽相除,<50%)
  • 软件测试工程师的工作总结(转)

    2007-09-05 12:15:22


     软件测试工程师的工作总结(转)

     
    我最初参加测试工作的时候,不知道什么是软件测试,集成测试和系统测试的概念经常混淆, CMM 是什么就更加不知道了。那时候最简单的开关机也是通过直接拔插电源完成,安装系统对我来说简直是有史以来人类的最高技能,对于那些拿着螺丝刀安装机器的人就认为是宇内超级高手,身具杀人于无形之绝世秘技。拿破仑说不想当将军的士兵不是好士兵,我最初的梦想就是想成为软件测试的高手,傲视天下。所以不断偷师,总结经验,自认为掌握了成为高手的几个秘技,这几年混迹 “ 江湖 ” 还算无往而不利。不敢独享,望与吾辈测试人员切磋,早日总结成功密技之大成,助新进人员早日入门,也算不愧对东北活雷锋的称号。

    第一招 学会利用网络

       刚参加工作面对浩瀚的网络世界,当时如刘姥姥进大观园,什么都新奇,什么都想要,从网上下载很多源程序的代码,软件技术文档之类,恨不得把所有的好东西收集到手中,其实有些在他人看起来就是垃圾一堆。当时觉得有了这些 “ 武林秘籍 ” ,成为高手指日可待。最初参加工作由于自己工作努力有幸转为开发,加入项目组后我的习惯还是没有改,反而变本加厉,手中的资源更加多,上网的时间更加频繁。

        一次项目经理分配任务,觉得依靠手中的秘籍加上自己的 “ 聪明才智 ” 很快会完成,不料短短的时间,所有的一切变成了马奇诺防线。解决问题很慢,思路不清晰,项目经理在对我施压的过程中教会了我终身难忘的一招,学会利用网络寻找要解决问题的答案,从此 Google 成了我的最爱,关键字成了我变化的招数。在软件测试工作中,他帮我解决了很多疑难问题,解答了很多令我迷惑的地方。也是我帮助测试同行解决问题手段之一,很多软件测试新手,甚至老手都没有意识到自己手上就握有 “ 无敌秘籍 ” ,所以只要你耐心找,答案就在身边。

        这里总结一下利用网络搜索引擎的技巧:

    组合搜索

        每次搜索某个文件,如果只给出一个单词进行搜索,经常会出现成千上百万计的匹配网页。然而如果再加上一个单词,那么搜索结果会更加切题。

    选择表述内容的词组

        一般我在网页搜索引擎的时候,选择一些可以表达我要查找内容的关键词组,用来缩小搜索范围,从而找到搜索结果是最好的办法。运用词组搜索涉可以先先简单地输入一个问题作为词组搜索,如果仍然找不到合适的,那就用多个可以表达要查询内容的关键字进行查询。

    定位信息来源

        有的时候用词组搜索不到或者无法准确表达所需信息。可以用另一种方法直接到信息源,就是直接到到提供某种信息的站点去。可以用公式 “www. 公司名 .com” 去猜测某一组织的特点。从而得到所要搜索的信息的主要词组

        其实网络上还有很多关于搜索技巧的文章,大家可以自行学习。千万要记住搜索引擎是帮助你成功的有力武器。

    第二招 学会动手

        参加软件测试工作后,随着工作经验的增长自我感觉越来越好。在公司里也逐渐受到同事领导的重视,一次针对公司的新的软件功能进行测试的时候,像往常一样 “ 随手 ” 测试出了几个 Bug ,然后 “ 仔细 ” 的填写了 Bug 单(这个 Bug 的现象已经出现了很多次了)。这时候测试经理走过来,重新复查了一下填写的 Bug .他在重现我的 bug 的过程中,简化了我的输入变化, bug 神奇的又出现了,同样的现象,他关闭软件重新变化输入,扩展出 10 几个变化后,软件不动了,内存不断上升。终于他找到了产生软件的 Bug 的原因,然后对我说 “ 寻找 Bug 要准确定位,我们开发团队是一个整体,时间是等量的,时间不在你身上浪费,就是在他身上浪费。如果测试人员每次发现的 bug 描述不清楚,并且多个问题潜在的错误原因是一个,虽然操作可能稍微有些变化。这样开发人员在重现 bug 的时候他要调试跟踪判断,很花费时间,而且效率低。如果测试人员发现 bug 的时候多动手可以更加准确的定位 bug 步骤和原因,给开发人员最精确的步骤和准确的描述,这样整个团队才能高效,所以需要大家协作!。 ”

        在以后的日子里,每次解决问题的时候我都记得多试验几次,多尝试。网上很多朋友还有同事问我问题的时候,其实他们只是万里长征就差一步,只要再多动手实验一次就可以达到目的了。所以多动手,多尝试。

    第三招 思考自己所作的

        刚开始入行的时候,总是思考如何做好软件测试。认为公司的测试流程混乱总是很郁闷,认为自己学不到东西,如何才能测试好产品,常说心动不如行动,以前看到古龙小说中经常出现的场景无名小子不断挑战高手,总结积累。我总结了有些经验是实战中得到的,所以不断尝试引入新的测试流程然后评估,这个过程虽然很痛苦,但是从中积累了不少经验。这段时间让我学习到了很多东西,接触了 ISO,CMM ,测试管理工具,自动化工具(因为公司不正规给了我很多学习的机会,后来到了比较大的软件公司后,以前的经历给了我更多的发展机会,因为大公司非常正规了,公司内部人员分工明确,所以能力的锻炼反倒少了)。由于工作中经常写报告反倒养成了总结教训的习惯,因为纸面上的东西是永远也忘不掉的。在写的过程中可以不断补充扩展,整个过程是思想升华的过程,当年达摩面壁九年就是融会贯通的典型例子,如果他不是有个思考的过程,他也不能成为一代大家。如果后来不时有人把他的绝技记录下来,也就不能有后来的少林寺七十二绝技。

        所以善于思考,总结经验,也是成为高手之路的不二法决。

    第四招 学会利用论坛资源

        其实测试新兵和测试高手之间的区别,往往是不会利用现有资源。在论坛中我们会看到很多新手不断的提问,但是有很多问题其实都是已经别人提过了,或者已经有解决方案的。所以经常会看到 “测试高手”的身影,并且不提问题,而且还能“锄强扶弱”,是测试新丁的救命稻草。好像是高手们无所不能,其实摘掉这层耀眼的光环,他们并没想像得那么厉害,只不过通过自己的搜索找到的答案,然后帮助其他人。当然也有很多人都是通过自学,然后在论坛中交流得到了很多经验,高手其实也是因为善于思考问题,亲自动手解决问题。所以动手和利用论坛资源的过程中他们也在不断提高。

        很多时候看到论坛中有人提问,问题描述不清,很多人看了很困惑。发贴题目动不动请高手帮忙,救命之类的,好像天下大乱,世界末日。虽然这个题目很招人,但是无法让那些想帮助你的人帮你,因为题目不清晰,而且高手字样吓阻了很多人。其实问问题也是个思路整理的过程,描述清晰,让人理解清楚,才能望文知意知道你的当前发生问题的环境,才能让那些想帮你的人解决问题,否则给人无从下手的感觉,解决问题效率不高。

    第五招 学习和你所测试的软件产品相关的知识

        要想成为好的测试人员,还要了解你要测试的软件的相关知识。要了解软件产品的架构是什么样的。要了解软件的市场需求,在接触软件之初要可以多看看用户的反馈信息,这些才是用户最关心的,也是你在测试中需要注意的问题,满足客户是最大的需要。但是了解软件需求之后要学会要多读些软件系统的技术文档,软件设计文档,这些文档可以帮助你了解产品如何工作。还有多看看公司 Bug 库中的问题,这些存在的问题可以帮助你了解软件产品那些地方存在缺陷,软件系统那些地方会出现错误。软件是运行在一个大环境中,如果对系统不熟悉,那么有些问题你不能从一个更广阔的层面考虑,学习操作系统的知识,有助于你发现缺陷,定位问题更加准确。比如软件运行在 Windows 或者 Linux ,如果你不懂操作系统,你就无法建立测试环境,有些时候时候软件的组件发生问题,就是你系统配置造成的,对系统不熟悉,你会把外在原因归结为软件本身。所以要学习关于和软件系统相关的知识,比如编程,网络,数据库等。不一定你要学习到多好的程度,只是通过这些扩展的知识面,你可以在发现问题,解决问题上不会局限在狭小的圈子里。

        和一切相关的人员交流,不同的交流渠道,获取消息是不同的,角度也不同。和客户交流,你会在测试中从客户的角度发现问题;和开发人员交流,你会了解开发人员怎么实现软件功能的;和项目管理人员交流,你会知道开发进度以及遇到的困难。
  • 如何优雅地辞职(转)

    2007-08-31 14:50:30

    如何优雅地辞职


    是时候给自己一个新的挑战,开始一个新的职业道路了。辞职的过程很简单:提交辞呈、得到上司的同意。不过,如果你不想引起任何的不满,以至给自己将来的工作造成障碍,那么你要注意了,在递交辞职前你需要周全地考虑一下。辞职是简单的,但优雅的辞职就不那么容易了。这篇文章将从几个方面介绍应该如何周全的不引起怨愤的辞职。

    步骤:

    1. 保密。 一旦你做出了辞职的决定,在递交辞呈前不要向你的同事们宣告此事。如果公司这时决定给你加薪的话,你将会很尴尬。

    2. 有计划的提交辞呈
    如果你在你的公司团队里处于一个很重要的位置,那么你需要给你的老板以时间让他能够找到可以替代你工作的人。

    3.跟你的老板约定一个时间讨论这件事情
    需要知道你的老板可能有很多工作要作,他不可能准时地赴你的约会,此时要大度地理解他,避免引发激烈的争论,让他有时间集中精神来考虑你的决定。

    4.直接、礼貌地提出你的辞呈并做好准备
    最好私下排练一下,因为大多数老板都是非常忙的,你最好采用直接的方式提出你的决定,不必说很多的套话。

    5. 为对话做好准备
    你的老板可能会问你一些为什么辞职的问题,还可能会极力的挽留你,甚至提出更高的待遇,你要为此做好准备。需要知道如果在加薪的诱惑下留下,会给你今后的职业生涯埋下一颗不小的定时炸弹!

    6. 着重积极肯定
    如果你的老板问你是否因为他的因素而使你作出这个决定,此时最好使用圆滑老练的措辞给老板以积极的评价,表明这个决定是据个人的原因作出的。

    7. 手头留有一份辞呈备份
    辞呈最好简洁明了,不要包含对抗情绪或专业术语。

    8. 礼貌地告别你的老板及公司
    辞职得到应允后,可以向你的同事们宣布这一消息,并礼貌地向同事及老板告别。

    建议:

    1. 离开时最好不要辱骂诋毁你的旧公司。

    2. 要知道,将来你可能还会应聘于这个老板门下,所以给他留下良好的印象是非常必要的。

    3. 明智的拒绝加薪的挽留条件,否则会使你今后在公司中留下非常不好的印象。

    4. 辞职后也应该告知你的其他曾经一起工作的同事及领导,礼貌地向他们致谢告别。

    忠告:

    1. 不要侮辱你的老板或公司,也不要被诱惑打倒。

    2. 做好辞职后的准备。可能你的老板直接就同意了你的辞职并让你立马走人。还要注意你曾与公司签订的合约。

    3.离开公司前,备份你在工作电脑上的自己的文件。

    4.评估自己是否应该离职。是薪水的问题,还是与老板不合的原因。

    5. 公司用加薪的条件挽留下你,可能是因为你的工作此时别人无法替代。他们会安排你训练新的成员,之后你就可能会失去这份工作。

    6. 如果觉得目前的薪水低于自己工作所创造的价值,那么礼貌地找到上司,提出加薪的请求,不需要用辞职来做要挟。

    7. 考虑自己被下个公司招聘的可能性,以免自己从此失业。

    8. 离职前不要在同事面前抱怨什么,这些话语都可能传到老板那里。谁又知道他们会不会再次成为你的老板呢?




    原创文章如转载,请注明:转载自 Angelived中文翻译
    本文链接地址:http://angelived.org/2007/08/19/resign-gracefully/
  • 激励人生成功的10句经典英文

    2007-08-31 14:46:43

    激励人生成功的10句经典英文

    1.do one thing at a time, and do well.
    翻译:一次只做一件事,做到最好!

    2.never forget to say thanks .
    翻译:永远不要忘了说“谢谢”!

    3.keep on going. never give up.
    翻译:勇往直前, 决不放弃!

    4.whatever is worth doing is worth doing well.
    翻译:任何值得做的事就值得把它做好!

    5.believe in yourself.
    翻译;相信你自己!

    6.i can because i think i can.
    翻译:我行,因为我相信我行!

    7.action speak louder than words.
    翻译:行动胜于言语!

    8.never say die.
    翻译:永不气馁!

    9.never put off what you can do today until tomorrow.
    翻译:今日事今日毕!

    10.the best preparation for tomorrow is doing your best today.
    翻译:对明天做好的准备就是今天做到最好!
752/4<1234>
Open Toolbar