维佳's profileJJ的共享空间PhotosBlogListsMore Tools Help

Windows Media Player

JJ的共享空间

August 16

无意看到一则消息

The "Viral Effect"
  • Improper handling or use of certain OSS code (e.g., GPL code) with or within IBM proprietary code may necessitate that IBM distribute our proprietary source code under the terms of the GPL
GPL在IBM眼里就是眼中钉啊!!!!!!! 
June 12

<转>走向J2EE,漫长的道路

网上看到这篇文章,觉得作者没走什么弯路,对我也很有启发,转之.......
初次涉及Java领域,感觉到Java入门是好像没有C,C++入门快,工具也没有什么Turbo C,Visual C++好用(自己的破机器实在陪不起JBuilder,贪婪的家伙,以后一定要收拾她)。什么JAVA_HOME,CLASSPATH,虚拟机等概念都是初次基础,旁边的人都很少用Java的。感觉Java就是做Applet的。慢慢的知道了http://java.sun.com,开始知道Java博大精深。让我不可思议的是JAVA 2,JDK,J2SE,J2EE,J2ME等新名词在自己的脑海里蔓延。慢慢的自己知道了JCP组织是制定Java相关规范的发源地http://java.jcp.org ,于是订阅了一份邮件列表。真是好东西啊,定期有Java的最新动向,所以Java的动态尽收眼里,建议大家也去订阅一份。免费的。自己动手下载了Java(TM) 2 SDK和Java(TM) 2 SDK Documentation后,不懂的就查Java(TM) 2 SDK Documentation,特别好用,也不需要什么手册之类的,建议大家都要有一份。
搭起Java开发环境后,记得还是用UltraEdit编辑并编译的(在其中可以配好Java的编译环境)。慢慢的改用JCreator了。不错,至少很多方面有改进。最开始卖了一套<Java 2核心技术> 2本书,还不错。对于入门来说足够了。慢慢的知道<Thinking in Java>是一本好书,后来才知道,有了Java经验后,看这本书特别过瘾,所以现在还经常翻翻。周而复始的看,效果特别好。慢慢的知道了Oreilly公司(http://www.oreilly.com)出的图书不错,很高雅,国内翻译的也还可以(http://www.oreilly.com.cn)。本人收集了很多Oreilly的原版图书,有需要的可以和我联系(Acrobat pdf格式)。慢慢知道了jjhou这个人.(http://jjhou.csdn.net )以及他的个人网站,最让我感兴趣的是jjhou老师写的散文,书评,很有收获,不是为技术而技术。很有趣味性。其中, http://www.epubcn.com 上有很多美丽的图书。
不知道什么时候,要开始干项目了,以前从书上看到的东西,慢慢的在项目中有了很好的机会去温习,慢慢的有了感觉,开始主要是用Swing,开发桌面系统,放置一个按钮怎么也放不好,后来才知道有一个布局管理器。咳,这个婆婆的Java也讨厌的很。开始涉及到数据库访问,JDBC。后来我才知道,Sun的Java网站有一个Java Tutorial。(http://java.sun.com/docs/books/tutorial/ )。同时,也知道了蔡學鏞先生的sleepless in java(http://www.oreilly.com.tw/sleepless/index.htm ),太美了,美的很。 满满的,OReilly,
http://www.onjava.com/ 也是不错的地方。都有很多优秀的文章。http://www-900.ibm.com/developerWorks/cn/index.shtml,也很棒。
每次,美美的享用一顿大餐后,也来也觉得自己是不是应该换一种学习方式,因为这样学习效果不太好。比较乱。让我想起了Java Specification,对,我开始研究Java规范了。最开始下载的规范是JDBC Specification,很多概念一目了然,尤其是DATABASE的事务性控制,自己对于她的理解慢慢的有了较为深入的了解。对于开发C/S结构,比如,Swing+JDBC,开发数据库应用系统,让我学会开发两层结构的应用系统。很神气。
也不知道什么时候要开始开发一个网站,基于Linux+JSP+JavaBean+Oracle的系统。很是有意思。为什么这么说呢?因为不同于Swing+JDBC的开发模式,系统之间多了一层(JavaBean,姑且就这么叫吧!嘻嘻);同时,很多开发技术和面向左面系统不一样,比如分页技术。
完成项目后,自己对于Java的很多方面都比较了解了。开始思考一个问题,J2EE是什么东西?。我们学习Java大概有3个方向,第一,桌面系统,包括C/S结构;第二,J2ME,面向无限领域,很有潜力的家伙,看看中国的手机用户就知道了。第三,面向企业应用、计算的平台,J2EE.
在痛苦的抉择后,我选择J2EE..分享J2EE给我带来的快乐。学到现在,最大的感觉,就是: 简单就是美,美就是Java.不会有学MFC的痛苦,也不会有去分析STL的艰辛,网路应用上一点也不逊色于C++。开始进入我的J2EE之旅。
还是下载了一份J2EE规范,一份J2EE SDK。开始研究J2EE,结合http://java.sun.com/j2ee/tutorial/index.html 提供的J2EE Tutorial开始研究了。大概过了1个月,开始有感觉了,也就在这个时候,需要我去完成一个J2EE构架方面的项目。差不多边学编写完成了,很多概念在写完后都不是很清晰,因为东西太多了,主要是基于JSP(Servlet)+Session Bean+EIS构架开发系统。当然也学到很多东西,至少对SB EJB的编写不成问题。懂得了JSP如何调用EJB……..
完成项目后,我开始研究Java Pet Store了,很是过瘾。开始知道了Servlet过滤器,XML方面较为全面的知识,知道了J2EE整个框架中各种技术的实际应用。慢慢的,开始研究WebLogic配置好的Pet Store(也是Sun公司的)。慢慢的分析两者的不同之处。开始对J2EE Specification有了很好的感觉。因为J2EE Specification本身是很严肃的,但Pet Store给出了活力。在反复的学习中,我明白了J2EE构架的70—80%。新的问题又出来了,实际企业中会如何建构一个J2EE系统呢?带着这个问题,我开始分析Core J2EE Patterns,这本书。同时,也有EJB Design Patterns。慢慢的,开始知道了J2EE的魅力所在,知道了J2EE为什么会在企业中得到较为好的认可。大家都知道,设计模式一词,在公司上班,你们的老板会看你的代码吗?会赞赏你的DP很好吗,我想很少。在完成你的工作进度之余,加班,加班,再加班,我想你没有更多的时间去分析研究DP.但,J2EE框架不一样,她内置了很多优秀的设计模式,我们在设计开发、构架一个J2EE系统中用到了很多设计模式。比如,MVC,EJB中封装的DAO设计模式。构架J2E系统用Session Fa&ccedil;ade,Message Fa&ccedil;ade设计模式也不会太困难。这也是后来J2EE吸引我的地方。慢慢的我知道了,作为一个J2EE开发者,我们要掌握其中的核心内容。我个人认为,3方面很重要。实施EJB系统常用的架构、设计模式,比如session fa&ccedil;ade、message fa&ccedil;ade、DTO等。J2EE系统构架中常用的模式。UML-> EJB,EJB->UML相互映射。现在也一样在研究。
善于享受孤独,幸好还有J2EE!
May 31

找实习

好久没更新MSN了,找实习真是挺烦的,不知道兄弟们找实习是什么样子的.
总结一下吧,前些天小投了一下,回应的公司还真不多,Intel,EMC,上海爱立信,中国银联,路透,贝尔实验室都没回应.
笔试的公司到现在有IBM CDL,偶的第一家笔试公司啊.ebay,联想,南京爱立信,博奥杰,IBM蓝色之路.
面试的公司有IBM CDL,ebay,南京移动.
IBM CDL去上海面了,雷声大雨点小,没什么大的感觉.最近好像要电面,挺怪的,刚来
电话我在上课啊,他说待会打居然到现在都不打,放我鸽子放的不行.
ebay进最后一面,居然是群面啊,我被PK的鸦雀无声.
联想只招东大研究生,这个问题我要提出来了,还是东大这方面做的比南大好,
联系到的公司也多,南大这一次研究生不肯放人,要到7月才能出去实习,这个
显然就吃亏了很多.博奥杰也只去了东大,虽然东大是我的主场,我还是心虚啊.
南京爱立信是我第一次笔挂的公司,显然博奥杰的再次笔挂让我对自己信心
大减,平时太看JAVA的东西,C++有点欠缺了.唉,现在一句话,JAVA,C++,C一个都
不能少.
南京移动我投了有一个多月,突然要我过去面试,奇怪之极啊,前些日子可能招正式
员工,我都以为简历都没过的说.
本来要去上海SAP笔的,学院还包车去,可惜与移动冲突,一想到SAP这次招的.NET平台,
MS我这个不是很熟,就算了.
最近要开始研究算法了,基本功还得打打扎实.
唉,找实习真麻烦,东大的那帮XDJM好像都有归属了,羡慕ing.....
March 27

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 存放SUN的OpenWin 
     /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 of=/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  添加/sbin入PATH路径
 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      读取第10到20个字节的内容
  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    搜索test或taste两个字符---------利用 [] 來搜尋集合字元
  grep -n '[^g]oo' 123.txt     搜索前面不为g的oo-----------向選擇 [^] 
  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.user和quota.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 開始解壓縮,並且嘗試驅動所有硬體裝置; 
 4、Kernel 執行 init 程式並取得 run-level 資訊; 
 5、init 執行 /etc/rc.d/rc.sysinit 檔案; 
 6、啟動核心的外掛模組 (/etc/modprobe.conf); 
 7、init 執行 run-level 的各個批次檔( Scripts ); 
 8、init 執行 /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 ----->测试安装

初学者入门:软件测试从零开始[转]

本文面向软件测试新手,从测试前的准备工作、测试需求收集、测试用例设计、测试用例执行、测试结果分析几个方面给出建议和方法。鉴于国内的软件开发、测试不规范的现状,本文为软件测试新手提供了若干个软件测试的关注点。 

   【关键词】软件测试、测试用例、测试需求、测试结果分析 

   引言 

   几年前,从学校毕业后,第一份工作就是软件测试。那时候,国内的软件企业大多对软件测试还没有什么概念,书店里除了郑人杰编写的《计算机软件测试技术》之外,几乎没有其它的软件测试相关书籍,软件测试仅仅在软件工程的教材中作为一个章节列出来,因此,我对软件测试一无所知。不过,在正式走上工作岗位之前,公司提供了为期两周的系统的软件测试技术专题培训,对接下来的软件测试工作有很大的指导意义。现在,我继续从事软件测试的培训与咨询服务,在这个过程中,亲眼目睹了很多软件测试新手面对的困惑,他们初涉软件测试行业,没有接受系统的培训,对软件测试一无所知,既不知道该测试什么,也不知道如何开始测试。下面针对上述情况,给出若干解决办法。 

   测试准备工作 

   在测试工作伊始,软件测试工程师应该搞清楚软件测试工作的目的是什么。如果你把这个问题提给项目经理,他往往会这样回答: “ 发现我们产品里面的所有 BUG ,这就是你的工作目的 ” 。作为一名软件测试新手,如何才能发现所有的 BUG ?如何开始测试工作?即便面对的是一个很小的软件项目,测试需要考虑的问题也是方方面面的,包括硬件环境、操作系统、产品的软件配置环境、产品相关的业务流程、用户的并发容量等等。该从何处下手呢?

   向有经验的测试人员学习 

   如果你进入的是一家运作规范的软件公司,有独立的软件测试部门、规范的软件测试流程、软件测试技术有一定的积累,那么,恭喜你!你可以请求测试经理委派有经验的测试人员作为你工作上的业务导师,由他列出软件测试技术相关书籍目录、软件测试流程相关文档目录、产品业务相关的文档目录,在业务导师的指导下逐步熟悉软件测试的相关工作。其实,在很多运作规范的软件公司,已经把上述的师父带徒弟的方式固化到流程中。 

   如果你进入的是一个软件测试一片空白的软件企业,那么,也恭喜你!你可以在这里开创一片自己的软件测试事业,当然,前提是老板确实认识到软件测试的重要性,实实在在需要提高产品的质量。这时候,可以到国内的软件测试论坛和相关网站上寻找软件测试资源,这种情况下,自学能力和对技术的悟性就至关重要了。 

   阅读软件测试的相关书籍 

   现在,中文版的软件测试书籍越来越多,有的是国人自己写的,有的是翻译国外经典之作。可以到 www.chinapub.com 或者 www.cnforyou.com 等网络购书的站点查找软件测试相关的书籍。目前,从国外引入的软件测试书籍有很多经典之作,但是,翻译成中文后,翻译质量对阅读效果有很大的影响。 

   走读缺陷跟踪库中的问题报告单 

   如果您所在的公司已经有软件缺陷跟踪库了,无论采用的是商用工具,如 ClearQuest 、 TestDirecter 等工具,还是采用的 Bugzilla 、 Mantis 等开源工具,这都无关紧要,缺陷跟踪库中的缺陷报告单才是有价值的。缺陷跟踪库中的问题报告单是软件测试工程师工作绩效的集中体现,同时也是软件产品问题的集中体现。一般来说,缺陷报告单中最关键的几个部分包括:第一部分是发现缺陷的环境,包括软件环境、硬件环境等;第二部分是缺陷的基本描述;第三部分是开发人员对缺陷的解决方法。通过对上述缺陷报告单的三个部分作仔细分析,不知不觉你已经吸收了其他软件测试人员的工作经验,并掌握了软件产品常见的基本问题。这是迅速提高软件测试经验的好方法。 

   走读相关产品的历史测试用例 

   如果你所在的公司有测试用例管理系统,那么,走读相关产品的软件测试用例是迅速提高测试用例设计水平的一条捷径。走读测试用例也是有技巧的。测试用例写作一般会包括测试用例项和根据测试用例项细化的测试用例,下面举例说明。 “ 测试用户登录的功能 ” 是一个测试项,该测试项的目的是测试用户登录功能是否正确,是否能够完成正常的登录功能,是否能够对非法用户名和密码做异常处理等等。因此,根据该用例项,可以设计出若干个测试用例,大多数情况下,测试用例项和测试用例是一对多的关系。 

   通过走读测试用例项目,你可以掌握应该从哪些功能点着手未来的测试工作;通过走读软件测试用例,你可以了解如何根据被测试的功能点开展软件测试用例的设计工作,包括如何确定测试用例的输入、测试用例的操作步骤和测试用例的输出结果等。 

   总之,走读其他软件测试人员设计的优秀软件测试用例,是提高自身用例设计水平的好方法。 

   学习产品相关的业务知识 

   软件测试人员不仅要掌握软件测试技术相关知识,对产品相关的业务知识也要学习。这很好理解,如果从事财务软件的测试工作,一定要学习财务知识;如果从事通讯产品测试工作,那么相关的通讯理论知识也是必须的;如果从事银行软件的测试,银行的业务流程也是不可或缺的知识点。 

   因此,在学习软件测试技术的同时,千万不要忽略产品相关业务知识的学习。如果你是一个软件测试技术专家,但是对产品业务知识一无所知,那么也只能测试出来纯粹的软件缺陷,而面对眼前出现的产品业务相关的缺陷,很可能是视而不见,如此这般,软件测试的效果会大打折扣。 

   识别测试需求 

   识别测试需求是软件测试的第一步。如果开发人员能够提供完整的需求文档和接口文档,那固然好。可以根据需求文档中描述的每个功能项目的输入、处理过程和输出,来设计测试用例。如果开发人员没有提供软件需求文档,那该如何是好?下面给出几个有效的方法: 

   主动获取需求 

   开发人员通常不会更好地考虑软件测试,如果没有开发流程的强制规定,他们通常是不愿意提供任何开发文档,即便有强制规定,需求文档也未必能够真正指导软件系统测试工作。因此,需要测试人员发挥主观能动性,与相关的软件开发项目经理和软件开发人员保持沟通,了解软件实现的主要功能是什么,并记录得收集到的信息。一般来说,开发人员即便没有提供相关需求文档,也会保存一些简单的过程文档,主动向开发人员索要这些文档,可以作为测试的参考。此外,可以与公司的技术支持人员交流,技术支持人员是最贴近用户的人,因此,通过交流可以获取第一手的用户使用感受,在测试的过程中会更加贴近用户。 

   当拿到相关的资料后,从哪些方面分析需求?如何与开发人员交流需求?其实,只要把握需求分析的几个关键的点就可以解决问题:输入、处理过程、输出、性能要求、运行环境,下面针对每一个项目逐一分析: 

   软件输入: 与该需求相关的一切可能输入,可以从这几方面考虑,输入来源、输入参数的数量、输入参数的度量单位、输入参数的时间要求、输入参数的精度和输入参数的有效输入范围。在测试用例设计中,这部分内容作为测试用例输入的依据。 

   处理过程: 描述对输入数据所执行的所有操作和如何获得输出的过程。测试人员了解处理过程即可,在测试过程中发现 BUG 时候,如果对处理过程了解的深入,对定位问题根源有很大的帮助。 

   软件输出: 描述每个需求的输出结果,包括输出的位置(如计算机显示器、打印机,文件),输出参数的数量、输出参数的度量单位、输出参数的时序、输出参数精确度、输出参数的有效输出范围、错误消息。在测试用例设计中,这部分内容作为测试用例的预期输出。 

   性能要求: 与该需求相关的性能要求,比如 “ 插入 ATM 取款卡后, 3 秒钟内弹出提示用户取款的图形界面 ” 。 3 秒钟这一限制,就是对需求的基本性能要求。 

   运行环境: 软件的运行所需的环境,包括硬件平台的要求、操作系统的要求、数据库的要求,以及其它相关支撑软件的要求。 

   确认需求的优先级 

   确认需求的优先级是很必要的,如果在产品进度比较紧的情况下,测试人员可以考虑优先测试优先级高的需求项,如果进度允许,那么在测试优先级低的需求项,如果进度不允许,那么就放弃测试优先级低的需求项。如果软件公司有规范的流程支撑,开发人员在提供软件需求文档的时候,应该在文档中确定需求的优先级。但是,如果开发人员连基本的软件需求文档都没有提供,又怎能指望他们确定软件需求的优先级?如果是这样,需求的优先级只能由测试人员完成了。 

   加入开发小组的邮件群组 

   测试人员需要通晓被测试产品,但是,产品在开发的过程中往往是不断变化的。如果软件开发团队有一套变更控制流程,测试人员会对产品的变更了如指掌。如果没有变更控制,那就要采用其他的土方法了。如果公司里面有自动化办公系统,也许采用的是 Lotus Notes 系统,也许使用的是 E-mail 系统,测试人员应该加入到开发人员的邮件群组中。当开发人员通过邮件讨论问题、通知召开技术会议的时候,测试人员可以及时知晓,如果必要,可以参加开发人员的技术会议。即便公司里面有了软件变更控制流程,加入到开发邮件群组也是一个很好的习惯。 

   与开发人员为邻 

   建议测试人员与开发人员为邻。我所在的测试组曾经与开发组是在相邻的写字间里,开发人员与测试人员的关系非常融洽,抛去同事关系,大家还是不错的朋友。不管开发人员有什么样的活动,测试人员都能第一时间获得信息。无论从事软件测试工作,还是从事其它的工作,与工作中上下游环节的同事保持良好的个人关系对工作有很大便利。一般的公司内部都存在部门墙,良好的人际关系是打通部门墙的手段之一。向领导建议测试人员与开发人员为邻,这很必要。 
  测试用例设计 

   测试需求收集完毕后,开始测试设计。测试用例是什么?测试用例就是一个文档,描述输入、动作、或者时间和一个期望的结果,其目的是确定应用程序的某个特性是否正常的工作。设计测试用例需要考虑以下问题: 

   测试用例的基本格式 

   软件测试用例的基本要素包括测试用例编号、测试标题、重要级别、测试输入、操作步骤、预期结果,下面逐一介绍。 

   用例编号: 测试用例的编号有一定的规则,比如系统测试用例的编号这样定义规则: PROJECT1-ST-001 ,命名规则是项目名称+测试阶段类型(系统测试阶段)+编号。定义测试用例编号,便于查找测试用例,便于测试用例的跟踪。 

   测试标题: 对测试用例的描述,测试用例标题应该清楚表达测试用例的用途。比如 “ 测试用户登录时输入错误密码时,软件的响应情况 ” 。 

   重要级别: 定义测试用例的优先级别,可以笼统的分为 “ 高 ” 和 “ 低 ” 两个级别。一般来说,如果软件需求的优先级为 “ 高 ” ,那么针对该需求的测试用例优先级也为 “ 高 ” ;反之亦然, 

   测试输入: 提供测试执行中的各种输入条件。根据需求中的输入条件,确定测试用例的输入。测试用例的输入对软件需求当中的输入有很大的依赖性,如果软件需求中没有很好的定义需求的输入,那么测试用例设计中会遇到很大的障碍。 

   操作步骤: 提供测试执行过程的步骤。对于复杂的测试用例,测试用例的输入需要分为几个步骤完成,这部分内容在操作步骤中详细列出。 

   预期结果: 提供测试执行的预期结果,预期结果应该根据软件需求中的输出得出。如果在实际测试过程中,得到的实际测试结果与预期结果不符,那么测试不通过;反之则测试通过。 

   软件测试用例的设计主要从上述 6 个域考虑,结合相应的软件需求文档,在掌握一定测试用例设计方法的基础上,可以设计出比较全面、合理的测试用例。具体的测试用例设计方法可以参见相关的测试书籍,白盒测试方法和黑盒测试方法在绝大多数的软件测试书籍中都有详细的介绍,这里不作赘述。 

   重用同类型项目的测试用例 

   如果我看得远,那是因为我站在巨人的肩上 --牛顿。 

   一般来说,每个软件公司的项目可以分为固定的几大类。可以按业务类型划分,比如 ERP 软件、产品数据管理软件、通信软件、地理信息系统软件等等;可以按软件结构来划分,比如 B/S 架构的软件、 C/S 架构的软件、嵌入式软件等等。参考同类别软件的测试用例,会有很大的借鉴意义。如果,公司中有同类别的软件系统,千万别忘记把相关的测试用例拿来参考。如果,系统非常接近,甚至经过对测试用例简单修改就可以应用到当前被测试的软件。 “ 拿来主义 ” 可以极大的开阔测试用例设计思路,也可以节省大量的测试用例设计时间。 

   利用已有的软件 Checklist 

   在上面一个小节中,按照不同的规则划分了不同的软件类型。每种类型的软件都有一定的测试规范,比如, WEB 软件系统在系统测试过程中,会有一系列的范式,比如针对 Cookie 就会有很多测试点。在设计测试用例的时候,不妨到网上去搜索相关的 Checklist ,不过国内外的网站很少有这方面的资料,即便有,也不是特别系统。可以先找一份粗糙的 Checklist ,然后,在设计测试用例的时候不断的去完善它,以作为下次测试用例设计的基础。 

   加强测试用例的评审 

   测试用例设计完毕后,最好能够增加评审过程。同行评审是 CMM3 级的一个 KPA ,如果因为公司没有通过 CMM3 级,就不开展同行评审是不恰当的。测试用例应该由产品相关的软件测试人员和软件开发人员评审,提交评审意见,然后根据评审意见更新测试用例。 如果认真操作这个环节,测试用例中的很多问题都会暴露出来,比如用例设计错误、用例设计遗漏、用例设计冗余、用例设计不充分等等;如果同行评审不充分,那么,在测试执行的过程中,上述本应在评审阶段发现的测试用例相关问题,会给测试执行带来大麻烦,甚至导致测试执行挂起。 

   定义测试用例的执行顺序 
  
   在测试用例执行过程中,你会发现每个测试用例都对测试环境有特殊的要求,或者对测试环境有特殊的影响。因此,定义测试用例的执行顺序,对测试的执行效率影响非常大。比如某些异常测试用例会导致服务器频繁重新启动,服务器的每次重新启动都会消耗大量的时间,导致这部分测试用例执行也消耗很多的时间。那么在编排测试用例执行顺序的时候,应该考虑把这部分测试用例放在最后执行,如果在测试进度很紧张的情况下,如果优先执行这部分消耗时间的异常测试用例,那么在测试执行时间过了大半的时候,测试用例执行的进度依然是缓慢的,这会影响到测试人员的心情,进而导致匆忙地测试后面的测试用例,这样测试用例的漏测、误测就不可避免,严重影响了软件测试效果和进度。因而,合理地定义测试用例的执行顺序是很有必要的。 

   测试用例执行 

   测试用例设计完毕后,接下来的工作是测试执行,测试执行中应该注意以下几个问题: 

   搭建软件测试环境,执行测试用例 

   测试用例执行过程中,搭建测试环境是第一步。一般来说,软件产品提交测试后,开发人员应该提交一份产品安装指导书,在指导书中详细指明软件产品运行的软硬件环境,比如要求操作系统系统是 Windows 2000 pack4 版本,数据库是 Sql Server 2000 等等,此外,应该给出被测试软件产品的详细安装指导书,包括安装的操作步骤、相关配置文件的配置方法等等。对于复杂的软件产品,尤其是软件项目,如果没有安装指导书作为参考,在搭建测试环境过程中会遇到种种问题。 

   如果开发人员拒绝提供相关的安装指导书,搭建测试中遇到问题的时候,测试人员可以要求开发人员协助,这时候,一定要把开发人员解决问题的方法记录下来,避免同样的问题再次请教开发人员,这样会招致开发人员的反感,也降低了开发人员对测试人员的认可程度。 

   测试执行过程应注意的问题 

   测试环境搭建之后,根据定义的测试用例执行顺序,逐个执行测试用例。在测试执行中需要注意以下几个问题: 

   全方位的观察测试用例执行结果: 测试执行过程中,当测试的实际输出结果与测试用例中的预期输出结果一致的时候,是否可以认为测试用例执行成功了?答案是否定的,即便实际测试结果与测试的预期结果一致,也要查看软件产品的操作日志、系统运行日志和系统资源使用情况,来判断测试用例是否执行成功了。全方位观察软件产品的输出可以发现很多隐蔽的问题。以前,我在测试嵌入式系统软件的时候,执行某测试用例后,测试用例的实际输出与预期输出完全一致,不过在查询 CPU 占用率地时候,发现 CPU 占用率高达 90 %,后来经过分析,软件运行的时候启动了若干个 1ms 的定时器,大量的消耗的 CPU 资源,后来通过把定时器调整到 10ms , CPU 的占用率降为 7 %。如果观察点单一,这个严重消耗资源的问题就无从发现了。 

   加强测试过程记录: 测试执行过程中,一定要加强测试过程记录。如果测试执行步骤与测试用例中描述的有差异,一定要记录下来,作为日后更新测试用例的依据;如果软件产品提供了日志功能,比如有软件运行日志、用户操作日志,一定在每个测试用例执行后记录相关的日志文件,作为测试过程记录,一旦日后发现问题,开发人员可以通过这些测试记录方便的定位问题。而不用测试人员重新搭建测试环境,为开发人员重现问题。 

   及时确认发现的问题: 测试执行过程中,如果确认发现了软件的缺陷,那么可以毫不犹豫的提交问题报告单。如果发现了可疑问题,又无法定位是否为软件缺陷,那么一定要保留现场,然后知会相关开发人员到现场定位问题。如果开发人员在短时间内可以确认是否为软件缺陷,测试人员给予配合;如果开发人员定位问题需要花费很长的时间,测试人员千万不要因此耽误自己宝贵的测试执行时间,可以让开发人员记录重新问题的测试环境配置,然后,回到自己的开发环境上重现问题,继续定位问题。 

   与开发人员良好的沟通: 测试执行过程中,当你提交了问题报告单,可能被开发人员无情驳回,拒绝修改。这时候,只能对开发人员晓之以理,做到有理、有据,有说服力。首先,要定义软件缺陷的标准原则,这个原则应该是开发人员和测试人员都认可的,如果没有共同认可的原则,那么开发人员与测试人员对问题的争执就不可避免了。此外,测试人员打算说服开发人员之前,考虑是否能够先说服自己,在保证可以说服自己的前提下,再开始与开发人员交流。 

   及时更新测试用例 

   测试执行过程中,应该注意及时更新测试用例。往往在测试执行过程中,才发现遗漏了一些测试用例,这时候应该及时的补充;往往也会发现有些测试用例在具体的执行过程中根本无法操作,这时候应该删除这部分用例;也会发现若干个冗余的测试用例完全可以由某一个测试用例替代,那么删除冗余的测试用例。 

   总之,测试执行的过程中及时地更新测试用例是很好的习惯。不要打算在测试执行结束后,统一更新测试用例,如果这样,往往会遗漏很多本应该更新的测试用例。 

   提交一份优秀的问题报告单 

   软件测试提交的问题报告单和测试日报一样,都是软件测试人员的工作输出,是测试人员绩效的集中体现。因此,提交一份优秀的问题报告单是很重要的。软件测试报告单最关键的域就是 “ 问题描述 ” ,这是开发人员重现问题,定位问题的依据。问题描述应该包括以下几部分内容:软件配置、硬件配置、测试用例输入、操作步骤、输出、当时输出设备的相关输出信息和相关的日志等。 

   软件配置: 包括操作系统类型版本和补丁版本、当前被测试软件的版本和补丁版本、相关支撑软件,比如数据库软件的版本和补丁版本等。 

   硬件配置: 计算机的配置情况,主要包括 CPU 、内存和硬盘的相关参数,其它硬件参数根据测试用例的实际情况添加。如果测试中使用网络,那么网络的组网情况,网络的容量、流量等情况。硬件配置情况与被测试产品类型密切相关,需要根据当时的情况,准确翔实的记录硬件配置情况。 

   测试用例输入 \ 操作步骤 \ 输出: 这部分内容可以根据测试用例的描述和测试用例的实际执行情况如实填写。 

   输出设备的相关输出信息: 输出设备包括计算机显示器、打印机、磁带等等输出设备,如果是显示器可以采用抓屏的方式获取当时的截图,其他的输出设备可以采用其它方法获取相关的输出,在问题报告单中提供描述。 

   日志信息: 规范的软件产品都会提供软件的运行日志和用户、管理员的操作日志,测试人员应该把测试用例执行后的软件产品运行日志和操作日志作为附件,提交到问题报告单中。 

   根据被测试软件产品的不同,需要在 “ 问题描述 ” 中增加相应的描述内容,这需要具体问题具体分析。 

   测试结果分析 

   软件测试执行结束后,测试活动还没有结束。测试结果分析是必不可少的重要环节, “ 编筐编篓,全在收口 ” ,测试结果的分析对下一轮测试工作的开展有很大的借鉴意义。前面的 “ 测试准备工作 ” 中,建议测试人员走读缺陷跟踪库,查阅其他测试人员发现的软件缺陷。测试结束后,也应该分析自己发现的软件缺陷,对发现的缺陷分类,你会发现自己提交的问题只有固定的几个类别;然后,再把一起完成测试执行工作的其他测试人员发现的问题也汇总起来,你会发现,你所提交问题的类别与他们有差异。这很正常,人的思维是有局限性,在测试的过程中,每个测试人员都有自己思考问题的盲区和测试执行的盲区,有效的自我分析和分析其他测试人员,你会发现自己的盲区,有针对性的分析盲区,必定会在下一轮测试用避免盲区。 

   总结: 

   限于文章的篇幅,本文不可能给出一个类似于 checklist 的指导性的软件测试新手入门。无论从事软件测试还是从事其它的工作,技术上的和技巧上的问题都可以通过查询相关的软件测试技术书籍获取,掌握一套基本的方法论是最重要的。以上文字,都是作者从事软件测试工作积累的经验之谈,如发现谬误之处请不吝指出。 

 
Photo 1 of 4

维佳 贺

Occupation
Location
Interests
No list items have been added yet.