发布新日志

  • 搜索引擎测试方法

    2010-03-25 21:57:40


    包括关键字搜索.完全匹配.有效字符.无效字符等

    1,空内容点击搜索,看其有没有LINK
    2,输入过长查询数据,看其有没判断,报错
    3,输入各种符号,特别是空格,看其能否正确判断
    4,输入各种字符,譬如输入范围是0~9,A~Z的看输入中文是什么效果
    5,输入正确数据,看其的查询后数据的完整性
    6,注意在光标停留的地方输入信息时,光标和所输入的信息会否跳到别的地方
    7,在输入结束后直接按回车键,看系统处理如何,会否报错
    8,反复输入相同的数据(5次以上)看是否报错
    9,各国文字/字符的输入/粘贴能正确显示 退格键等操作显示正常 超过支持的最大长度有相应的提示 混合的多种语言也能正确显示
    10,显示&接收;能进行下一步处理
    11,其他的 包括能删除  能剪切等(我也不确定要不要包括 有点奇怪 显示语言是字符库支持的问题 而且如果是面向对象程序设计语言做的文本框 删除什么的功能也不用测

  • 搜索引擎测试的难点

    2010-03-25 21:52:13

    衡量搜索引擎系统功能质量方面有2大指标,查询率、查准率。

    性能方面从吞吐率、响应时间、系统资源消耗等多方面综合考虑。

    搜索引擎应用参与运作的角色划分:分发请求/合并查询结果的merger,以及查询服务的searcher.

     

    搜索引擎系统部署可以划分为:

    1)     1MergerNsearchersearcher上数据一样 (分布式单个集群多台机器) N>=1且为整数

    2)     1个机器同时充当Merger以及searcher (单机版)

    3)     为避免2)单点故障,几台机器同时为merger/searcher,机器的数据一样。

    4)     M个分布式单个集群多台机器组成1个大型的分布式多集群多机器的复杂环境

     

    实践中3)4) 2种部署模式都是存在的。

     

    大数据量、高吞吐率的都采用4),避免单点故障

    小型的数据采用3),节约成本。

     

    单机上搜索引擎的模块划分一般有:

    Ø       索引模块:为海量数据(数据库导出的文件数据)建立索引文件(依照一定数据结构格式保存为二进制文件)

    Ø       查询模块:接收http请求,查询本机硬盘上的索引文件,返回文档ID以及第二次查询时返回具体的内容

    Ø       即时更新模块:加入新的数据,可以从0开始重新建索引,也可以在原有基础上增加索引。

    Ø       分布式模块:merger/searcher多台机器的网络通信。

    Ø       CACHE模块:这里可以做查询请求的缓存,也可以做查询结果的缓存,但缓存后者的话,将极大消耗系统内存。

    Ø    其他管理模块

    Ø       外部接口

     

     

    基于如上复杂的系统架构,尤其是4)模式,我们在测试当中也碰到相当多棘手的技术问题

    1)     海量数据是否都按预期的分词算法建立索引了呢?

    2)     机器分词的效果与手工分词相差有多大呢?

    3)     海量查询的返回结果是否多查了

    4)     海量查询的返回结果是否漏查了

    5)     海量查询的返回结果的加亮、标注如期加了?

    6)     海量查询的返回结果中相关性分数计算是否正确?

    7)     海量查询的返回结果积分计算是否正确了呢

    8)     海量查询的返回结果积分相同时,排序的先后依据唯一么?

    9)     加入即时更新模块后,每次查询结果都不同,新建的索引内容是否都反馈到查询结果里面了呢

    10) 海量数据时CACHE是否预期CACHEcache的内容?

    11) 海量数据时CACHE是否依照一定的过时算法令cache的内容失效呢?

    12) 应用程序在32位LINUX操作系统和64位的LINUX的索引、查询结果是否依然一样?

    13) 应用程序在不同的OS上索引、查询结果是否依然一样?

     

     

    我们在实践中,针对查询结果正确性有3类方法处理以上问题

    第一类基于人工肉眼对比,极度耗费脑细胞

    1)     少量数据单机测试准确性

    2)     少量数据1个集群,搭建1merger 1searcher测试准确性

    3)     少量数据1个集群,搭建1mergersearcher测试准确性

    4)     少量数据多个集群,搭建1mergersearcher测试准确性

     

    第二类,经过人工对比确认基本功能无大问题后,开发linux shell脚本或者loadrunner脚本比较部署方式不同但测试返回结果理当相同的。这个方法也帮我们发现了一些BUG

     

    第三类方法,

    直接测试大量数据多个集群,搭建1mergersearcher测试准确性。

    这个时候采用loadrunner施加高峰压力,抽样检查查询请求的正确性。

     

    对于分词结果、相关性的结果,有人可能建立另外按照同样的算法以及输出格式,由2个不同的开发工程师实现,再对比同样的数据分词、相关性是否相同。在项目开发时间从容的情况下,可以考虑这么做的,但现实中有几个项目时间从裕?呵呵,我没有这么好运气遇上。

     

    针对搜索引擎测试的困难,欢迎各位各抒己见。

  • 搜索引擎的测试方法

    2010-03-25 21:46:57

     搜索引擎,大家一定非常的熟悉,在工作生活中经常遇到,比如你想知道怎么去你要去的地方,那么你先要搜索;你想知道周末有什么歌剧上演,那么你还是要搜索;你想知道这周全市商场打折情况,那么你依然离不开搜索,…………生活在网络时代的你,几乎离不开搜索,那么搜索靠的是什么?当然就是搜索引擎,搜索引擎的重要性自然体现出来了。 大家最熟悉的专业搜索引擎有yahoo!、Google、百度…………然后搜索引擎并不止这些,一些大型的网站也有自己的搜索引擎,如淘宝。你想在淘宝上买东东,那么大多数人先是直接搜索想要买的东东的名字,然后在list中按照一定的条件进行筛选,然后就可以和卖家联系货比三家了。

            上面说了这么多废话,我们现在言归正传,那就是搜索引擎我们怎么测试呢?

            搜索引擎的测试也分为功能与性能测试,我在下面依次来分享:

            首先,我们把整个测试计划分为线下测试与线上测试。线下与线上测试都要分功能测试与性能测试,先说现线下的测试。

            一、线下功能测试分为两个部分,一部分为搜索引擎本身的功能测试,一部分为嵌套在前台应用中的功能测试:

            1、搜索引擎本身的功能测试,主要就是按照用例,通过不同的搜索关键字、属性的组合(按照搜索引擎的规则)来直接访问搜索引擎,查看返回的数据、参数是不是符合原先预计的结果。可以编写脚本来批量执行,判断每一个搜索的返回结果数与内容,相对应的参数是否一致。也可以手工执行,使用浏览器或者命令行(如curl)来做,用肉眼来观察结果。

            2、嵌套前台应用的功能测试,只要就是按照用例通过前台的操作,来测试搜索引擎的相关的功能,测试搜索引擎与前台的接口是否正确应用,至于如何测试,这个地球人都知道了,我就不在这里多说了。

            二、线下性能测试也分为两个部分,一部分为直接对搜索引擎进行加压的性能测试,另一部分为通过前台应用进行加压的性能测试:

            1、直接对搜索引擎进行加压,可以测试出搜索引擎本身最真实的性能状况。可以把搜索引擎的有效负荷,最大承受的压力测试出来。具体的方法是,使用工具如loadrunner使用一个web_url直接加压,加压的内容其实就是你在功能测试中,直接测试搜索引擎时使用的那些搜索关键字、属性的组合(按照搜索引擎的规则),具体的规则可以通过log来查看,也可以询问开发人员。需要注意的是,数据准备一定要海量,至少10万条以上的搜索数据(注意,就是你访问搜索引擎的那些关键字组合,至于被搜索的数据,越大越好,最少多大,看你实际需要了)。当一切都准备完毕后,就可以启动工具来进行加压了。

            2、通过前台应用进行加压,主要的压力都集中在前台应用上面,对于搜索引擎本身的压力并不会很大,但是这种测试也是必须的,因为你的搜索引擎是离不开前台应用的,这种测试可以模拟最真实的终端用户使用。所以不要怕麻烦,这个才是最后真正有意义的测试结果。

            三、线上的功能测试,其实就是功能回归了,使用预发布环境(一套独立的缩小的线上的架构)来跑回归,手工或者自动化随便,这是不能缺少的。

            四、线上的性能测试,这个也是使用预发布环境(记得一定要和线上一样哦,只不过是缩小的),分流线上的一部分压力到这里,观察线上与预发布环境中的各服务器的情况,如果是第一次发布,线上没有流量,那么就自己来模拟,或者靠运营来宣传了(有点想网络游戏的公测)。记录下服务器的各性能指标,如load,cpu,队列,最大并发连接数,log等等。

           特别需要注意的是,不同层次服务器之间的数据传输方式,正确率以及配置,多试试不同的配置,寻找性能最优点。

            好了,就写到这里了,有什么问题可以交流,我的msn:lrhhxh@hotmail.com

  • JMETER

    2010-02-26 21:19:15

    JMeter是一款在国外非常流行和受欢迎的开源性能测试工具,LoadRunner一样,它也提供了一个利用本地Proxy Server(代理服务器)来录制生成测试脚本的功能,但是这个功能并不好用。所以在本文中介绍一个更为常用的方法——使用Badboy录制生成JMeter脚本。

    简单的介绍一下BadboyBadboy是一款不错的Web自动化测试工具,如果你将它用于非商业用途,或者用于商业用途但是安装Badboy的机器数量不超过5台,你是不需要为它支付任何费用的。也许是一种推广策略,Badboy提供了将Web测试脚本直接导出生成JMeter脚本的功能,并且这个功能非常好用,也非常简单。你可以跟着下面的试验步骤来迈出你在开源世界的第一步。

    1.     通过Badboy的官方网站下载Badboy的最新版本;

    2.     安装Badboy。安装过程同一般的Windows应用程序没有什么区别,安装完成后你可以在桌面和Windows开始菜单中看到相应的快捷方式——如果找不到,可以找一下Badboy安装目录下的Badboy.exe文件,直接双击启动Badboy

    3.     启动Badboy,你可以看到下面的界面。

    在地址栏(图中红色方框标注的部分)中输入你需要录制的Web应用的URL——这里我们以http://www.yahoo.com为例,并点击GO按钮开始录制。如果你用过LoadRunner之类的商业工具,对于这个操作一定不会陌生吧^_^

    4.     开始录制后,你可以直接在Badboy内嵌的浏览器(主界面的右侧)中对被测应用进行操作,所有的操作都会被记录在主界面左侧的编辑窗口中——在这个试验中,我们在Yahoo的搜索引擎中输入JMeter进行搜索。不过你将看到,录制下来的脚本并不是一行行的代码,而是一个个Web对象——这就有点像LoadRunnerVuGen中的Tree View视图;

    5.     录制完成后,点击工具栏中的“停止录制”按钮,完成脚本的录制;

    6.     选择“File -> Export toJMeter”菜单,填写文件名“login_mantis.jmx”,将录制好脚本导出为JMeter脚本格式。也可以选择“File -> Save”菜单保存为Badboy脚本;

    7.     启动JMeter并打开刚刚生成的测试脚本。

    也许你已经急不可待的准备开始尝试着用JMeter处理你手头的工作^_^在下面的几节,我将继续为大家介绍如何在JMeter中完成一个测试场景的设置和JMeter测试结果分析入门,以及如何参数化JMeter脚本。

    当然,如果你的动手能力很强,几分钟你就可以熟悉这些内容。不过还是请允许我一点点由浅入深的来帮大家完成“JMeter从入门到精通”的过程。我相信在这个过程中你将会了解到更多有关性能测试的知识和经验,甚至包括一些LoadRunner等商业测试工具所无法提供给你的经验。

    点击这里下载本文中用到的示例脚本,其中包括

    yahoo_search.bb       Badboy的脚本文件,可以直接用Badboy打开

    yahoo_search.jmx      JMeter的脚本文件,可以直接用JMeter打开

      

    Badboy官方网站http://www.badboy.com.au/

     

    JMeter官方站点http://jakarta.apache.org/jmeter/

     

     


    全部脚印 不留脚印 留下脚印:
  • HR马上扔掉的6种简历

    2010-02-25 21:57:57

     


     招聘的任务很重,得到的简历也很多,筛选简历是HR每天必做的事情。看了那么多的简历,有一些简历我只看一眼,便马上放弃考虑,他就失去了得到这个工作岗位的任何机会。每个HR都是这样,一些种简历是被拒看的。比方说:

      1、很长的求职信。

      HR时间有限,通常要在很短的时间里看很多的简历,如果求职信过长,甚至重点不突出,重复表述同一个特质或能力,HR会感到你能提出来的就这有这些了,其他就不必要看了。

      2、简历不完整。

      工作经验在招聘当中是很被HR看中的。有的人写自己的工作经历时,不是前边丢掉几年就是近一两年的工作经历空白,让人对他顿生怀疑,也对他的求职态度和做事态度产生疑虑,再看下去的想法也没有了。

      3、表述过于简略。

      有一些人的简历相当的简单,工作经历只写到年,工作情况只写岗位名称,教育情况只写大专或大本,让人看到后了解的信息实在有限,那么也不会再进一步考虑了。

      4、出现明显错误。

      尤其是一些时间上的错误,比方说上十几年的大专,普通本科上五年或三年,还有两年和一年的,或者教育经历与工作经历完全重叠,或者算下来从11岁就开始工作经历的等等,这样的简历会马上被抛弃掉的。

      5、附件形式或标题不明确的。

      有的人提交简历时只写是应聘或个人简历,简历采用附件形式发送,这样的情况下如果简历很多,HR会把这样的简历放在最后,有时间才会浏览一下,时间紧就根本不会去理会了。

      6、用很怪异的邮箱名字发送简历。

      例如司机投递简历时名字是“没油了”或“迷路了”,年轻人投简历用什么“彻夜跳舞、狂欢”这类的文字,或者带脏字,等等,这样的标题和名字让人一看即不会想再去打开简历看看了。

      每个HR经历不同,各方面情况不同,也可能各有所好,但是一些明显的、易犯的毛病还是应当尽量避免。招聘和应聘都是一件很严肃的事情。如果你是应聘者,请用负责的态度好好对待每一个环节,这样才能让HR相信你同样会具备严谨的工作态度。

      又到了求职高峰期,如何写简历?

      1、人事经理这样筛选简历

      外企人事经理是先“以貌取人”,即你简历写得如何;再看基本条件如学历、经历;最后是能力、潜能和性格。前两者是基本,最后是决定性的因素。脱颖而出的关键是展现你的丰采。

      2、一份标准的求职简历是这样的:

      求职者个人信息 姓名、性别?有些公司不要求?、出生年月(有些公司不要求)、婚姻状况(有些公司不要求)、详细联系方法、住址、联系电话、户口状况(不是必要的)。

      教育和培训背景 不必有小学、中学。应能证明你知识水准、所拥有技能和能力的一切相关信息。这包括正规、非正规的成人教育和专业培训。

      工作经历 包括雇佣型的工作,也包括实习、义务性和社团、社区性的工作。

      技术和技能 电脑技能、语言技能、性格和能力、性格特点、勾通能力、人际能力、团队精神、兴趣爱好。

      3、让你的简历远离“垃圾桶”

      以下几点应当注意:

      当人事经理和雇主在以后的面试或工作中发现简历中曾有不真实的成分时,你的后悔会远远大于你没有得到一份工作,要多准备几份不同的简历,以应付不同行业的不同职位。

      4、简历和求职信并行

      好的求职信必须和简历并行,目的是让简历更有针对性,另外求职信要手写才有人情味儿。

      5、简历不要写薪酬要求

      6、不要附照片和学历复印件

      7、给外企的简历要注意

      外企通常会牵扯到语言技能,因此根据招聘企业的外语要求准备外文简历是必要的。
  • 学习jmeter中如何调jar包

    2010-02-25 21:52:33

    这里我用到主要JMeter的线程和报表,扩展了他的“Java请求”这个应用类别。要扩展此应用,要用到lib/ext/ApacheJMeter_java.jar,他封装此应用。

        首先,需要继承ApacheJMeter_java.jar中的抽象类AbstractJavaSamplerClient,它提供了四个抽象方法: void setupTest(JavaSamplerContext arg0),SampleResult runTest(JavaSamplerContext arg0), void teardownTest(JavaSamplerContext arg0), Arguments getDefaultParameters()。setupTest和teardownTest与JUnit中的类似,分别在测试的开始和结束时执行。 runTest为主要测试方法,所有测试程序都在这里完成,JavaSamplerContext参数封装测试中需要的所有外界数据(如配置信息等)。其 SampleResult封装了所有测试结果(如:测试是否成功?程序执行时间等),getDefaultParameters用于把测试的一些默认数据在程序运行前显示到JMeter客户端,这个可以和runTest配合使用,实现数据的呈现和配置。

    下面为程序:

    package org.apache.jmeter.protocol.java.test;

    import org.apache.jmeter.config.Arguments;

    import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;

    import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;

    import org.apache.jmeter.samplers.SampleResult;

    import com.bizlogic.icwallets.server.Test;

    public class PcTest extends AbstractJavaSamplerClient

    {

       private static String label = "pcTest";

       private String name;

       private String address;

       public void setupTest(JavaSamplerContext arg0)

       {

           System.out.println("setupTest");

       }

       public SampleResult runTest(JavaSamplerContext arg0)

       {

           name = arg0.getParameter("name");

           address = arg0.getParameter("address");

           SampleResult sr;

           sr = new SampleResult();

           sr.setSampleLabel(label);

           try

           { //这里调用我们要测试的java类,这里我调用的是一个Test类

               Test test = new Test();

               test.start(null);

               sr.sampleStart(); // 记录程序执行时间,以及执行结果

               sr.setSuccessful(true);

               System.out.println("send over!");

           } catch (Throwable e)

           {  

               System.out.println("Exception is "+e.getMessage());

               sr.setSuccessful(false);

           } finally

           {

               sr.sampleEnd();

           }

           return sr;

       }

       public void teardownTest(JavaSamplerContext arg0)

       {

       }

       public Arguments getDefaultParameters()

       {

           Arguments params = new Arguments();

           params.addArgument("name", "JMeter");

           params.addArgument("address", "localhost");

           return params;

       }

    }

    如何将我们写的测试类加入到Jmeter中了?

       在Jmeter的lib/ext下有一个ApacheJMeter_java.jar, 首先解压ApacheJMeter_java.jar,解压后会出现一个org的文件夹,把写好的应用放在org.apache.jmeter.protocol.java.test里,将其打包成ApacheJMeter_java.jar(在dos中进入 C盘,执行“jar cf ApacheJMeter_java.jar org” ,org文件夹放在C:盘),放到lib/ext下,JMeter运行时即可找到。同时还要把用户自己编写的应用所依赖的包放在lib下。运行JMeter。界面打开后,右键“测试计划”,添加线程组;右键“线程组”-添加-Sampler-Java请求,在类名称处选择刚才写好的类。

  • 再次回答测试人员认为是bug而开发人员认为不是bug

    2009-04-07 09:13:13

    关于BUG的沟通

      一个人要去做一件事情,一般来说是按照自己的意愿去做的,如果不是自己想做而是被要求这么做的话,心里一定会留下点不愉快,特别是那种有自信有自己主见的人,比如说开发人员,当测试人员发现一个BUG,然后告知开发人员后,开发人员之所以会去修改BUG,是因为他自己认为的确需要修改,而不是因为你提到要改他才改的,所以当他认为不需要修改的时候,肯定是有自己的想法和理由,不妨理解下他们,合理的就可以接受,不合理的话,也不要强制的让他去修改,试着解释给他听,让他心甘情愿的去修改,这才不会让他心里产生不愉快的情绪,开发人员和测试人员彼此间的关系才不会弄得很紧张,如果强制性的让他修改多次的发生,那么开发人员会对测试人员慢慢的产生成见,这样就不好沟通了。

      有时候也许是描述BUG时的语言表达有问题,或者是开发人员的理解能力有问题,描述BUG一遍后,开发人员可能还会有不明白的地方,需要再次沟通,如果当场演示就比较容易理解了。可能我们都没有问题,只是根据自己所知道的信息和对方所知道的有所误差,有些共识还需要互相确认,所以提交BUG时不仅仅是简单的描述一次,而是多次的沟通和确认。


  • c#学习资料

    2007-04-11 11:39:12

    2007-04-08 23:14:34 / 个人分类:开发相关

    一些学习资料及工具下载地址,包括数据结构,Oracle,JAVA, QTPLoadRunner等(新加LINUX教程)

    一些资料,希望对大家有用。

    用迅雷下载,复制地址新建任务即可,速度还可以。

    数据结构视频教程

    数据结构C语言版 清华大学严蔚敏 主讲,很经典的教程,共48集

    http://202.197.144.235/hubce/newspace/teach0709/kc/1221data/1.asf

    http://202.197.144.235/hubce/newspace/teach0709/kc/1221data/2.asf

    。。。。。。。。。。。。。。。。中间自己加

    http://202.197.144.235/hubce/newspace/teach0709/kc/1221data/48.asf

     oracle9i视频教程


    DBA9i中文视频远程班全套课程由著名OCP讲师杨老师主讲,全程标准 Oracle大学授课环境,结合工程实例进行 精辟的讲解,同时配合实验调试,针对学员疑点进行深入分析,给学员营造了一个身临其境远程学习环境。

    J2EE.For.Developers.教学光盘
    很详细的讲解教程,不过个头蛮大的。
    老外讲课啊,全英文的,呵呵,对英语是个考验啊
    用迅雷点击右键下载
    J2EE.For.Developers.教学光盘cd1
    J2EE.For.Developers.教学光盘cd2

    LoadRuner 8.1 安装文件下载

      http://www.tuningking.com/download/LR_8.1.iso

    QTP 8.2安装文件下载

    http://www.17testing.com/download/QTPV8.2.rar 

    Linux的视频教程24集

    用迅雷下载

    http://tvu.yxtc.net/hbj/px/use_Linux/1/01/01.asf

    http://tvu.yxtc.net/hbj/px/use_Linux/1/02/02.asf

    http://tvu.yxtc.net/hbj/px/use_Linux/1/03/s03.asf

    http://tvu.yxtc.net/hbj/px/use_Linux/1/04/04.asf

    http://tvu.yxtc.net/hbj/px/use_Linux/1/05/05.asf

    http://tvu.yxtc.net/hbj/px/use_Linux/1/07/07.asf

    http://tvu.yxtc.net/hbj/px/use_Linux/1/06/s06.asf

    http://tvu.yxtc.net/hbj/px/use_Linux/1/08/08.asf

    http://tvu.yxtc.net/hbj/px/use_Linux/1/09/09.asf

    http://tvu.yxtc.net/hbj/px/use_Linux/1/10/10.asf

    http://tvu.yxtc.net/hbj/px/use_Linux/1/11/s11.asf

    http://tvu.yxtc.net/hbj/px/use_Linux/1/12/12.asf

    http://tvu.yxtc.net/hbj/px/use_Linux/2/13/13.asf

    http://tvu.yxtc.net/hbj/px/use_Linux/2/14/14.asf

    http://tvu.yxtc.net/hbj/px/use_Linux/2/15/15.asf

    http://tvu.yxtc.net/hbj/px/use_Linux/2/16/16.asf

    http://tvu.yxtc.net/hbj/px/use_Linux/2/17/17.asf

    http://tvu.yxtc.net/hbj/px/use_Linux/2/18/18.asf

    http://tvu.yxtc.net/hbj/px/use_Linux/2/19/19.asf

    http://tvu.yxtc.net/hbj/px/use_Linux/2/20/20.asf

    http://tvu.yxtc.net/hbj/px/use_Linux/2/21/21.asf

    http://tvu.yxtc.net/hbj/px/use_Linux/2/22/22.asf

    http://tvu.yxtc.net/hbj/px/use_Linux/2/23/23.asf

    http://tvu.yxtc.net/hbj/px/use_Linux/2/23/24.asf


  • 简历中如何修饰自己

    2007-04-11 11:37:24

    简历里尽可能地堆满动词、形容词和副词的求职成功率更高。几乎所有的人事经理都喜欢选择有效的字句,而不是有花样繁多的词藻的简历。

      例如,有一个IT公司的人事经理曾经说过,她从来都不喜欢在简历上看到“协助”这样的字眼。

      “我想知道的是应聘人员具体做了什么,而不是他们如何帮助做了什么。如果他们对某项任务足够熟悉,而且想放到简历里,他们就应该使用比‘协助’更好的字。”她解释说。

      出于和“协助”相同的理由,人事经理不会喜欢“试验”这个词。没有人想听你尝试做过什么———只想听你完成了什么。你不应该写“试用了新的局域网(LAN)管理软件”,而应该说“评估了LAN管理软件。”

      大多数人事经理不喜欢听到任何描述某人怎么好地完成了某项任务的字眼。他们说自己希望了解这个人相关的技能,而且希望自己才是这个人工作效果的评判者。因此,像有效的、仔细的、迅速的、专业的以及类似的字都会弄巧成拙。
  • 开博了

    2007-04-11 11:33:54

    开心开
Open Toolbar