发布新日志

  • 盖茨给职场人的十句话(转)

    2009-05-12 11:03:23Top 3 Digest 3

    1.人生是不公平的,习惯去接受它吧。

    CeL1f(RK149275

    2^O9q ^0^.?M_#lY6X {$G1492752.这个世界不会在乎你的自尊,这个世界期望你先做出成绩,再去强调自己的感受。51Testing软件测试网g1A2LEQ!m7y

    .c(X$Do-a ^1492753.你不会一离开学校就有百万年薪,你不会马上就是副总裁,两者你都必须靠努力赚来。51Testing软件测试网lbJTY!X*P

    51Testing软件测试网dU%e9H6x0Sj~

    4.如果你觉得你的老板很凶,等你当了老板就知道了,老板是没有工作任期保障的

    9e2u{|tD5eF14927551Testing软件测试网+d"}W"XZ

    5.在速食店煎个汉堡并不是作贱自己,你的祖父母对煎汉堡有完全不同的定义51Testing软件测试网:]@hc6j*a R7G

    M#E} c M w_1492756.如果你一事无成,不是你父母的错,所以不要只会对自己犯的错发牢骚要从错误中去学习51Testing软件测试网:UTMa'g W

    b&eN6yBli6C/I1492757.在你出生前,你的父母并不像现在这般无趣,他们变成这样是因为忙着付你的开销,洗你的衣服,听你吹嘘自己有多了不起,所以你拯救被父母代人破坏的热带雨林之前先整理一下自己的房间吧。51Testing软件测试网*`]c!zUCo!h.?

    51Testing软件测试网-lQDZ1{4c

    8.在学校里可能有赢家和输家,在人生中却还言之过早,学校可能会不断给你机会找到正确的答案,现实人生中却完全不是这么回事51Testing软件测试网q PK%f5|Z1r9m

    (A{^zY8k1492759.人生不是学期制,人生没有寒假,没有哪个雇主有兴趣协助你寻找自我,请用自己的空暇做这件事吧。51Testing软件测试网7y#PSKsN1Y4k0\

    v:[0j3?"I)vWE14927510.电视上演的并不是真实的人生,真实人生中每个人都要离开咖啡厅去上班。
  • 测试跟踪工具Bugzilla介绍

    2007-07-24 10:54:20Top 3 Digest 3

    测试跟踪工具Bugzilla介绍


       也许你还没有看到一个错误管理系统所具有的价值;也许你正被大量的测试数据所淹没,而迫切的需要一个产品缺陷的记录及跟踪的好帮手;也许你正在通过如:电子表格、数据库等 各种方式来不断的开发和完善一个错误跟踪系统。Mozilla公司向我们提供了一个共享的免费工具Buzilla.作为一个产品缺陷的记录及跟踪工具,它 能够为你建立一个完善的Bug跟踪体系,包括报告Bug、查询Bug记录并产生报表、处理解决、管理员系统初始化和设置四部分。并具有如下特点:

      1。基于Web方式,安装简单、运行方便快捷、管理安全。

       2。有利于缺陷的清楚传达。本系统使用数据库进行管理,提供全面详尽的报告输入项,产生标准化的Bug报告。 提供大量的分析选项和强大的查询匹配能力,能根据各种条件组合进行Bug统计。当错误在它的生命周期中变化时,开发人员、测试人员、及管理人员将及时获得 动态的变化信息,允许你获取历史纪录,并在检查错误的状态时参考这一记录。

      3。系统灵活,强大的可配置能力。Buzilla工具可以 对软件产品设定不同的模块,并针对不同的模块设定制定的开发人员和测试人员;这样可以实现提交报告时自动发给指定的责任人;并可设定不同的小组,权限也可 划分。设定不同的用户对Bug记录的操作权限不同,可有效控制进行管理。允许设定不同的严重程度和优先级可以在错误的生命其中管理错误,从最初的报告到最 后的解决,确保了错误不会被忽略,同时可以使注意力集中在优先级和严重程度高的错误上。

      4。自动发送Email,通知相关人员。根据设定的不同责任人,自动发送最新的动态信息,有效的帮助测试人员和开发人员进行沟通。

      下面我们将按照Bugzilla的操作说明、 Bugzilla管理员的操作指南两部分来说明这个工具的具体使用。本文有不少观点来自个人使用心得,有不妥之处,敬请斧正。

    Bugzilla操作说明

    1、 用户登录及设置


    1.1用户登录

      1. 用户输入服务器地址http://192.168.1.6/bugzilla/。

      2. 进入主页面后,点击【Forget the currently stored login】,再点击【login in】进入。

      3. 进入注册页面,输入用户名和密码即可登录。用户名为Email 地址,初始密码为用户名缩写。

      4. 如忘记密码,输入用户名,点击【submit request】,根据收到的邮件进行重新设置。

    1.2、修改密码及设置

      1.Login登录后,【Edit prefs】->【accout settings】 进行密码修改。

      2.【Edit prefs】->【email settings】 进行邮件设置。

      3.【Edit prefs】-> 【permissions】 进行权限查询

    2、Bug的处理过程

    2.1、报告Bug

    2.1.1测试人员报告Bug

      1. 请先进行查询,确认要提交的bug报告不会在原有纪录中存在,若已经存在,不要提交,若有什么建议,可在原有纪录中增加注释,告知其属主,让bug的属主看到这个而自己去修改。

      2. 若Bug不存在,创建一份有效的bug报告后进行提交。

      3. 操作:点击New,选择产品后,填写下表。

      4. 填表注意:Assigned to: 为空则默认为设定的 owner, 也可手工制定。CC: 可为多人,需用","隔开。Desription中要详细说明下列情况:

      1) 发现问题的步骤

      2) 执行上述步骤后出现的情况。

      3) 期望应出现的正确结果。

      选择group设置限定此bug对组的权限,若为空,则为公开。

      5. 操作结果:Bug状态(status)可以选择Initial state 为New或Unconfirmed.

      系统将自动通过Email通知项目组长或直接通知开发者。

      6.帮助: Bug writing guidelines

    2.1.2 开发人员报告Bug.

      1. 具体方法同测试人员报告。

      2. 区别: Bug初始状态将自动设为Unconfirmed,待测试人员确定后变为“New".

    2.2、Bug的不同处理情况

    2.2.1 Bug的属主 (owner) 处理问题后,提出解决意见及方法。

      1 . 给出解决方法并填写Additional Comments,还可创建附件(如:更改提交单)

      2.具体操作(填表项如下)

      3 . 填表注意:

      FIXED 描述的问题已经修改

      INVALID 描述的问题不是一个bug (输入错误后,通过此项来取消)

      WONTFIX 描述的问题将永远不会被修复。

      LATER 描述的问题将不会在产品的这个版本中解决.

      DUPLICATE 描述的问题是一个存在的bug的复件。

      WORKSFORME 所有要重新产生这个bug的企图是无效的。如果有更多的信息出现,请重新分配这个bug,而现在只把它归档。

    2.2.2 项目组长或开发者重新指定Bug的属主。(owner)

      1. 为此bug不属于自己的范围,可置为 Assigned,等待测试人员重新指定。

      2. 为此bug不属于自己的范围,但知道谁应该负责,直接输入被指定人的Email, 进行Ressigned。

      3. 操作:(可选项如下)

      * Accept bug (change status to ASSIGNED)

      * Reassign bug to

      * Reassign bug to owner and QA contact of selected component

      4. 操作结果:此时bug状态又变为New,此bug的owner变为被指定的人。

    2.2.3测试人员验证已修改的 Bug.

      1. 测试人员查询开发者已修改的bug,即Status为"Resolved",Resolution为"Fixed".进行重新测试。(可创建test case附件)

      2. 经验证无误后,修改Resolution为VERIFIED。待整个产品发布后,修改为CLOSED。

      若还有问题,REOPENED,状态重新变为“New",并发邮件通知。

      3. 具体操作(可选择项)

       1. Leave as RESOLVED FIXED

       2. Reopen bug

       3. Mark bug as VERIFIED

       4. Mark bug as CLOSED

    2.2.4 Bug报告者(reporter)或其他有权限的用户修改及补充Bug

      1. 可以修改Bug的各项内容。

      2. 可以增加建立附件,增加了相关性, 并加一些评论来解释你正在做些什么和你为什么做。

      3. 操作结果:每当一些人修改了bug报告或加了一个评论,他们将会被加到CC列表中,bug报告中的改变会显在要发给属主、写报告者和CC列表中的人的电子邮件中。

    2.2.5测试人员确认开发人员报告的Bug是否存在.

      1. 查询状态为“Unconfirmed"的Bug,

      2. 测试人员对开发人员提交的Bug进行确认,确认Bug存在。

      3. 具体操作:选中“Confirm bug(change status to New)"后,进行commit.

      4. 操作结果:状态变为“New".

    2.3、查询Bug

      1.直接输入Bug Id,点击find 查询。可以查看Bug的活动纪录。

      2.点击Query,输入条件进行查询。

      3.查询Bug活动的历史

      4.产生报表。

      5.帮助:点击Clue.

    3、关于权限的说明

      1. 组内成员对bug具有查询的权利,但不能进行修改。

      2. Bug的owner 和 reporter 具有修改的权利。

      3. 具有特殊权限的用户具有修改的权利。

    4、 BUG处理流程

      1. 测试人员或开发人员发现bug后,判断属于哪个模块的问题,填写bug报告后,通过Email通知项目组长或直接通知开发者。

      2. 项目组长根据具体情况,重新reassigned分配给bug所属的开发者。

      3. 开发者收到Email信息后,判断是否为自己的修改范围.

      1) 若不是,重新reassigned分配给项目组长或应该分配的开发者。

      2) 若是,进行处理,resolved并给出解决方法。(可创建补丁附件及补充说明)

      4. 测试人员查询开发者已修改的bug,进行重新测试。(可创建test case附件)

      1) 经验证无误后,修改状态为VERIFIED。待整个产品发布后,修改为CLOSED。

      2) 还有问题,REOPENED,状态重新变为“New",并发邮件通知。

      5. 如果这个BUG一周内一直没被处理过。Bugzilla就会一直用email骚扰它的属主,直到采取行动。

    5、一个Bug的生存周期



    Bugzilla管理员操作指南

    1、主要工作内容:


    1. 1产品(Product)、版本号(versions)和模块(Components)的定义,同时指定模块相应的开发者(owner)和测试人员(QA Contact)。

    1.2小组的定义和划分

    1.3测试中Bug严重程度、优先级的定义

    1. 4增加用户,并分别设定全部用户的分组、权限。

    1. 5主要参数(parameters)的设置

      1) urlbase: 输入bugzilla 工具所在的服务器IP地址。

      2) usebuggroupsentry: 设为ON,可以分组。

      3) whinedays:Bug在whinedays设定的期限内若未被处理,将自动重发mail,默认为7天。

      4) defaultpriority:设定默认的优先级

      5) commentonresolve:设为ON,系统将强制要求开发者处理完Bug 后,必须填写修改的内容。

    2、基本操作:

    2.1创建默认的管理员用户。

      运行checksetup.pl。若不小心删除管理员,重新运行checksetup.pl.

    2.2 管理用户

    2.1 增加新用户

      点击页面右下角【users】,submit后,出现【Add new user】页面。输入相应输入即可。Login name: 一般为邮件地址,可以设为其他标识。

    2.2 禁止一个用户

      填写Disabled text 输入框即可。

    2.3 修改用户

      可以修改用户注册名、密码。

      设置权限

      QA的权限一般设为: Canconfirm, editbugs

      Developer的权限设为: none

      分组控制:group

    3、管理group

    3.1.增加group

      edit groupàadd groups (New User Regexp可不填/active 选择则可选)->add

    3.2修改group ,submit 即可。

      4、管理Product 和 component

      a)增加Product

      b) Component 对应一个owner(进行fixed),QA Contact(确保已fixed)

      c) Component Number of Unconfirmed =10000,此产品将选择bug的初始状态(Unconfirmed,New)
  • [论坛] 25句经典名言

    2007-06-19 15:56:27Top 3 Digest 3

    1,记住该记住的,忘记该忘记的。改变能改变的,接受不能改变的
    2,能冲刷一切的除了眼泪,就是时间,以时间来推移感情,时间越长,冲突越淡,仿
    佛不断稀释的茶。
    3,怨言是上天得至人类最大的供物,也是人类祷告中最真诚的部分。
    4,智慧的代价是矛盾。这是人生对人生观开的玩笑。
    5,世上的姑娘总以为自己是骄傲的公主(除了少数极丑和少数极聪明的姑娘例外)
    6,如果敌人让你生气,那说明你还没有胜他的把握
    7,如果朋友让你生气,那说明你仍然在意他的友情
    8,令狐冲说“有些事情本身我们无法控制,只好控制自己。”
    9,我不知道我现在做的哪些是对的,那些是错的,而当我终于老死的时候我才知道这
    些。所以我现在所能做的就是尽力做好每一件事,然后等待着老死。
    10,也许有些人很可恶,有些人很卑鄙。而当我设身为他想象的时候,我才知道:他
    比我还可怜。所以请原谅所有你见过的人,好人或者坏人
    11,鱼对水说你看不到我的眼泪,因为我在水里.水说我能感觉到你的眼泪,因为你
    在我心里。
    12,快乐要有悲伤作陪,雨过应该就有天晴。如果雨后还是雨,如果忧伤之后还是忧
    伤.请让我们从容面对这离别之后的离别。微笑地去寻找一个不可能出现的你!
    13,死亡教会人一切,如同考试之后公布的结果——虽然恍然大悟,但为时晚矣~!
    14,你出生的时候,你哭着,周围的人笑着;你逝去的时候,你笑着,而周围的人在
    哭!一切都是轮回!!!! 我们都在轮回中!!!!
    15,男人在结婚前觉得适合自己的女人很少,结婚后觉得适合自己的女人很多
    16,于千万人之中,遇见你所遇见的人;于千万年之中,时间的无涯荒野里,没有早
    一步,也没有晚一步,刚巧赶上了
    17,每个人都有潜在的能量,只是很容易:被习惯所掩盖,被时间所迷离,被惰性所消
    磨.
    18,人生短短几十年,不要给自己留下了什么遗憾,想笑就笑,想哭就哭,该爱的时
    候就去爱,无谓压抑自己
    19,《和平年代》里的话:当幻想和现实面对时,总是很痛苦的。要么你被痛苦击
    倒,要么你把痛苦踩在脚下
    20,真正的爱情是不讲究热闹不讲究排场不讲究繁华更不讲究嚎头的
    21,生命中,不断地有人离开或进入。于是,看见的,看不见的;记住的,遗忘了。
    生命中,不断地有得到和失落。于是,看不见的,看见了;遗忘的,记住了。然而,看
    不见的,是不是就等于不存在?记住的,是不是永远不会消失?
    22,我们确实活得艰难,一要承受种种外部的压力,更要面对自己内心的困惑。在苦
    苦挣扎中,如果有人向你投以理解的目光,你会感到一种生命的暖意,或许仅有短暂的
    一瞥,就足以使我感奋不已。
    23,我不去想是否能够成功,既然选择了远方,便只顾风雨兼程;我不去想,身后会不会
    袭来寒风冷雨,既然目标是地平线,留给世界的只能是背影.
    24,后悔是一种耗费精神的情绪.后悔是比损失更大的损失,比错误更大的错误.所以
    不要后悔
    25,日出东海落西山,愁也一天,喜也一天;遇事不钻牛角尖,人也舒坦,心也舒
    坦。
  • [论坛] 幽默的夫妻通信

    2007-06-14 13:38:17Top 3 Digest 3

    夫妻之间的东西真是很多很多,千奇百怪,又看到一篇,转来看看,很有意思。

    幽默的夫妻通信

    亲爱的丈夫:

    你生活惬意,日子舒心,快乐似神仙。可是,不知道你有没有发现,你的老婆,我,过
    得点都不好。为什么呢?我这就告诉你。现在请你把耳朵洗干净了,好好 听 我说。记
    住,一定要把耳朵洗干净了,也就是古人说的洗耳恭听。听好了。

    从前,是妈妈给我洗衣服;现在,是我给你洗衣服。结婚前,我连什么叫奥妙都不知道
    ;现在,我知道十几个牌子的洗衣粉,还知道哪个便宜又好用。

    从前,我不会做饭;现在,我是高级厨师。结婚前,我连蛋炒饭都不会,而且经常分不
    清盐和味精,偶尔还会把糖不小心放进汤里;现在,满汉全席的108道菜我差 不多都会
    了,剩下的菜式,不是我不会,只是因为你买不起做菜的材料,比如驼掌。

    从前,吃饭时你抢着买单;现在,吃完饭你等我付账。结婚前,我的钱用来买衣服和化
    妆品;现在,我的钱全贡献给了伙食费。

    从前,看你抽烟的样子很帅;现在,看你抽烟特别讨厌,整一个烟鬼。从前看你 喝酒
    的模样很酷;现在,看到你的将军肚,简直让我受不了。

    从前,你总是赖在我家不走;现在,打几遍手机你也不回。结婚前,你像蚊子一样围着
    我转,烦都烦死了;现在,我结蜘蛛网已经是大虾级的了,却仍然逮不到你这个小虫
    子。

    从前,你英俊潇洒,西装笔挺,穿上牛仔更是迷死人;现在,你邋里邋遢,尤其是打完
    篮球,那双袜子臭死人了。

    从前,你是我逛街的最好跟班,从东街一直逛到西街,两手提满东西也不嫌累;现在,
    购物是我自己去,买了新衣服穿给你看,你连头也不抬就说好看。其实,你是嫌陪我去
    时装店调换太麻烦。 9Wr"Sf}H _
    从前,你说充分尊重我,给我所有的自由;现在,你说男人风流是潇洒,女人风流是堕
    落,你可以随便出去应酬,我最好大门不出,二门不迈,家就是我的天地。

    从前,……

    唉,我真的是很想不通,像我这样优秀的女性为何会跟你这样的人生活在一起,而且
    还生活了那么多年。爱你又讨厌你的老婆


    亲爱的妻子:

    看到你的信了。很感人。但是,我仔细想一想,觉得你缺乏辩证唯物主义思想,缺乏一
    分为二看问题的基本能力,看事情过于片面,只见树木,不见森林。为了纠正你的缺
    点,补充你的不足,让你看见一整片森林。很爱很爱你的老公决定写如下的一封信,敬
    请参阅。

    结婚前,工资我自己花,是个标准的小款;结婚后,工资通通交给你,买包烟都要计算
    半天,经常是一角当成两角用。

    结婚前,你可以随便骂我;结婚后,你还是可以随便骂我,而且现在已经升级到可以随
    便打我了。不管结没结婚,骂你我都不敢,打你更是学都不敢学。

    结婚前,我是自由的;结婚后,我的一切都是你的,信可以随便看,兜可以随时翻,你
    时刻睁大警惕的双眼,以迅雷不及掩耳之势没收我那点儿可怜的私房钱。而你的信我不
    能看,你的包我不能随便翻,否则,就是侵犯了你的隐私权,妇女儿童权益委员会打电
    话找我谈谈,纠正我的错误。

    结婚前,你想散步我必须去,因为你需要保镖和谈话对象;结婚后,你想散步我还是必
    须去,原因雷同。结婚前,我约你要等到你非常有空;结婚后,我想散步你可以不去,
    我硬拽你去,就会侵犯了妇女儿童的合法权益。

    如果有一个苹果,那么你和儿子一人一半;如果有两个苹果,那你和儿子就一人一个;
    三个苹果呢,才可能轮到我,不过一定是那个最小最难吃的。

    你可以随时买衣服,不论多少钱,你眼皮眨都不眨一下;我的衣服,你买打折的,而且
    还是三折以下的,五折的衣服,你看都不看,嫌贵。

    你出差时,不给我捎东西是正常的,天经地义;我外出时,买纪念品是首要任务。如果
    空着手回来,你会生气的,而且好几天。

    你回娘家,大包小包买得理直气壮;我回我家,你说:人那么多,不用买了。而我不敢
    有丝毫的反抗。

    你高兴时可以叫我亲爱的,你不高兴时,会叫我混蛋;我高兴不高兴都要叫你小甜甜、
    亲爱的。

    你还经常问我一些很棘手的问题,比方说,如果我爱上别人,你会怎么做?我回答:拿
    把刀把他杀掉。你就使劲捶我,说我自私、狭隘,还那么残暴。我急忙改口说:如果你
    真的爱他,我成全你们。你却哭了起来:原来你根本不爱我,想借机甩掉我。我实在不
    知道应该怎么回答你才对。现在我还是弄不明白,你好像任何时候都有理。 但是,不
    管怎样,我都爱你,很爱你。娶到你是我这一生最大的幸福。

    不是很懂你但是很爱你的老公。
  • 一位前辈工程师的忠告!(转)

    2009-04-24 09:03:44Top 1 Digest 1

    1]好好规划自己的路,不要跟着感觉走!根据个人的 理想决策安排,绝大部分人并不指望成为什么院士或教授,而是希望活得滋润一些,爽一些。那么,就需要慎重安排自己的轨迹。从哪个行业入手,逐渐对该行业深 入了解,不要频繁跳槽,特别是不要为了一点工资而转移阵地,从长远看,这点钱根本不算什么,当你对一个行业有那么几年的体会,以后钱根本不是问题。频繁地 动荡不是上策,最后你对哪个行业都没有摸透,永远是新手!

    [2]可以做技术,切不可沉湎于技术。千万不可一门心思钻研技术!给自己很大压力,如果你的心思全部放在这上面,那么注定你将成为孔乙己一类的人物!适可而止为之,因为技术只不过是你今后前途的支柱之一,而且还不是最大的支柱,除非你只愿意到老还是个工程师!

    [3]不要去做技术高手,只去做综合素质高手!在企业里混,我们时常瞧不起某人,说他“什么都不懂,凭啥拿那么多钱,凭啥升官!”这是普遍的典型的工程师的迂腐之言。

    很 牛吗?人家能上去必然有他的本事,而且是你没有的本事。你想想,老板搞经营那么多年,难道见识不如你这个新兵?人家或许善于管理,善于领会老板意图,善于 部门协调等等。因此务必培养自己多方面的能力,包括管理,亲和力,察言观色能力,攻关能力等,要成为综合素质的高手,则前途无量,否则只能躲在角落看示波 器!技术以外的技能才是更重要的本事!!从古到今,美国日本,一律如此!

    [4]多交社会三教九流的朋友!不要只和工程师交往,认为有共同语言,其实更重要的是和其他类人物交往,如果你希望有朝一日当老板或高层管理,那么你整日面对的就是这些人。了解他们的经历,思维习惯,爱好,学习他们处理问题的模式,了解社会各个角落的现象和问题,这是以后发展的巨大的本钱,没有这些以后就会笨手笨脚,跌跌撞撞,遇到重重困难,交不少学费,成功的概率大大降低!

    [5]知识涉猎不一定专,但一定要广!多看看其他方面的书,金融,财会,进出口,税务, 法律等等,为以后做一些积累,以后的用处会更大!会少交许多学费!!

    [6] 抓住时机向技术管理或市场销售方面的转变!要想有前途就不能一直搞开发,适当时候要转变为管理或销售,前途会更大,以前搞技术也没有白搞,以后还用得着。 搞管理可以培养自己的领导能力,搞销售可以培养自己的市场概念和思维,同时为自己以后发展积累庞大的人脉!应该说这才是前途的真正支柱!!!
    [7] 逐渐克服自己的心里弱点和性格缺陷!多疑,敏感,天真(贬义,并不可爱),犹豫不决,胆怯,多虑,脸皮太薄,心不够黑,教条式思维。。。这些工程师普遍存 在的性格弱点必须改变!很难吗?只在床上想一想当然不可能,去帮朋友守一个月地摊,包准有效果,去实践,而不要只想!不克服这些缺点,一切不可能,甚至连 项目经理都当不好--尽管你可能技术不错!
    [8]
    工作的 同时要为以后做准备!建立自己的工作环境!及早为自己配置一个工作环境,装备电脑,示波器(可以买个二手的),仿真器,编程器等,业余可以接点活,一方面 接触市场,培养市场感觉,同时也积累资金,更重要的是准备自己的产品,咱搞技术的没有钱,只有技术,技术的代表不是学历和证书,而是产品,拿出象样的产 品,就可技术转让或与人合作搞企业!先把东西准备好,等待机会,否则,有了机会也抓不住!

    [9] 要学会善于推销自己!不仅要能干,还要能说,能写,善于利用一切机会推销自己,树立自己的品牌形象,很必要!要创造条件让别人了解自己,不然老板怎么知道 你能干?外面的投资人怎么相信你?提早把自己推销出去,机会自然会来找你!搞个个人主页是个好注意!!特别是培养自己在行业的名气,有了名气,高薪机会自 不在话下,更重要的是有合作的机会...

    [10]该出手时便出手!永远不可能有100%把握!!!条件差不多就要大胆去干,去闯出自己的事业,不要犹豫,不要彷徨,干了不一定成功,但至少为下一次冲击积累了经验,不干永远没出息,而且要干成必然要经历失败。不经历风雨,怎么见彩虹,没有人能随随便便成功。

  • [论坛] 程序员少走弯路的十条忠告

    2007-06-14 13:33:26Top 1 Digest 1

    刚刚走上社会的年轻人,充满了蓄势待发的豪情、青春的朝气、前卫的思想,梦想着丰
    富的待遇和轰轰烈烈的事业。可是,社会毕竟是一所包罗万象、喧嚣复杂的大学校,这
    里没有寒暑假,拒绝虚假和肤浅,更拒绝空想和庸碌,难以预告何时开课何时放学。
      如何在涉世之初少走弯路,有一个好的开端,开始一番成功的事业?以下是一些先
    行者积累的10条有益的涉世忠告。好好地遵循、把握这些忠告和建议吧,比起所学的课
    堂课程来,它毫不逊色!

    1. 买个闹钟,以便按时叫醒你。贪睡和不守时,都将成为你工作和事业上的绊脚石,
    任何时候都一样。不仅要学会准时,更要学会提前。就如你坐车去某地,沿途的风 景
    很美,你忍不住下车看一看,后来虽然你还是赶到了某地,却不是准时到达。“闹钟”
    只是一种简单的标志和提示,真正灵活、实用的时间,掌握在每个人的心 中。

    2. 如果你不喜欢现在的工作,要么辞职不干,要么就闭嘴不言。初出茅庐,往往眼高
    手低,心高气傲,大事做不了,小事不愿做。不要养成挑三拣四的习惯。不要雨天烦打
    伞,不带伞又怕淋雨,处处表现出不满的情绪。记住,不做则已,要做就要做好。

    3. 每个人都有孤独的时候。要学会忍受孤独,这样才会成熟起来。年轻人嘻嘻哈哈、
    打打闹闹惯了,到了一个陌生的环境,面对形形色色的人和事,一下子不知所措起
    来,有时连一个可以倾心说话的地方也没有。这时,千万别浮躁,学会静心,学会忍
    受孤独。在孤独中思考,在思考中成熟,在成熟中升华。不要因为寂寞而乱了方 寸,
    而去做无聊无益的事情,白白浪费了宝贵的时间。

    4. 走运时要做好倒霉的准备。有一天,一只狐狸走到一个葡萄园外,看见里面水灵灵
    的葡萄垂涎欲滴。可是外面有栅栏挡着,无法进去。于是它一狠心绝食三日,减肥 之
    后,终于钻进葡萄园内饱餐一顿。当它心满意足地想离开葡萄园时,发觉自己吃得太
    饱,怎么也钻不出栅栏了。相信任何人都不愿做这样的狐狸。退路同样重要。 饱带干
    粮,晴带雨伞,点滴积累,水到渠成。有的东西今天似乎一文不值,但有朝一日也许就
    会身价百倍。

    5. 不要像玻璃那样脆弱。有的人眼睛总盯着自己,所以长不高看不远;总是喜欢怨天
    尤人,也使别人无比厌烦。没有苦中苦,哪来甜中甜?不要像玻璃那样脆弱,而应像水
    晶一样透明,太阳一样辉煌,腊梅一样坚强。既然睁开眼睛享受风的清凉,就不要埋怨
    风中细小的沙粒。

    6. 管住自己的嘴巴。不要谈论自己,更不要议论别人。谈论自己往往会自大虚伪,在
    名不副实中失去自己。议论别人往往陷入鸡毛蒜皮的是非口舌中纠缠不清。每天下 班
    后和你的那些同事朋友喝酒聊天可不是件好事,因为,这中间往往会把议论同事、朋友
    当做话题。背后议论人总是不好的,尤其是议论别人的短处,这些会降低你 的人格。

    7. 机会从不会“失掉”,你失掉了,自有别人会得到。不要凡事在天,守株待兔,更
    不要寄希望于“机会”。机会只不过是相对于充分准备而又善于创造机会的人而言
    的。也许,你正为失去一个机会而懊悔、埋怨的时候,机会正被你对面那个同样的
    “倒霉鬼”给抓住了。没有机会,就要创造机会,有了机会,就要巧妙地抓住。

    8. 若电话老是不响,你该打出去。很多时候,电话会给你带来意想不到的收获,它不
    是花瓶,仅仅成为一种摆设。交了新朋友,别忘了老朋友,朋友多了路好走。交际的一
    大诀窍就是主动。好的人缘好的口碑,往往助你的事业更上一个台阶。

    9. 千万不要因为自己已经到了结婚年龄而草率结婚。想结婚,就要找一个能和你心心
    相印、相辅相携的伴侣。不要因为放纵和游戏而恋爱,不要因为恋爱而影响工作和事
    业,更不要因一桩草率而失败的婚姻而使人生受阻。感情用事往往会因小失大。

    10. 写出你一生要做的事情,把单子放在皮夹里,经常拿出来看。人生要有目标,要有
    计划,要有提醒,要有紧迫感。一个又一个小目标串起来,就成了你一生的大目标。生
    活富足了,环境改善了,不要忘了皮夹里那张看似薄薄的单子。
  • 测试8000薪水是这样得到的!

    2008-02-20 12:15:09

     

    这听起来是个很有诱惑力的话题;也的确是个很有诱惑力的话题。
    很多做测试的朋友千万次的问,测试行业能挣到高薪吗?从事测试工
    作有发展吗?我能够忍受枯燥无聊的测试工作吗?

    这里我不想谈所有问题,只谈谈如何获得高薪,获得高薪需要哪些素质,那
    些条件,多少年的工作经验等。

    我认为的测试人员分类

    测试人员在软件开发中基本由两大类:一类是起步就做测试,一类做过开发
    后来转为测试。

    最近在网上同一些朋友聊天,经常聊到测试人员是否需要开发经验这样一个话
    题。我个人认为,又开发经验更好。我也倾向于由开发经验的测试人员可以获
    得更好的发展。但这都是一个动态的过程,起步就做测试的人可能后来也慢慢
    掌握开发经验。

    测试人员的成长阶段

    测试人员基本上可以分为如下几个阶段,手工测试阶段、工具辅助阶段、定制
    工具阶段、初级管理阶段、高级管理阶段、业务测试专家(此阶段在等同于在
    管理方面发展的初级、高级管理阶段,这个阶段的测试人员熟悉测试的各个方
    面,逐步专项某个领域的测试)。

    手工测试阶段

    处于此阶段的测试人员一般是刚刚进入这一行,或者刚刚换了一个公司(新来
    的吗)。这个时候是很重要的积累时期,自动此时工具只是一个辅助,重要的
    时你要有如何测试一个软件的思想。

    工具辅助阶段

    这个阶段的测试人员对各个类型的测试都有所了解,为了提高测试效率,开始
    使用测试工具;或者为了以后的职业发展开始关注自动测试,并主动或被动的
    学习测试工具。这时候自己心里一定要有数,那些测试工具会对职业生涯有帮
    助。目前国内的测试人员都在学习一些大厂商的测试工具,这些工具的确不错
    ,但是不一定都对以后的职业发展有利。一般来说这个时候首先要确定自己在
    功能测试方向发展还是在性能测试方向发展。这样可以有针对性地学习各类别
    的工具。当让有时间和精力可以多学习一些,多多益善。另外还有一些白盒测
    试工具,如果想在白盒测试方向发展可以多多研究。

    定制工具阶段

    这是工具辅助阶段的延续,一般定制工具分为两种,一种是对第三方厂商的工具
    进行插件开发或利用工具的脚本语言开发可重用的类库;另一种是开发公司内部
    使用的工具。第二中情况难度较大,需要测试人员有较高的开发水平。一般来说
    只有在商业测试工具不能满足测试要求时才开发自己的测试工具。当然有时候不
    需要使用庞大的商业测试工具的时候也可以自己开发一些小的、能够满足测试要
    求的工具。这一般使用产品开发所使用的语言或者Perl、Python等。对于使用
    Java开发的产品可以使用BeanShell等脚本语言。

    业务测试专家

    此阶段的测试人员已经熟练的掌握了多种工具,或者已经具备了为产品定制测试
    工具的能力。这个时候的测试人员应该做长期的职业生涯考虑,如果从事某个领
    域的产品测试时间较久,可以继续深入研究此领域里的相关技术,逐步能够提出
    对产品开发有建设性的建议。一般来说这个阶段的测试人员会在产品规划的前期
    作为高级测试人员参与进去,为产品的需求搜集和设计提供建设性意见。

    初级管理阶段

    一般来说这个阶段是指你处于项目组长位置的时候。这时可以制定测试计划,组
    织组内人员编写、修改测试用例。这个阶段的人员一般一般可以考虑向业务测试
    专家方向或者高级管理人员发展。

    高级管理阶段

    经历初级管理阶段后,积累了初步的测试管理经验。这时候一般会参与测试计划
    的制定、人力资源调配、各种资源分配等。

    各阶段的薪资状况

    就目前国内市场来看,按照测试人员所在的公司类型大致可分为如下几类:

    1。国内中小企业
    2。国内大企业
    3。测试外包公司
    4。国外企业

    同一个等级的职位在不同类型的公司可能有不同的定义,比如在国内的小企业
    可能就以两个测试人员,那你可能身兼多职,既是项目组长,又是项目经理。
    国内大企业一般来说同国外的企业的职位基本对应,但是一般来说国内大企业
    的测试经理到国外的公司也只能是个测试组长。

    测试外包公司在这几个类别中是个另类,在这种公司工作,基本就是技术类,
    很少有管理类的。

     

    如何获取高薪?

    一般来说在国内的中小公司做测试一般在1500-3000人民币每月。个别也有高
    的。在国内大公司高级人员一般可以拿到6000-8000人民币每月,初级人员大
    概在3000-5000之间。外包公司给的比较多,有经验的人员可以拿到6k到8k。
    在国外的大公司工作,就目前了解,初级人员在4k到7k之间,高级人员(有
    多年的测试经验)可以到8k-10k左右。

    如果你是刚刚毕业,那么能够进入大公司或国外的大公司,可以起步较高。
    如果你有几年工作经验,那么可以进入国外大公司,逐渐往管理职位发展,不
    过一般来说这很难。不过国外的大公司,一般提供技术和管理两条路供选择。
    毕竟管理职位有限,在国外的某些大公司,有经验的技术人员和一般的管理
    人员的薪资基本持平。

  • 内存泄露测试

    2008-01-19 12:21:48

    内存泄露检测

    2007-12-21 11:38:51 / 个人分类:性能测试

    下面是我跟网友探讨内存泄露检测方法的聊天记录:

    思念(267097045) 10:18:37软件测试专业网站:51Testing软件测试网,K5{7a k/AEX.^
    内存泄露是内存申请而没有释放 测试方法 打开任务管理起察看性能记录当前内存使用量,然后启动你的被测试程序,运行使用相应的功能,察看内存使用情况,任务管理器切换到进程页面,然后看内存使用栏目,察看进程内存使用增量情况,使用程序一段时间然后关闭进程,察看 总体内存增量软件测试专业网站:51Testing软件测试网,Z1aW2UE$~L ~+O'`6b;g+W
    思念(267097045) 10:19:02软件测试专业网站:51Testing软件测试网{&`+y]*g5pf
    如果确认有内存变化,那么进一步进行确认。
    @gLx+peY?d119057思念(267097045) 10:19:47
    cS$fp1|p119057定位问题到底是在哪里  有代码走读 有runtime的monitor等不同的方法。
    /Q;Z'Sn bR"l119057紫 梦(282861425) 10:23:52软件测试专业网站:51Testing软件测试网4@K)uX [s"l!b
    使用程序一段时间然后关闭进程,察看 总体内存增量软件测试专业网站:51Testing软件测试网?u+H S$v4h/e/U
    关闭进程是指把系统关掉吗?软件测试专业网站:51Testing软件测试网,d4w`9~/M&M3x3B
    思念(267097045) 10:24:29软件测试专业网站:51Testing软件测试网5mH/Bc]v
    关闭你的被测试程序软件测试专业网站:51Testing软件测试网b.y!m;{\-i
    思念(267097045) 10:24:47
    a/?8\I-P119057cpu和内存泄露没有必然的关系
    _(A t3Kd#hI119057紫 梦(282861425) 10:25:30
    4M5W/r%]Q6T[119057运行使用相应的功能    有指定需要运行多长时间吗?
    w:At keJ[|119057思念(267097045) 10:26:10
    R L@Tb6q119057我说的这些是分析定位的过程,是确认是否有内存泄露
    2SP&P\s4DZx119057思念(267097045) 10:26:26软件测试专业网站:51Testing软件测试网6F7_ ow6Qu#A t1W
    运行多长时间看你的”疑心“在哪里软件测试专业网站:51Testing软件测试网8a(mJu9X;wY5YdT;]E
    思念(267097045) 10:26:52软件测试专业网站:51Testing软件测试网,M'}5dg?
    你觉得是使用某一个功能就开始有内存泄露还是,使用了很长时间之后才会引起内存泄露软件测试专业网站:51Testing软件测试网E8} h+WF
    思念(267097045) 10:27:41软件测试专业网站:51Testing软件测试网"s V+? ~h!k
    如果是前一种,只要使用下相应的功能,就可以判断是否有内存泄露,如果是很长时间才会出现这种情况那么就要运行一段时间,以前我做的项目要运新10天左右才会有内存泄露现象出现软件测试专业网站:51Testing软件测试网i2N4g7`*f6q^ ct
    紫 梦(282861425) 10:28:59软件测试专业网站:51Testing软件测试网xwm^fer6OF'W
    好的  谢谢软件测试专业网站:51Testing软件测试网2i yew@-~
    思念(267097045) 10:29:55软件测试专业网站:51Testing软件测试网pG+D,}(z&L rj
    当确认有内存泄露之后才是进一步定位,确认是在多用户情况下出现,还是在单用户情况下出现,如果是多用户情况下出现可以利用lr进行测试,如果单用户情况下出现可以利用前面的兄弟说的利用unit testing tool进行定位,利用unit testing tool和语言有关系,找到符合你应用的语言工具
    @ @ O~!BTqE2s119057思念(267097045) 10:30:24
    y&I"Y Bd2J119057如果是lr模拟用户进行访问,然后添加相应的计数器就可以定位了软件测试专业网站:51Testing软件测试网,b9\.?M0u&p k
    紫 梦(282861425) 10:30:35
    b[`b I v119057那内存使用率要涨幅多大 才能判断内存泄露软件测试专业网站:51Testing软件测试网 S![$~4RIk9g
    思念(267097045) 10:32:07
    U3H:_5a+I119057如果是lr我选者以下计数器 可以定位是否有内存泄露:
    L7JVv}9Y}^]119057% User Time for two processes (RService & tomcat5) and the whole system (_Total)软件测试专业网站:51Testing软件测试网{LZF4T Q |
    Available bytes in the system软件测试专业网站:51Testing软件测试网2Zd{3OC
    Handle counts软件测试专业网站:51Testing软件测试网3g V4HjC+Ry
    Thread counts

    Working Sets 软件测试专业网站:51Testing软件测试网x/R c]\ dJ
    思念(267097045) 10:32:35软件测试专业网站:51Testing软件测试网v]"f5S;m/?(B
    不管是多大都可以确认
    A7s)EZ7nYB%O119057紫 梦(282861425) 10:33:11软件测试专业网站:51Testing软件测试网T;w8[!Jm r,z1]
    什么意思 你是说 关闭进程后  如果内存一直没有下降的话 是不是就可以判断系统存在内存泄露
    !lcM/C#U.dm1[119057思念(267097045) 10:33:20
    .mFqxZ119057使用率是看程序运行之前和运行之后 的前后对比软件测试专业网站:51Testing软件测试网+R8Z L;L{8bn2{
    思念(267097045) 10:34:03
    _m cx1NM3t h+J119057也许有下降,但是程序完全退出只要仍然有一部分没有释放就可以确认了
    i&t7}6u0L9y`r119057紫 梦(282861425) 10:35:30软件测试专业网站:51Testing软件测试网 W)E,_^/W
    也就是说 运行之前和运行之后 如果内存使用率 都差不多的话 那就说明没有问题  如果运行之后的内存使用量比运行之前多的话 就说明有内存泄露 是吗
    W+ZB eCD4?0K119057思念(267097045) 10:35:54软件测试专业网站:51Testing软件测试网'h!lLi!z
    yes软件测试专业网站:51Testing软件测试网ov aH-B2V1jC{
    思念(267097045) 10:35:56软件测试专业网站:51Testing软件测试网0nY"R1Pa?7_
    呵呵
    afF:Kw6M2~119057紫 梦(282861425) 10:39:25
    hT ZhhxR119057如果说运行前 web系统的ie内存使用量为30,220软件测试专业网站:51Testing软件测试网y-Sde!T0U]:L
    而运行后 变成175,484软件测试专业网站:51Testing软件测试网%X A0i#u;v{s0M
    内存总使用量为642(前),783(后)软件测试专业网站:51Testing软件测试网*Kf*vj&ucd
    这时候我是不是可以关闭被测程序,来查看内存总使用量
    %s#\| L,P'Q&Z'ws119057思念(267097045) 10:40:19软件测试专业网站:51Testing软件测试网w?/x.cv8[[ \Q7\
    关闭你的被测试系统之后 在前后对照
    X|l-D&I|5m119057紫 梦(282861425) 10:42:30
    Y)_6yw&po119057那如果说有一个页面,我每打开一次 ,IE的内存就往上涨一点。可是关闭整个系统后,内存总使用量又没有差别的话软件测试专业网站:51Testing软件测试网'{V1n.F&h9wj'gP7f
    这样算不算存在内存泄露呢
    $v{D%FG/yw119057思念(267097045) 10:42:57
    !B2P[w^@8|119057内存总使用量又没有差别的话?
    (| l7Vj+e$Hg119057紫 梦(282861425) 10:43:28
    q^'B:gJ U119057是的 关闭整个系统后 内存总使用量就恢复到原来的情况软件测试专业网站:51Testing软件测试网Bf F8A!A7I9N(j.K
    紫 梦(282861425) 10:43:49软件测试专业网站:51Testing软件测试网@/M]M^8Q"gw
    可是系统中有一个页面,每打开一次,内存就往上涨一点
    |%Njp.r)mBY2E119057思念(267097045) 10:43:45软件测试专业网站:51Testing软件测试网+^/`.l `{I+z \.~
    那就没有内存泄露软件测试专业网站:51Testing软件测试网m a&r J0xao
    紫 梦(282861425) 10:45:14软件测试专业网站:51Testing软件测试网Z lV#Y4F y J-u1@
    按你的意思是 只要关闭被测程序后,整个内存没有变化 就都不算内存泄露 是吗
    +mRH)M|(q119057签の千寻(365099778) 10:47:53
    ]|-b6g5y1o119057关闭程序之后,内存应该会降回去软件测试专业网站:51Testing软件测试网-s-?X%C#^ Wf"UG
    思念(267097045) 10:47:56软件测试专业网站:51Testing软件测试网R5k'aG;q
    一般我们常说的内存泄漏是指堆内存的泄漏。堆内存是指程序从堆中分配的,大小任意的(内存块的大小可以在程序运行期决定),使用完后必须显示释放的内存。C应用程序一般使用malloc,realloc,new等函数从堆中分配到一块内存,使用完后,程序必须负责相应的调用free或delete释放该内存块,否则,这块内存就不能被再次使用,我们就说这块内存泄漏了。软件测试专业网站:51Testing软件测试网AN6a2VhM
    思念(267097045) 10:48:41
    1ork'O|vP v-\7G119057紫 梦 GC 知道是什么么?
    zs P-R,p:K119057签の千寻(365099778) 10:48:47
    8u'^ bJ&Yp119057没有回落就是有内存泄漏,是这个意思吧
    (TO9l YM~ ^119057紫 梦(282861425) 10:48:56
    q||'a[jP1f-|119057不知道
    D)`3}%R*t119057思念(267097045) 10:48:59软件测试专业网站:51Testing软件测试网F]!^j(A
    对的 软件测试专业网站:51Testing软件测试网 \;p)S^/Xb
    紫 梦(282861425) 10:49:30软件测试专业网站:51Testing软件测试网 b@Dw2z8Ls!A
    如果说我程序开着  但都没有使用
    u%k^D&[8l119057这样内存会不会回落呢
    &n \ P0|i L119057签の千寻(365099778) 10:49:58
    'O/tg+T(i)bv,z{-`119057程序开着肯定会占用一点内存的吧。。这个不是很清楚哦
    2v0d/s/y*G*ez119057思念(267097045) 10:50:07软件测试专业网站:51Testing软件测试网j _ GO2h@5i/C!{
    紫 梦 这种情况也可以回落,但是你要知道程序申请了多少内存
    *T wL0q7C?(~l119057思念(267097045) 10:50:57
    {\#O5d/z119057操作系统的知识建议回去看看 呵呵 
    ,^9s|,^;Ym P119057紫 梦(282861425) 10:52:05
    "~ D"G#TL-@v7K(C/l ]119057如果说 这种情况下内存都没有回落 是不是也能说明系统存在内存泄露呢

  • LR专用术语

    2007-10-17 09:00:13

    并发用户数量
    the number of concurrent users

    最佳并发用户数量
    the optimum number of concurrent users

    最大并发用户数量
    the maximum number of concurrent users

     

    峰值并发用户数量

    the peak number of concurrent users

    平均并发用户数量


    the average number of concurrent users

     

    concurrent call

     

    并发呼叫


    concurrent stream

     

    并发流

  • 请规范测试

    2007-07-26 15:30:56

    “什么叫成熟产品?只要有一个成功案例的产品就是成熟产品!”某国内大型软件公司CEO的这个经典观点广为流传,但其中的逻辑错误将风险带给了客户也带给 了软件企业本身。国内一些软件企业居然一夜间成了万能公司,ERP ? CRM ?OA?WorkFlow?我们都行!然而这些企业对软件测试的重要性大多认识不足,重开发轻测试的现象过于严重,很多公司没有专门的测试部门,测试工程师太少,开发人员兼作测试工作的现象十分普遍,在这种状况下推出的缺少严格测试等环节的软件产品只能给客户带来悲剧。

       近年来,我国的软件企业已越来越意识到软件测试的重要性,逐渐加大软件测试在整个软件开发的系统工程中的比重。据调查统计,在成本上一般来说是“需求分 析”和“规划确定”各占3%,“设计”占5%,“编程”占7%,“测试”占15%,“投产和维护”占67%.近些年来,测试成本的比例更有上升趋势 .

      不成熟软件带来的风险

       不成熟的软件产品是把测试成本交给了用户:企业往往是出于项目周期安排不当,或者根本没有安排专门测试,匆匆完成编码设计就将产品交付使用了。这样的后 果自然是用户觉得产品漏洞百出,项目执行过程也遥遥无期,最后,项目双方都筋疲力尽,用户觉得受骗,而软件商则毁了声誉,追加了大量项目实施费用,可谓是 “赔了夫人又折兵”。

      企业逻辑的软件实现高于计算机技术:很多软件企业在没有做透前期调研的前提下就匆匆开始建设自己想象中的“大厦”,结果可想而知。当用户建立起真正的企业应用。才发现软件违背了企业逻辑,不得不进行修改。这样闭门造车无疑会给“大厦”带来致命伤害。

       注重软件产品的质量和成熟度才会良性循环:有人把不成熟的软件产品比作是焦油坑中垂死挣扎的猛兽,布鲁克斯《人月神话》展示的可怕一幕在软件研发过程中 屡见不鲜。很多软件企业常常将软件质量视为一种奢侈,如果有必要的话,为了更多功能、更快速开发或者更低成本,测试就可以被牺牲掉。然而,在实践中,如果 软件开发组织对质量有一个坚定承诺,实际上可以加快开发,减少成本,并更容易地增加新的特性。在“已完成”的产品缺陷修复上花费的代价要比从一开始就修复 高出很多倍。相反,一个从开始就加强产品质量的组织,是有远见和创新精神的,市场中的高质量软件将更具竞争力。

      找出测试管理中的误区

      笔者曾经从事专业的软件项目管理与实施,项目管理感受很深刻。有一些切身体会与读者分享。

      吸取“前辈”经验。IBM在软件自动化测试技术核心的三个最佳成功经验是:尽早测试、连续测试、自动化测试,并在此基础上提供了完整的软件测试流程和一整套的软件自动化测试工具,组建一个测试团队,基于一套完整的软件测试流程,使用一套完整的自动化软件测试工具,完成全方位的软件质量验证。

      别去“挖东墙补西墙”。由于项目研发期的“缺斤短两”,使项目实施和投入运行的初期 漏洞百出,时间一长用户会发疯,项目实施者也会发疯,国内前几年的众多的ERP项目失败的原因多出于此。项目实施的遥遥无期,将严重挫伤用户的耐性和信心。

      代码与文档哪个值钱?多数项目管理者忽视了文档的重要性。对于大型软件的研发项目,还需要专业的测试过程管理软件来支撑大规模的信息交流和自动测试、代码的更新和版本的提交。这些文档和信息的价值从某种意义上甚至超出了程序代码本身。

       全程还是后期?软件的设计阶段往往没有软件测试人员的参与,事实上设计上的缺陷往往是耗用成本最高,也是最难在开发后期修复的缺陷。而一个软件的质量与 它有多大的设计缺陷有着密不可分的联系。而有经验的测试人员的质量意识,安全意识,对用户需求的了解及分析能力,对于打造高品质的软件设计都有着不可忽视 的作用。

      专职还是兼职?在传统的开发方式中,由于缺乏必要的配置管理和变更控制,测试工作根本无法提出具体的测试要求,加之开发人员 的遮丑,测试工作往往是走走过场,测试结果既无法考核又无法量化,当然就无法对以后的开发工作起指导作用。事实上,每个软件项目都需要专业的测试人员进行 相对独立的测试工作,从而保证软件项目的质量。

      居安思危,控制风险。需求变更给测试带来的问题可能是灾难性的,客户需求不是变动的唯一来源。有时团队自身也能引起范围变动。团队的成员可能听说或“假设”解决方案因客户的实际要求而发生了变动。加强沟通和协作,随时了解变更的状态。

      谁为产品质量买单?质量和质量控制应该是软件项目的的一项重要内容。但是,无论在消费类软件还是大型软件的测试领域,国内软件产品的质量掌控体系和标准都很模糊。质量控制越来越依托于公司在产品交付用户之前的测试工作的成败。

      没有厚度就没有重心。软件测试过程的历史数据缺失是大多数软件项目失败的关键所在,这样的结论也许使很多人感到吃惊,但事实就是如此。因为这些历史数据是反映软件项目实施轨迹的第一手资料,是项目延续和反馈的基石。

       省钱还是费钱?事实上,作为软件开发企业来说,投入人力,资金搞软件测试的最终目的还是离不开经济效益。而对与测试项目的管理也不能离开这个大前提。软 件测试的经济效益主要来自以下两个方面。一是满足用户需求,提高产品的竞争力,最终提高产品的销售量。二是尽早发现缺陷,降低售后服务成本。而软件测试的 最终目的就是使它带来的经济效益最大化。有一些专业的测试工具的购买、测试人员的配备和培训还需要一定的经济投入,项目决策者们可以选择适合自己的配置, 但决不能没有这些方面的投入。

      沟通还是对立?沟通是开发和测试人员必备的素质。但传统的思想认为,测试人员是找麻烦,是开发的“克星”。其实,项目管理者应该清楚,为软件的质量和品质努力的工作目标是一致的。沟通和建立沟通渠道是项目管理者的重要工作。

      如何提高软件测试水平

       要提高我国的软件测试行业的发展水平,首当其冲要解决软件测试队伍的问题。某著名国际软件企业的软件测试人员与软件开发人员的比率达到了3:5左右,并 且在实践过程已经证明了这种人员结构的合理性。但国内公司显然一时很难达到,但更重要的是重视程度,在这个基础上壮大软件测试队伍,提高测试人员的素质。

      其次是要学习借 鉴国外完善的测试机制,包括丰富的软件测试经验,强大的测试工具,优秀的测试管理水平。真正解决测试手段落后、测试方法单一和测试工具欠缺的问题,在企业 内部形成一个严密有效的纠错系统,使国内的测试工作流程、 技术水平接近国外先进水平,这样才能提高国内软件开发与测试的整体管理水平,增加软件产品的竞争力。

      此外,要重视第三方的测试力量。 第三方的专业测试企业是靠技术与服务来赢得客户信任的,也因此更加注重测试方法与质量。对于软件企业来说,从无到有地去建立测试部门,并完善测试体系,需 要较大投入,将研发出来的软件产品交给实力强劲的第三方专业测试公司,在提高软件产品的质量问题同时,还节约了产品测试成本。
  • 测试试卷

    2007-07-16 16:11:33


    一、判断题
    1.软件测试的目的是尽可能多的找出软件的缺陷。(Y)
    2.Beta 测试是验收测试的一种。(Y)
    3.验收测试是由最终用户来实施的。(N)
    4.项目立项前测试人员不需要提交任何工件。(Y)
    5.单元测试能发现约80%的软件缺陷。(Y)
    6.代码评审是检查源代码是否达到模块设计的要求。(N)
    7.自底向上集成需要测试员编写驱动程序。(Y)
    8.负载测试是验证要检验的系统的能力最高能达到什么程度。(N)
    9.测试人员要坚持原则,缺陷未修复完坚决不予通过。(N) 看情况,有些时候就是要坚持原则的.
    10.代码评审员一般由测试员担任。(N)
    11.我们可以人为的使得软件不存在配置问题。(N)
    12.集成测试计划在需求分析阶段末提交。(N) 集成测试计划在概要设计说明书出来后提交,需求分析阶段不需要.

    二、选折
    1.软件验收测试的合格通过准则是:(ABCD)
    A. 软件需求分析说明书中定义的所有功能已全部实现,性能指标全部达到要求。
    B. 所有测试项没有残余一级、二级和三级错误。
    C. 立项审批表、需求分析文档、设计文档和编码实现一致。
    D. 验收测试工件齐全。
    2.软件测试计划评审会需要哪些人员参加?(ABCD)
    A.项目经理
    B.SQA 负责人
    C.配置负责人
    D.测试组
    3.下列关于alpha 测试的描述中正确的是:(AD)
    A.alpha 测试需要用户代表参加
    B.alpha 测试不需要用户代表参加
    C.alpha 测试是系统测试的一种
    D.alpha 测试是验收测试的一种
    4.测试设计员的职责有:(BC)
    A.制定测试计划
    B.设计测试用例
    C.设计测试过程、脚本
    D.评估测试活动
    5.软件实施活动的进入准则是:(ABC)
    A.需求工件已经被基线化
    B.详细设计工件已经被基线化
    C.构架工件已经被基线化
    D.项目阶段成果已经被基线化
    三、添空
    1.软件验收测试包括:正式验收测试,alpha测试,beta测试。
    2.系统测试的策略有:功能测试,性能测试,可靠性测试,负载测试,易用性测试,强度测试,安全测试,配置测试,安装测试,卸载测试,文挡测试,故障恢复测试,界面测试,容量测试,兼容性测试,分布测试,可用性测试,(有的可以合在一起,分开写只要写出15就满分哦)
    测试策略就是为了达到这样的平衡而采取的测试工具、测试方法、测试技术的总和。狭义来讲,测试策略是指如何划分并 组织被测对象。例如,集成测试如何确定被测对象的粒度,如何对各模块逐渐进行集成;单元测试如何确定被测单元,各被测单元是独立测试还是自底向上或自顶向 下逐步进行。楼主回答的是系统测试类型.

    3.设计系统测试计划需要参考的项目文挡有:软件测试计划,软件需求工件和迭代计划。系统测试计划的依据是:软件需求规格说明书
    4.对面向过程的系统采用的集成策略有:自顶向下,自底向上两种。
    5.(这题出的有问题哦,详细的5步骤为~~)通过画因果图来写测试用例的步骤为:
    (1)分析软件规格说明描述中,哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符。
    (2)分析软件规格说明描述中的语义,找出原因与结果之间,原因与原因之间对应的是什么关系? 根据这些关系,画出因果图。
    (3)由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号标明约束或限制条件。
    (4)把因果图转换成判定表。
    (5)把判定表的每一列拿出来作为依据,设计测试用例。

    四、简答(资料是搜集整理的,感谢前辈的解题)无
    1.区别阶段评审的与同行评审
    同行评审目的:发现小规模工作产品的错误,只要是找错误;
    阶段评审目的:评审模块 阶段作品的正确性 可行性 及完整性
    同行评审人数:3-7人 人员必须经过同行评审会议的培训,由SQA指导
    阶段评审人数:5人左右 评审人必须是专家 具有系统评审资格
    同行评审内容:内容小 一般文档 <  40页, 代码 < 500行
    阶段评审内容: 内容多,主要看重点
    同行评审时间:一小部分工作产品完成
    阶段评审时间: 通常是设置在关键路径的时间点上!

    2.什么是软件测试
    为了发现程序中的错误而执行程序的过程

    3简述集成测试的过程
    系统集成测试主要包括以下过程:
    1. 构建的确认过程。
    2. 补丁的确认过程。
    3. 系统集成测试测试组提交过程。
    4. 测试用例设计过程。
    5. 测试代码编写过程。
    6. Bug的报告过程。
    7. 每周/每两周的构建过程。
    8. 点对点的测试过程。
    9. 组内培训过程。
    集成测试过程:集成测试计划->集成测试设计->集成测试实现->集成测试执行

    4 怎么做好文档测试
    仔细阅读,跟随每个步骤,检查每个图形,尝试每个示例。P142
    检查文档的编写是否满足文档编写的目的
    内容是否齐全,正确
    内容是否完善
    标记是否正确


    5 白盒测试有几种方法
    总体上分为静态方法和动态方法两大类。
    静态:关键功能是检查软件的表示和描述是否一致,没有冲突或者没有歧义
    动态:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。
    白盒测试:测试证明每种内部操作和过程是否符合设计规格和要求,基于程序结构的逻辑驱动测试.静态的举例:代码走读,代码检视.

    6系统测试计划是否需要同行审批,为什么
    需要,系统测试计划属于项目阶段性关键文档,因此需要评审。

    7Alpha测试与beta的区别
    Alpha测试 在系统开发接近完成时对应用系统的测试;测试后仍然会有少量的设计变更。这种测试一般由最终用户或其它人员完成,不能由程序或测试员完成。

    Beta测试 当开发和测试根本完成时所做的测试,最终的错误和问题需要在最终发行前找到。这种测试一般由最终用户或其它人员完成,不能由程序员或测试员完成。

    Alpha测试:用户在接近正式环境下的测试,开发人员在用户旁记录错误情况和使用中的问题.
    Beta测试:多个用户在实际使用环境下的测试,开发人员不在测试现场,用户通过发送报告的形式把发现的问题反馈给开发人员.


    8比较负载测试,容量测试和强度测试的区别
    负载测试:在一定的工作负荷下,系统的负荷及响应时间。
    强度测试:在一定的负荷条件下,在较长时间跨度内的系统连续运行给系统性能所造成的影响。
    容量测试:容量测试目的是通过测试预先分析出反映软件系统应用特征的某项指标的极限值(如最大并发用户数、数据库记录数等),系统在其极限值状态下没有出 现任何软件故障或还能保持主要功能正常运行。容量测试还将确定测试对象在给定时间内能够持续处理的最大负载或工作量。容量测试的目的是使系统承受超额的数 据容量来发现它是否能够正确处理。容量测试是面向数据的,并且它的目的是显示系统可以处理目标内确定的数据容量。
    1.负载测试:通过逐步增加系统负载,最终确定在满足性能指标的情况下,系统能承受的最大负载量的测试。 2.压力测试:通过逐步增加系统负载,最终确定在什么负载条件下系统性能将处于崩溃状态,以此获得系统能提供的最大服务级别的测试。 3.强度测试:又称疲劳强度测试,在系统稳定运行的情况下能够支持的最大并发用户数,持续执行一段时间业务,通过综合分析,确定系统处理最大工作量强度性 能的过程。
  • 数据库级调优

    2007-07-16 08:46:17

    1.   数据库级调优

    1.1. 修改数据库参数

    sys用户登录,运行如下的命令:

    alter system set optimizer_index_cost_adj=10 scope=spfile
    alter system set optimizer_dynamic_sampling=5 scope=spfile

     

    optimizer_index_cost_adj取值0-1000 ,缺省100 ; 值越小oracle就越趋向使用索引

    optimizer_dynamic_sampling    配置oracle对没有统计信息的表会动态采样,会得到更准确的统计信息,同时让优化器得到更准确的执行计划。这个参数对临时表尤其有用。

    1.2. 分析表

    应该把所有没有做过分析的表都做一下分析:

    执行如下语句的返回结果。

    select

    'analyze table '||owner||'.'||table_name||' compute statistics; '

    from dba_tables

    where num_rows is null

    and owner not in ('SYS','SYSTEM')

    and table_name not like '%$%'

    and temporary = 'N'

     

    如果针对SCHEMA里的所有表做分析,JZ21为例

    begin

    dbms_stats.gather_schema_stats ('JZ21');

    end;

    /

    1.3. 增加数据维护的job

    1.3.1.    将表的监视打开

     select ‘alter table ‘||owner||’.’||table_name||’ monitoring; ’  

    from dba_tables

    where owner not in (‘SYS’,’SYSTEM’,’OUTLN’,’WMSYS’) 

    and table_name not like '%$%'

    and TEMPORARY=’N’;

     

      这个监视是在内存中做的,一般情况下对性能不会有什么影响,如果发现实在有影响的时候,

     

    下面语句关闭监视,

    select ‘alter table ‘||owner||’.’||table_name||’ nomonitoring; ’  

    from dba_tables

    where owner not in (‘SYS’,’SYSTEM’,’OUTLN’,’WMSYS’) 

    and table_name not like '%$%'

    and TEMPORARY=’N’;

     

    1.3.2.    添加JOB

    sys用户登录

    执行如下语句,mynextdate,mynextSatdate需要手工更改为下一日和下一个周六。

     

      define mynextdate='2004-03-03';  --to_char(sysdate + 1,'yyyy-mm-dd');

      define mynextSatdate='2004-03-06'; --to_char(NEXT_DAY(sysdate,7),'yyyy-mm-dd');

     

      --每天早上3点左右执行flush monitor info

      call sys.dbms_job.remove(101);

      call sys.dbms_job.isubmit( 101,

                           'sys.DBMS_STATS.FLUSH_DATABASE_MONITORING_INFO();',

                           to_date('&mynextdate 03:00:00','YYYY-MM-DD HH24:MI:SS'),

                           'to_date(''&mynextdate 03:00:00'',''YYYY-MM-DD HH24:MI:SS'') + 1');

      commit;                      

      --统计数据库信息

      call sys.dbms_job.remove(102);

      call sys.dbms_job.isubmit( 102,

                           'sys.dbms_stats.gather_database_stats (options => ''GATHER STALE'');',

                           to_date('&mynextdate 03:10:00','YYYY-MM-DD HH24:MI:SS'),

                           'to_date(''&mynextdate 03:10:00'',''YYYY-MM-DD HH24:MI:SS'') + 1');

      commit;                       

     

      --每周六下午6:30把执行对那些被更新特别频繁的表的索引做rebuild

     

      call sys.dbms_job.remove(201);

      call sys.dbms_job.isubmit( 201,

                           'execute immediate ''alter INDEX history.PK_INCREMENT_STOCK_BALANCE_HIS rebuild nologging'';'||

                           'execute immediate ''alter INDEX history.ind_inc_stock_balance_1 rebuild nologging'';'||

                           'execute immediate ''alter INDEX history.ind_inc_stock_balance_2 rebuild nologging'';'||

                           'execute immediate ''alter INDEX history.PK_TB_INCREMENT_BALANCE_HIS rebuild nologging'';'||

                           'execute immediate ''alter INDEX history.Ind_inc_balance rebuild nologging'';',

                           to_date('&mynextdate 18:30:00','YYYY-MM-DD HH24:MI:SS'),

                           'to_date(''&mynextdate 18:30:00'',''YYYY-MM-DD HH24:MI:SS'') + 7');

      commit;  

     

    1.4. 删除重复的索引

    查找重复的索引

    select  *

        from

    ( select    index_owner,

    index_name,

    table_owner,

    table_name,

                 max(decode(p, 1,     c,NULL)) ||

                 max(decode(p, 2,', '||c,NULL)) ||

                 max(decode(p, 3,', '||c,NULL)) ||

                 max(decode(p, 4,', '||c,NULL)) ||

                 max(decode(p, 5,', '||c,NULL)) ||

                 max(decode(p, 6,', '||c,NULL)) ||

                max(decode(p, 7,', '||c,NULL)) ||

                max(decode(p, 8,', '||c,NULL)) ||

                max(decode(p, 9,', '||c,NULL)) ||

                max(decode(p,10,', '||c,NULL)) ||

                max(decode(p,11,', '||c,NULL)) ||

                max(decode(p,12,', '||c,NULL)) ||

                max(decode(p,13,', '||c,NULL)) ||

                max(decode(p,14,', '||c,NULL)) ||

                max(decode(p,15,', '||c,NULL)) ||

                max(decode(p,16,', '||c,NULL)) index_cols

           from (select index_owner,index_name,table_owner,table_name, substr(column_name,1,30) c, column_position p

                      from dba_ind_columns )

          group by index_owner,index_name,table_owner,table_name  ) A,

       ( select index_owner,

    index_name,

    table_owner,

    table_name,

                 max(decode(p, 1,     c,NULL)) ||

                max(decode(p, 2,', '||c,NULL)) ||

                max(decode(p, 3,', '||c,NULL)) ||

                max(decode(p, 4,', '||c,NULL)) ||

                max(decode(p, 5,', '||c,NULL)) ||

                max(decode(p, 6,', '||c,NULL)) ||

                max(decode(p, 7,', '||c,NULL)) ||

                max(decode(p, 8,', '||c,NULL)) ||

                max(decode(p, 9,', '||c,NULL)) ||

                max(decode(p,10,', '||c,NULL)) ||

                max(decode(p,11,', '||c,NULL)) ||

                max(decode(p,12,', '||c,NULL)) ||

                max(decode(p,13,', '||c,NULL)) ||

                max(decode(p,14,', '||c,NULL)) ||

                max(decode(p,15,', '||c,NULL)) ||

                max(decode(p,16,', '||c,NULL)) index_cols

           from (select index_owner,index_name,table_owner,table_name, substr(column_name,1,30) c, column_position p

                      from dba_ind_columns )

          group by index_owner,index_name,table_owner,table_name  ) B

       where a.table_owner=b.table_owner

    and a.table_name=b.table_name

    and (a.index_owner<>b.index_owner

    or a.index_name <> b.index_name )

    and a.index_cols like b.index_cols || '%'

    and a.owner not in (‘SYS’,’SYSTEM’,’OUTLN’,’WMSYS’) 

    and a.table_name not like '%$%'

     

    出来的结果中,排在后面的索引是可以删除的。

     

     

    1.5. 做为一项常规任务,每个月做一次停下应用的维护

    检查哪些表碎片比较多,对这些碎片很多的表做move,同时将失效的索引全部重建。

    这一项任务是在已经对表都做了分析的情况下来做。

     

    scrīpt0,对表全部做分析

    begin

    dbms_stats.gather_schema_stats (‘JZ21’);

    end;

    /

     

    针对所有的schema都做一次。

     

    --查看哪些表的空间碎片比较大,目前是认为大于30%就做整理。

    select * from (

    Select owner,table_name,(num_rows*avg_row_len/8000),blocks,

    (num_rows*avg_row_len/8000)/( decode(blocks,0,1,null,1,blocks)) bb

    from dba_tables where owner in (‘JZ21’) 

    and TEMPORARY=’N’

    ) tt

    where tt.bb<0.7 and blocks>10;

     

    --生成整理脚本scrīpt1

    select ‘alter table ‘||owner||’.’||table_name||’ move; ’ from (

    Select owner,table_name,(num_rows*avg_row_len/8000),blocks,

    (num_rows*avg_row_len/8000)/( decode(blocks,0,1,null,1,blocks)) bb

    from dba_tables where owner in (‘JZ21’) 

    and TEMPORARY=’N’

    ) tt

    where tt.bb<0.7 and blocks>10;

     

    --预备好分析脚本,不过这个脚本应该最后做scrīpt3

    select 'exec dbms_stats.gather_table_stats( '''||owner||''','''||table_name||''' ,method_opt => ''for all columns'', cascade => true ); ' from (

    Select owner,table_name,(num_rows*avg_row_len/8000),blocks,

    (num_rows*avg_row_len/8000)/( decode(blocks,0,1,null,1,blocks)) bb

    from dba_tables where owner in (‘JZ21’) 

    and TEMPORARY='N'

    ) tt

    where tt.bb<0.7 and blocks>10;

     

     

    --生成重建索引脚本scrīpt2

    select ‘alter index ‘||owner||’.’||index_name||’ rebuild nologging;’ from dba_indexes where owner in (‘JZ21’)  and status='UNUSABLE' ;

     

    步骤:先执行scrīpt0

    结束后,生成scrīpt1,scrīpt2,scrīpt3

    按顺序执行,scritp1,scrīpt2,scrīpt3

     

     

    1.6. 特殊情况下对数据库重新整理

    1.6.1.    对表做move

    alter table test_move move ;

     

      select ‘alter table ‘||owner||’.’||table_name||’ move; ’  from dba_tables where owner in (‘JZ21’)  and TEMPORARY=’N’;

     

    这里用需要做moveschema替换。

     

    1.6.2.    indexrebuild

    alter INDEX idx_test_move rebuild nologging;

     

    select ‘alter index ‘||owner||’.’||index_name||’ rebuild nologging;’ from dba_indexes where owner in (‘JZ21’);

     

     

    1.6.3.    对所有的表做分析

     

    begin

    dbms_stats.gather_schema_stats (‘JZ21’);

    end;

    /

     

    针对所有的schema都做一次。

     

    1.7. 对索引打开监视开关,看哪些索引没有被使用(慎用)

    select ‘alter index ‘||owner||’.’||index_name||’ monitoring usage;’ from dba_indexes

    where owner not in (‘SYS’,’SYSTEM’);

     

    在运行了一个很完整的周期以后(对我们来说,例如2个完整的交易日),检查有哪些索引没有被使用

     

    select index_name,monitoring,used,start_monitoring,end_monitoring from v$object_usage

    where used='NO';

    如果这些索引不是主键或唯一索引,一般情况下这些索引可以去掉。

     

    检查完一次以后,将索引监视关闭,不需要老是监视索引的使用:

    select ‘alter index ‘||owner||’.’||index_name||’ nomonitoring usage;’ from dba_indexes where owner in (‘WHT’);

    2.   语句调优

    2.1. PL/SQL中的语法解释工具

    语句的执行效率是否符合需要,一个是简单的把语句提取出来直接执行一下,看效果如何,但很多情况下,语句的运行是根据实际的条件运行的,所以有时候我们写完语句有要先分析一下语句是否是最优的,这时候我们就可以用PL/SQLexplain窗口(或直接选种语句后,按F5),有时侯,我们已知语句比较慢,要寻找为什么会慢,也可以如此做。

    EXPLAIN窗口,我们需要关注几个重要的东西,COST(成本),如果这个COST数字很大,说明语句效率不高,需要想办法;有无TABLE ACCESS FULL,如果有,只要数据量大一些,效率就不会高。我们要尽量避免产生table access full,方法之一就是建索引,另一个方法是改写连接方式,使能够用到索引。另一个需要关注的是join方式,nest loops outer hash join outer,这两种方式的效果是不一样的,有时有天壤之别,目前我没有类似的经验可以写,以后碰到后补充。

    2.2. ORACLE提供的调优工具

    ORACLE 本身提供了很好的客户端的性能调试和跟踪工具。ORACLE的工具非常好,可以帮助我们很容易的找到系统性能的瓶颈语句在哪里。ORACLE性能调整工具的位置在:

    开始程序—Oracle – Orahome92 – Enterprise Management Packs –Diagnostics –Performance Manager,登陆后找到数据库栏,然后连接就可以看到。

    我常用其中的两项来调整性能(其他的也很有用处):一,顶层会话;二,SQL ,分别做介绍。

    顶层会话:
  • 微软的部分面试题

    2007-06-28 17:03:48

    1.      有两根不均匀分布的香,香烧完的时间是一个小时,你能用什么方法来确定一段15分钟的时间?

    2.      一个经理有三个女儿,三个女儿的年龄加起来等于13,三个女儿的年龄乘起来等于经理自己的年龄,有一个下属已知道经理的年龄,但仍不能确定经理三个女儿的年龄,这时经理说只有一个女儿的头发是黑的,然后这个下属就知道了经理三个女儿的年龄。请问三个女儿的年龄分别是多少?为什么?

    3.      有三个人去住旅馆,住三间房,每一间房$10元,于是他们一共付给老板$30
    第二天,老板觉得三间房只需要$25元就够了于是叫小弟退回$5给三位客人,
    谁知小弟贪心,只退回每人$1,自己偷偷拿了$2,这样一来便等于那三位客人每人各花了九元,
    于是三个人一共花了$27,再加上小弟独吞了不$2,总共是$29。可是当初他们三个人一共付出$30那么还有$1呢?

    4.      有两位盲人,他们都各自买了两对黑袜和两对白袜,八对袜了的布质、大小完全相同,
    而每对袜了都有一张商标纸连着。两位盲人不小心将八对袜了混在一起。他们每人怎样才能取回黑袜和白袜各两对呢?

    5.      有一辆火车以每小时15公里的速度离开洛杉矶直奔纽约,另一辆火车以每小时20公里的速度从纽约开往洛杉矶。如果有一只鸟,以30公里每小时的速度和两辆火车同时启动,从洛杉矶出发,碰到另一辆车后返回,依次在两辆火车来回飞行,直到两辆火车相遇,请问,这只小鸟飞行了多长距离?

    6.      你有两个罐子,50个红色弹球,50个蓝色弹球,随机选出一个罐子,随机选取出一个弹球放入罐子,怎么给红色弹球最大的选中机会?在你的计划中,得到红球的准确几率是多少?

    7.      你有四个装药丸的罐子,每个药丸都有一定的重量,被污染的药丸是没被污染的重量+1.只称量一次,如何判断哪个罐子的药被污染了?

    8.      你有一桶果冻,其中有%%,绿色,红色三种,闭上眼睛,抓取两个同种颜色的果冻。抓取多少个就可以确定你肯定有两个同一颜色的果冻?

    9.      对一批编号为1100,全部开关朝上()的灯进行以下*作:凡是1的倍数反方向拨一次开关;2的倍数反方向又拨一次开关;3的倍数反方向又拨一次开关……问:最后为关熄状态的灯的编号。

    10.   想象你在镜子前,请问,为什么镜子中的影像可以颠倒左右,却不能颠倒上下?

    11.   一群人开舞会,每人头上都戴着一顶帽子。帽子只有黑白两种,黑的至少有一顶。每个人都能看到其它人帽子的颜色,却看不到自己的。主持人先让大家看看别人头上戴的是什幺帽子,然后关灯,如果有人认为自己戴的是黑帽子,就打自己一个耳光。第一次关灯,没有声音。于是再开灯,大家再看一遍,关灯时仍然鸦雀无声。一直到第三次关灯,才有劈劈啪啪打耳光的声音响起。问有多少人戴着黑帽子?

    12.   两个圆环,半径分别是12,小圆在大圆内部绕大圆圆周一周,问小圆自身转了几周?如果在大圆的外部,小圆自身转几周呢?

    13.   1元钱一瓶汽水,喝完后两个空瓶换一瓶汽水,问:你有20元钱,最多可以喝到几瓶汽水?

    参考答案

    1.      一只两头点燃,另一只一头点燃,当第一只烧完后,第二只丙再头点燃,就可以得到15`

    2.      2,2,9,因为只有36 = 6*6*1 36 = 9 * 2 * 2

    3.      怎么会是每人第天九元呢,每人每天 (25/3) + 1,那一元差在25 - 24 = 1

    4.      每人取每双中的一只就可以了

    5.      (D / 35 ) * 30 = D

    6.      自己睁着眼睛挑一个红色的啊,这样是给红色最大的机会了,除了你是色盲,呵呵 ,当然他们的几率都是1/2

    7.      一个中取一个编号,然后称一下就知道

    8.      4

    9.       当该数的方根为整数时超下,其它的超上。这样 149162536496481100号超下

    10.    因为照镜子时,镜子是与你垂直平行的,但在水平方向刚好转了180度。

    11.   应该是三个人:
    1
    ,若是两个人,设AB是黑帽子,第二次关灯就会有人打耳光。原因是A看到B第一次没打耳光,就知道B也一定看到了有带黑帽子的人,可A除了知道B带黑帽子外,其他人都是白帽子,就可推出他自己是带黑帽子的人!同理B也是这么想的,这样第二次熄灯会有两个耳光的声音。
    2
    ,如果是三个人,A,B,C. A第一次没打耳光,因为他看到B,C都是带黑帽子的;而且假设自己带的是白帽子,这样只有BC戴的是黑帽子;按照只有两个人带黑帽子的推论,第二次应该有人打耳光;可第二次却没有。。。于是他知道BC一定看到了除BC之外的其他人带了黑帽子,于是他知道BC看到的那个人一定是他,所以第三次有三个人打了自己一个耳光!
    3
    ,若是第三次也没有人打耳光,而是第四次有人打了耳光,那么应该有几个人带了黑猫子呢?大家给个结果看看^_^

    12.   可以把圆看成一根绳子,大绳是小绳的2倍长,所以应该是2圈吧。

    13.   一开始20瓶没有问题,随后的10瓶和5瓶也都没有问题,接着把5瓶分成4瓶和1瓶,前4个空瓶再换2瓶,喝完后2瓶再换1瓶,此时喝完后手头上剩余的空瓶数为2个,把这2个瓶换1瓶继续喝,喝完后把这1个空瓶换1瓶汽水,喝完换来的那瓶再把瓶子还给人家即可,所以最多可以喝的汽水数为:20105211140

  • linux命令

    2007-06-12 09:52:12


          功能说明:建立或修改备存文件,或是从备存文件中抽取文件。

          语  法:ar[-dmpqrtx][cfosSuvV][a<成员文件>][b<成员文件>][i<成员文件
    >][备存文件][成员文件]

          补充说明:ar可让您集合许多文件,成为单一的备存文件。在备存文件中,所有
    成员文件皆保有原来的属性与权限。

          参  数:

          指令参数

          -d  删除备存文件中的成员文件。

          -m  变更成员文件在备存文件中的次序。

          -p  显示备存文件中的成员文件内容。

          -q  将问家附加在备存文件末端。

          -r  将文件插入备存文件中。

          -t  显示备存文件中所包含的文件。

          -x  自备存文件中取出成员文件。

          选项参数

          a<成员文件>  将文件插入备存文件中指定的成员文件之后。

          b<成员文件>  将文件插入备存文件中指定的成员文件之前。

          c  建立备存文件。

          f  为避免过长的文件名不兼容于其他系统的ar指令指令,因此可利用此参数,
    截掉要放入备存文件中过长的成员文件名称。

          i<成员文件>  将问家插入备存文件中指定的成员文件之前。

          o  保留备存文件中文件的日期。

          s  若备存文件中包含了对象模式,可利用此参数建立备存文件的符号表。

          S  不产生符号表。

          u  只将日期较新文件插入备存文件中。

          v  程序执行时显示详细的信息。

          Linux基本操作命令

          首先介绍一个名词“控制台(console)”,它就是我们通常见到的使用字符操
    作界面的人机接口,例如dos。我们说控制台命令,就是指通过字符界面输入的可以操
    作系统的命令,例如dos命令就是控制台命令。我们现在要了解的是基于Linux操作系统
    的基本控制台命令。有一点一定要注意,和dos命令不同的是,Linux的命令(也包括文
    件名等等)对大小写是敏感的,也就是说,如果你输入的命令大小写不对的话,系统是
    不会做出你期望的响应的。

          ls

          这个命令就相当于dos下的dir命令一样,肯定是我第一个就要介绍的,这也是
    Linux控制台命令中最为重要几个命令之一。ls最常用的参数有三个: -a -l -F。

          ls -a

          Linux上的文件以.开头的文件被系统视为隐藏文件,仅用ls命令是看不到他们
    的,而用ls -a除了显示 一般文件名外,连隐藏文件也会显示出来。

          ls -l(这个参数是字母L的小写,不是数字1)

          这个命令可以使用长格式显示文件内容,如果需要察看更详细的文件资料,就要
    用到ls -l这个指令。例如我在某个目录下键入ls -l可能会显示如下信息(最上面两行
    是我自己加的):

          位置1 2 3 4 5 6 7

          文件属性 文件数 拥有者 所属的group 文件大小 建档日期 文件名

          drwx------ 2 Guest users 1024 Nov 21 21:05 Mail

          -rwx--x--x 1 root root 89080 Nov 7 22:41 tar*

          -rwxr-xr-x 1 root bin 5013 Aug 15 9:32 uname*

          lrwxrwxrwx 1 root root 4 Nov 24 19:30 zcat->gzip

          -rwxr-xr-x 1 root bin 308364 Nov 29 7:43 zsh*

          -rwsr-x--- 1 root bin 9853 Aug 15 5:46 su*

          下面,我为大家解释一下这些显示内容的意义。

          第一个栏位,表示文件的属性。Linux的文件基本上分为三个属性:可读(r),
    可写(w),可执行(x)。但是这里有十个格子可以添(具体程序实现时,实际上是十
    个bit位)。第一个小格是特殊表示格,表示目录或连结文件等等,d表示目录,例如
    drwx------;l表示连结文件,如 lrwxrwxrwx;如果是以一横“-”表示,则表示这是文
    件。其余剩下的格子就以每3格为一个单位。因为Linux是多用户多任务系统,所以一个
    文件可能同时被许多人使用,所以我们一定要设好每个文件的权限,其文件的权限位置
    排列顺序是(以-rwxr-xr-x为例):

          rwx(Owner)r-x(Group)r-x(Other)

          这个例子表示的权限是:使用者自己可读,可写,可执行;同一组的用户可读,
    不可写,可执行;其它用户可读,不可写,可执行。另外,有一些程序属性的执行部分
    不是X,而是S,这表示执行这个程序的使用者,临时可以有和拥有者一样权力的身份来执
    行该程序。一般出现在系统管理之类的指令或程序,让使用者执行时,拥有root身份。

          第二个栏位,表示文件个数。如果是文件的话,那这个数目自然是1了,如果是
    目录的话,那它的数目就是该目录中的文件个数了。

          第三个栏位,表示该文件或目录的拥有者。若使用者目前处于自己的Home,那这
    一栏大概都是它的账号名称。

          第四个栏位,表示所属的组(group)。每一个使用者都可以拥有一个以上的
    组,不过大部分的使用者应该都只属于一个组,只有当系统管理员希望给予某使用者特
    殊权限时,才可能会给他另一个组。

          第五栏位,表示文件大小。文件大小用byte来表示,而空目录一般都是
    1024byte,你当然可以用其它参数使文件显示的单位不同,如使用ls –k就是用kb莱显
    示一个文件的大小单位,不过一般我们还是以byte为主。

          第六个栏位,表示创建日期。以“月,日,时间”的格式表示,如Aug 15 5:46
    表示8月15日早上5:46分。

          第七个栏位,表示文件名。我们可以用ls –a显示隐藏的文件名。

          ls –F(注意,是大写的F)

          使用这个参数表示在文件的后面多添加表示文件类型的符号,例如*表示可执
    行,/表示目录,@表示连结文件,这都是因为使用了-F这个参数。但是现在基本上所有
    的Linux发行版本的ls都已经内建了-F参数,也就是说,不用输入这个参数,我们也能
    看到各种分辨符号。

          cd

          这个命令是用来进出目录的,它的使用方法和在dos下没什么两样,所以我觉得
    没什么可说的,但有两点我补充一下。首先,和dos不同的是Linux的目录对大小写是敏
    感的,如果大小写没拼对,你的cd操作是成功不了的。其次,cd如果直接输入,cd后面
    不加任何东西,会回到使用者自己的Home Directory。假设如果是root,那就是回到
    /root.这个功能同cd ~是一样的。

          mkdir、rmdir

          mkdir命令用来建立新的目录,rmdir用来删除以建立的目录,这两个指令的功能
    不再多加介绍,他们同dos下的md,rd功能和用法都是基本一样的。

          cp

          这个命令相当于dos下面的copy命令,具体用法是:cp –r 源文件(source) 目
    的文件(target)

          参数r是指连同元文件中的子目录一同拷贝。熟悉dos的读者用起这个命令来会觉
    得更方便,毕竟比在dos下面要少敲两下键盘。

          rm

          这个命令是用来删除文件的,和dos下面的rm(删除一个空目录)是有区别的,
    大家千万要注意。Rm命令常用的参数有三个: -i,-r,-f。

          比如我现在要删除一个名字为text的一个文件:rm –i test

          系统会询问我们:“rm:remove ‘test’?y”,敲了回车以后,这个文件才会真
    的被删除。之所以要这样做,是因为linux不象dos那样有undelete的命令,或者是可以
    用 pctool等工具将删除过的文件救回来,linux中删除过的文件是救不回来的,所以使
    用这个参数在删除前让你再确定一遍,是很有必要的。

          rm –r 目录名:这个操作可以连同这个目录下面的子目录都删除,功能上和
    rmdir相似。

          rm –f 文件名(目录名):这个操作可以进行强制删除。

          mv

          这个命令的功能是移动目录或文件,引申的功能是给目录或文件重命名。它的用
    法同dos下面的move基本相同,这里不再多讲。当使用该命令来移动目录时,他会连同
    该目录下面的子目录也一同移走。另外因为linux下面没有rename的命令,所以如果你
    想给一个文件或目录重命名时可以用以下方法:mv 原文件(目录)名 新的文件(目
    录)名。

          du,df

          du命令可以显示目前的目录所占的磁盘空间,df命令可以显示目前磁盘剩余的磁
    盘空间。如果du命令不加任何参数,那么返回的是整个磁盘的使用情况,如果后面加了
    目录的话,就是这个目录在磁盘上的使用情况(这个功能可是dos没有的呦)。不过我
    一般不喜欢用du,因为它给出的信息是在是太多了,我看不过来,而df这个命令我是最
    常用的,因为磁盘上还剩多少空间对我来说是很重要的。

          cat

          这个命令是linux中非常重要的一个命令,它的功能是显示或连结一般的ascii文
    本文件。cat是concatenate的简写,类似于dos下面的type命令。它的用法如下:

          cat text 显示text这个文件;

          cat file1 file2 依顺序显示file1,file2的内容;

          cat file1 file2>file3 把file1,file2的内容结合起来,再“重定向(>)”到
    file3文件中。

          “〉”是一个非常有趣的符号,是往右重定向的意思,就是把左边的结果当成是
    输入,然后输入到file3这个文件中。这里要注意一点是file3是在重定向以前还未存在
    的文件,如果file3是已经存在的文件,那么它本身的内容被覆盖,而变成file1+file2
    的内容。如果〉左边没有文件的名称,而右边有文件名,例如:

          cat >file1:结果是会“空出一行空白行”,等待你输入文字,输入完毕后再按
    [Ctrl]+[c]或[Ctrl]+[d],就会结束编辑,并产生 file1这个文件,而file1的内容就
    是你刚刚输入的内容。这个过程和dos里面的copy con file1的结果是一样的。

          另外,如果你使用如下的指令:

          cat file1>>file2:这将变成将file1的文件内容“附加”到file2的文件后面,
    而file2的内容依然存在,这种重定向符〉〉比〉常用,可以多多利用。

          more,less

          这是两个显示一般文本文件的指令。如果一个文本文件太长了超过一个屏幕的画
    面,用cat来看实在是不理想,就可以试试more和less两个指令。 More指令可以使超过
    一页的文件临时停留在屏幕,等你按任何的一个键以后,才继续显示。而less除了有
    more的功能以外,还可以用方向键往上或网下的滚动文件,所以你随意浏览,阅读文章
    时,less是个非常好的选择。

          clear

          这个命令是用来清除屏幕的,它不需要任何参数,和dos下面的clr具有相同的功
    能,如果你觉得屏幕太紊乱,就可以使用它清除屏幕上的信息。

          pwd

          这个命令的作用是显示用户当前的工作路径,这个命令不用多说,大家一试即
    知。

          ln

          这是linux中又一个非常重要命令,请大家一定要熟悉。它的功能是为某一个文
    件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,具体用法是:
    n –s 源文件 目标文件。

          当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录
    下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的
    目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。例如:ln –s
    /bin/less /usr/local/bin/less

          -s 是代号(symbolic)的意思。

          这里有两点要注意:第一,ln命令会保持每一处链接文件的同步性,也就是说,
    不论你改动了哪一处,其它的文件都会发生相同的变化;第二,ln的链接又软链接和硬
    链接两种,软链接就是ln –s ** **,它只会在你选定的位置上生成一个文件的镜像,
    不会占用磁盘空间,硬链接ln ** **,没有参数-s, 它会在你选定的位置上生成一个和
    源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。

          如果你用ls察看一个目录时,发现有的文件后面有一个@的符号,那就是一个用
    ln命令生成的文件,用ls –l命令去察看,就可以看到显示的link的路径了。

          man

          如果你的英文足够好,那完全可以不靠任何人就精通linux,只要你会用man。
    Man实际上就是察看指令用法的help,学习任何一种UNIX类的操作系统最重要的就是学
    会使用man这个辅助命令。man是manual(手册)的缩写字,它的说明非常的详细,但是因
    为它都是英文,看起来非常的头痛。建议大家需要的时候再去看man,平常吗,记得一
    些基本用法就可以了。

          logout

          一看就知道了,这是退出系统的命令,我就不多说了。要强调的一点是,linux
    是多用户多进程的操作系统,因此如果你不用了,退出系统就可以了,关闭系统你就不
    用操心了,那是系统管理员的事情。但有一点切记,即便你是单机使用linux,logout
    以后也不能直接关机,因为这不是关机的命令。
  • 不能一起吃的食物

    2007-06-12 09:50:04

     红薯和柿子——会得结石 鸡蛋和糖精——容易中毒 洋葱和蜂
    蜜——伤害眼睛 豆腐和蜂蜜——引发耳聋 萝卜和木耳——皮肤发炎 芋头和香蕉——
    腹胀 花生和黄瓜——伤害肾脏 牛肉和栗子——引起呕吐 兔肉和芹菜——容易脱发 螃
    蟹和柿子——腹泻 鲤鱼和甘草——会中毒 2》20种不能一起吃的食物 1. 猪肉*菱
    角——肚子痛 2. 牛肉*栗子——引起呕吐 3. 羊肉*西瓜——伤元气 4. 狗肉*绿
    豆——会中毒 5. 兔肉*芹菜——脱发 6. 鸡肉*芹菜——伤元气 7. 鹅肉*鸡蛋——伤
    元气 8. 甲鱼*苋菜——会中毒 9. 鲤鱼*甘草——会中毒 10. 螃蟹*柿子——腹泻 11.
    白酒*柿子——会胸闷 12. 红薯*柿子——会得结石 13. 糖精(片)*鸡蛋——会中
    毒、重则死亡 14. 红塘*皮蛋——会中毒 15. 洋葱*蜂蜜——伤眼睛 16. 豆腐*蜂
    蜜——耳聋 17. 萝卜*木耳——得皮炎 18. 马铃薯*香蕉——面部生斑 19. 芋头*香
    蕉——腹涨 20. 花生*黄瓜——会伤身
  • 测试人员能买怎样的房子?

    2007-06-11 17:24:27

        上周末去看了一下软件园附近的房子,最便宜的4200+,贵的有5,6k,想着自己才那么一点点工资,

    一个月能买几个平方啊?没法子,眼光放远点,找了个较为偏僻的玉龙湾,小的都已经一抢而光了,找了个108的,售楼处的PLMM用计算器核算下来,把输出结果往我这边一转,哇靠!40W。

         在公司里工资也不算低了,可连个房子都买不起,何以成家立业,何以生儿育女?和我一起的一个家伙,他是北大计算机专业的硕士生,刚从上海微软跳过来。在上海工资比这高出一倍,可人家还是受不了上海的房价,无奈选择了这个鸟不拉屎的地方。结果来之后,后悔了:(

     

Open Toolbar