发布新日志

  • 终于归来........

    2010-04-28 18:00:39

        很久没来,留个脚印........
  • 测试三年感悟

    2009-07-26 21:37:22

        感觉像是很恍惚的走过了测试的三年,没有任何味道,只是多了更多的平淡.........

        真的热爱测试吗?如果测试的工作不能让我的生活质量有所提高或好一点地过下去,对测试的热爱只能说是一时冲动;

        真的热衷于测试技术吗?当你发现测试技术比拟差的人,远远地走在你的前面,高高地凌驾于你上面时,对测试的热衷只能说是一种很苍白的一厢情愿;

        真的那么在乎测试业绩吗?比自己业绩差的人照样活得好好地,照样拿着比自己高的工资,悠哉游哉地生活,那个时候,你会思考什么?

        想起三年前自己做测试时候的决心,现在觉得很搞笑,以为热爱,以为认真,以为好学,就能如愿,事实上,这些都不是必备,而唯一一项,自己真的缺失了,那就是心计,大家都说机会是留给有准备的人,其实是机会总是留给有心计的人,如果你真想好好做下去,首先下的,不是决心,而是决心要有心计,因为什么呢?因为我们在的环境是在中国,你周围的人,也都是中国人,中国人是不会在乎你的业绩,不会在乎你的技术,当然更不会在乎你的决心的,因为这些,都是不起眼的东西。。。。。。

  • 测试之路遥远而漫长

    2009-06-24 11:15:58

         最近,总觉得很多东东没有达到自己的预期,工作,抑或是生活,比较讨厌没有作为的日复一日的工作,我绝对不允许自己这样下去。

         很多时候,我在思考这个职业,在我们国内的发展,最后会是什么样子,我们整个软件行业呢,前段时间,听一同学说起,现在很多日本的公司都将代码的工作外包给中国,这也意味着有很大一部分人,即使是开发,也在做最辛苦的劳力工作,而企业呢,用低廉的劳动力成本去换取企业暂时的低额的利润。

         测试的状态又怎么样呢?

         很多公司还只是停留在让测试人员简单的使用软件以查找软件中的BUG,公司领导层希望你不停的使用,不停的发现BUG,这种单一的愿望,会使原本技术能力不高的测试人员最终扼杀在摇篮里。一方面,测试人员自己的技术不高,另一方面,公司只是单纯的索取,如果不幸进入外包公司,外包公司还得从测试人员身上榨取一部分利润,测试人员就在这种尴尬的境地下生存。

        因为测试人员的技术不高,于是很多测试机构如雨后春笋般地从地底下冒出来了,当然你别太指望公司会送你进此类的培训,更多的情况是,你得自己掏Money,可是培训完了一圈,你未必能得到你想要的东西,因为培训公司也是要赚钱的,他们早已经为你准备好了伶牙俐齿的老师,他们能把很少量的知识花上大把的时间来讲,学完一圈,你没学到什么东西,完了,他们会告诉你,这只是他们的培训之一而已,你还可以交钱,学另外的课程嘛

        如果你干了几年,又假如你比较幸运,你终于管理了一个团队,从此以为自己可以安枕无忧了,实际上又是什么样子呢?可能还是会失望,除非你善于权术,除非你只满足于玩弄权术,否则,任何一个在国内做测试的人员,永远能感觉的是力不从心的感觉---因为作为一个有良知的测试人,当你去仔细衡量这个行业在国内的处境,当你时不时地量一量与国外同行的差距,你都不会安稳的。

  • PL/SQL工具连接ORALCE数据库的方法

    2009-03-23 17:50:25

     

    本文简单介绍了PL/SQL工具连接ORALCE数据库的方法……

    1、利用ORACLE NET MANAGER工具

      1)打开 ORACLE NET MANAGER

      2)增加"服务命名"

      第一步 NET服务名:任意填写

      第二步 通讯协议:如果连接远程机器上的ORACLE,选择TCP/IP(internet协议)

      第三步 主机名:输入IP地址 端口号:一般缺省为1521

      第四步 SID: 一般和数据库名字相同

      第五步 测试

      3)启动PL/SQL连接  

      2、直接修改配置文件:

      1)打开目录D:\oracle安装目录\ora92\network\admin中的文件tnsnames.ora。

      2)增加如下代码:

      TRAFFIC_DB = #NET服务名,可任意起

       (DESCRIPTION =

       (ADDRESS_LIST =

       (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.143)(PORT = 1521)) #HOST 为 连接的数据库服务器的IP地址,PORT 为 连接的数据库服务器的端号,一般缺省为1521

       )

       (CONNECT_DATA =

       (SID = carsys) #数据库系统标识,一般和数据库同名

       )

       )

      3)保存文件。启动PL/SQL 工具登陆即可

  • 第5章 Linux在VMware虚拟机中的网络设置 转

    2009-03-20 12:09:38

    对于广大学习Linux的爱好者,特别是初学者来说,使用虚拟机的方式来安装学习Linux是很理想的方案。这样既可以在windows下使用网络来搜索资料,又可以立即在Linux系统平台下实践,但是困扰大家的往往就是虚拟机中网络的配置。

    下面我就结合我自己的学习实践经验谈一点我对这个虚拟机的理解。在谈这个之前,首先要求vmware需要正确被安装,特别是VmwareTools,最好也要安装,并启动Vmware服务。具体设置vmwaretools的方法网上有很多大家可以自己搜索。

    1   什么是虚拟机

    设置上的困难是源于对vmware虚拟机本质的不理解,所以大家往往设置起来就无所适从。vmware安装好以后,会自动添加两张网卡(可以在网络属性中找到),这么多网卡,到底怎么设置,想了半天,突然来了灵感,终于有了一点头绪。

    我个人认为,Vmware虽然是一个windows下的软件,但是把其可以看成是单独的计算机好像更合理一些,这样安装好linux虚拟系统后,其实整个机器的结构就可以抽象成这样:

    虚拟机系统《虚拟网卡vmnet0》―――(vmnet1 vmnet8)―――实际系统《网卡》。其实也就是 (虚拟计算机系统 、网络设备、实际计算机系统)

    如果你在安装虚拟机选择使用网络的方式是桥接的话,那么vmware就模拟成一个网桥的功能,就只使用 vmnet1网卡,vmnet8就可能不用;

    如果在安装虚拟机选择使用网络的方式是NAT方式的话,那么vmware就模拟成了一个 具有DHCP功能的 路由器或网关,这个时候vmnet8就要派上用场了;

    对于一般学习操作系统使用者来说,这两种方式就差不多了,如果是做网络模拟的,就可以使用vmnet2vmnet7这几个,其实本质上这些网卡功能都是vmware虚拟出来的,和vmnet0一样,使用方式都是一样的。

    我想,只要理解了vmware的实质就是模拟成一台具有两张网卡的计算机,是虚拟机和实际机器的网络节点就可以,理解了本质,就可以有的放矢的去设置。

    2   如何设置网络

    vmware安装好了以后,会自动设置自动生成的两张网卡vmnet1vmnet8。这两个设置一般不要改动,我们只要直接进入虚拟机上的系统,并在该系统内设置系统虚礼的网卡就可以了。

    1)使用桥接方式:直接设置

    例子: 我的虚拟linux系统选择的桥接方式,因为我实验室还有多余的IP地址,所以和windows系统一样的去配置vmnet0,就可以了,在虚拟系统上,可以方便的访问内部局域网和校园网,至于用拨号的方式上外网。

    2Nat方式:

    如果你的ip地址有限,那只有使用Nat方式去设置了,这个要麻烦一些,关键在于三点:

    1.确定虚拟机上的虚礼网卡和vmnet1的网络号相同;

    2.在虚拟系统里设置网络属性,把网关地址设为vmnet1的地址;

    3.开启主系统的路由功能,使它成为一台路由器。

    事实上,如果你只需要虚拟系统和主系统通信,而不需要和主系统所在的真实网络上的其他主机通信的话只要满足第一点就可以了。因为满足第一点,主系统和虚拟系统就在同一网络中了,不需要路由器便可通信。但是大多数情况下我们需要虚拟系统和主系统所在的真实网络通信,这就需要满足其他两点了,并且需要多余的一个在实际网络中的有效帐号给vmnet8使用。

    3   Nat方案的具体设置过程

    3.1我们先来让虚拟系统和主系统联系上

    VMware安装的时候安装程序会自动给vmnet1分配一个IP地址,下面是笔者电脑上例子:

    vmnet1 Link encap:Ethernet HWaddr 00:50:56:C0:00:01

    inet addr:192.168.239.1 Bcast:192.168.239.255 Mask:255.255.255.0

    在第二行可以看到安装程序给vmnet1分配的IP地址为192.168.239.1(注意每次安装VMware IP地址是随机分配的,实际的情况与这里的例子会不同)。即虚拟网卡vmnet1属于网络192.168.239。因此,我们需要启动虚拟系统,设置网络属性,把虚拟系统的网卡的IP地址设置为192.168.239.x x为除1以外2~254之间的任意数字笔者把它设置为2),把网关设置为vmnet1的地址:192.168.239.1(如果不和外界真实网络通信的话网关可以不设)windows 2000XP 设置后立即生效,win98需要重新启动,linux需要使用命令#service network restart重新启动网络服务。

    这时候可以在虚拟系统上使用ping命令测试 一下到localhost和网关通不通,基本上没有问题都会通的。

    3.2让虚拟系统和主系统所在的真实网络通信

    3.2.1       首先在你的电脑上需要有一块与真实网络相连真实的网卡

    vmnet8就在与真实网络通讯的时候起作用了,vmnet8会和真实网卡对应起来,虚拟系统要发送数据包到真实网络中的时候,真实系统是一台路由器,首先数据发到虚拟网卡vmnet1,然后经过路由器(这里就是主系统linux)发到vmnet8,由于vmnet8和真实网卡是对应起来的,这一机制是有vmware完成的,所以发到vmnet8上的网卡就等于传送到了真实网卡上,然后数据包再通过真实网卡发送到真实网络。如果你的系统上有两块以上的真实网卡,在安装的时候安装程序会询问把虚拟网卡对应到哪个真实网卡上,可以根据实际情况选择。

    vmnet8IP地址设置为和真实网卡在同一网络的地址,假设真实网络的网络号为192.168.0,真实网卡的IP地址为192.168.0.1则可设置vmnet8IP地址为192.168.0.2。当然,vmnet8也要占用一个有效的IP地址。

    进一步抽象上两步的本质就是:

    1)将虚拟机的网卡vmnet0vmware的网卡vmnet1设置成一个网段;

    2)就是将vmware的网卡vmnet8和实际计算机的网卡放在同一网段;

    3.2.2       那么下一步就是在实际的计算机中安装代理或路由的功能:

    1)如果你的实际系统是linux的话(估计这种情况不多见),只要开启了linux的路由功能虚拟系统就可以和外界通讯了。基本上用linux来做路由器甚至不需要额外的软件,linux的内核直接支持静态路由的功能。我们要做的只是把路由功能打开就可以了。

    可以先看看路由表:

    #route

    确定所有网卡的IP地址或网络地址都在Destination一栏里,如下:

    -------------------------------------------------------------------------------

    Kernel IP routing table

    Destination Gateway Genmask Flags Metric Ref Use Iface

    192.168.0.0 * 255.255.255.0 U 0 0 0 eth1

    192.168.0.0 * 255.255.255.0 U 0 0 0 eth1

    192.168.0.0 * 255.255.255.0 U 0 0 0 vmnet8

    192.168.221.0 * 255.255.255.0 U 0 0 0 vmnet1

    127.0.0.0 * 255.0.0.0 U 0 0 0 lo

    default http://www.gucuiwen.co/ 0.0.0.0 UG 0 0 0 eth0

    -------------------------------------------------------------------------------

    默认情况下启动网络设备的时候系统会把该设备的IP地址添加到路由表中,如果没有的话可以重新启动一下网络服务:

    #service network restart

    再来开启路由功能:

    # echo 1 > /proc/sys/net/ipv4/ip_forward

    至此,linux的路由功能已经打开,你的linux系统已经成了一台路由器,连接着虚拟的网络和真实网络。虚拟网络和真实网络间就可以通信了。出于安全考虑,如果有必要的话还需要用iptables命令来设置一下路由规则。

    2)如果实际系统是Windows下的话,那开启路由功能要比linux下稍微麻烦一点。

    Windows下的虚拟机的网络设置大致和linux下的相同,只不过需要安装额外的路由软件,在Windows平台上有很多这样的软件可以用,比如 SysGate WinGate等,如果用的是Windows 2000 Server 或者是Windows NT Server 的话可以用系统自带的"路由和远程访问"软件。具体的设置大家可以去网络上搜索。

    当然,vmware的功能不只有这些,如果你的电脑硬件足够的好,有1G以上的内存和2G以上的CPU的话,那你也可以同时运行几台虚拟机,把这几台虚拟机组成一个网络,这样在一台电脑上就可以有一个功能强大的网络实验平台了。

  • 发现51testing的小小变化!

    2009-02-27 15:43:17

       这几天登陆51testing,发现了一些小小的变化,登陆的时候需要验证(个人觉得有点麻烦);二是查看自己的日志时发现多了个评分级别(以后有的玩啦);个人觉得51testing的这种改善精神特别可贵,相信51testing一定会越来越繁荣起来,:-)。。。。。

      不由得想起GOOGLE的一个变化----GOOGLE的在线翻译,刚开始的时候你必须要去选择语言,哪种语言---》哪种语言,我是个不折不扣的懒人,觉得很麻烦啊,于是不到万不得已的时候就不用这个在线翻译了,但是因为时常看一些外文资料,碰到一些生僻或之前没见过的词汇,有时候还是要看下,后来,忽然有一天发现GOOGLE这个语言后面多了个“转换”按钮,而且,它默认的是 英语--》中文;当时觉得特别感动。想起来佳能相机的广告词:佳能,感动常在。

       自己现在也在测试产品,真希望公司的产品也能多多作出些让客户感动的闪光点。

  • linux重新入门

    2009-02-25 17:18:18

       Linux想学好久了,但是因为自己的惰性,致使没有学下去,学的东西也只是一点皮毛,今天终于得到红联的一个Linux的学习刊物,重新又学了一遍,当是巩固,以后当勤于练习,才能学有所得,小小的纪念一下,顺便把这个学习刊物与大家一起分享,下载链接地址
  • 云计算向软件测试提出新挑战

    2009-01-15 16:18:21

    云”为企业开发人员及提供相关服务和工具的供应商带来了新机遇。对于测试团体来说,在面临新挑战的同时,他们也将得到新工具以解决Soasta公司CEO所说的关键问题:可以正式启动了吗?

    位于加利福尼亚洲圣马迪奥的Keynote Systems公司副总裁Vik Chaudhary说:“测试人员必须能够有效率地对所有层面进行测试——从应用到云服务供应商。”

    根据市场研究公司IDC的调查,到2012年,在云服务上的消费将提高三倍,达到420亿美元。IDC指出,在所有IT消费中,云计算占到25%的比例,并且到2013年,这一比例还将提高到三分之一。

    IDC在概念上对“云服务”和“云计算”做了区分。他们认为,云服务是指“可以在网络上实时交付并使用的产品、服务和方案”。而相对的,云计算则被定义为用于开发和部署“可以在网络上实时交付并使用的产品、服务和方案”的基础设施或软件系统。

    Chaudhary对此做了如下解释:“Schwab、Travelocity等企业多年来一直在开发自己的数据中心。而其中的关键问题是要对扩展性极强的应用程序进行管理,并保证最好的客户体验。为此,他们聘用了大量人员来做监控、测试和添加服务等工作。”而最近云设施技术的发展,比如Google App Engine,使得其它企业可以在Google的设施上运行他们的应用。“这意味着在云中部署应用的门槛已经相当低了。你不再需要数据中心或操作团队,而可以全力以赴地开发应用和功能。这是一种应用开发范例的转变。”

    对于测试人员来说,这同样意味着一种转变。Chaudhary举例道:“比如你构建了一个应用,可以通过黑莓手机使用,并托管于一家云公司(Salesforce),Salesforce要运行一定量的测试以保证服务可以正常使用。但是,对于应用本身来说,它是运行在1部手机上还是50部手机上呢?你是否需要加载一个非常大的页面呢?”另外,云托管公司可能会使用第三方的服务来提高性能。其对于测试结果就是,终端用户的体验将受到公司、云供应商和所有其它相关团体的影响。

    减少测试成本

    Lounibos说,加利福尼亚山景城的Soasta公司有一个正在逐渐扩大的客户群,他们没有自己的服务器,所有的操作都在云环境下进行,“尽管如此,他们的大部分操作还是比较传统的;他们与托管服务供应商合作,对云领域只做适度地深入。”然而,他也指出,基于云的测试也是企业了解云并减少测试成本的一个途径。

    “传统的客户认为测试是一个扔钱的无底洞。他们一直在寻找可以减少成本的方法。对于公司来说,云计算的主要问题是,它是否足够可靠。而测试不同。云环境下的测试只是模拟真实的情况,它并不涉及与生产相关的问题。但是它确实可以减少成本。”

    Lounibos说,通过云计算,测试人员“能够访问并使用大量的计算资源,而这正是测试所需要的。这个主意实在是太诱人了:你可以在5到8分钟内准备好125台服务器,但只需要按测试时间支付费用。你再也不需要为Web应用准备大型测试实验室了。”

    比如,可以使用Soasta的CloudTest虚拟云环境测试实验室或设备。它支持负载、性能、功能和Web UI/Ajax测试。

    而Keynote公司则为测试和分析互联网云上的Web应用提供了KITE (Keynote Internet Testing Environment)。通过KITE,可以在桌面及地理位置不同的各个位置随时进行测试。

    Chaudhary认为,互联网应用的性能测试特别需要在云环境下进行。“对于互联网应用来说,这不只是应用本身的问题,它涉及所有相关的供应商。你无法决定用户是使用DSL还是拨号,或者是移动设备。性能测试本来就是取决于环境的。”
    对于移动应用,Chaudhary认为,性能测试和功能测试都应该在云环境下进行。他说:“对于移动应用来说,功能测试同样也取决于供应商。你有一个可以登录的显示屏,即使应用可以正常运行,网页的大小、显示屏的大小,以及所有供应商也都会对其产生影响。”通过在云环境下进行测试,企业就能更容易地对上百种设备进行测试,同时节省更多的成本。

    市场研究公司Enterprise Management Associates副总裁Dennis Drogseth认为,对于在云环境中的应用来说,“你要测试与应用有关的网络性能、服务器性能、数据库性能、软件性能,以及它在客户端上的缓存情况。如果你只有在某个位置上运行的一个应用,你当然可以在一个位置上对其进行测试。但是对于Amazon或Facebook来说,应用分布在许多不同且无法预测的位置上。这种情况显然要比运行一个基于单一服务器的应用测试脚本复杂得多。”

    我们所面临的问题就是,要在各个不同的组件和地理位置上运行测试以确定问题,而“企业的应用开发通常无法使用这种环境。因此,Keynote(以及其它类似公司)就为这些测试人员提供了一个可用的环境,让他们可以利用互联网云和各种可能出现的情况,使用真实的网络和桌面。”

    对新测试工具的需求

    Drogseth认为现在需要新型测试工具。“你不能再使用为LAN或独立服务器准备的测试工具来进行云计算。所以,我们需要可以让我们了解网络和桌面等相关问题的工具。我们要让开发人员进入网络环境。”

    Lounibos也认为,“在将来五年的时间里,所有的测试工具供应商都会进入到云领域。届时将产生新一代的测试公司。云计算是一块有巨大潜力的市场,因为这就是我们使用服务的方式。”
  • 偶然性不可重现BUG怎么处理?转

    2009-01-05 15:35:11

       一、一定要提交!! 
        1. 记得有这么个缺陷,以后再遇到的时候可能就会了解发生的原因。
        2. 尽力去查找出错的原因,比如有什么特别的操作,或者一些操作环境等。
        3. 程序员对程序比测试人员熟悉的多,也许你提交了,即使无法重新,程序员也会了解问题所在。
        4. 无法重现的问题再次出现后,可以直接叫程序员来看看问题。
        5. 对于测试人员来说,没有操作错误这条.既然遇到,就是问题。即使真的操作错了,也要推到程序员那里,既然测试人员犯错误,用户也可能会犯同样的错误。错误发生的时候,Tester最大。

        二、程序不是测试人员写的,出问题也不是测试人员的原因。
        至于无法重现,可能的原因很多,因为测试人员看到的只是程序的外部,无法深入程序内部,所以把责任推给测试人员是不对的。

        测试人员的任务只是尽力重现问题,而不是必须重现!!

        三、下次再遇到的时候,拉他们来看就可以了。
        因为问题如果无论如何无法重现,程序员确实也没有什么好的解决方法。

        而且此类问题即使程序员说修改了,测试员也没有好的方法去验证是不是。 : )

        四、你可以告诉程序员,测试过程是没有错误的。
        测试人员只是检查程序中可能存在的问题,虽然测试人员使用一定的手段方法努力去覆盖所有的情况,但这些都是理论的推测。在实际中,可能因为人员、环境、配置等种种原因出现各种各样的问题,在测试人员这里发现问题是公司内部的事情,程序发到外面可就是公司的形象问题了。

        需要让程序员理解,测试人员是帮助他们的,不是害他们的。

        客户那里发现问题比测试员发现问题结果要严重的多。

        五、测试部门是独立与开发部门的呀,真的打交道,也是经理对经理。
        在我们这里,工作上面的事情,和程序员相互只能商议解决,并没有谁高谁低。

        问题无法重现,也要提出,程序员那里可以回复无法再现。问题放在那里,等到再次出现的时候,就立刻叫程序员过来查看。

        实在没有再次出现,最后可以写到报告中,说出现了什么现象,但无法再现(比较严重的问题才如此处理,小问题经理之间商量商量可能就算了)。

        至于测试人员必须重现bug,你杀了我好了,我每次测试项目都有无法重现的问题,很多我能找到大概的原因,有些根本无法重现(仅仅出现一次)。

        这种事情是无法避免的,并不能说测试人员无法重现问题,就是工作不到位(哼,程序有bug,是否可以说程序员工作不到位的呀)。

        六、测试部门要独立,最好不受开发的制约。其实真正要重视,就应该有否决的权利。
        我们公司就是项目承包,要拿最后的项目尾款,就要测试部签字通过,这样就避免了很多的问题。

        其实只要自己尽到心就可以了,管别人怎么说呢。

        七、我们使用的状态有:
        程序员处理的状态(由测试员提交的Action):等待处理的,再次出现的。

        测试员处理的状态(由程序员提交的Action):已经修改的,暂不修改的,系统限制的,使用错误的,无法再现的。测试员可以修改记录。

        经理处理的状态(由测试员提交Action):管理员处理的。经理还可以删除记录。

        按照比较标准的说法,其实对于缺陷还应该有“等待确认的”、“已经确认的”和“重复提交的”的状态,我们为了省事,统一使用了“等待处理的”。

        最后结项的时候,缺陷的状态对我们来说有两种,“已经关闭的”(由测试员或经理确认)和“暂不修改的”(比如下一个版本处理等)。

        呵呵,状态多,有些烦琐,特别是程序员很多的时候都不清楚应该回复什么状态,但我个人觉得对测试人员来说,这些状态比较清晰明了,容易处理。

        八、一个叫doer_ljy(可战)的网友回复了一些内容,我个人认为不很妥当,就回复了一些内容,绿颜色的是doer_ljy(可战)的内容:

  • 【转】VMware访问Windows宿主机的共享文件

    2008-12-31 15:46:43

    虚拟机的使用,的确给Linux的学习者提供了很大的方便。不过在Linux学习过程中,当涉及到应用软件的使用时,虽然可以直接从网上下载程序包或源码,但用惯了迅雷,对Linux中的下载速度简直无法忍受,且原有的很多资源本应该可以直接使用,没有必要重新下载。因而在两个系统中共享信息成为亟待解决的问题。

        在网上搜索了大量相关信息,介绍两个系统间信息共享的不少,但是提供虚拟机host-guest机不同系统之间资源共享解决方案的不多。在朋友的帮助下,经过多次尝试和摸索,终于有了一些搜获。现提供一套包括局域网配置在内的较为详细的解决方案,供初学者参考。

          转载请注明本站版权:微品质工作室版权所有

    FTP法

        环境介绍:
             虚拟机:VMware Workstation 5.5
             Host机系统:Windows 2000 Server
             Guest机系统:Red Hat Enterprise Linux 4

         其实作为两个系统而言,要进行资源的共享,方法很多,最初我尝试了使用mount命令挂载文件系统。从命令本身来看,想要挂载一个Windows下的文件系统或驱动盘似乎没有什么问题。

         首先在Linux系统/mnt空目录下,建立挂载点:#mkdir /mnt/mystudy 
         /mnt目录是专门用来当作挂载点的目录。mystudy是自定义的专用挂载点名称。

         然后我们看一下mount命令的使用方法: 
         命令格式:  mount [-t vfstype] [-o options] device dir 
         主要参数:
           ① -t vfstype 指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型,Windows NT ntfs文件系统:ntfs 
           ② -o options 主要用来描述设备或档案的挂接方式。
           ③ device:要挂接(mount)的设备。Linux中,设备名通常存放在/dev中,设备名遵循一些规则,如:/dev/hda1中,hd指Hard Disk,a代表第一个硬盘设备,1代表第一个硬盘的第一主分区。
           ④ dir:设备在系统上的挂接点(mount point)。如,我们刚刚建立的挂载点:/mnt/mystudy

         遵循此规则,希望挂载硬盘的第二个主分区,
         键入命令: #mount -t ntfs /dev/hda2 /mnt/mystudy 
         返回信息: Mount:fs type ntfs not supported by kernel

         竟然无法找到ntfs格式的分区?那么我的Windows系统跑到哪里去了?

         查看一下查看一下分区情况:#fdisk –L 
         得到如下结果:

         发现根本没有找到Windows的分区。
         这个时候才想起,我的Linux装在虚拟机里,虚拟机分配给Linux系统的设备仅仅是8G大小的虚拟硬盘分区,所以根本没有办法挂载Windows系统所在的分区以及其他的硬盘分区。

         那么在虚拟机环境下,想要共享资源,mount命令基本上派不上用场了,只能从联机的方式来考虑了。

         提供最常用的两种方案:

           1.  FTP访问
           2.  Samba服务

        不管是FTP还是Samba,首先都需要分析虚拟机环境下的Host-Guest网络连接。基本上我们可以把Host机与Guest机之间当作局域网中的两台机器来实现互联。那么现在需要重新考虑关于《虚拟机的网络配置》一文中提到过的网络连接方式。

     

        当时我们选择以NAT模式进行网络连接,这是一种使用DHCP服务进行网络连接的方式,也就是说,Guest机并没有自己的固定IP地址,这个地址是在启动了系统之后,从Host机上取得的、一个暂时提供给Guest机使用的IP地址。在这种网络连接方式下,设置Guest机中系统的IP获取方式为自动获取,不管Host机联网的方式如何,只要Host能上网,Guest机也可以上网。

        虽然选择这种方式,外网连接是很方便,可是在Host-Guest之间的局域网连接真的让人伤透了脑筋,虚拟网卡VMnet8的IP与Host机的IP不在同一网段,折腾了一个晚上也没有找到好的解决办法,最后舍弃了NAT模式。将Linux虚拟机的网连方式改为了Bridge。

        Bridge模式将虚拟主机的虚拟网卡桥接到一个Host主机的物理网卡上,可以理解为Guest机和Host主机处于对等的地位,在网络关系上是平等的,对于我这种对路由的事情比较白痴的人来说,这是最易理解的一种局域网互联方式。

        我的使用网络服务是小区LAN网,IP自然是自动获取的,不用花心思改动它,将Guest机的网络也设置成为自动获取IP:
        应用程序-->系统设置-->网络-->编辑eth0设备

       Host机的ipconfig结果:

     

       Guest机ifconfig结果为:

        看到了吧?Host和Guest在同一网段,基本上就像局域网里面的两台机器。

        Host设置一下FTP, FTP算是实现对Host机资源的访问了,可文件的管理似乎不那么方便。



    Samba法

        另一种共享Windows资源的方法是很多Linux用户都非常青睐的Samba。

        Samba是一套让UNIX系统能够应用Microshoft网络通讯协议的软件。它使执行UNIX系统的计算机能与执行Windows系统的计算机分享驱动器与打印机。非常适用于Windows和Linux系统并存的网络。Red Hat AS 4.0内附Samba Server,但默认并不是在系统启动时自动运行的。可通过service命令查看和控制Samba服务:

    • 查看Samba服务运行状态:# service smb status
    • 启动Samba服务:# service smb start
    • 停止Samba服务:# service smb stop
    • 也可设置系统重启时,自动启动Samba服务:# chkconfig --level 345 smb on

        首先我们在Windows系统中设置文件夹或驱动器Web共享,并对其设置别名,如:/study

        然后在Linux中,以用户身份登录smb服务:

         常见的错误提示: 
         1.防火墙问题

         使用Samba服务时,Host和Guest都应关闭防火墙。
         Linux系统下关闭防火墙的方法:系统设置-->服务器设置-->服务-->iptable-->停止

        2.登录用户名或密码错误

         验证用户名密码即可。

         成功登录smb

        可用LS命令查看当前目录下的共享文件:

         用get命令可从服务器上下载某文件: 
         Smb:\> get file1 file2(从服务器上下载file1,以file2为名保存在本地——默认为root主目录)

         Exit命令可退出smb服务器

         如果仍然觉得文件的管理不方便,可以使用smbmount 命令,挂载Windows的共享文件夹或驱动器: 
         # smbmount //192.168.0.162/study /mnt/mystudy –o username=admin

        其中,192.168.0.162为Host机IP;study为共享文件夹别名;/mnt/mystudy为挂载点,可由#mkdir /mnt/mystudy创建;admin为Host机登录用户名。

        打开挂载目录:

        这样看起来习惯多了吧?跟Windows里面的文件管理界面几乎相同了。

       至此,虚拟机Linux共享宿主机Windows资源基本实现,完成时候觉得很简单,但是一路摸索过来,的确遇到了不少问题。


       感谢赵哥的鼎力支持。在他的帮助下,不管是对网络配置,还是对虚拟机的应用,以及对Linux中常用命令的掌握,都有了很大的进步。


    VMware-Tools法

    先在Windows下建个共享文件夹,暂时取名叫share (VM->setting->options->shared folders)
    再进入虚拟机的下拉菜单VM->Install VMware Tools...
    出现一个对话框,单击“install”,
    安装完毕后会在Linux的桌面上出现一个光盘的图标,名叫“VMware Tools”,
    然后进入mnt/cdrom,把里面那个叫“VMwareTools-5.5.0-18463.tar.gz”的文件拷贝到opt下,
    然后打开“终端”,用cd命令进入到opt文件夹下,在命令行输入:tar zxvf VMwareTools-5.5.0-18463.tar.gz 回车(进行解压)

    再用cd命令进入到解压的文件里,在命令行输入:./vmware-install.pl 接着一路回车,就ok了。等安装完毕后,可以查看mnt文件夹里面会多了一个叫“hgfs”的文件夹,这下面的文件夹里就可以放Windows与 Linux需要共享的文件了,OK!

  • 使用vmware+linux怎样共享WIndows下资源

    2008-12-31 11:16:38

    1.设置网络
     
    很简单,打开vmware,点vmware->setting->Hardware->Ethernet->
     
    (还有很多其他的设置)Custom - > VMnet1(host-only)->OK
     
    查看网络连接,看到一个VMnet1的连接,把它ip设为192.168.140.1,子网掩码255.255.255.0(自己定)
     
    然后进Linux->网络->把ip改为192.168.140.2,子网掩码255.255.255.0,网关192.168.140.2
     
    这时,到linux终端上ping 192.168.140.1 ,ping到了,就说明虚拟机和主机可以通讯了
     
    2.共享文件夹
     
    如上所说的进入setting->Options->Shared Folders->Add,可以把windows的文件夹和
     
    linux的文件夹添加进去,然后到系统里把该文件夹设为共享.这样在linux下看 windows
     
    的共享文件夹就如局域网其他机器看你机器共享一样,但是,要注意你的文件可能被其
     
    他人看到(也许可以通过把GUEST用户禁用来防止)
     
    我把windows的D用VM ADD了,然后想共享D里的某个文件夹时再设共享
     
    那么如何在一个系统看另一个系统的文件呢?
     
    比如在Linux下,连接到服务器(我的是FC5)->windows文件共享->在服务器那输入ip(如,192.168.140.1)就可以看到windows共享的文件了。
  • 必须掌握的8个CMD命令

    2008-12-26 11:11:06

    一,ping   

      它是用来检查网络是否通畅或者网络连接速度的命令。作为一个生活在网络上的管理员或者黑客来说,ping命令是第一个必须掌握的DOS命令,它所利用的原理是这样的:网络上的机器都有唯一确定的IP地址,我们给目标IP地址发送一个数据包,对方就要返回一个同样大小的数据包,根据返回的数据包我们可以确定目标主机的存在,可以初步判断目标主机的操作系统等。下面就来看看它的一些常用的操作。先看看帮助吧,在DOS窗口中键入:ping /? 回车,。所示的帮助画面。在此,我们只掌握一些基本的很有用的参数就可以了(下同)。   

      -t 表示将不间断向目标IP发送数据包,直到我们强迫其停止。试想,如果你使用100M的宽带接入,而目标IP是56K的小猫,那么要不了多久,目标IP就因为承受不了这么多的数据而掉线,呵呵,一次攻击就这么简单的实现了。   

      -l 定义发送数据包的大小,默认为32字节,我们利用它可以最大定义到65500字节。结合上面介绍的-t参数一起使用,会有更好的效果哦。   

      -n 定义向目标IP发送数据包的次数,默认为3次。如果网络速度比较慢,3次对我们来说也浪费了不少时间,因为现在我们的目的仅仅是判断目标IP是否存在,那么就定义为一次吧。   

      说明一下,如果-t 参数和 -n参数一起使用,ping命令就以放在后面的参数为标准,比如"ping IP -t -n 3",虽然使用了-t参数,但并不是一直ping下去,而是只ping 3次。另外,ping命令不一定非得ping IP,也可以直接ping主机域名,这样就可以得到主机的IP。   

      下面我们举个例子来说明一下具体用法。   

      这里time=2表示从发出数据包到接受到返回数据包所用的时间是2秒,从这里可以判断网络连接速度的大小 。从TTL的返回值可以初步判断被ping主机的操作系统,之所以说"初步判断"是因为这个值是可以修改的。这里TTL=32表示操作系统可能是win98。

      (小知识:如果TTL=128,则表示目标主机可能是Win2000;如果TTL=250,则目标主机可能是Unix)

      至于利用ping命令可以快速查找局域网故障,可以快速搜索最快的QQ服务器,可以对别人进行ping攻击……这些就靠大家自己发挥了。   

    二,nbtstat   

      该命令使用TCP/IP上的NetBIOS显示协议统计和当前TCP/IP连接,使用这个命令你可以得到远程主机的NETBIOS信息,比如用户名、所属的工作组、网卡的MAC地址等。在此我们就有必要了解几个基本的参数。   

      -a 使用这个参数,只要你知道了远程主机的机器名称,就可以得到它的NETBIOS信息(下同)。   

      -A 这个参数也可以得到远程主机的NETBIOS信息,但需要你知道它的IP。

      -n 列出本地机器的NETBIOS信息。   

      当得到了对方的IP或者机器名的时候,就可以使用nbtstat命令来进一步得到对方的信息了,这又增加了我们入侵的保险系数。   

    三,netstat

      这是一个用来查看网络状态的命令,操作简便功能强大。   

      -a 查看本地机器的所有开放端口,可以有效发现和预防木马,可以知道机器所开的服务等信息,如图4。   

      这里可以看出本地机器开放有FTP服务、Telnet服务、邮件服务、WEB服务等。用法:netstat -a IP。

      -r 列出当前的路由信息,告诉我们本地机器的网关、子网掩码等信息。用法:netstat -r IP。
    四,tracert

      跟踪路由信息,使用此命令可以查出数据从本地机器传输到目标主机所经过的所有途径,这对我们了解网络布局和结构很有帮助。如图5。   

      这里说明数据从本地机器传输到192.168.0.1的机器上,中间没有经过任何中转,说明这两台机器是在同一段局域网内。用法:tracert IP。   

    五,net   

      这个命令是网络命令中最重要的一个,必须透彻掌握它的每一个子命令的用法,因为它的功能实在是太强大了,这简直就是 微软为我们提供的最好的入侵工具。首先让我们来看一看它都有那些子命令,键入net /?回车如图6。

      在这里,我们重点掌握几个入侵常用的子命令。   

      net view   

      使用此命令查看远程主机的所以共享资源。命令格式为net view \IP。  

      net use

      把远程主机的某个共享资源影射为本地盘符,图形界面方便使用,呵呵。命令格式为net use x: \IP\sharename。上面一个表示把192.168.0.5IP的共享名为magic的目录影射为本地的Z盘。下面表示和192.168.0.7建立IPC$连接(net use \IP\IPC$ "password" /user:"name"),   

      建立了IPC$连接后,呵呵,就可以上传文件了:copy nc.exe \192.168.0.7\admin$,表示把本地目录下的nc.exe传到远程主机,结合后面要介绍到的其他DOS命令就可以实现入侵了。   

      net start

      使用它来启动远程主机上的服务。当你和远程主机建立连接后,如果发现它的什么服务没有启动,而你又想利用此服务怎么办?就使用这个命令来启动吧。用法:net start servername,如图9,成功启动了telnet服务。   

      net stop

      入侵后发现远程主机的某个服务碍手碍脚,怎么办?利用这个命令停掉就ok了,用法和net start同。   

      net user

      查看和帐户有关的情况,包括新建帐户、删除帐户、查看特定帐户、激活帐户、帐户禁用等。这对我们入侵是很有利的,最重要的,它为我们克隆帐户提供了前提。键入不带参数的net user,可以查看所有用户,包括已经禁用的。下面分别讲解。

      1,net user abcd 1234 /add,新建一个用户名为abcd,密码为1234的帐户,默认为user组成员。

      2,net user abcd /del,将用户名为abcd的用户删除。

      3,net user abcd /active:no,将用户名为abcd的用户禁用。

      4,net user abcd /active:yes,激活用户名为abcd的用户。

      5,net user abcd,查看用户名为abcd的用户的情况  

      net localgroup

      查看所有和用户组有关的信息和进行相关操作。键入不带参数的net localgroup即列出当前所有的用户组。在入侵过程中,我们一般利用它来把某个帐户提升为administrator组帐户,这样我们利用这个帐户就可以控制整个远程主机了。用法:net localgroup groupname username /add。   

      现在我们把刚才新建的用户abcd加到administrator组里去了,这时候abcd用户已经是超级管理员了,呵呵,你可以再使用net user abcd来查看他的状态,和图10进行比较就可以看出来。但这样太明显了,网管一看用户情况就能漏出破绽,所以这种方法只能对付菜鸟网管,但我们还得知道。现在的手段都是利用其他工具和手段克隆一个让网管看不出来的超级管理员,这是后话。有兴趣的朋友可以参照《黑客防线》第30期上的《由浅入深解析隆帐户》一文。   

      net time

      这个命令可以查看远程主机当前的时间。如果你的目标只是进入到远程主机里面,那么也许就用不到这个命令了。但简单的入侵成功了,难道只是看看吗?我们需要进一步渗透。这就连远程主机当前的时间都需要知道,因为利用时间和其他手段(后面会讲到)可以实现某个命令和程序的定时启动,为我们进一步入侵打好基础。用法:net time \IP。   

    六,at

    这个命令的作用是安排在特定日期或时间执行某个特定的命令和程序(知道net time的重要了吧?)。当我们知道了远程主机的当前时间,就可以利用此命令让其在以后的某个时间(比如2分钟后)执行某个程序和命令。用法:at time command \computer。   

      表示在6点55分时,让名称为a-01的计算机开启telnet服务(这里net start telnet即为开启telnet服务的命令)。   
    七,ftp   

      大家对这个命令应该比较熟悉了吧?网络上开放的ftp的主机很多,其中很大一部分是匿名的,也就是说任何人都可以登陆上去。现在如果你扫到了一台开放ftp服务的主机(一般都是开了21端口的机器),如果你还不会使用ftp的命令怎么办?下面就给出基本的ftp命令使用方法。

      首先在命令行键入ftp回车,出现ftp的提示符,这时候可以键入"help"来查看帮助(任何DOS命令都可以使用此方法查看其帮助)。   

      大家可能看到了,这么多命令该怎么用?其实也用不到那么多,掌握几个基本的就够了。   

      首先是登陆过程,这就要用到open了,直接在ftp的提示符下输入"open 主机IP ftp端口"回车即可,一般端口默认都是21,可以不写。接着就是输入合法的用户名和密码进行登陆了,这里以匿名ftp为例介绍。   

      用户名和密码都是ftp,密码是不显示的。当提示**** logged in时,就说明登陆成功。这里因为是匿名登陆,所以用户显示为Anonymous。   

      接下来就要介绍具体命令的使用方法了。   

      dir 跟DOS命令一样,用于查看服务器的文件,直接敲上dir回车,就可以看到此ftp服务器上的文件。

      cd 进入某个文件夹。

      get 下载文件到本地机器。

      put 上传文件到远程服务器。这就要看远程ftp服务器是否给了你可写的权限了,如果可以,呵呵,该怎么 利用就不多说了,大家就自由发挥去吧。

      delete 删除远程ftp服务器上的文件。这也必须保证你有可写的权限。

      bye 退出当前连接。

      quit 同上。
      

    八,telnet

      功能强大的远程登陆命令,几乎所有的入侵者都喜欢用它,屡试不爽。为什么?它操作简单,如同使用自己的机器一样,只要你熟悉DOS命令,在成功以administrator身份连接了远程机器后,就可以用它来干你想干的一切了。下面介绍一下使用方法,首先键入telnet回车,再键入help查看其帮助信息。   

      然后在提示符下键入open IP回车,这时就出现了登陆窗口,让你输入合法的用户名和密码,这里输入任何密码都是不显示的。   

      当输入用户名和密码都正确后就成功建立了telnet连接,这时候你就在远程主机上具有了和此用户一样的权限,利用DOS命令就可以实现你想干的事情了。这里我使用的超级管理员权限登陆的。  

      到这里为止,网络DOS命令的介绍就告一段落了,这里介绍的目的只是给菜鸟网管一个印象,让其知道熟悉和掌握网络DOS命令的重要性。其实和网络有关的DOS命令还远不止这些,这里只是抛砖引玉,希望能对广大菜鸟网管有所帮助。学好DOS对当好网管有很大的帮助,特别的熟练掌握了一些网络的DOS命令。

      另外大家应该清楚,任何人要想进入系统,必须得有一个合法的用户名和密码(输入法漏洞差不多绝迹了吧),哪怕你拿到帐户的只有一个很小的权限,你也可以利用它来达到最后的目的。所以坚决消灭空口令,给自己的帐户加上一个强壮的密码,是最好的防御弱口令入侵的方法。

      最后,由衷的说一句,培养良好的安全意识才是最重要的。

    =========================================
    开始→运行→命令集锦
    winver---------检查Windows版本
    wmimgmt.msc----打开windows管理体系结构(WMI)
    wupdmgr--------windows更新程序
    wscrīpt--------windows脚本宿主设置
    write----------写字板
    winmsd---------系统信息
    wiaacmgr-------扫描仪和照相机向导
    winchat--------XP自带局域网聊天

    mem.exe--------显示内存使用情况
    Msconfig.exe---系统配置实用程序
    mplayer2-------简易widnows media player
    mspaint--------画图板
    mstsc----------远程桌面连接
    mplayer2-------媒体播放机
    magnify--------放大镜实用程序
    mmc------------打开控制台
    mobsync--------同步命令

    dxdiag---------检查DirectX信息
    drwtsn32------ 系统医生
    devmgmt.msc--- 设备管理器
    dfrg.msc-------磁盘碎片整理程序
    diskmgmt.msc---磁盘管理实用程序
    dcomcnfg-------打开系统组件服务
    ddeshare-------打开DDE共享设置
    dvdplay--------DVD播放器

    net stop messenger-----停止信使服务
    net start messenger----开始信使服务
    notepad--------打开记事本
    nslookup-------网络管理的工具向导
    ntbackup-------系统备份和还原
    narrator-------屏幕"讲述人"
    ntmsmgr.msc----移动存储管理器
    ntmsoprq.msc---移动存储管理员操作请求
    netstat -an----(TC)命令检查接口

    syncapp--------创建一个公文包
    sysedit--------系统配置编辑器
    sigverif-------文件签名验证程序
    sndrec32-------录音机
    shrpubw--------创建共享文件夹
    secpol.msc-----本地安全策略
    syskey---------系统加密,一旦加密就不能解开,保护windows xp系统的双重密码
    services.msc---本地服务设置
    Sndvol32-------音量控制程序
    sfc.exe--------系统文件检查器
    sfc /scannow---windows文件保护

    tsshutdn-------60秒倒计时关机命令
    tourstart------xp简介(安装完成后出现的漫游xp程序)
    taskmgr--------任务管理器

    eventvwr-------事件查看器
    eudcedit-------造字程序
    explorer-------打开资源管理器


    packager-------对象包装程序
    perfmon.msc----计算机性能监测程序
    progman--------程序管理器

    regedit.exe----注册表
    rsop.msc-------组策略结果集
    regedt32-------注册表编辑器
    rononce -p ----15秒关机
    regsvr32 /u *.dll----停止dll文件运行
    regsvr32 /u zipfldr.dll------取消ZIP支持

    cmd.exe--------CMD命令提示符
    chkdsk.exe-----Chkdsk磁盘检查
    certmgr.msc----证书管理实用程序
    calc-----------启动计算器
    charmap--------启动字符映射表
    cliconfg-------SQL SERVER 客户端网络实用程序
    Clipbrd--------剪贴板查看器
    conf-----------启动netmeeting
    compmgmt.msc---计算机管理
    cleanmgr-------垃圾整理
    ciadv.msc------索引服务程序

    osk------------打开屏幕键盘
    odbcad32-------ODBC数据源管理器
    oobe/msoobe /a----检查XP是否激活
    lusrmgr.msc----本机用户和组
    logoff---------注销命令


    iexpress-------木马捆绑工具,系统自带

    Nslookup-------IP地址侦测器

    fsmgmt.msc-----共享文件夹管理器

    utilman--------辅助工具管理器

    gpedit.msc-----组策略
  • Test Link 1.7 RC1简体中文汉化文件

    2008-12-08 14:25:21

    关键字:testlink  1.7 简体中文 汉化包 \locale\zh_CN

    [separator]
    <?php
    /**
     * TestLink Open Source Project - http://testlink.sourceforge.net/
     *
     * Filename $RCSfile: strings.txt,v $
     *
     * @version $Revision: 1.6 $
     * @modified $Date: 2007/02/27 21:38:24 $ $Author: jbarchibald $
     *
     * @author Francisco Mancardi
     *
     *
    **/

    // General - Leave it here in this way can be reused !!!
    $TLS_asc = "升序";
    $TLS_btn_no = "反对";
    $TLS_create ="创建";
    $TLS_desc = "降序";
    $TLS_test_case ="测试用例";
    $TLS_testcase ="测试用例";
    $TLS_test_plan = "测试计划";
    $TLS_testplan = $TLS_test_plan;
    $TLS_test_suite = "测试组件";
    $TLS_SRS = "软件需求规范说明书";
    $TLS_Role = "角色";
    $TLS_Keyword ="关键字";
    $TLS_Milestone = "里程碑";
    $TLS_testsuite_created = "创建测试组件";

    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7
    // firstLogin.php
    $TLS_cant_create_user ="很抱歉无法为您创建登陆帐号。请与管理员联系!";
    $TLS_empty_email_address =" 电子邮件地址不能为空!";
    $TLS_empty_first_name =" 名字不能为空!";
    $TLS_empty_last_name =" 姓不能为空!";
    $TLS_fatal_page_title ="TestLink ::: 致命错误";
    $TLS_invalid_user_name ="用户名错误,请重新输入。";
    $TLS_passwd_dont_match ="两次输入的密码不一致,请说明密码是大小写敏感的。请重新输入。";
    $TLS_user_cant_be_created_because ="你的帐号无法创建,原因是:";
    $TLS_user_name_exists ="用户名已经被使用,请选择其它的名称。";
    $TLS_valid_user_name_format ="用户名只能包含字母,数字,空格,连字符和下划线。";
    $TLS_warning_empty_pwd ="口令不允许为空!";
    $TLS_your_info_please ="输入你的用户信息";



    // index.php
    $TLS_main_page_title ="TestLink ::: 主页";


    // keywordsimport.php
    $TLS_please_choose_keywords_file = "请选择要上传的文件";

    // lostPassword.php
    $TLS_bad_user ="用户不存在,请重试";
    $TLS_contact_admin ="<br>如果你有近一步的问题,请与系统管理员联系。";
    $TLS_mail_empty_address ="你没有在你的用户档案信息中指定电子邮件地址!请与TestLink系统管理员联系,重新设置你的口令!";
    $TLS_mail_passwd_subject ="新的TestLink口令";
    $TLS_mail_problems ="邮件功能没有正确安装,请与系统管理员联系。";
    $TLS_page_title_lost_passwd ="TestLink - 忘记口令";
    $TLS_your_info_for_passwd ="输入你的用户信息,以便可以通过电子邮件发送你的新口令。";
    $TLS_your_password_is ="你的TestLink新口令是:<br>";



    // login.php
    $TLS_bad_user_passwd ="重试!错误的用户名或口令!";
    $TLS_login_msg_session_exists1 ="浏览器中已经有一个合法的登陆用户。请使用它。";
    $TLS_login_msg_session_exists2 =" 首先,你是否想重新建立会话。";
    $TLS_logout_link ="退出";
    $TLS_passwd_lost ="你的口令已经发送到你注册用户信息时指定的电子邮件地址中。请查看你的邮箱。如果还有其它问题,请与TestLink管理员联系。";
    $TLS_please_login ="请登陆 ...";
    $TLS_session_expired ="你的会话已经超时!请重新登陆。";
    $TLS_your_first_login ="欢迎使用 TestLink!你具有访客权限。请登陆 ...";


    // planPriority.php
    $TLS_high_priority = "高";
    $TLS_low_priority = "低";
    $TLS_medium_priority = "中等";

    $TLS_high_risk = "高";
    $TLS_low_risk = "低";
    $TLS_medium_risk = "中等";

    $TLS_high_importance = "高";
    $TLS_low_importance = "低";
    $TLS_medium_importance = "中等";


    // gui/templates/attachment404.tpl
    $TLS_btn_close ="关闭";
    $TLS_error_attachment_not_found = "错误:没有找到附件!";
    $TLS_title_downloading_attachment = "下载附件";



    // gui/templates/attachmentdelete.tpl
    $TLS_deleting_was_ok = "附件已删除!";
    $TLS_error_attachment_delete = "正在删除附件出错!";
    $TLS_title_delete_attachment = "删除附件";



    // gui/templates/containerDelete.tpl
    $TLS_btn_yes_del_comp ="是的,删除组件!";
    $TLS_container_title_testsuite =$TLS_test_suite;
    $TLS_linked_but_not_executed="已链接到一个或多个测试计划, 但尚未执行";
    $TLS_question_del ="真的删除";
    $TLS_th_link_exec_status = "链接与执行状态";



    // gui/templates/containerNew.tpl
    $TLS_btn_create_testsuite = "创建测试组件";
    $TLS_tc_keywords ="关键字";
    $TLS_title_create ="创建";
    $TLS_warning_empty_testsuite_name = "请给测试组件命名";



    // gui/templates/bug_add.tpl
    $TLS_btn_add_bug = "添加Bug关联";
    $TLS_bug_id = "Bug编号";
    $TLS_button_enter_bug ="录入新的Bug";
    $TLS_title_bug_add = "建立测试结果与Bug的关联";



    // gui/templates/bug_delete.tpl
    $TLS_title_delete_bug = "删除问题";



    // gui/templates/containerMove.tpl
    $TLS_btn_cp ="复制";
    $TLS_btn_move ="移动";
    $TLS_choose_target ="选择目标";
    $TLS_cont_move_first ="移动这个";
    $TLS_cont_move_second ="到另一个";
    $TLS_copy_keywords ="复制关键字"; // add by wangyy
    $TLS_defined_exclam ="已定义!";
    $TLS_include_nested ="包含嵌套数据(只能复制)";
    $TLS_sorry_further ="很抱歉没有更多的 ";
    $TLS_title_move_cp ="移动/复制";



    // gui/templates/reqCreate.tpl
    $TLS_btn_cancel ="取消";
    $TLS_btn_create ="创建";
    $TLS_help ="帮助";
    $TLS_req_create ="创建一个新需求";
    $TLS_req_doc_id ="文档标识";
    $TLS_req_spec ="测试需求";
    $TLS_reqs ="需求";
    $TLS_req = "需求";
    $TLS_scope ="范围";
    $TLS_status ="状态";
    $TLS_title ="标题";
    $TLS_warning_empty_req_title = "需求标题不能为空!";
    $TLS_warning_empty_reqdoc_id = "需求文档编号不能为空!";



    // gui/templates/containerOrder.tpl
    $TLS_btn_upd ="更新";
    $TLS_no_nodes_to_reorder = "对不起没有东西需要重新安排!";
    $TLS_node = "名称";
    $TLS_th_id ="标识";
    $TLS_th_node_type = "测试实例 / 测试组件";
    $TLS_th_order ="顺序";
    $TLS_title_change_node_order = "改变子顺序";
    $TLS_node_type_dbtable_testsuites=$TLS_test_suite;
    $TLS_node_type_dbtable_testcases=$TLS_testcase;



    // gui/templates/containerView.tpl
    $TLS_alt_del_com ="删除这个组件";
    $TLS_alt_edit_com ="修改这个组件的数据和标题";
    $TLS_alt_move_cp_com ="将这个组件移动或复制到另一个项目中";
    $TLS_btn_del_com ="删除";
    $TLS_btn_edit_com ="编辑";
    $TLS_btn_export_all_testsuites = "导出全部测试组件";
    $TLS_btn_export_tc = "导出测试实例";
    $TLS_btn_export_testsuite = "导出测试组件";
    $TLS_btn_import_tc ="导入测试用例";
    $TLS_btn_import_testsuite = "导入测试组件";
    $TLS_btn_move_cp_com ="移动/复制";
    $TLS_btn_new_cat ="新建分类";
    $TLS_btn_new_com ="新建组件";
    $TLS_btn_new_tc ="创建测试用例";
    $TLS_btn_reorder_cat ="分类重新排序";
    $TLS_edit_testproject_basic_data = "编辑测试计划基本数据";
    $TLS_th_notes ="说明";
    $TLS_th_product_name ="项目名称";



    // gui/templates/cfields_edit.tpl
    $TLS_available_on = "可利用为";
    $TLS_btn_add ="增加";
    $TLS_btn_delete ="删除";
    $TLS_btn_ok = "同意";
    $TLS_custom_field = "自定义范围";
    $TLS_enable_on_design = "允许操作 <br>测试文档";
    $TLS_enable_on_exec = "允许操作 <br>测试指令";
    $TLS_label = "标注";
    $TLS_name ="名称";
    $TLS_popup_delete_custom_field = "允许你删除你所订制的领域?";
    $TLS_possible_values = "可能的值";
    $TLS_show_on_design = "显示在 <br>测试文档";
    $TLS_show_on_exec = "显示在 <br>测试指令";
    $TLS_testcase = $TLS_test_case;
    $TLS_title_cfields_mgmt = "自定义范围";
    $TLS_type = "类型";
    $TLS_warning_empty_cfield_label = "请在这个标记中录入自定义字段.";
    $TLS_warning_empty_cfield_name = "请在这个名称中录入自定义字段.";



    // gui/templates/inc_update.tpl
    $TLS_info_failed_db_upd ="更新数据库失败!";
    $TLS_info_failed_db_upd_details ="更新数据库失败!-- 详细信息:";
    $TLS_invalid_query ="无效的查询";
    $TLS_warning = "告警!!";
    $TLS_was_success =" 已成功 ";



    // gui/templates/execNavigator.tpl
    $TLS_TestPlan ="测试计划";
    $TLS_btn_apply_filter = "应用过滤器";
    $TLS_btn_update_menu ="更新菜单";
    $TLS_caption_nav_filter_settings ="导航 - 筛选和设置";
    $TLS_current_build = "当前编译";
    $TLS_filter_owner ="筛选: 拥有者";
    $TLS_filter_result ="筛选: 结果";
    $TLS_filter_tcID ="筛选: 测试用例标识";
    $TLS_keyword ="关键字";
    $TLS_test_status_all_status="所有";


    // gui/templates/mainPage.tpl
    $TLS_th_my_perc_completed ="已完成 [%]";
    $TLS_th_name ="名称";
    $TLS_th_perc_completed ="已完成 [%]";
    $TLS_title_your_tp_metrics ="你的测试计划度量";



    // gui/templates/emailSent.tpl
    $TLS_send_test_report ="- 发送测试报告";



    // gui/templates/reqImport.tpl
    $TLS_Result ="结果";
    $TLS_Title ="标题";
    $TLS_btn_back2srs ="返回测试需求";
    $TLS_btn_import ="导入";
    $TLS_btn_upload_file ="上传文件";
    $TLS_check_req_file_structure = "请检查文件格式,看起来是不可能提取任何需求";
    $TLS_local_file ="文件:";
    $TLS_max_size_cvs_file1 ="文件最大不超过";
    $TLS_max_size_cvs_file2 = "kB";
    $TLS_req_import_check_note ="请验证可能存在的冲突,选择合适的解决方案,然后再开始执行导入操作。";
    $TLS_req_import_dont_empty ="不要导入空的项目";
    $TLS_req_import_option_double ="增加一个相同标题的需求";
    $TLS_req_import_option_header ="指定冲突的解决方案";
    $TLS_req_import_option_overwrite ="更新已有的需求";
    $TLS_req_import_option_skip ="跳过导入重复的需求。";
    $TLS_req_import_type ="类型:";
    $TLS_req_msg_norequirement ="没有需求";
    $TLS_required_cvs_format ="文件格式:";
    $TLS_title_choose_file_type ="选择文件类型";
    $TLS_title_choose_local_file ="选择要上传的本地文件";
    $TLS_title_req_import = "导入需求";
    $TLS_title_req_import_check_input ="检测导入数据";



    // gui/templates/inc_attachments.tpl
    $TLS_alt_delete_build ="点击这里删除这个构建";
    $TLS_attached_files = "附上的文件";
    $TLS_attachment_feature_disabled = "附件无效";
    $TLS_button_upload = "上传";
    $TLS_upload_file_new_file = "新文件上传";
    $TLS_warning_delete_attachment = "真的要删除这个附件吗?";



    // gui/templates/resultsNavigator.tpl
    $TLS_btn_print ="打印";
    $TLS_note_email_sent_t = "注释: 电子邮件格式送到了使用者的电子邮件";
    $TLS_send_results ="发送结果";
    $TLS_send_to = "到:";
    $TLS_subject = "主题:";
    $TLS_title_active_build ="活动的构建";
    $TLS_title_report_type = "报表格式";
    $TLS_via_email ="到电子邮件";



    // gui/templates/inc_attachments_upload.tpl



    // gui/templates/cfields_view.tpl
    $TLS_btn_cfields_create = "创建";
    $TLS_manage_cfield = "处理自定义范围";



    // gui/templates/inc_cat_viewer_ro_m0.tpl
    $TLS_cat_scope ="范围和目标";
    $TLS_category ="分类";
    $TLS_configuration ="配置";
    $TLS_data ="数据";
    $TLS_not_defined ="未定义的";
    $TLS_tools ="工具";



    // gui/templates/inc_cat_viewer_rw.tpl
    $TLS_cat_alt_name ="增加分类名称。这是必填项";
    $TLS_cat_config ="配置";
    $TLS_cat_data ="数据";
    $TLS_cat_name ="分类名称";
    $TLS_cat_tools ="工具";



    // gui/templates/reqEdit.tpl
    $TLS_btn_update ="更新";
    $TLS_by ="源自:";
    $TLS_coverage ="覆盖率";
    $TLS_popup_delete_req ="你确定要删除这个需求吗?";
    $TLS_req_edit ="编辑需求";
    $TLS_req_msg_notestcase ="没有关联的测试用例";
    $TLS_requirement_spec = "需求规格说明书";
    $TLS_test_case_id = "标识";
    $TLS_title_created ="创建日期:";
    $TLS_title_last_mod ="最后修改日期:";



    // gui/templates/buildNew.tpl
    $TLS_active = "当前";
    $TLS_enter_build ="输入构建的标识";
    $TLS_enter_build_notes ="构建的说明:";
    $TLS_msg_build ="每个构建将与一个活动的测试计划相关联";
    $TLS_open = "打开";
    $TLS_test_plan = "测试计划";
    $TLS_title_build_2 = "组件管理";
    $TLS_title_build_create = "创建新组件";
    $TLS_title_build_update = "更新组件";
    $TLS_warning_empty_build_name = "请给组件输入新名称!";



    // gui/templates/inc_comp_viewer_ro.tpl
    $TLS_component ="组件";
    $TLS_introduction ="介绍";
    $TLS_limitations ="限制";
    $TLS_methodology ="方法论";
    $TLS_references ="参考";



    // gui/templates/inc_comp_viewer_rw.tpl
    $TLS_comp_alt_name ="添加组件名称。这是必填项";
    $TLS_comp_intro ="介绍";
    $TLS_comp_lim ="限制";
    $TLS_comp_method ="方法论";
    $TLS_comp_name ="组件名称";
    $TLS_comp_ref ="参考";
    $TLS_comp_scope ="范围";



    // gui/templates/reqSpecView.tpl
    $TLS_btn_analyse ="分析";
    $TLS_btn_check_all ="全选";
    $TLS_btn_delete_spec ="删除文档";
    $TLS_btn_edit_spec ="编辑文档";
    $TLS_btn_export_reqs = "导出需求";
    $TLS_btn_req_create ="创建新的测试需求";
    $TLS_btn_spec_list ="文档列表";
    $TLS_btn_uncheck_all ="全都不选";
    $TLS_cant_delete_req_nothing_sel = "请选择一个需求!";
    $TLS_popup_sure_delete ="你确定要删除需求文档吗?";
    $TLS_req_select_create_tc ="创建测试用例";
    $TLS_req_select_delete ="删除需求";
    $TLS_req_title_list ="需求列表";
    $TLS_req_total ="需求总数";
    $TLS_warning_delete_requirements = "你确定要删除刚选择的需求吗?";



    // gui/templates/inc_copyrightnotice.tpl
    $TLS_gnu_gpl = "GNU  General Public License";
    $TLS_lic_home ="主页";
    $TLS_lic_product ="项目";
    $TLS_licensed_under ="TestLink许可协议";



    // gui/templates/containerEdit.tpl
    $TLS_btn_update_testsuite = "更新测试组";
    $TLS_title_edit_level ="编辑";



    // gui/templates/reqSpecAnalyse.tpl
    $TLS_edit ="编辑";
    $TLS_none ="无";
    $TLS_req ="需求";
    $TLS_req_spec_change ="切换需求文档";
    $TLS_req_title_analyse ="分析需求文档";
    $TLS_req_title_covered ="覆盖的需求";
    $TLS_req_title_nottestable ="无法测试的需求";
    $TLS_req_title_uncovered ="未覆盖的需求";
    $TLS_req_total_count ="需求总数";
    $TLS_testcases ="测试用例";



    // gui/templates/reqSpecCreate.tpl
    $TLS_action_create_srs = "创建需求规格说明书";
    $TLS_testproject = "测试计划";



    // gui/templates/inc_reqView.tpl
    $TLS_Author ="作者";
    $TLS_last_edit ="最后编辑人";



    // gui/templates/inc_res_by_comp.tpl
    $TLS_title_res_by_top_level_suites = "结果(按顶级测试组件)";
    $TLS_trep_blocked ="锁定";
    $TLS_trep_comp ="组件";
    $TLS_trep_comp_perc ="已完成 [%]";
    $TLS_trep_failed ="失败";
    $TLS_trep_not_run ="尚未执行";
    $TLS_trep_passed ="通过";
    $TLS_trep_total ="总数";



    // gui/templates/inc_res_by_keyw.tpl
    $TLS_title_res_by_kw ="结果(按关键字)";
    $TLS_trep_kw ="关键字";



    // gui/templates/inc_res_by_owner.tpl
    $TLS_title_res_by_owner ="结果(按拥有者)";
    $TLS_trep_owner ="拥有者";



    // gui/templates/inc_res_by_prio.tpl
    $TLS_tit_end_date ="结束日期";
    $TLS_tit_milestone ="里程碑";
    $TLS_title_res_by_prio ="结果(按优先级)";
    $TLS_trep_milestone_goal ="里程碑目标 [%]";
    $TLS_trep_prio ="优先级";
    $TLS_trep_status ="状态";



    // gui/templates/inc_res_by_ts.tpl
    $TLS_title_res_by_ts ="结果(按测试集)";
    $TLS_trep_imp ="重要性";
    $TLS_trep_risk ="风险性";
    $TLS_trep_ts ="测试集";



    // gui/templates/reqSpecEdit.tpl



    // gui/templates/inc_show_bug_table.tpl
    $TLS_build ="构建标识";
    $TLS_caption_bugtable ="相关问题";
    $TLS_del_bug_warning_msg = "真的要删除这个问题吗?";



    // gui/templates/reqSpecList.tpl
    $TLS_btn_assign_tc ="指派测试用例";
    $TLS_no_docs ="没有可用的文档。";
    $TLS_req_list_docs ="文档列表";



    // gui/templates/tcEdit_New_viewer.tpl
    $TLS_alt_add_tc_name ="输入测试用例名称。这是必填项。";
    $TLS_expected_results ="期望的结果";
    $TLS_steps ="步骤";
    $TLS_summary ="摘要";
    $TLS_tc_title ="测试用例标题";



    // gui/templates/show_exec_notes.tpl
    $TLS_title_execution_notes = "执行附注";



    // gui/templates/rolesedit.tpl
    $TLS_btn_create_role = "创建";
    $TLS_btn_edit_role = "编辑";
    $TLS_caption_define_role = "定义角色";
    $TLS_caption_possible_affected_users = "可能对使用者的影响";
    $TLS_enter_role_notes = "进入角色描述";
    $TLS_menu_assign_product_roles = "分配测试项目权限";
    $TLS_menu_assign_testplan_roles = "分配测试计划权限";
    $TLS_menu_define_roles = "定义角色";
    $TLS_menu_mod_user ="修改用户";
    $TLS_menu_new_user ="新增用户";
    $TLS_menu_view_users = "用户窗口";
    $TLS_menu_view_roles = "角色窗口";
    $TLS_th_cf_rights = "自定义字段权限";
    $TLS_th_kw_rights = "关键字权限";
    $TLS_th_mgttc_rights = "测试用例管理权限";
    $TLS_th_product_rights = "测试项目权限";
    $TLS_th_req_rights = "需求权限";
    $TLS_th_rights ="权限";
    $TLS_th_rolename = "角色名称";
    $TLS_th_tp_rights = "测试计划权限";
    $TLS_th_user_rights = "用户权限";
    $TLS_title_user_mgmt ="用户管理";
    $TLS_warning_modify_role = "真的要修改角色吗?";



    // gui/templates/tcSearchForm.tpl
    $TLS_btn_find ="查找";
    $TLS_caption_search_form ="搜索测试用例";
    $TLS_not_applied ="不指定";
    $TLS_th_tcid ="测试用例标识";
    $TLS_th_tcversion = "版本";
    $TLS_th_title ="标题";
    $TLS_title_search_tcs ="搜索";



    // gui/templates/infoWindow.tpl



    // gui/templates/tcDelete.tpl
    $TLS_btn_yes_iw2del ="是, 删除测试用例!";
    $TLS_question_del_tc ="真的要删除测试用例吗?";
    $TLS_th_executed = "执行";
    $TLS_th_linked_to_tplan = "连接测试计划";
    $TLS_th_version = "版本";



    // gui/templates/tcNew.tpl
    $TLS_title_new_tc ="创建测试用例";
    $TLS_warning_empty_tc_title ="请为测试用例指定标题";



    // gui/templates/tcImport.tpl
    $TLS_title_imp_tc_data = "导入测试计划数据";



    // gui/templates/keywordsimport.tpl
    $TLS_title_keyword_import_to = "导入关键字到";



    // gui/templates/keywordsexport.tpl
    $TLS_btn_export = "导出";
    $TLS_title_req_import_to ="向文档中导入需求";



    // gui/templates/cfields_tproject_assign.tpl
    $TLS_btn_assign ="指派";
    $TLS_btn_cfields_active_mgmt = "更新现役状态";
    $TLS_btn_cfields_display_order = "存储显示命令";
    $TLS_btn_unassign ="取消指派";
    $TLS_cfields_active = "当前";
    $TLS_cfields_tproject_assign = "指定自定义范围";
    $TLS_display_order = "显示命令";
    $TLS_title_assigned_cfields = "分配自定义字段";
    $TLS_title_available_cfields = "可用到的自定义字段";



    // gui/templates/usersview.tpl
    $TLS_No ="否";
    $TLS_Yes ="是";
    $TLS_alt_delete_user = "真的要删除所选择的用户吗?";
    $TLS_alt_edit_user = "编辑用户";
    $TLS_order_by_login = "根据登入命令";
    $TLS_order_by_role_descr = "根据角色描述命令";
    $TLS_th_active ="活动的";
    $TLS_th_delete ="是否删除?";
    $TLS_th_email ="电子邮件";
    $TLS_th_first_name ="名字";
    $TLS_th_last_name ="姓";
    $TLS_th_locale ="语言";
    $TLS_th_login ="帐号";
    $TLS_th_role ="角色";
    $TLS_warning_delete_user = "真的要删除所选择的用户吗?";



    // gui/templates/login.tpl
    $TLS_btn_login ="登陆";
    $TLS_login_name ="登陆名:";
    $TLS_lost_password_q ="忘记口令";
    $TLS_new_user_q ="注册新用户";
    $TLS_password ="口令:";



    // gui/templates/loginFirst.tpl
    $TLS_btn_add_user_data ="添加用户信息";
    $TLS_e_mail ="电子邮件地址(用来发送忘记了的口令等):";
    $TLS_first_name ="名字:";
    $TLS_last_name ="姓:";
    $TLS_link_back_to_login ="返回登录";
    $TLS_password_again ="再次输入口令:";
    $TLS_password_mgmt_is_external = "密码管理是外部的";



    // gui/templates/tcMove.tpl
    $TLS_btn_mv ="移动";
    $TLS_choose_cat ="选择分类";
    $TLS_inst_move ="将这个测试用例移动到另一个分类下(同一组件内)";
    $TLS_title_mv_cp_tc ="移动/复制测试用例";



    // gui/templates/loginLost.tpl
    $TLS_btn_send ="发送";
    $TLS_password_reset = "密码重置";



    // gui/templates/tcView.tpl
    $TLS_no_records_found ="没有查询到任何结果";



    // gui/templates/execSetResults.tpl
    $TLS_alt_attachment_mgmt = "附件";
    $TLS_alt_notes = "注释";
    $TLS_attachment_mgmt = "附件";
    $TLS_btn_history_off = "显示唯一的最后一次执行";
    $TLS_btn_history_on = "显示完全的执行历史";
    $TLS_btn_save_all_tests_results = "存储所有的执行";
    $TLS_btn_save_tc_exec_results ="保存结果";
    $TLS_bug_mgmt = "BUG 管理";
    $TLS_build_is_closed = "建立被关闭";
    $TLS_builds_notes = "构建描述";
    $TLS_bulk_tc_status_management = "批量设置测试用例状态";
    $TLS_date_time_run = "日期";
    $TLS_details = "详细资料";
    $TLS_exec_notes = "注意";
    $TLS_exec_status = "状态";
    $TLS_execution_history = "执行历史";
    $TLS_img_title_bug_mgmt = "Bug 管理";
    $TLS_img_title_delete_execution= "删除执行";
    $TLS_just_last_execution_for_this_build = "这个构建最后执行的版本:";
    $TLS_no_data_available = "没有数据可用";
    $TLS_set_all_tc_to = "将所有的设定为状态";
    $TLS_show_hide = "显示/隐藏";
    $TLS_tc_not_tested_yet ="尚未测试的";
    $TLS_test_cases_cannot_be_executed = "测试实例不能运行";
    $TLS_test_exec_by ="执行人:";
    $TLS_test_exec_expected_r ="期望的结果";
    $TLS_test_exec_last_run_date ="最近的执行:";
    $TLS_test_exec_notes ="说明/描述";
    $TLS_test_exec_on_build ="→构建";
    $TLS_test_exec_result ="结果";
    $TLS_test_exec_steps ="步骤";
    $TLS_test_exec_summary ="摘要";
    $TLS_test_plan_notes = "测试计划注释";
    $TLS_test_status_not_run ="尚未执行";
    $TLS_th_test_case_id ="标识";
    $TLS_th_testsuite = "测试组";
    $TLS_title_t_r_on_build ="测试结果→构建";
    $TLS_title_t_r_owner ="拥有者";
    $TLS_title_test_case ="测试用例";
    $TLS_version ="版本";



    // gui/templates/inc_testsuite_viewer_ro.tpl
    $TLS_keywords ="关键字";
    $TLS_test_suite = "测试组件";



    // gui/templates/navBar.tpl
    $TLS_home ="主页";
    $TLS_link_logout ="注销";
    $TLS_product ="项目";
    $TLS_product_role = "项目权限";
    $TLS_title_edit_personal_data ="个人帐号";
    $TLS_title_execute ="执行测试";
    $TLS_title_results ="测试结果";
    $TLS_title_specification ="测试文档";



    // gui/templates/inc_testsuite_viewer_rw.tpl



    // gui/templates/planAddTC_m1.tpl
    $TLS_add_remove_selected_tc_hint = "操作将会被适用于所有的测试组";
    $TLS_btn_add_remove_selected_tc = "增加 / 移除 选择";
    $TLS_btn_add_selected_tc ="增加选择的测试用例";
    $TLS_btn_check ="全选";
    $TLS_btn_uncheck ="全都不选";
    $TLS_check_uncheck_tc ="分类中的测试用例";
    $TLS_has_been_executed = "已经被运行";
    $TLS_inactive_testcase = "无效";
    $TLS_no_testcase_available = "无测试实例可用";
    $TLS_note_keyword_filter ="用关键字进行筛选的测试用例";
    $TLS_remove_tc = "移除";
    $TLS_th_test_case ="测试用例";
    $TLS_title_add_remove_test_to_plan = "增加/移除测试实例到测试计划";
    $TLS_title_add_test_to_plan ="将测试用例添加到测试计划";
    $TLS_warning_add_remove_selected_tc = "警告! 你真的要移除测试计划中的测试实例吗?";



    // gui/templates/planAddTCNavigator.tpl
    $TLS_title_navigator ="导航";



    // gui/templates/planPriority.tpl
    $TLS_btn_upd_prio ="更新";
    $TLS_title_priority ="为这个测试计划定义优先级规则";
    $TLS_tr_th_importance = "重要性";
    $TLS_tr_th_prio_cba ="优先级 (C/B/A)";
    $TLS_tr_th_risk ="风险/重要性";



    // gui/templates/planEdit.tpl
    $TLS_btn_testplan_create = "创建";
    $TLS_cancel = "取消";
    $TLS_opt_no ="否";
    $TLS_testplan_question_create_tp_from = "在已有的测试计划创建?";
    $TLS_no_test_plans = "没有定义测试计划!";
    $TLS_testplan_th_active = "使用中";
    $TLS_testplan_th_name = "名称";
    $TLS_testplan_th_notes = "描述";
    $TLS_testplan_title_create = "创建一个新测试计划";
    $TLS_testplan_title_edit = "编辑这个测试计划";
    $TLS_testplan_title_for_project = "为: ";
    $TLS_testplan_title_tp_management = "测试计划管理";
    $TLS_testplan_txt_notes = "测试计划必须明确地定义任务的时间范围和内容。它包含产品新版本(包含热补丁),同样包括客户简单的需求变更的测试活动。<br />描述字段供填写测试计划和相关的文档的链接、要测试的功能列表、风险等等。<br />你可以从原有的测试项目里创建一个新的测试计划. 以下内容将被复制过来:构建、测试用例,重点,里程碑和用户角色.<br />测试计划可以被禁用;禁用后不允许编辑和修改结果. 只有通过本页面和报告页面才能看到这个测试计划.";
    $TLS_warning_empty_tp_name ="必须为测试计划指定名称!";
    $TLS_warning_duplicate_tp_name = "警告:测试计划重名";


    // gui/templates/planNew.tpl
    $TLS_testplan_btn_edit = "更新";
    $TLS_testplan_btn_new = "创建";
    $TLS_testplan_menu_create = "创建";
    $TLS_testplan_menu_edit = "编辑";
    $TLS_testplan_menu_list = "目录";



    // gui/templates/planMilestones.tpl
    $TLS_alt_delete_milestone = "删除这个里程碑吗?";
    $TLS_btn_edit_milestone = "编辑";
    $TLS_btn_new_milestone ="创建";
    $TLS_info_milestones_date ="里程碑的日期必须大于等于今天";
    $TLS_no_milestones ="这个测试计划中没有创建里程碑!";
    $TLS_th_date_format ="日期 (YYYY-MM-DD)";
    $TLS_th_perc_a_prio ="% A 优先级";
    $TLS_th_perc_b_prio ="% B 优先级";
    $TLS_th_perc_c_prio ="% C 优先级";
    $TLS_title_existing_milestones ="已有的里程碑";
    $TLS_title_milestones ="测试计划的里程碑";
    $TLS_title_new_milestone ="里程碑";



    // gui/templates/projectedit.tpl
    $TLS_btn_activate ="激活";
    $TLS_btn_del ="删除";
    $TLS_btn_edit_del ="编辑 / 删除";
    $TLS_btn_inactivate ="禁用";
    $TLS_caption_edit_product ="编辑项目";
    $TLS_caption_new_product ="新项目";
    $TLS_color ="颜色";
    $TLS_enable_requirements ="启用需求功能";
    $TLS_info_failed_loc_prod ="本地化产品失败";
    $TLS_notes ="相关的说明";
    // Warning!!! - if JS string you must use \\n to get \n                                      
    $TLS_popup_product_delete ="警告!这个操作会永久删除与项目相关的所有数据(包括测试结果、计划等)。你也可以使用禁用来代替删除操作。\\n建议:首先备份数据库。\\n你确定要删除这个项目吗?";
                                "数据 (包括 测试结果, 计划, 等等.). " .
                                "你也可以以撤消来代替删除.\\n" .
                                "建议:首先执行转储数据库.\\n" .
                                "你确定删除测试项目?";
    $TLS_warning_empty_tproject_name = "测试项目名称不能为空";



    // gui/templates/reqAssign.tpl
    $TLS_please_select_a_req = "请选择一个需求";
    $TLS_req_msg_norequirement66 = "没有需求";
    $TLS_req_title_assign ="将需求指派给测试用例:";
    $TLS_req_title_assigned ="已指派的需求";
    $TLS_req_title_unassigned ="有效的需求";
    $TLS_warning_req_tc_assignment_impossible = "你 <b>不能</b> 转让是由于这些原因:<br><ul><li>说明书上没有明确的规定 </li><li> 需求说明书却是空 </ul></li></ul>";



    // gui/templates/tcEdit.tpl
    $TLS_title_edit_tc ="编辑测试用例";
    $TLS_warning_editing_executed_tc = "警告!:这个测试用例已经执行";



    // gui/templates/planOwner.tpl
    $TLS_assign_ownership ="设置所有权";
    $TLS_def_prio_rules ="定义优先级规则";
    $TLS_opt_label_none ="无";
    $TLS_th_imp ="重要性";
    $TLS_th_owner ="拥有者";
    $TLS_th_risk ="风险";
    $TLS_th_test_suite ="测试集";
    $TLS_title_plan_ownership ="测试计划所有权";



    // gui/templates/tcView_viewer.tpl
    $TLS_activate_this_tcversion = "激活这个版本";
    $TLS_Requirements ="需求";
    $TLS_btn_del_this_version = "删除这个版本";
    $TLS_btn_edit ="编辑";
    $TLS_btn_mv_cp ="移动/复制";
    $TLS_btn_new_version = "创建一个新的版本";
    $TLS_can_not_edit_tc = "你无法编辑这个版本,因为它已经在执行 ";
    $TLS_deactivate_this_tcversion = "撤消这个版本";
    $TLS_tcversion_is_inactive_msg = "这个版本是无效的 => 将无法被列入测试计划";



    // gui/templates/planRemoveTC_m1.tpl
    $TLS_btn_remove_selected_tc = "移除选中的测试用例";
    $TLS_remove_ok = "移除成功";
    $TLS_title_remove_test_from_plan = "移除来自测试计划的测试用例";



    // gui/templates/planTesters.tpl
    $TLS_btn_save ="保存";



    // gui/templates/keywordsAssign.tpl
    $TLS_keyword_assignment_empty_tsuite = "请先在没有设置测试用例之前指派关键字是不可能的";
    $TLS_menu_assign_kw_to_tc ="指派到测试用例";
    $TLS_menu_manage_keywords = "关键字管理";
    $TLS_title_keywords ="关键字";



    // gui/templates/planTestersNavigator.tpl
    $TLS_label_list_of = "列出";
    $TLS_opt_test_plans ="测试计划";
    $TLS_opt_users ="用户";



    // gui/templates/planUpdateTC.tpl
    $TLS_btn_upd_ck_tc ="更新选中的测试用例";
    $TLS_info_all_tc_uptodate ="所有的测试用例在上一次测试后都是没有变更。";
    $TLS_th_category ="分类";
    $TLS_th_component ="组件";
    $TLS_th_id_tc ="[标识]测试用例";
    $TLS_th_reason ="更新原因";
    $TLS_th_spec_version ="文档版本";
    $TLS_th_status ="状态";
    $TLS_th_suite_version ="测试集版本";
    $TLS_th_update ="更新";
    $TLS_title_upd_mod_tc ="更新已修改的测试用例→测试计划";



    // gui/templates/keywordsView.tpl
    $TLS_alt_delete_keyword = "删除关键字?";
    $TLS_btn_create_keyword ="新建关键字";
    $TLS_btn_edit_keyword = "编辑";
    $TLS_btn_import_keywords = "输入";
    $TLS_th_keyword ="关键字";
    $TLS_warning_delete_keyword = "你确定你想要删除关键字吗?";
    $TLS_warning_enter_at_least1 ="请至少输入 ";
    $TLS_warning_enter_at_least2 =" 个字符。";
    $TLS_warning_enter_less1 ="请最多输入";
    $TLS_warning_enter_less2 =" 个字符。";



    // gui/templates/reqexport.tpl
    $TLS_title_req_export_to = "导出需求";



    // gui/templates/resultsAllBuilds.tpl
    $TLS_test_status_blocked ="锁定";
    $TLS_test_status_failed ="失败";
    $TLS_test_status_passed ="通过";
    $TLS_th_build ="构建标识";
    $TLS_th_tc_total ="全部测试用例";



    // gui/templates/resultsBugs.tpl
    $TLS_date ="日期:";
    $TLS_printed_by ="由TestLink打印";
    $TLS_title_test_case_bugs = "测试实例问题";
    $TLS_title_test_case_timestamp = "测试实例时间信息";
    $TLS_title_test_case_title ="测试标题";
    $TLS_title_test_suite_name = "测试分类名称";



    // gui/templates/resultsBuild.tpl
    $TLS_title_met_of_build ="中的度量结果→构建";



    // gui/templates/resultsByStatus.tpl
    $TLS_info_test_results ="这里只列出最后一次的测试结果。如果最后构建的测试结果是另外的状态(除非尚未执行测试),测试用例将不会显示。";
    $TLS_th_bugs ="问题";
    $TLS_th_date ="日期";
    $TLS_th_run_by ="执行人";



    // gui/templates/resultsGeneral.tpl
    $TLS_title_gen_test_rep ="总体测试计划度量";



    // gui/templates/resultsMoreBuilds_query_form.tpl
    $TLS_excel_format = "MS Excel";
    $TLS_html_format = "HTML";
    $TLS_last_status_any ="不限";
    $TLS_last_status_blocked ="锁定";
    $TLS_last_status_failed ="失败";
    $TLS_last_status_not_run ="尚未执行";
    $TLS_last_status_passed ="通过";
    $TLS_select_builds_header ="选择构建";
    $TLS_select_components_header ="选择组件";
    $TLS_select_keyword_header ="选择关键字";
    $TLS_select_last_result_header ="选择最近的结果";
    $TLS_select_owner_header ="选择拥有者";
    $TLS_select_report_format_header ="选择报告格式";
    $TLS_submit_query ="提交查询";
    $TLS_test_plan_header ="测试计划 : ";
    $TLS_query_metrics_report = "查询度量报表";


    // gui/templates/resultsMoreBuilds_report.tpl
    $TLS_caption_show_collapse = "显示/ 压缩";
    $TLS_caption_user_selected_query_parameters = "查询变量";
    $TLS_not_yet_executed = "尚未执行";
    $TLS_show_hide_all ="显示/隐藏全部";
    $TLS_th_builds = "编译/建立";
    $TLS_th_execution_ts = "时间";
    $TLS_th_last_result = "最近一次结果";
    $TLS_th_report_format = "报告类型";
    $TLS_th_test_plan = "测试计划";
    $TLS_th_test_suites = "组件";
    $TLS_th_tester_id = "测试员";
    $TLS_th_total_block = "#封锁 ";
    $TLS_th_total_cases = "#测试实例";
    $TLS_th_total_fail = "#失败";
    $TLS_th_total_not_run = "#无法运行";
    $TLS_th_total_pass = "#通过";



    // gui/templates/resultsReqs.tpl
    $TLS_req_title_blocked ="锁定的需求";
    $TLS_req_title_failed ="错误的需求";
    $TLS_req_title_notrun ="尚未执行的需求";
    $TLS_req_title_passed ="通过的需求";
    $TLS_title_result_req_testplan ="基于需求文档的测试结果";
    $TLS_title_test_plan ="测试计划";



    // gui/templates/resultsSend.tpl
    $TLS_btn_send_report ="发送";
    $TLS_check_send_to_me ="给自己发送一份拷贝";
    $TLS_mail_body ="内容:";
    $TLS_mail_report ="报告:";
    $TLS_mail_subject ="主题:";
    $TLS_mail_to ="发送给:";
    $TLS_status_for_build ="构建的状态";
    $TLS_tp_status ="总体测试计划状态";
    $TLS_tp_status_for_build ="构建的测试计划状态";



    // gui/templates/resultsTC.tpl



    // gui/templates/tcEdit_m2.tpl



    // gui/templates/tcPrintNavigator.tpl
    $TLS_caption_print_opt ="打印选项";
    $TLS_tr_td_show_as ="格式";



    // gui/templates/tcReorder.tpl
    $TLS_no_tc_to_reorder ="测试用例不存在,无法重新排序。";
    $TLS_title_change_tc_order ="修改分类中的测试用例顺序。";



    // gui/templates/tcTree.tpl
    $TLS_button_refresh ="刷新";
    $TLS_button_update_tree = "更新目录树";
    $TLS_do_auto_update = "在每个操作后更新目录树";
    $TLS_no_tc_spec_av ="没有可用的测试文档";



    // gui/templates/tc_exec_assignment.tpl
    $TLS_btn_do = "执行";
    $TLS_btn_update_selected_tc = "更新选择测试实例";
    $TLS_title_tc_exec_assignment = "测试用例执行测试计划下达的任务";
    $TLS_user ="用户";
    $TLS_user_bulk_assignment = "批量设置测试用例所有者";



    // gui/templates/testSetNavigator.tpl



    // gui/templates/userInfo.tpl
    $TLS_btn_change_passwd ="修改口令";
    $TLS_btn_upd_user_data ="更新";
    $TLS_th_new_passwd ="新口令";
    $TLS_th_new_passwd_again ="确认新口令";
    $TLS_th_old_passwd ="旧口令";
    $TLS_title_account_settings ="帐号设置";
    $TLS_title_change_your_passwd ="修改你的口令";
    $TLS_warning_different_pwd ="请重新输入你的新口令。新输入的口令不一致。";
    $TLS_warning_empty_pwd = "密码不能为空!";
    $TLS_your_password_is_external = "你的密码是表面的";



    // gui/templates/usersassign.tpl
    $TLS_TestProject = "测试计划";
    $TLS_User = "用户";
    $TLS_btn_change = "更换";
    $TLS_caption_assign_testplan_user_roles = "指派测试计划角色给用户 ";
    $TLS_caption_assign_testproject_user_roles = "分配测试项目用户权限";
    $TLS_menu_assign_testproject_roles = "分配测试项目权限";
    $TLS_th_roles = "角色";
    $TLS_title_assign_roles = "分配角色";
    $TLS_test_project_user_roles_updated="已更新用户角色";
    $TLS_test_plan_user_roles_updated="已更新用户角色";
    $TLS_no_test_projects="没有创建测试项止";

    // gui/templates/usersedit.tpl
    $TLS_caption_user_details = "用户详细资料";
    $TLS_th_password ="口令";
    $TLS_warning_empty_first_name = "请输入一个名字";
    $TLS_warning_empty_last_name = "请输入一个姓";
    $TLS_warning_empty_login = "请输入一个注册";



    // gui/templates/attachmentupload.tpl
    $TLS_enter_attachment_title = "进入附件标题";
    $TLS_import_was_ok = "导入成功";
    $TLS_max_size_cvs_file ="文件最大不超过:";
    $TLS_title_upload_attachment = "上传附件";



    // gui/templates/rolesview.tpl
    $TLS_N_A = "N/A";
    $TLS_alt_delete_role = "删除角色";
    $TLS_alt_edit_role = "编辑角色";
    $TLS_btn_confirm_delete = "删除";
    $TLS_no_roles = "没有角色";
    $TLS_title_roles = "可用的角色";
    $TLS_warning_users_will_be_reset = "受影响的用户将被重置访客角色!";



    // gui/templates/tcexport.tpl
    $TLS_export_with_keywords = "导出关键字";



    // gui/templates/buildView.tpl
    $TLS_alt_active_build = "有效构建";
    $TLS_alt_edit_build = "点击这里来编辑这个构建";
    $TLS_alt_open_build = "打开构建";
    $TLS_btn_build_create = "创建";
    $TLS_no_builds ="本测试计划的构建尚未创建";
    $TLS_th_descrīption = "说明";
    $TLS_th_open = "打开";
    $TLS_title_build_list = "列出现有的构建";
    $TLS_warning_delete_build ="你真的想要删除这个构建吗?所有相关的数据都将被删除!";



    // gui/templates/planView.tpl
    $TLS_testplan_alt_delete_tp = "删除测试计划?";
    $TLS_testplan_alt_edit_tp = "编辑测试计划";
    $TLS_testplan_msg_delete_confirm = "你真的要删除测试计划吗? 建议:不要使用删除功能而是通过测试计划的编辑功能禁用这个测试计划.";
    $TLS_testplan_th_delete = "删除";
    $TLS_testplan_title_list = "列出现有的测试计划";
    $TLS_testplan_txt_empty_list = "没有定义测试计划!使用测试执行功能必须先创建一个测试计划";



    // gui/templates/mainPage_left.tpl
    $TLS_href_assign_user_roles = "指派用户角色";
    $TLS_href_browse_tc ="浏览测试用例";
    $TLS_href_cfields_management = "自定义字段管理";
    $TLS_href_cfields_tproject_assign = "分配自定义字段";
    $TLS_href_create_product ="创建新项目";
    $TLS_href_edit_product ="编辑/删除项目";
    $TLS_href_edit_tc ="编辑测试用例";
    $TLS_href_keywords_assign ="指派关键字";
    $TLS_href_keywords_manage = "关键字管理";
    $TLS_href_keywords_view ="查看关键字";
    $TLS_href_print_tc ="打印测试用例";
    $TLS_href_req_assign ="关联测试需求与测试用例";
    $TLS_href_req_spec ="测试需求文档";
    $TLS_href_roles_management = "角色管理";
    $TLS_href_search_tc ="搜索测试用例";
    $TLS_href_user_management = "用户管理";
    $TLS_title_requirements ="需求";
    $TLS_title_test_spec ="测试文档";
    $TLS_title_product_mgmt ="项目管理";


    // gui/templates/mainPage_right.tpl
    $TLS_filter_tp_by_product ="按项目筛选测试计划";
    $TLS_href_add_test_case ="添加测试用例到测试计划中";
    $TLS_href_build_new ="构建管理";
    $TLS_href_execute_test ="执行测试";
    $TLS_href_plan_assign_priority = "分配优先级";
    $TLS_href_plan_define_priority = "判定/规定优先规则";
    $TLS_href_plan_management = "测试计划管理";
    $TLS_href_plan_mstones ="编辑/删除里程碑";
    $TLS_href_print_tc_suite ="打印测试用例集";
    $TLS_href_remove_test_case ="从测试计划中移去测试用例";
    $TLS_href_rep_and_metrics ="测试报告和度量";
    $TLS_href_tc_exec_assignment = "设置测试用例的所有者";
    $TLS_href_upd_mod_tc ="更新修改过的测试用例";
    $TLS_msg_no_rights_for_tp ="- 无效的(你没有权限访问测试计划)";
    $TLS_testplan_role = "TestPlan role";
    $TLS_title_test_case_suite ="测试用例集";
    $TLS_title_test_execution ="测试执行";
    $TLS_title_test_plan_mgmt ="测试计划管理";



    // lib/execute/bug_add.php
    $TLS_bug_added = "Bug 增加";
    $TLS_error_wrong_BugID_format = "BugID 格式出错!";



    // lib/execute/bug_delete.php
    $TLS_bugdeleting_was_ok = "这个问题删除成功!";



    // lib/functions/doAuthorize.php
    $TLS_error_ldap_auth_failed = "LDAP 身份验证失败";
    $TLS_error_ldap_bind_failed = "LDAP绑定失败";
    $TLS_error_ldap_server_connect_failed = " LDAP连接服务器失败";
    $TLS_error_ldap_update_failed = "更新 LDAP 失败";
    $TLS_error_ldap_user_not_found = "LDAP 用户找不到";



    // lib/functions/product.inc.php
    $TLS_info_product_delete_fails ="删除项目时出现错误";



    // lib/functions/results.inc.php
    $TLS_trep_failing ="失败";
    $TLS_trep_passing ="通过";
    $TLS_trep_status_for_build ="构建状态";
    $TLS_trep_status_for_ts ="测试集状态";
    $TLS_unassigned = "取消指派";
    $TLS_assigned = "指派";
    $TLS_Requirement = "需求";


    // lib/functions/resultsMoreBuilds.inc.php
    $TLS_bugs ="关联的问题";
    $TLS_builds_selected ="构建标识";
    $TLS_case_not_run_warning ="测试用例尚未执行";
    $TLS_category_header ="分类= ";
    $TLS_daterun ="执行时间";
    $TLS_last_status ="最近状态";
    $TLS_number_blocked ="# 锁定的数量";
    $TLS_number_cases ="# 用例数量";
    $TLS_number_executions ="# 执行测试用例总数";
    $TLS_number_failed ="# 失败的数量";
    $TLS_number_not_run ="# 尚未执行的数量";
    $TLS_number_passed ="# 通过的数量";
    $TLS_owner ="拥有者";
    $TLS_owner_header ="拥有者= ";
    $TLS_runby ="执行人";
    $TLS_test_plan_name ="测试计划";



    // lib/functions/roles.inc.php
    $TLS_desc_cfield_management = "自定义字段管理";
    $TLS_desc_cfield_view = "自定义字段窗口 (只读)";
    $TLS_desc_mgt_modify_key = "关键字管理";
    $TLS_desc_mgt_modify_product = "测试项目管理";
    $TLS_desc_mgt_modify_req = "测试需求管理";
    $TLS_desc_mgt_modify_tc = "创建/编辑测试用例";
    $TLS_desc_mgt_modify_users = "用户管理";
    $TLS_desc_mgt_view_key = "查看关键字(只读)";
    $TLS_desc_mgt_view_req = "查看测试需求(只读)";
    $TLS_desc_mgt_view_tc = "查看测试用例(只读)";
    $TLS_desc_role_management = "角色管理";
    $TLS_desc_testplan_create_build = "创建/编辑构建";
    $TLS_desc_testplan_execute = "执行测试计划";
    $TLS_desc_testplan_metrics = "查看测试计划";
    $TLS_desc_testplan_planning = "增、删、改测试计划,指派风险、所有权,编辑测试用例集)";
    $TLS_desc_user_role_assignment = "分配角色";
    $TLS_error_duplicate_rolename = "已经存在同名的角色!";
    $TLS_error_role_no_rights = "你不能保存没有任何权限的角色!";
    $TLS_error_role_no_rolename = "你必须输入角色的名称!";
    $TLS_mgt_testplan_create = "创建/编辑测试计划";



    // lib/functions/testproject.class.php
    $TLS_error_creating_req_spec = "当正在创建需求说明书时发生异常";
    $TLS_info_product_name_empty ="不充许名称为空。";
    $TLS_keyword_already_exists ="关键字已经存在";
    $TLS_string_contains_bad_chars ="包含错误的字符";
    $TLS_warning_duplicate_req_title = "需求标题已存在!";



    // lib/functions/requirements.inc.php
    $TLS_conflict ="冲突";
    $TLS_error_deleting_req = "当正在删除需求时发生异常";
    $TLS_error_inserting_req = "当正在插入需求时发生异常";
    $TLS_error_updating_req = "当正在更新需求时发生异常";
    $TLS_error_updating_reqspec = "当正在更新需求说明书时发生异常";
    $TLS_file_is_not_xml = "文件格式不是正确的XML格式.无法使用";
    $TLS_ok = "成功";
    $TLS_req_import_format_descrīption1 =" - CSV 格式每行需要两个字段:'title','descrīption'";
    $TLS_req_import_format_descrīption2 =" - CSV 从DOORS 导出需要标题行。";
    $TLS_req_import_result_overwritten ="结果已经被覆盖!";
    $TLS_req_import_result_skipped ="结果被跳过!";
    $TLS_req_state_not_testable = "不可测试";
    $TLS_req_state_valid = "合法";
    $TLS_the_format_req_xml_import = "参见导出后的XML文件";
    $TLS_warning_duplicate_reqdoc_id = "复制文件ID";



    // lib/functions/testsuite.class.php
    $TLS_component_name_already_exists ="组件名称已经存在";
    $TLS_testsuite = "测试分类";



    // lib/functions/exec.inc.php
    $TLS_test_results_submitted = "提交测试结果.";



    // lib/functions/print.inc.php
    $TLS_author = "作者";
    $TLS_printed_by_TestLink_on = "打印日期: ";
    $TLS_title_toc ="内容列表";



    // lib/functions/testcase.class.php
    $TLS_testcase_name_already_exists = "已经存在相同标题的测试用例!";
    $TLS_the_format_tc_xml_import = "";



    // lib/functions/info.inc.php
    $TLS_email_sent_message ="你的邮件已被发送";



    // lib/functions/users.inc.php
    $TLS_Unknown ="未知";
    $TLS_duplicate_login ="该用户已经存在!";
    $TLS_login_must_not_be_empty ="用户登陆名不能为空!";
    $TLS_wrong_old_password = "旧密码有误";



    // lib/functions/email_api.php
    $TLS_stmp_host_unconfigured = "SMTP 主机配置不正确!";



    // lib/functions/common.php



    // lib/functions/configCheck.php
    $TLS_attachments_dir = "附件目录:";
    $TLS_bts_connection_problems = "连接BUG管理系统失败:<br>
                                    请检查配置.<br>
                                    注意:这个问题会影响TestLink的性能.";
    $TLS_but_directory_is_not_writable = "这个目录不可写!";
    $TLS_directory_is_writable = "易写的目录";
    $TLS_does_not_exist = "不存在";
    $TLS_exists = "存在";
    $TLS_sec_note_admin_default_pwd ="应该修改系统管理员的缺省口令!";
    $TLS_sec_note_remove_install_dir ="应该删除安装目录!";



    // lib/general/frmWorkArea.php
    $TLS_create_a_build = "创建一个新的构建";
    $TLS_no_build_warning_part1 ="还没有为这个测试计划创建构建。";
    $TLS_no_build_warning_part2 ="请先创建它或找系统管理员解决。";



    // lib/general/myTPInfo.php
    $TLS_no_testplans_available ="无法获得测试计划";



    // lib/general/tlsmarty.inc.php



    // lib/keywords/keywords.inc.php
    $TLS_empty_keyword_no ="关键字不能为空!";
    $TLS_keywords_char_not_allowed ="关键字中不能包含逗号和引号!";
    $TLS_tc_kw_update_fails1 ="测试用例";
    $TLS_tc_kw_update_fails2 ="失败";
    $TLS_the_format_keyword_csv_import = "关键字;注释";
    $TLS_the_format_keyword_xml_import = "&lt;keywords>&lt;keyword name=\"name\">Notes&lt;/keyword>&lt;/keywords>";



    // lib/keywords/keywordsView.php
    $TLS_kw_delete_fails ="删除关键字失败!";
    $TLS_kw_update_fails ="更新失败";



    // lib/keywords/keywordsAssign.php
    $TLS_assigned_kword = "分配关键字";
    $TLS_available_kword = "有用的关键字";



    // lib/plan/buildNew.php
    $TLS_cannot_add_build ="无法增加构建";
    $TLS_cannot_delete_build ="无法删除构建";
    $TLS_cannot_update_build ="无法更新构建";
    $TLS_warning_duplicate_build ="构建标识已存在";



    // lib/plan/plan.inc.php
    $TLS_warning_empty_milestone_name ="必须为里程碑指定名称!";
    $TLS_warning_enter_valid_date ="必须输入一个有效日期";
    $TLS_warning_invalid_percentage_value = "百分比的范围必须在0到100之间";
    $TLS_warning_milestone_date ="里程碑的日期必须大于等于今天";
    $TLS_warning_percentage_value_higher_than_100 = "所有百分比的值不能高于100";



    // lib/plan/planMilestones.php
    $TLS_milestone_delete_fails = "这个里程碑不能被删除!";
    $TLS_warning_milestone_add_failed ="无法增加里程碑!";
    $TLS_warning_milestone_update_failed = "这个里程碑不能被更新!";



    // lib/plan/planOwner.php
    $TLS_opt_imp_high = "高";
    $TLS_opt_imp_low = "低";
    $TLS_opt_imp_medium = "中等";



    // lib/plan/planTestersEdit.php
    $TLS_title_assign_tp ="将测试计划指派给用户:";
    $TLS_title_assign_users ="将用户指派到测试计划: ";



    // lib/plan/planTestersNavigator.php
    $TLS_nav_test_plan = "导航 - 测试计划";
    $TLS_nav_users = "导航 - 用户";



    // lib/plan/planUpdateTC.php
    $TLS_category_has_changed ="分类已经发生变化";
    $TLS_component_has_changed = "测试分类被更改";
    $TLS_deleted = "删除";
    $TLS_different_versions ="不同版本";
    $TLS_plan_update_no_tc_updated ="没有测试用例被更新";
    $TLS_planupdate_tc_deleted1 ="测试用例";
    $TLS_planupdate_tc_deleted2 ="已经被删除。";
    $TLS_planupdate_tc_updated1 ="测试用例";
    $TLS_planupdate_tc_updated2 ="已经被更新。";
    $TLS_tcorder_has_changed = "测试用例的顺序已经改变";
    $TLS_updated ="更新";



    // lib/plan/testSetNavigator.php
    $TLS_title_test_plan_navigator ="测试计划导航标题";

    // lib/plan/testSetRemove.php
    $TLS_tcase_removed_from_tplan="从测试计划中移除一个测试用例";
    $TLS_multiple_tcase_removed_from_tplan="从测试计划中移除多个测试用例";


    // lib/plan/planEdit.php
    $TLS_testplan_created_ok = "创建测试计划";
    $TLS_update_tp_failed1 ="测试计划'";
    $TLS_update_tp_failed2 ="' 更新失败";
    $TLS_warning_duplicate_tplan_name = "这个测试计划的名称已经存在. 请更换另一个名称!";



    // lib/print/selectData.php
    $TLS_opt_show_doc_header ="显示文档属性信息";
    $TLS_opt_show_tc_body ="显示测试用例内容";
    $TLS_opt_show_tc_summary ="显示测试用例摘要";
    $TLS_opt_show_toc ="显示内容列表";
    $TLS_title_tc_print_navigator ="导航 - 打印测试文档";
    $TLS_title_tp_print_navigator ="导航 - 打印测试计划";



    // lib/project/projectedit.php
    $TLS_error_product_name_duplicate = "这个测试项目的名称已经存在. <br>请更换一个不同的名称";
    $TLS_info_no_more_prods ="没有更多的项目。";
    $TLS_info_product_activated ="项目已经被激活。";
    $TLS_info_product_inactivated ="项目已经被禁用。";
    $TLS_info_product_not_deleted_check_log ="项目没有被删除。请查看TestLink的日志。";
    $TLS_info_product_was_deleted ="项目被成功地删除";
    $TLS_refer_to_log =" 请查看TestLink的日志来获取更多的信息。";
    $TLS_test_project_activated = "测试项目成功地被激活了";
    $TLS_test_project_created = "测试项目成功地被创建了";
    $TLS_test_project_deleted = "测试项目成功地被删除了";
    $TLS_test_project_inactivated = "测试项目成功地被禁止了";
    $TLS_test_project_updated = "测试项目成功地被更新了";
    $TLS_test_project_update_failed = "测试项目更新时出错!";


    // lib/results/charts.php
    $TLS_maani_copyright = "";
    $TLS_graphical_reports = "图形报表";
    $TLS_overall_metrics = "总体测试结果饼图";
    $TLS_results_by_keyword = "按关键字的测试结果图";
    $TLS_results_by_tester = "各测试人员测试结果图";
    $TLS_results_top_level_suites = "顶级组件测试结果图";


    // lib/req/reqImport.php
    $TLS_file_is_not_ok_for_import_type = "文件看起来与导入所选择的类型并不相容";
    $TLS_file_is_not_text = "文本文件不能保存. 不能使用";
    $TLS_please_choose_req_file = "请选择要加载的文件";
    $TLS_req_import_finished ="导入结束";



    // lib/req/reqSpecView.php
    $TLS_cant_create_tc_from_req_nothing_sel = "请选择一个需求!";



    // lib/req/reqTcAssign.php
    $TLS_req_msg_noselect ="没选中目标";
    $TLS_req_msg_notupdated_coverage ="没有为需求更新覆盖率";



    // lib/results/resultsBugs.php
    $TLS_title_test_report_all_builds ="测试报告:所有构建的测试用例的测试结果";



    // lib/results/resultsAllBuilds.php
    $TLS_title_metrics_x_build =" - 每个构建的测试结果度量";



    // lib/results/resultsByStatus.php
    $TLS_list_of_blocked ="锁定的测试用例列表";
    $TLS_list_of_failed ="失败的测试用例列表";
    $TLS_list_of_not_run = "列出不能运行的测试用例";



    // lib/results/resultsTC.php



    // lib/results/resultsNavigator.php
    $TLS_link_charts="图表";
    $TLS_link_report_blocked_tcs ="锁定的测试用例";
    $TLS_link_report_failed ="失败的测试用例";
    $TLS_link_report_general_tp_metrics ="总体测试计划度量";
    $TLS_link_report_metrics_active_build ="活动构建的度量";
    $TLS_link_report_metrics_more_builds ="查询度量";
    $TLS_link_report_not_run="未执行的测试用例";
    $TLS_link_report_overall_build ="全部构建的状态";
    $TLS_link_report_reqs_coverage ="基于需求的报告";
    $TLS_link_report_test ="测试报告";
    $TLS_link_report_total_bugs ="每个测试用例的全部问题";


    // lib/results/resultsSend.php
    $TLS_send_to_empty_email_warning ="很抱歉无法发送邮件,请输入有效的邮件地址。";
    $TLS_warning_create_build_first ="必须首先创建构建或导入数据。";

    // lib/results/displayMgr.php
    $TLS_error_sendreport_no_email_credentials = "若邮箱不能发自指定的用户时, 请编辑邮箱的证明标识为‘Personal’";



    // lib/testcases/archive.inc.php



    // lib/testcases/listTestCases.php



    // lib/testcases/tcImport.php
    $TLS_please_choose_file_to_import = "请导入所选择的文件";
    $TLS_title_tc_import_to = "导入测试用例";
    $TLS_title_tsuite_import_to = "导入测试组件";
    $TLS_wrong_xml_tcase_file = "xml 测试用例文件出错";
    $TLS_wrong_xml_tsuite_file = "xml 测试组件文件出错";



    // lib/testcases/tcexport.php
    $TLS_no_testcases_to_export = "这些测试用例不能导出";
    $TLS_no_testsuites_to_export = "这些测试组件不能导出";
    $TLS_title_tc_export = "导出测试用例";
    $TLS_title_tc_export_all = "导出所有测试用例";
    $TLS_title_tsuite_export = "导出测试组件";
    $TLS_title_tsuite_export_all = "导出所有测试组件";



    // lib/testcases/containerEdit.php
    $TLS_delete ="删除";
    $TLS_delete_notice = "警告: 所有相关执行的结果将被删除";
    $TLS_warning_empty_com_name ="请为组件指定名称";



    // lib/testcases/tcEdit.php
    $TLS_current ="没有变更的";
    $TLS_delete_linked = "链接到测试计划将被移除";
    $TLS_delete_linked_and_exec = "链接到测试计划的, 和执行相关的信息将被移除";
    $TLS_error_tc_add ="增加测试用例里发生错误";
    $TLS_title_del_tc ="删除测试用例";  // add by wangyy



    // lib/usermanagement/rolesview.php
    $TLS_error_role_deletion = "该角色不能被删除!";



    // lib/usermanagement/usersedit.php
    $TLS_user_created="用户成功地被创建了";
    $TLS_user_deleted="用户成功地被删除了";
    $TLS_user_not_added ="无法增加用户!";



    // lib/usermanagement/rolesedit.php
    $TLS_error_role_creation = "该角色不能创建!";
    $TLS_error_role_update = "该角色不能更新!";



    // lib/cfields/cfields_edit.php
    $TLS_cf_name_exists = "自定义字段名称已经存在. 请另外再创建一个新的";
    $TLS_error_creating_cf = "这个自定义范围不能被创建!";
    $TLS_do_update = "更新";
    $TLS_do_delete = "删除";
    $TLS_do_add = "增加";
    ?>

  • Loadrunner中所支持的脚本语言有哪些?

    2008-12-05 15:26:58

        默认的脚本生成语言为 C。对于 FTPCOM/DCOM 和邮件协议(IMAPPOP3 SMTP),VuGen 还可以使用 Visual BasicVB scrīpt Javascrīpt 来生成脚本。

          C 语言 - 用于那些使用复杂的 COM 构造和 C++ 对象的录制应用程序。

          Visual Basic for Applications - 用于基于 VB 的应用程序,这些应用程序使用 VB 的完整功能(与 VBscrīpt 不同)。

          Visual Basic scrīpting - 用于基于 VBscrīpt 的应用程序,例如 ASP

          Java scrīpting - 用于基于 Javascrīpt 的应用程序,例如 js 文件和动态 HTML 应用程序。

       录制会话后,可以使用常规的 CVisual BasicVB scrīpt Javascrīpt 代码或控制流语句来修改脚本。

  • 软件测试工程师面试应该考察哪些方面

    2008-12-05 12:05:21

        国内的测试行业属于新兴行业,还没有很多规范可言,除了那些大的公司,还有一些外资企业比较正规外,其它的公司的测试规范都可以说是鱼龙混杂,与此对应,测试工程师的面试也会出现很多不规范的东西。

       我相信很多去面试测试工作的时候,技术人员会问你:我们现在有个***产品,你会怎么测试,人家就这么地盯着你,其实这个时候作为一个测试人员,肯定是很无助的,因为即使是生活中平产所见的产品,谁会去对产品的使用进行深入研究呢,尤其是那些孤僻的功能,其实对于测试人员而言,首先应该要知道的需求,需求是什么样子,然后再设计测试方法。所以对于招聘者来说,问这样的问题显然是不知道测试为何物,测试工作依照怎样的流程来进行的。但是同时也折射出我们测试人员的一个基本素质问题,好像面试的时候别人叫你回答什么就回答什么,事实上作为一个具备最起码基本素质的测试人员,应该会反问招聘者:能不能给我看下这个功能的需求。事实上,需求是最最根本的东西,开发人员依据需求去设计产品,测试人员依据需求来从各个面来敲打开发人员的开发成果。

       闲扯了这么多,来说下软件测试工程师要面试哪些方面?

        首先,最根本的还是要看企业自身的需要,综合自己的测试团队力量,自己公司的研发状况,当然还有公司的资金---到底到测试这块公司愿意投入多少Money呢?另外要搞清楚自己公司招聘测试人员的目的是什么?..... 比如,如果公司暂时还没有测试团队,这个时候公司刚好有财力,同时研发力量比较大的时候,因为发展的需要,必须要组建一个测试团队,那么这个时候,必须要找一个经验丰富,有带队经验、有测试管理经验、熟悉测试流程的人,让他作为领头人,去招聘他的团队成员,换句话说,就是要招聘一个测试部经理的角色。如果是不想组一个团队,那就要找一个多面手,就是什么都能做的,整个测试流程都能自己走遍的测试人员,这样的人通常都是在小公司里面磨练出来的。

       然后是考察一个测试人员的基本素质问题

       第一应该是一个测试人员的责任心,把这个放第一位,原因很简单,如果一个测试不怎么厉害的人,因为他测试有责任心,即使他不能发现其它的特异问题或者是大问题,最起码,他在跑测试的时候,绝不会漏了一些没测,或者随便测一通;对于一个测试方面比较厉害的,因为责任心的驱使,即使找到了很多问题,他也不会自满,而是继续努力。

       第二是重视团队经验共享的人,测试人员必须有一种素质,那就是随时跟踪最新的信息,这个不仅仅指需求的变更方面,同时测试团队成员之间保持信息共享,彼此才能知道软件中最新发现的BUG。

       第三就是细心、耐心,这个就不多说啦

       第四,技术方面的基本素质,熟悉系统的应用,熟悉办公软件的应用,熟悉基本的测试流程;熟悉测试管理工具的应用,如果涉及到性能测试,需要考察测试人员对性能工具的使用;如果涉及到脚本自动化测试,就需要考察测试人员编写脚本的能力。

       第五,就是一个测试人员的学习能力、领悟能力。

       第六,信心,对这个行业的信心,再就是对测试的信心,相信软件一直存在BUG

  • 玩转Vista“发现”功能---转

    2008-11-24 15:46:53

    Vista提供了非常贴心的网络功能,其中有一个被微软称为“发现”的功能常常被大家忽略。其实,该功能在工作组环境的局域网中非常有用。利用它可以自动发现局域网中的每台电脑,而且它还提供了Windows会议室、备份、文件传输等非常方便的功能。下面笔者结合实例,和大家共同挖掘进行一次“发现”之旅。

      1、工作站部署一次到位

      局域网中工作站的部署是一项重复而又单调的工作,特别是主机数量特别多时,管理员就得耗费大量的时间和精力进行部署。如果在你的局域网中有台Vista的工作站,就可以利用其“发现”功能配合相关系统工具非常轻松地进行工作站的部署,真正一次到位。操作步骤如下:

      第一步:在一台Vista工作站上设置好账户、程序、Intertnet设置、Outlook等信息。

      第二步:进入Vista工作站中“控制面板→系统和维护→定位到备份和还原中心”点击左下角的“Windows轻松传送”,就可以通过“发现”功能找到当前工作组的其他主机,把当前主机的设置传送到工作组的其他机器。

    图1

      提示:这中方式特别适合在一些配置相同、软件相同的计算机之间一次性地进行部署。传送方式包括USB连接、光盘传送或者通过网络。

      2、文件共享不再输入密码

      用过WindowsXP的人都知道,要把文件共享给其他人,必须给对方设定一个足够权限的用户,对不熟悉电脑的用户来说,这有点复杂。Vista的局域网管理相对2000/XP的系统来讲,方便了用户之间的共享访问。如果你们局域网中的用户是可信的,就可以通过非常简单的设置,让局域网内的任何用户不需要输入账号和密码而直接访问你的共享文件。更可贵的是,只要你这台机器是Vista即可,其他计算机系统不强求为Vista。

      .前提:

      要使局域网内计算机能相互访问,必须满足以下条件:

      硬件:通过网卡、网线等将每台电脑连接在一起,连接方式与WindowsXP下的连接相同。

      软件配置:同一工作组、启用“发现”功能。

      .操作步骤:

      第一步:设置工作组。在开始菜单中右击“计算机”,选择“属性”。单击“计算机名称、域和工作组设置”下的“改变设置”,在接着弹出的窗口中输入工作组名和计算机名。本例中分别输入的是mshome、PC1。在其他电脑上进行类似的设置,要求工作组名必须相同,计算机名必须不同。

    图2

      第二步:开启“发现”功能。单击“开始→控制面板→网络和Internet→网络和共享中心”。展开“共享和发现”后的下拉箭头按钮,在下一窗口中选择“启用网络发现”,确定后返回。做完上两步,局域网中的电脑就能相互访问了,单击“开始→网络”可观察到这一点。

    图3

      提示:如果启用不成功,可以在图3中单击“网络”后的“自定义”,从弹出的窗口中选择“专用”。

      第三步:启用共享文件。单击图3中的“文件共享”后的下拉箭头,按提示选择“启用文件共享”,确定后返回主界面。同理,用类似的方法修改“密码保护和共享”为“关闭密码保护的共享”。至此,局域网内电脑即可无密码地相互共享文件。你只需在共享文件夹上点右键选“属性→共享→高级共享”,然后勾选“共享此文件夹”即可。其他用户可以通过IP或者计算机名就能访问你了。

    图4

      3、局域网系统配置备份不再Ghost

      其实从Windows2000开始,就已经提供了备份功能。WindowsVista对它进行了改进。重装系统前,我们可将用户文件或各软件、桌面设置等备份下来,系统安装完成后再还原回去。对企业用户而言,还可以通过这一方式保持每台电脑的软件、桌面设置等的一致。选择存放备份的位置时,也可选择局域网内的其他电脑。操作步骤如下:

      从“控制面板”下打开“系统和维护→备份和还原中心→备份文件”,按提示操作即可对用户文件、进行备份,除可将备份保存到本机硬盘、光盘外,还可以通过“发现”功能选择局域网内的其他电脑进行备份。在安装系统时候,可以选择使用以前的备份。

    图5

      4、“网络会议”立刻开始

      “Windows会议室”,它实际相当于WindowsXP时代的NetMeeting,用于用户之间的联络。通过“发现”功能可以轻松地在工作组局域网中进行“网络会议”,操作步骤如下:

      第一步:单击“开始→所有程序→Windows会议室”,在弹出的对话框中选择“是,继续设置Windows会议室”。

    图6

      第二步:在自动弹出的窗口中设置用户名。以上设置一经完成,今后打开直接就是Windows会议室窗口。

    图7

      总结:通过上面的四个实例可以看出,挖掘并使用Vista的“发现”功能,大大简化我们系统维护及其网络部署的成本,希望大家更够挖掘出更多类似“发现”这样的Vista功能。

  • WindowsXPSP3安装失败?

    2008-11-21 12:28:46

    在尝试安装WindowsXPServicePack3时,您可能会收到一条错误消息,或安装过程可能失败。本文将讨论一些基本的故障排除方法,以帮助您成功安装WindowsXPSP3

      方法1:退出所有打开的程序,重新启动计算机,然后重新尝试安装SP3

      注意:有时,安装失败是因为以前的某项操作尚未完成而导致的。通过重新启动计算机,可以关闭所有挂起的计算机功能并重新启动安装过程。1.退出所有打开的程序。

      2.重新启动计算机。

      3.等待计算机完成重新启动过程,然后登录您的帐户。

      4.单击“快速安装”。

      注意:如果计算机符合WindowsXPSP3更新的条件,将自动选择此更新。

      5.单击“安装”。

      6.查看并接受Microsoft软件许可条款,然后在安装过程中按照屏幕上提供的说明操作。

      方法2:从Microsoft下载中心下载WindowsXPSP3

      方法3:暂时禁用所有防病毒程序、反间谍软件程序以及第三方防火墙程序。

      重要说明:这些步骤可能会增加您的安全风险。它们还可能导致计算机或网络更易于受到恶意用户或恶意软件的攻击。我们之所以推荐本文介绍的这一过程,是为了使程序能够按照设计意图运行,或者为了实现特定的程序功能。我们建议您在进行这些更改之前,充分考虑在您的特定环境中实施这一过程可能带来的风险。如果您决定实施此过程,请执行任何适当的附加步骤来保护系统。我们建议只有确实需要这一过程时才使用它。

      如果第三方程序锁定了WindowsXPSP3安装程序所需的文件,或使该文件保持打开状态,就可能导致安装失败。为了尽量避免这种情况,请在安装WindowsXPSP3之前执行下列步骤:

    1.退出所有打开的程序,然后重新启动计算机。

      2.在计算机重新启动后,请禁用所有可能会在计算机启动过程中启动的防病毒程序、反间谍软件程序和第三方防火墙程序。

      这些程序通常可在通知区域中加以禁用。要从通知区域中禁用程序,请右键单击该程序的图标,然后单击用来禁用程序的相应选项。

      注意:如果这些选项不可用,请查看该程序的文档,或与该程序的制造商联系以了解有关说明。

      3.在禁用这些程序后,重新选择并安装windowsupdate

      注意:如果您已下载整个下载程序包,请尝试使用该程序包安装WindowsXPSP3。如果要下载整个程序包,请使用方法2。

      4.在完成WindowsXPSP3安装过程后,请重新启用您在步骤2中禁用的所有防病毒程序、反间谍软件程序和第三方防火墙程序。

      方法4:启动后台智能传输服务

      1.单击“开始”,单击“运行”,在“打开”框中键入services.msc,然后单击“确定”。

      2.右键单击“BackgroundIntelligentTransferService”,然后单击“属性”。

      3.在“常规”选项卡上,单击“启动类型”框中的“自动”,然后单击“应用”。

      4.在属性对话框的“服务状态”部分中,验证BITS服务是否已启动。如果没有启动,请单击“启动”。

      5.单击“应用”,然后单击“确定”。

      6.使用方法1重新启动计算机并安装WindowsXPSP3。

      方法5:清空SoftwareDistribution文件夹,然后重试下载操作

      1.以管理员或具有管理权限的用户身份登录计算机。

      2.单击“开始”,单击“运行”,在“打开”框中键入services.msc,然后单击“确定”。

      3.右键单击“AutomaticUpdates”,然后单击“停止”。

      4.单击“开始”,单击“运行”,然后在“打开”框中键入以下命令:

      windir\SoftwareDistribution  5.单击“确定”。

      6.右键单击“Download”文件夹,然后单击“重命名”。

      7.键入Download.old,然后按Enter。

      8.退出Windows资源管理器。

      9.在“服务”控制台中,右键单击“AutomaticUpdates”服务,然后单击“启动”。

      10.关闭“服务”控制台。

  • winXP必须停掉的十项服务!

    2008-11-21 12:25:26

     Windows的特别多服务都是双刃剑,用不好就会带来诸多安全隐患。本文介绍了十项服务,建议大家一定要禁用,此外还有十余个建议禁止的,供用户参考。

      WindowsXP必须禁止的服务

      1、NetMeetingRemoteDesktopSharing

      允许受权的用户通过NetMeeting在网络上互相访问对方。这项服务对大多数个人用户并没有多大用处,况且服务的开启还会带来安全问题,因为上网时该服务会把用户名以明文形式发送到连接它的客户端,黑客的嗅探程序很容易就能探测到这些账户信息。

      2、UniversalPlugandPlayDeviceHost

      此服务是为通用的即插即用设备提供支持。这项服务存在一个安全漏洞,运行此服务的计算机很容易受到攻击。攻击者只要向某个拥有多台WindowsXP系统的网络发送一个虚假的UDP包,就可能会造成这些WindowsXP主机对指定的主机进行攻击。

      另外如果向该系统1900端口发送一个UDP包,令"Location"域的地址指向另一系统的chargen端口,就有可能使系统陷入一个死循环,消耗掉系统的所有资源。

      3、Messenger

      俗称信使服务,电脑用户在局域网内可以利用它进行资料交换。

      这是一个危险而讨厌的服务,Messenger服务基本上是用在企业的网络管理上,但是垃圾邮件和垃圾广告厂商,也经常利用该服务发布弹出式广告,标题为"信使服务"。而且这项服务有漏洞,MSBlast和Slammer病毒就是用它来进行快速传播的。

      4、TerminalServices

      允许多位用户连接并控制一台机器,并且在远程计算机上显示桌面和应用程序。如果你不使用WindowsXP的远程控制功能,可以禁止它。

      5、RemoteRegistry

      使远程用户能修改此计算机上的注册表设置。注册表可以说是系统的核心内容,一般用户都不建议自行更改,更何况要让别人远程修改,所以这项服务是极其危险的。

      6、FastUserSwitchingCompatibility

      在多用户下为需要协助的应用程序提供管理。WindowsXP允许在一台电脑上进行多用户之间的快速切换,但是这项功能有个漏洞,当你点击"开始→注销→快速切换",在传统登录方式下重复输入一个用户名进行登录时,系统会认为是暴力破解,而锁定所有非管理员账户。

      如果不经常使用,可以禁止该服务。或者在"控制面板→用户账户→更改用户登录或注销方式"中取消"使用快速用户切换"。

      7、Telnet

      允许远程用户登录到此计算机并运行程序,并支持多种TCP/IPTelnet客户,包括基于UNIX和Windows的计算机。又一个危险的服务,如果启动,远程用户就可以登录、访问本地的程序,甚至可以用它来修改你的ADSLModem等的网络设置。除非你是网络专业人员或电脑不作为服务器使用,否则一定要禁止它。

      8、PerformanceLogsAndAlerts

      收集本地或远程计算机基于预先配置的日程参数的性能数据,然后将此数据写入日志或触发警报。为了防止被远程计算机搜索数据,坚决禁止它。

      9、RemoteDesktopHelpSessionManager

      如果此服务被终止,远程协助将不可用。

      10、TCP/IPNetBIOSHelper

      NetBIOS在Win9X下就经常有人用它来进行攻击,对于不需要文件和打印共享的用户,此项也可以禁用。

  • 软性隐形眼镜的危害

    2008-11-19 14:58:53


        我看了吓了一跳,还好我没有戴软性隐形眼镜。近视的朋友看看吧。

     

        在当前,我国近视眼发病率超过30%,而在中学生中,其发病率超过一大半,

    而在大学生中的发病率竟高达74%!针对这一问题,出现了一种美丽的戴近视眼镜的方法:软性隐形眼镜

        软性隐形眼镜作为风靡一时的近视眼镜,从1987年出现第一例软性隐形眼镜以来,至今为止,全中国约有几千万例人配带了这种软性隐形眼镜。

        软性隐形眼镜能在短期使患者得到了满意的视力,从而吸引了成千上万迫切想要美观漂亮的年轻人。

        然而,这些人中,绝大部分都是对这一产品一无所知的人,而在许多商家的眼镜店和眼科中心,为什么仍有那么多医生带着框架眼镜?为什么放着那么好的软性隐形眼镜不戴?

        一直在几个月前,我才弄明白这是个阴谋!软性隐形眼镜是本世纪医学界最大的阴谋!

        本人的一位朋友在1992年,在全国一家具有眼科特色的、非常有名的眼镜店配了软性隐形眼镜,在配戴前,通过了眼科视力的所有检查,且检查结果为一切正常,角膜地形图未发现任何异常,我那位朋友如愿地配到了那副650度的软性隐形眼镜,然而就在一个月前,我那位朋友发觉自己的视力竟大幅回退,角膜变薄;角膜感觉迟钝 ;还有巨大乳头状结膜炎,上眼皮内侧长出一颗颗凸起的颗粒。并且存在严重的角膜水肿、角膜新生血管反应和过敏反应。眼科专家说她的角膜内皮细胞密度相当于60岁的老人。

        后来到另一家医院检查,眼科专家说她的角膜内皮细胞密度相当薄。角膜已经严重破坏,必须角膜移植。而角膜供体十分紧张,我的那位朋友现在的感觉是生不如死。要知道我那位朋友只有30多岁啊,现在丈夫等着和她离婚。而她做手术前,我得知是在一个著名的眼科医院做手术,前去看她:她是非常非常懊悔,后悔当时戴软性隐形眼镜,现在又花费巨姿、忍受疼痛更换角膜,还不知道更换后会怎么样?

        后来,我咨询了多位眼科专家,对于眼科知识才了解了一二,下面我将眼科专家们的回答总结如下:

        1.软性隐形眼镜阻挡角膜呼吸,眼角膜细胞是透明的,没有血管供给氧气。是通过眼泪将氧气输送给角膜细胞的。隐形眼镜与角膜中间需要一层薄薄的泪液,在每次眨眼的时候,会产生一些泪液的交换,使外面含氧量高的泪液跑到隐形眼镜与角膜中间,提供新鲜氧气给角膜。软性隐形眼镜非常密合地贴紧角膜不移动,没有这种泪液交换率,使角膜无法得到氧气,眼睛角膜会因此缺氧,无法正常代谢、抵抗力下降。泪液交换软式隐形眼镜为不戴时的10%。根本就不够角膜呼吸。长期下去,角膜必定会产生病变。专家说:要用隐形眼镜,一定要用AA硬式隐形眼镜。因为AA硬式的泪液交换为不戴时的95%。AA硬式隐形眼镜像一条船浮游在角膜外的泪膜上。在每次眨眼时,AA硬式隐形眼镜可以上下移动达1-2毫米。AA硬式隐形眼镜与角膜中间泪液的交换非常充分,可以让角膜得到足量的氧气。所以要告诉患者要用AA硬式隐形眼镜,不能再用软性隐形眼镜了。他说国外软性隐形眼镜已经淘汰很少有人用了,而国内,今年才有一家大连博明科贸有限公司,取得了国家药品监督管理局生产AA硬式隐形眼镜的许可,是否生产还不知道。所以市面上还很难买到。

        2.因为缺氧角膜变薄,戴软性隐形眼镜10年20岁的眼睛衰老至60岁,软性隐形眼镜的危害是潜在的,医学专家警告说,如果从20岁开始戴软性隐形眼镜,5年后,角膜内皮细胞大量减少,水分侵入后,极易造成角膜水肿,10年后,角膜内皮细胞密度相当于60岁的老人,免疫功能下降,及易发生各种角膜病变,而且角膜变薄将无法承受任何眼科手术,即使年老时发生白内障。

        3. 吸附污垢:软性隐形眼镜吸附泪液中的蛋白质、脂质、胶原等,使其沉积在镜片表面,滋生病菌,角膜水肿、角膜新生血管反应和过敏反应等因此而起。由于软式片子含水量较高,因此药水中的防腐剂很容易被吸附在镜片中,而引起刺激或过敏的现象 。

        4.寿命短:软性隐形眼镜产品寿命非常短,若以每日佩戴10小时计,最多可佩戴6个月,如果超过6个月,即会出现问题,会导致角膜受损。

        5.直径大:软式隐形眼镜直径较大(约 14mm ),大于角膜。面积大,引起的巨大乳头状结膜炎,患者上眼皮内侧长出一颗颗凸起的颗粒,治愈一段时间,再戴软式隐形眼镜又发生,而且愈发严重。处理这种眼疾,必须除去刺激的因素,不戴软式隐形眼镜是斧底抽薪的办法。但大多数戴惯软式隐形眼镜的人,是不会停戴的,99%一定再发作。只有配戴AA硬式隐形眼镜,才不会再发。因为AA硬式隐形眼镜直径比较小,(约 9 ~ 10mm )。它可以减少了镜片摩擦面积和蛋白质附着物的刺激。即使用抛弃式软式隐形眼镜想达到减少再发的目的,但抛弃式隐形眼镜仍然是软式隐形眼镜,只能延后再发的时间,迟早会出现同样的问题。

        6.感觉迟钝:软式隐形眼镜的异物感,因为镜片在角膜上不滑动度,初期症状不明显,等无法忍耐而找医生时,往往已经非常严重。

        现在一些软式隐形眼镜生产商为了获取暴利,没有将这一后果告知患者。另外,他们所说的不会致盲的观点是错误的,而角膜变薄就可以被认为是间接的致盲。

        此外,一些软式隐形眼镜商认为抛弃片就是安全底线,那么请问有何依据?抛弃片照样会产生角膜变薄,那么谁能保证那些角膜厚度濒临下限的人不会在10年左右时间内,角膜逐渐变薄而产生上述严重后果?又有哪位眼科权威人士能站出来保证那些因软式隐形眼镜而角膜组织变薄的人不会在10年或是20年后出现问题呢?

        我们知道,一项医学技术从发明到适用于临床,必须要有一个长期的观察。软性隐形眼镜在中国推行的时间已经到了发现问题的时候了,而中国的软式隐形眼镜商和广大眼科医生却仍然将其广泛的应用。他们明知道这一产品的危险性(稍微对于眼科有所了解的人都能理解,更何况是医生),却冒天下之大不韪,欺瞒广大患者,把广大患者的眼睛当作赚钱的工具,请问你们还有良心吗?

        医生被称做是白衣天使,你们的职责是救人,而不是为了瓜分一个市场而去把一项不成熟的技术用来害人!软性隐形眼镜所产生的角膜病变目前在医学上被认为是绝症,最后只能用角膜移植来解决问题!每一位患者能为你们带来上巨大的利润,而为了这些利润,你们竟然把广大的患者当了赚钱的工具,隐瞒其产品的风险,而使广大的患者冒着在若干年后要成为盲人或准盲人的风险,你们心中何安!在几千万人的眼中埋下一颗定时炸弹,你们良心何存?!
    去看看吧!充斥着所有眼镜店和眼科中心的软式隐形眼镜是多么琳琅满目。还要有多少双眼睛将被摧残,要知道眼睛是我们心灵的窗户呀......

        现在全国上下还有多少人仍在使用软式隐形眼镜,任何一个看到这篇文章的有良知的人,如果你觉得这篇文章有道理的,请你转发到别的论坛,让更多的人了解事实的真相。

        广大近视的朋友尤其是青年朋友,如果你们不怕在若干年后正值事业颠峰且作为家庭鼎梁柱的你们成为一个盲人或准盲人这一事实,请你们大胆地去成为他们的赚钱根据和实验品吧 

  • 自动化测试之谜与事实/Software Test Automation--Myths and Facts

    2008-11-13 13:41:42

    转载请保留:本文出自jenny2008wu的51Testing软件测试博客:http://www.51testing.com/?215302

    个人序言

        相信大家总能听到自动化测试的强劲的声音,你去面试,面试官总是问你,你会写代码吗?你会××××工具吗?似乎所有的一切都预示,自动化是一种趋势,这种趋势势必取代手工的测试。

        我不否认,测试中确实可以用到自动化,但是现在有多少人用过呢,有多少人又非常成功的实施过呢?归根结底,自动化还是要看适宜不适宜,没有最好的测试,只有最适宜的测试。

        本文的作者对自动化测试提出了一些比较中肯的观点,我把他译成中文,希望能给大家解解困惑,同时希望那些鼓吹自动化的人的呐喊声能够稍微收敛一些,因为自动化测试不仅仅是技术,而且首先需要的是,你对需求了解的深度,你的测试设计,对工具解,工具能否适合当前的项目?测试的流程做好了没有?还有计划.........                                                           M.N. Alam
                                                                                    IMI Systems Inc.
                                                                                       Dallas, TX
    Introduction

    Today software test automation is becoming more and more popular in both C/S and web environment. As the requirements keep changing (mostly new requirements are getting introduced on daily basis) constantly and the testing window is getting smaller and smaller everyday, the managers are realizing a greater need for test automation. This is good news for us (people who do test automation). But, I am afraid this is the only good news.  
    ********************************************************************************************************
    前言
        如今,软件自动化测试在C/S及WEB环境中变得越来越普及。由于需求变化频繁(大多新的需求都是每日被介绍给大家)而测试窗口则变得越来越小,管理者意识到自动化测试是十分有必要的,对于我们从事自动化的人来说,这是个好消息,但是,我很担心,这或许只是个好的消息
    ***********************************************************************************************************************
    Myths & Facts
    A number of articles and books are written on different aspects of Software Test Automation. “Test Automation Snake Oil” by, James Bach is an excellent article on some of the myths of automation. I like to discuss some of these myths and will try to point out the facts about these myths. I also like to discuss some of my observations and hopefully point out possible solutions. These are based on my experience with a number of automation projects I was involved with.

    - Find more bugs: Some QA managers think that by doing automation they should be able to find more bugs. It’s a myth. Let’s think about it for a minute. The process of automation involves a set of written test cases. In most places the test cases are written by test engineers who are familiar with the application they are testing. The test cases are then given to the automation engineers. In most cases the automation engineers are not very familiar with the test cases they are automating. From test cases to test scrīpts, automation does not add anything in the process to find more bugs. The test scrīpts will work only as good as the test cases when comes to finding bugs. So, it’s the test cases that find bugs (or don’t find bugs), not the test scrīpts.
    ***********************************************************************************************************************
       迷及事实    
            许多文章或书籍里面都有提到软件自动化测试的各个方面,由 James Bach 写的“Test Automation Snake Oil”的文章,是篇揭开自动化测试之谜的最好的文章,我很想他讨论下这些迷并且尽量揭示这些迷背后的真实;我也很想阐述下我的观点,希望能指出这些问题的可行的解决办法。这些都基于我曾经参与的大量的自动化测试项目
            --找到更多的BUG:一些QA经理认为,通过实施自动化他们应该可以找到更多BUG,这是一个谜。先考虑一分钟,自动化的过程包括一套已经写好的测试用例,在大多数情况下,这些测试用例都是由熟悉测试应用程序的测试工程师写的。这些测试用例给到自动化工程师。在大多数情况下,自动化测试工程师并不熟悉他们要实施自动的用例。从测试用例到测试脚本,自动化根本就没有为多找BUG而多添加任何一个过程。在发现BUG方面,测试脚本和测试用例的效果是一样的。因此,是测试用例在发现BUG,而不是测试脚本。
    ***********************************************************************************************************************
    - Eliminate or reduce manual testers: In order to justify automation, some point out that they should be able to eliminate or reduce the number of manual testers in the long run and thus save money in the process. Absolutely not true. Elimination or reduction of manual testers is not any of the objectives of test automation. Here is why – as I have pointed out earlier that the test scrīpts are only as good as the test cases and . They are the ones who know the application inside out. If the word gets out (it usually does) that the number of manual testers will be reduced by introducing automation then, most if not all manual testers will walk out the door and quality will go with them as well.

    Observations
    I have met a number of QA managers who are frustrated with their automation. According to them the tool is not doing what it is supposed to do. Here is a true story, the client (I had the opportunity to work with them for some time) found out that the tool they have just bought does not support the application they are testing (I am not making it up). How can this happen! – It does happen more often than one would think. I will get back on this when I discuss possible solutions. A manager of one of the major telecom companies that I had a recent interview with told me that after three years and more than a million dollar he is still struggling with automation. This is pretty sad and I get the feeling that he is not alone.
    ***********************************************************************************************************************
        ---替代手工测试或减少手工测试:为了认识自动化,一些人指出,从长远上来说,自动化测试应该可以替代手工测试或减少手工测试,由此,可以节约过程成本。很显然这不是事实。替代或减少大量的手工测试并不是自动化测试的目的,原因如下:
         就像我开始指出的那样,测试脚本只是和测试用例一样好,他们都很熟悉这些应用程序,假如大量手工测试者随着对自动化的理解而减少,很多手工测试都将退出手工测试领域,而软件的质量也会随之一落千丈。
    观点
         我见过很多QA经理,他们对自动化都很困惑,对于他们来说,工具并没有像预想的那样发挥作用。这有个真实的实例,客户(我曾经和他们工作一段时间)发现他们刚买的工具不支持他们正在测试的程序(这不是我瞎编的),怎么会发生这种事情呢!--这件事的发生超乎了大家的想象。当我讨论可能的解决方案的时候我会回过来解释这点。我最近面试的一个电信的经理告诉我,他们花了三年的时间,一百多万美元,他仍然在自动化里面挣扎。这是事实,而我也知道,不只是他一个人这样。
    Solutions/Suggestions

    Let’s discuss some of the reasons for this frustration and some of the solutions to this problem.

    - Unrealistic expectations: Most managers have their first encounter with any automation tool when they look at the demo and everything looks nice and simple.
    But everything is not so nice and simple when you try to use the tool with your application. The vendors will only tell you the things you want to hear (how easy to use, how simple to set up, how it will save time and money, how it will help you find more bugs etc.). This builds a false set of hopes and expectations.

    - Lack of planning:A great deal of planning is required from selection to implementation of the tool. “Evaluating Tools” by Elisabeth Hendrickson is a very good article on step by step process of selecting a tool. She talks about “Tool Audience” as one of the steps. This would be an ideal way to select a tool. It may not happen in every place because of the everyday workload of the people involved. But the participation of the users in the process is very important, because they are the ones who will use the tool day in and day out. I am almost certain that what happened to one of my clients (the tool they have bought did not support the application they were testing) would not have happened if the users were involved in the selection process.  

    - Lack of a process: Lack of a process may also contribute to failure of automation. Most places do have some kind of process in place. In most cases (although it differs from place to place) developers write code against a set of requirements. If the requirement does not call for a change in GUI then, there should not be any change in GUI. But if the GUI keep changing constantly from one release to another without any requirement for that change then, there is a problem in the process. You may have the best tool and the best (for your environment) architecture is in place and you will still have problems with your automation because of a faulty process.
    方案及建议
           让我们讨论一下这个困惑的原因以及解决这些问题的方法。
           --不现实的期望:许多经理第一次碰到自动化测试工具的时候,总是觉得很好,也很简单。
           但是当这些工具用于到测试中来时,不是所有的事都是看上去很好且很简单,销售人员往往会告诉你想听的(用起来很简单,配置也很简单,节约很多时间和金钱,找到更多的BUG),这就建立一套错误的期望。
          --缺乏计划:从选择到配置工具,需要很多计划,由Elisabeth Hendrickson写的“Evaluating Tools” 很好的介绍了怎样来一步步选择工具,这只和相关工作人有关,但是测试人员参与这个过程非常重要,因为他们是天天用这个工具的人,如果测试人员参与到选择工具的过程,我可以确定我上面提到的那个客户那样的情况不会发生。
          ---缺乏流程:缺乏流程也是自动化失败的一个原因,很多地方都有一些流程。很多时候都是开发人员对着需求写代码。如果需求没有要求在界面上进行改变,他们就不应该改动界面。但是事实上,界面每个版本都在变化,而需求没有跟着变化,这就是流程中的问题。你可能有最好的工具,最好的架构师,但是因为错误的流程,你的自动化仍然会有问题。


    Conclusion
    I think there is a need to educate QA managers about the benefits and limitations of automation. There is a need to separate the facts from the fictions. But here is the problem, in most cases consultants are brought in to fix problems of prior attempts instead of initial setup. At this point the managers have already learned (painfully) the pitfalls of automation. In order to avoid this painful experience I would recommend (most automation engineers will agree with me) to spend more time up front doing research about the styles and techniques of automation and find an architecture that fits the environment. There is no doubt that automation adds a great value to overall QA process but, short of knowledge and understanding about automation and lack of planning can also cause a nightmare.
    ***********************************************************************************************************************
    总结
         我认为十分必要让QA经理明白自动化的利益及限制。必须认清神话中的事实。但是还有一个问题,在很多情况下,建议只是对应问题而不是试图替代最终的构想。从这点上来说,经理们已经明白的自动化的陷阱。为了防止这种惨痛的经历,我要强调,要多花些时间来研究自动化工具的技术及类型,以此来找出一种适合环境的架构。毫无疑问,自动化为QA的过程增加了很多价值,但是,如果缺乏对自动化的了解、认识以及计划,那就会带来一场噩梦。

321/212>
Open Toolbar