越来越觉得自己走测试这条路是对的,越来越觉得自己适合做测试,这么久以来兴趣一直在激发我前进,一直在寻找下一个站点,我相信测试路上我一定会走的很远,我的测试道路一定会很宽阔,努力就有收获,也希望还在测试路口迷惘的朋友,不要再犹豫了,因为你的犹豫不决,会使你错过很多~~~~~喜欢就去just do it ,因为只有尝试了才知道自己适不适合,喜不喜欢。如果一味的问别人,永远找不到最终的答案。因为每个人的感觉不一样,每个人的情况不一样,每个人的前提条件都不一样,你会得到不同的答案,这样只能会使你更迷茫~~~~

发布新日志

  • bugzilla+windows安装手册

    2011-10-13 22:18:50

     

    转自:http://blog.csdn.net/will2ni/article/details/5169366

    for windows的安装,请先查看:

    https://wiki.mozilla.org/Bugzilla:Win32InstallPackages

     


    Bugzilla安装手册

     

    for windows

     

     

     

    will

    2010-1-9

     

     

    目录

    1.      概述 ..............................................  4

    1.1    安装环境 ........................................  4

    2.      安装........................................... ...  4

    2.1    安装前准备 .....................................  4

    2.2     安装 Perl.......................................  5

    2.3    安装XAMPP................................... .  5

    2.4    Bugzilla.........................................  5

    2.5    安装Perl 模块 ..................................  6

    2.5.1      自动安装( *推荐 * ..................  6

    2.5.2      网络安装 ....................................  6

    2.5.3      手动安装 ....................................  6

    3.      配置 ...............................................  7

    3.1    localconfig.....................................  7

    3.2    MySQL...........................................  8

    3.3    checksetup.pl................................  8

    3.4    Appache .......................................  8

    3.5    修改注册表 ......................................  8

    3.6    汉化 ................................................  8

    3.7     解决报告和图表的中文乱码问题 ...........  8

    4.      附录 ................................................  9

    4.1    Perl模块列表 ....................................  9

    1 概述

     

       Bugzilla 在项目中已经使用了一段时间,相对其他商业缺陷跟踪系统,Bugzilla 还是有很多优势的。

       或许因为我是开源爱好者,特别钟爱这些开源的测试工具,想在其他项目中推广。但是Bugzilla 的安装和配置,经常令很多人郁闷,尤其是在Windows 下的安装。

       为此在Windows 上进行了多次试验,并简化了安装过程,这篇文章就是为了让更多的人轻松按装和使用Bugzillahope this helps

    1.1 安装环境

     

    版本

    Windows 2003 Server

    ActivePerl-5.10.0.1002-MSWin32-x86-283697.msi

    5.10.0 .1002

    XAMPP

    1.7.1

    2 安装

    2.1 安装前准备

    1.  下载ActivePerl-5.10.0

    本文中使用5.10.0 版本测试通过,因此推荐使用5.10.0 版本,已上传到CSDN ,地址如下:

    http://download.csdn.net/source/1978649

    如果想使用其他版本,可在此处下载:

    https://www.activestate.com/activeperl/downloads/


    2.  下载XAMPP-1.7.1

    本文中使用1.7.1 版本测试通过,因此推荐使用1.7.1 版本。

    http://sourceforge.net/projects/xampp/files/XAMPP%20Windows/1.7.1/xampp-win32-1.7.1-installer.exe/download

    如果想使用其他版本,可在此处下载:

    http://sourceforge.net/projects/xampp/files/XAMPP%20Windows/


    3.  下载Perl 模块(* 推荐*

    若选择网络安装Perl 模块,可跳过此步。

    这些模块是根据bugzilla-3.4.4和perl-5.10.0,整理成的压缩包,并且包含自动安装脚本"install_ppms.pl”。推荐下载这些模块,然后使用“install_ppms.pl”自动 安装,下载地址如下:

    http://download.csdn.net/source/1981169


    4.  下载bugzilla

    本文中使用bugzilla-3.4.4 ,下载地址如下:

    http://ftp.mozilla.org/pub/mozilla.org/webtools/bugzilla-3.4.4.tar.gz


    5.  下载汉化包

    http://download.csdn.net/source/1981400

    2.2 安装perl

     

    1. 执行activeperl.exe

    2. 选择安装目录

    3. 完成

     

    安装完成后,可使用perl –v   查看版本。

    2.3 安装XAMPP

    1. 执行xampp-win32-1.7.1-installer.exe

    2. 选择安装目录

    3. 安装完成时,保持默认选项即可

     

    安装完成后,打开“XAMPP Control Panel ”,启动ApacheMySQL ,访问:http://127.0.0.1/ ,检查是否正常。

    2.4 Bugzilla

    1. 解压bugzilla-3.4.4.tar.gz

    2. 拷贝bugzilla-3.4.4xampp/htdocs/ 目录下(可跳过)

    2.5 安装perl模块

    bugzilla 目录下,执行checksetup.pl –check-modules ,检查有哪些模块还未安装。安装前准备的perl 模块中以经包含了几乎所有所需要的模块。

    2.5.1 自动安装(*推荐*

    为了方便安装,已经将bugzilla-3.4.4 所需的模块整理成压缩包,下载地址见安装前准备部分。

    压缩包内包含了近50 个模块,详细列表见附录。

     

    安装步骤如下:

    1.  解压PPM_bugzilla3.4.4_required.zip 至某个目录(路径中不要包含中文字符、空格)。

    2.  执行“install_ppms.pl

    3.  检查是否有错误信息

    2.5.2 网络安装

    如果你的服务器可以直接连接上网络,也可以使用ppm install<module_name> 通过网络安装。

     

    使用默认的库,有时会找不到指定的模块,执行如下命令添加ppm 库后,再尝试安装:

    ppm repo add  http://ppm4.activestate.com/MSWin32-x86/5.10/1000/package.xml


    或者使用这种方式安装(package 替换成模块名):

    ppm install http://cpan.uwinnipeg.ca/PPMPackages/10xx/package .ppd

    但是在通过代理上网的环境中,有时会不能正常安装。此类问题,可以搜索ppm install proxy 等关键字来解决。若不能解决代理问题,可先将源文件或已编译好的文件下载至本地后,再通过手动安装,见3.4.3

    2.5.3 手动安装

    已编译的二进制包

    1.  下载http://ppm4.activestate.com/MSWin32-x86/5.10/1000/package.xml

    2.  打开该package.xml ,搜索模块名称。

    如:Template-Toolkit


    3.  根据标签<CODEBASE HREF=”path/of/module/module-version.tar.gz ”/> 确定下载地址:

    http://ppm4.activestate.com/MSWin32-x86/5.10/1000/path/of_module/module-version.tar.gz

    如:<CODEBASE HREF="A/AB/ABW/Template-Toolkit-2.22.tar.gz "/> ,从而确定下载地址:http://ppm4.activestate.com/MSWin32-x86/5.10/1000/A/AB/ABW/Template-Toolkit-2.22.tar.gz


    4.  下载该文件后,使用7-zip 解压。解压后会有2 个文件:blibmodule-versioon .ppd

    如:Template-Toolkit-2.22.tar.gz 解压后会有blib Template-Toolkit-2.22.ppd

     

    5. blib 文件夹压缩成module-version .tar.gz 格式。

    如:Template-Toolkit-2.22.tar.gz


    6.  执行ppm install  module-version. ppd 安装该模块。

    如:ppm install Template-Toolkit-2.22.ppd

    之所以按照上述方法下载和安装,是因为 Activestate 上的模块比较全,基本上所需要的都可以找到。

    当然也可以在其他地址下载 zip 包,解压后直接就可以安装。

    http://cpan.uwinnipeg.ca/PPMPackages/10xx/zips/

    源码安装

    1.  安装7-zip ,以解压.tar.gz 文件。

    2.  下载编译器http://download.csdn.net/source/1981273

    3. 在http://search.cpan.org 上搜索并下载模块

    4. 解压module .tar.gz

    5. perl Makefile.pl

    6. nmake

    7. nmake test

    8. nmake install

    3 配置

    3.1 localconfig

    再次执行checksetup.pl ,不需要加参数。

     

    checksetup.pl 会列出你已经正确安装的Perl 模块及版本信息。还会生成一个localconfig 文件。这里面包含bugzilla 一些参数的默认设置。

    用文本编辑器打开localconfig ,需要修改$db_driver$db_pass 两个值。更改$db_driver 为正确的数据库,如:mysqlPgoracle (本例中使用mysql )。修改$db_pass ,为访问数据库创建一个密码。

    3.2 MySQL

    1. 添加用户

    需要为bugzilla 创建一个新的MySQL 用户(让bugzilla 使用root 用户是很不安全的)。

     

    下面的例子基于localconfig 的默认设置。如果你更改过,需要在下面的SQL 中做同样的修改。“$db_pass ”要替换为localconfig 中的值(本例中$db_pass=bugs )。

    进入cmd命令窗口,并转到 XAMPP套件的mysql目录下,比如:X:\xampp\mysql\bin

    mysql>create database bugs;

    mysql> GRANT SELECT, INSERT, UPDATE, DELETE, INDEX, ALTER, CREATE, LOCK TABLES, CREATE TEMPORARY TABLES, DROP, REFERENCES ON bugs.* TO bugs@"localhost" IDENTIFIED by "bugs";

    mysql> FLUSH PRIVILEGES;

    3.3 checksetup.pl

    接下来,重新运行checksetup.pl 。它会编译UI 模板,连接到数据库并创建数据库及表。

    完成后,会请求你输入管理员帐号的信息。Bugzilla 可以有多个管理员帐号(你可以在稍后进行创建),但是你需要有一个来开始。输入管理员的Email 地址,他或她的全称,以及密码。

    Checksetup.pl 就执行完成了,你可以在任何时候重新执行它。

    3.4 Appache

    打开xampp/apache/conf/httpd.conf,在末尾添加如下内容:

    Alias /bugzilla "x:/path/of/bugzilla "
    <Directory "x:/path/of/bugzilla ">
        Options ExecCGI All
        AllowOverride All
        ScriptInterpreterSource Registry-Strict
        Order allow,deny
        Allow from all
    </Directory>

    3.5 修改注册表

    打开注册表编辑器,在HKEY_CLASSES_ROOT下新建.cgi项,在.cgi下新建Shell项,在Shell下新建ExecCGI项,在ExecCGI下新建Command项。

    修改Command的默认值为:X:/Perl/bin/perl.exe -T

    如图:

    修改注册表

     

    F5刷新后,重启Apache。

    3.6 汉化

    1. 解压bugzilla_chinese_template.zip

    2. 复制defaultextensionxampp/htdocs/bugzilla/template/en 目录下,替换原文件夹

    3. 重新访问,测试是否为中文页面

    3.7 解决报告和图表中文乱码问题

    打开perl/site/lib/GD/Graph/axestype.pm ,找到子函数sub initialize {}

    找到以下内容:

      $self->set_x_label_font(GD::gdSmallFont);

       $self->set_y_label_font(GD::gdSmallFont);

       $self->set_x_axis_font(GD::gdTinyFont);

       $self->set_y_axis_font(GD::gdTinyFont);

       $self->set_legend_font(GD::gdTinyFont);

       $self->set_values_font(GD::gdTinyFont);

    修改为:

      $self->set_x_label_font('C:/WINDOWS/Fonts/SURSONG.TTF');

      $self->set_y_label_font('C:/WINDOWS/Fonts/SURSONG.TTF');

       $self->set_x_axis_font('C:/WINDOWS/Fonts/SURSONG.TTF');

       $self->set_y_axis_font('C:/WINDOWS/Fonts/SURSONG.TTF');

       $self->set_legend_font('C:/WINDOWS/Fonts/SURSONG.TTF');

       $self->set_values_font('C:/WINDOWS/Fonts/SURSONG.TTF');

    4 附录

    4.1 模块列表

    PPM_bugzilla3.4.4_required.zip 中包含了近50 个模块,列表如下:

    1: 1_CGI.pm
    2: 2_TimeDate
    3: 3_Params-Validate
    4: 4_Class-Singleton
    5: 5_DateTime-TimeZone
    6: 6_DateTime-Locale
    7: 7_DateTime
    8: 8_AppConfig
    9: 9_Template-Toolkit
    10: 10_Email-Address
    11: 11_Email-Simple
    12: 12_Return-Value
    13: 13_Email-Send
    14: 14_Email-MIME-Encodings
    15: 15_MIME-Types
    16: 16_Email-MIME-ContentType
    17: 17_Email-MIME
    18: 18_Email-MessageID
    19: 19_Email-MIME-Modifier
    20: 20_DBD-mysql
    21: 21_GD
    22: 22_Chart
    23: 23_Template-GD
    24: 24_GDTextUtil
    25: 25_GDGraph
    26: 26_XML-Twig
    27: 27_IO-stringy
    28: 28_MailTools
    29: 29_MIME-tools
    30: 30_Authen-SASL
    31: 31_Email-Date-Format
    32: 32_MIME-Lite
    34: 34_Email-Abstract
    35: 35_Email-Simple-Creator
    36: 36_Email-MIME-Creator
    37: 37_Email-Reply
    38: 38_Email-MIME-Encodings
    39: 39_Email-MIME-Attachment-Stripper
    40: 40_PatchReader
    41: 41_Convert-ASN1-0.22
    42: 42_perl-ldap
    43: 43_Data-HexDump
    44: 44_RadiusPerl
    45: 45_FCGI
    46: 46_constant
    47: 47_Crypt-SSLeay
    48: 48_Task-Weaken
    49: 49_SOAP-Lite
    50: 50_HTML-Scrubber

  • cygwin 类linux开发环境的配置

    2011-09-14 16:29:36

    花了半天配置好了cygwin的界面, 下面做一纪录,以备下次查阅

    1. 关于term的问题, 如果嫌安装的term不够pp,可以使用putty,那就需要安装openssh包,以便可以使用putty, openssh的安装过程参阅http://pigtail.net/LRP/printsrv/cygwin-sshd.html 里面介绍的很详细。下面挑几个关键点记录如下:

    (2b) g Download cygwin's setup.exe from http://www.cygwin.com/ and save setup.exe in c:/cygwin
    Click Start...Run...and type c:/cygwin/setup.exe

    If you are asked about "Just Me" or "All Users", choose "All Users"

    When it asks for "Local Package Directory", type c:/cygwin
    When a selection screen comes up, (you can resize the windows to see better)
    click the little View button for "Full" view  g,
    find the package "openssh", click on the word "skip" so that an x appears in Column B,
    see this illustration.

    Click next to start installing cygwin and ssh.
    Size of the basic cygwin system is about 40 Meg, this may take a while.

    Take a coffee break. g

    (3) Right click My Computer, Properties, Advanced, Environment Variables
    See this illustration (red dots)
    Click the "New" new button to add a new entry to system variables:
    variable name is CYGWIN
    variable value is ntsec

    (4) Right click My Computer, Properties, Advanced, Environment Variables
    See this illustration (green dots)
    Select the Path variable and click the "Edit" edit button:
    append  ;c:/cygwin/bin  to the end of the existing variable string.

    (5) Open a cygwin window (by double clicking theg icon), a black screen pops open, type
    ssh-host-config      (on slower computers, it may take several minutes to generate the dsa keys)
    When the script. asks you about "privilege separation", answer yes
    When the script. asks about "create local user sshd", answer yes
    When the script. asks you about "install sshd as a service", answer yes
    When the script. asks you for "CYGWIN="     your answer is ntsec

    See Note 5 below if you need to run ssh-host-config again.

    (6) While you are still in the (black) cygwin screen, start the sshd service
    net start sshd
    or
    cygrunsrv  --start  sshd

    Note: if you need to stop the sshd service, pop open a g cygwin window
    net stop sshd   or   cygrunsrv  --stop  sshd

    (7) Make sure every Windows user has a password set, if not, 
    go to g Control Panel....User Accounts and create a password.

    (8) important Pop a cygwin gwindow, harmonize Windows user information with cygwin, otherwise they cannot login
    mkpasswd   --local   >   /etc/passwd
    mkgroup   --local    >   /etc/group


    Test to see if sshd is working, pop a cygwin gwindow (note: the command below is case sensitive)
    whoami
    ssh    localhost

    or
    ssh    "$USERNAME@127.0.0.1"

    If you get a prompt without error messages, type
    ls  -lh  /cygdrive/c
    if you see a directory listing, success! g g g
    (type exit to end the cygwin ssh session) 

    If you have a Windows username that contain space, expand the space into / [space],
    e.g. if the Windows login name is  mickey mouse
    ssh  mickey/  mouse@127.0.0.1

    2. Putty现在可以连接到本机上了,界面的字体pp多了吧:)  接下来是几个个性化的设置。

    首先是 shell的设置

    修改 $HOME/.bashrc文件,找到修改或者添加如下部分:

    # Use the command line history just as in linux
     set -o vi

    # Interactive operation...
     alias rm='rm -i'
     alias cp='cp -i'
     alias mv='mv -i'
     alias more='less'

    # Misc :)
     alias less='less -r'                          # raw control characters
    # alias whence='type -a'                        # where, of a sort
     alias grep='grep --color'                     # show differences in colour

    # Some shortcuts for different directory listings
     alias ls='ls -hF --color=tty'                 # classify files in colour
    # alias dir='ls --color=auto --format=vertical'
    # alias vdir='ls --color=auto --format=long'
     alias ll='ls -l'                              # long list
    # alias la='ls -A'                              # all but . and ..
    # alias l='ls -CF'                              #

    这样你的shell就可以显示pp的目录颜色了。

    3. 接下来是vim的设置

    在$HOME/目录下建立.vimrc文件,内容如下:


    """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    " Download:  http://napali.ch/stotz/config/vim.tgz
    " File:   $HOME/.vimrc
    " Version:  1.0.4
    " Date:         2004-07-11
    " Author:  Urs Stotz <stotz@gmx.ch>
    " Comment:  Please send me suggestion for improvement
    "               Tested on: Debian and Sun Solaris.
    "               For vim and gvim you will need only .vimrc
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    " Changelog
    " 1.0.4         tests templates for perl and perlmodules
    " 1.0.3         new perl dictionary
    " 1.0.2         smale changes
    " 1.0.1         fix ttyscroll it was slowly
    " 1.0.0         Init Version
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    " vim settings "
    """"""""""""""""
    " version 6.0
    " set autoindent   
    " the same as |:set backspace=indent,eol,start|
    set backspace=2   
    " keyword completion with dictionary the command is: |i_CTRL-X_CTRL-K|

    " xterm backspace settings
    if &term == "xterm"
      set t_kb=^?
      fixdel
    endif

    if &term == "xterm"
      set t_kD=^[[3~
    endif

    set dict=~/.vim/dict/perl,~/.vim/dict/programming,~/.vim/dict/american  
    set formatoptions=tcqr
    " by a compressed helpfile
    " set helpfile=$VIMRUNTIME/doc/help.txt.gz
    set incsearch
    " always show status line
    set laststatus=2
    " use extended regular expressions
    set magic
    set nobackup
    " use Vim features
    set nocompatible
    " quiet and peaceful (your colleges thanks you)
    set noerrorbells
    " exrc is a potential security leak
    set noexrc
    " I don't like hlsearch
    set nohlsearch
    set nonumber
    set wrap
    " show the cursor position all the time
    set ruler
    " Show (partial) command in status line.
    set showcmd
    set showmode
    set smartindent
    " create new window below current one
    set splitbelow
    set suffixes=.bak,~,.swp,.o,.info,.aux,.dvi,.bbl,.blg,.brf,.cb,.ind,.idx,.ilg,.inx,.out,.toc
    " Don't wrap words by default
    set textwidth=0
    " For terminals where scrolling is very slow and redrawing is not slow.
    " set ttyscroll=3
    set viminfo=/"200,%,'200,/100,:100,@100,f1,h,n~/.vim/viminfo
    " wildmenu : command-line completion operates in an enhanced mode
    set wildmenu

    """""""""""
    " tabstop "
    """""""""""
    " see :help 'tabstop'
    set shiftwidth=4
    set tabstop=4
    set smarttab
    set expandtab         

    """"""""""""""
    " c settings "
    """"""""""""""
    set cindent
    set cinoptions=:0,p0,t0
    set cinwords=if,else,while,do,for,switch,case

    """"""""""""""""""
    " color settings "
    """"""""""""""""""
    if !has ("gui_running")
        " if vim in a terminal
        """"""""""""""""""""""""""
    """""""""""""""""""""""""""""""""""""""""""""
      
      " set the colors for vim on "xterm" - not necessary on all systems    "
        """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
        if &term =~ "xterm-debian" || &term =~ "xterm-xfree86" || &term =~ "xterm"
          set t_Co=16
          set t_Sf=[3%dm
          set t_Sb=[4%dm
        endif
        " http://www-2.cs.cmu.edu/~maverick/VimColorSchemeTest/index-perl.html
        colorscheme default
        set background="/dark"
        " hi Normal  ctermfg=white ctermbg=black
        " hi PreProc ctermfg=gray  ctermbg=black
    else
        "set guifont=fixed
        "set guifont=Monospace/ 10
        " http://www-2.cs.cmu.edu/~maverick/VimColorSchemeTest/index-perl.html
        colorscheme blackbeauty
        set background="/dark"
        " colorscheme default

        " set background="/light"
        " hi PreProc guifg=#c0c0c0 guibg=#000040
        " hi Normal  guifg=black   guibg=white
    endif

    if has("syntax") && &t_Co > 2
      syntax on
    endif

    """"""""""
    " maping "
    """"""""""
    " useful for changelog the Dateformat is in ISO8601
    " map #log mq:r!date +"/%Y-/%m-/%d /%H:/%M:/%S $ <$@$>"`qJ
    map #log mq:r!date +"/%Y/%m/%dT/%k/%M/%S Urs Stotz <stotz@gmx.ch>"`qJ
    " map CTRL-] to // (useful by german keyboards)
    map // 

    """"""""""""""""""""""""""""""""""""""
    " Additional settings and parameters "
    """"""""""""""""""""""""""""""""""""""
    filetype plugin on
    filetype indent on

    """"""""""""
    " Plugins: "
    """"""""""""
    " set ctags for the plugin taglist command is |:Tlist| see |:help taglist|
    let Tlist_Ctags_Cmd = '/usr/bin/ctags'
    " open the tags file
    map [I:let nr = input("Which one: ")exe "normal " . nr ."[/t"
    noremap :cal VimCommanderToggle()

    " http://www.vim.org/scripts/script.php?script_id=65
    " au   BufEnter *   execute ":lcd " . expand("%:p:h")

    """"""""""""""
    " Templates: "
    """"""""""""""
    ":set verbose=9
    " :command! -nargs=1 Templ :set ft=| :0r! ~/.vim/templates/perl %

    """"""""""""""""""""""""""""
    " Plugins in ~/.vim/plugin "
    """"""""""""""""""""""""""""
    " ~/.vim/plugin/DirDiff.vim
    "   :DirDiff dir1 dir2
    "   vim ~/.vim/plugin/DirDiff.vim
    "
    " ~/.vim/plugin/MakeDoxygenComment.vim
    "   :Dox
    "   vim ~/.vim/plugin/MakeDoxygenComment.vim
    "
    " ~/.vim/plugin/bufexplorer.vim
    "   /be         - To start exploring in the current window
    "   /bs         - To start exploring in a newly split window
    "   /bv         - To start exploring in a newly split window
    "   :he bufexplorer
    "
    " ~/.vim/plugin/grep.vim
    "   :Grep       - Grep for the specified pattern in the specified files
    "   :Rgrep      - Run recursive grep
    "   :GrepBuffer - Grep for a pattern on all open buffers
    "   :GrepArgs   - Grep for a pattern on all the Vim argument filenames
    "   :Fgrep      - Run fgrep
    "   :Rfgrep     - Run recursive fgrep
    "   :Egrep      - Run egrep
    "   :Regrep     - Run recursive egrep
    "   :Agrep      - Run agrep
    "   :Ragrep     - Run recursive agrep
    "   vim ~/.vim/plugin/grep.vim

    "
    " ~/.vim/plugin/info.vim
    "   :Info info
    "   vim ~/.vim/plugin/info.vim
    "
    " ~/.vim/plugin/manpageview.vim
    "   :Man man
    "   :he manpageview
    "
    " ~/.vim/plugin/matchit.vim
    "   %           - Cycle forward through matching groups
    "   g%          - Cycle backwards through matching groups
    "   :he matchit
    "
    " ~/.vim/plugin/taglist.vim
    "   :Tlist
    "   :he taglist
    "
    " ~/.vim/plugin/tar.vim
    "   :e foobar.tgz
    "   vim ~/.vim/plugin/tar.vim


    这可以使得vim能高亮显示代码,便于编辑文件。

    只是不够满意的一点是vim的backspace 在putty里面变成了shift+backspace才好使。

    可以用fixdel修复,但是好像不能保存

      If your delete key terminal code is wrong, but the
       code for backspace is alright, you can put this in
       your .vimrc:
        :fixdel
       This works no matter what the actual code for
       backspace is.

       If the backspace key terminal code is wrong you can
       use this:
        :if &term == "termname"
        :  set t_kb=^V
        :  fixdel
        :endif
       Where "^V" is CTRL-V and "" is the backspace key
       (don't type four characters!). Replace "termname"
       with your terminal name.

    可以在vim编辑界面下输入 :h fixdel来参考详细的说明, 不过在cygwin的term下似乎vim是正常的。

     

    4. 对于cygwin下没有more命令的问题,可以用less代替,用关了more,就在.bashrc里做一alias即可。

  • Cygwin的简介以及使用方法

    2011-09-14 16:26:14

    0:简介
    1:下载和安装
    2:使用

    简介
    Cygwin是一个运行于Windows下的免费的UNIX的子系统,使用一个Dll(动态链接库)来

    实现,这样,我们可以开发出Cygwin下的UNIX工具,使用这个DLL运行在Windows下,大家可以想

    一下,你在运行Windows的同时,也可以使用VI,BASH,TAR,SED等UNIX下的工具,不是很好吗?这个VM

    虚拟机有很相同的原理,但是VM是虚拟多个,而Cygwin是同时使用Windows和UNIX,很爽吧,这样

    对于那些在Windows和Unix下移植的程序来说是比较简单的事情了.

    一:下载和安装

    其下载安装程序在Http://www.cygwin.com,下载安装程序以后,运行,然后会要你选择是通过什么方

    式进行下载安装所需要的文件,有三种方式,Http.Ftp.本地,我建议你首先通过Http和Ftp把安装所需要的

    文件全部下回来以后选择本地安装比较好,在线安装比较慢,会是一个很长的等待,虽然所需要的文件

    不大,但是全部安装的话会是4G大小,还是有选择性的安装吧,在安装界面,有Prev(老版本),Curr(当前版本)
    Exp(最新版本测试版本),苹果这里建议你选择Curr,然后你单击View按钮,这样你可以在可以使用的安装

    文件之间进行选择性的安装,如果你真的想全部安装的话,那么左键点击一下最上面的All,然后看到

    INSTALL,这样选择了全部,进行全部安装便可以了,安装完以后,会在桌面产生一个图标,双击这个图标,

    呵呵,你便可以使用Cygwin了.关于安装的具体参数方法,网络上有比较详细的介绍,我就不罗嗦了.

    PS:下载方面我建议如下:你可以下载以下几个版本的Cygwin:

    原始站: http://sources.redhat.com/cygwin/;
    印地安那大学的免安裝光盘cygwin, 叫做 XLiveCD:http://xlivecd.indiana.edu/ ,
    USA, Indiana ftp://ftp.ussg.indiana.edu/pub/xlivecd/xlivecd-20041201.iso
    Mirrors:
    Belgium, Geel ftp://sin.khk.be/mirror/xlivecd/xlivecd-20041201.iso
    Germany, Bochum ftp://linux.rz.ruhr-uni-bochum.de/xlivecd/xlivecd-20041201.iso
    Germany, Bochum http://linux.rz.ruhr-uni-bochum.de/download/xlivecd/xlivecd-20041201.iso
    Sweden, Ume? http://ftp.acc.umu.se/mirror/xlivecd/xlivecd-20041201.iso
    USA, Wisconsin ftp://xlivecd.mirrors.tds.net/pub/xlivecd/xlivecd-20041201.iso
    USA, Georgia ftp://ftp.gtlib.cc.gatech.edu/pub/XLiveCD/xlivecd-20041201.iso
    USA, Georgia http://ftp.gtlib.cc.gatech.edu/pub/XLiveCD/xlivecd-20041201.iso
    苹果提示:USA, Wisconsin ftp://xlivecd.mirrors.tds.net/pub/xlivecd/xlivecd-20041201.iso
    这个下载速度快
    Shelley Yen 的cygnuwin : ftp://ftp.tceb.edu.tw/pub/free_software/cygnuwin/
    ftp://ftp.tcc.edu.tw/iso/cygwin/cyg+gnu.iso(cygwin 与 gnuwin 的合成版本)
    老古开发网:ftp://ic.laogu.com/down/cygwin.rar
    http://soft.laogu.com/down/cygwin.rar (均为05年3月版本)

    苹果提示:这个站点是高人站点,比较NB,呵呵,喜欢单片机的朋友有福气,超级多 的下载资料等着你,包含*NIX下的东西...

    其他的镜像站点:http://cygwin.com/mirrors.html

    苹果自己也下载了最新版本的Cygwin,但是偶没有空间,真的需要的话,请哪位好心人提供空间

    偶可以上传上去,联系请加偶的QQ:4791821,或者给偶发邮件:Taynni@gmail.com注明一下就可以了.


    二:使用


    使用上的方便性很是不错,启动Cygwin以后,会在Windows下得到一个Bash Shell,由于Cygwin是以

    Windows下的服务运行的,所以很多情况下和在Linux下有很大的不同,这点上,苹果建议你多理解下这个

    工作环境。我们开始使用Cygwin吧,比如PS,相当于Windows下的TM(任务管理器),呵呵,直接Ps的话

    那么得到的会是Cygwin下的Shell的进程如下
    Taynni-417@ENTERBD-417 ~
    $ ps
    PID PPID PGID WINPID TTY UID STIME COMMAND
    2212 1 2212 2212 con 1003 01:54:29 /usr/bin/bas
    3384 2212 3384 3232 con 1003 01:59:24 /usr/bin/ps

    如果这个时候你需要在Cygwin下显示Windows下的进程你可以在PS后面加上参数-aW,

    PS的相关用法:

    Quote
    Usage ps [-aefl] [-u uid]
    -f = show process uids, ppids
    -l = show process uids, ppids, pgids, winpids
    -u uid = list processes owned by uid
    -a, -e = show processes of all users
    -s = show process summary
    -W = show windows as well as cygwin processes
    很容易看懂吧,呵呵

    有点不一样的地方,我想大家一定想知道在Cygwin下怎么访问Windows下的内容了,

    呵呵,首先使用DF命令直接查看下本地驱动器,呵呵,很容易了吧,显示的内容

    如下:
    Quote
    Taynni-417@ENTERBD-417 ~
    $ df
    Filesystem 1k-blocks Used Available Use% Mounted on
    e:/cygwin/bin 10231384 4844432 5386952 48% /usr/bin
    e:/cygwin/lib 10231384 4844432 5386952 48% /usr/lib
    e:/cygwin 10231384 4844432 5386952 48% /
    c: 5106676 1240312 3866364 25% /cygdrive/c
    d: 10239408 6560328 3679080 65% /cygdrive/d
    e: 10231384 4844432 5386952 48% /cygdrive/e
    f: 6333252 4065564 2267688 65% /cygdrive/f
    g: 7150972 4672724 2478248 66% /cygdrive/g
    如上便是我的硬盘的全部了,在后面的/cygdrive/c便是C盘了,然后/cygdrive/d便是D盘了

    这样的话,想进D盘便可以这样进,呵呵
    Quote
    Taynni-417@ENTERBD-417 ~
    $ cd /cygdrive/d

    Taynni-417@ENTERBD-417 /cygdrive/d
    $ ls -l
    ls: pagefile.sys: Permission denied
    total 0
    drwxr-xr-x 9 Taynni-4 None 0 Aug 31 20:56 Book
    drwxr-xr-x 2 Taynni-4 None 0 Aug 23 05:24 Ftproot
    drwxr-xr-x 30 Taynni-4 None 0 May 10 23:38 HACKER
    drwxr-xr-x 11 Taynni-4 None 0 Feb 1 2005 JIAOXUE
    drwxr-xr-x 8 Taynni-4 None 0 Jan 3 2005 Local Settings
    dr-xr-xr-x 24 Taynni-4 None 0 Oct 16 2004 My Documents
    drwxr-xr-x 12 Taynni-4 None 0 May 14 16:48 Mywww
    drwxr-xr-x 2 Taynni-4 None 0 Jun 29 2004 Recycled
    drwxr-xr-x 3 Taynni-4 None 0 Aug 22 04:44 SECBOOK
    drwxr-xr-x 6 Taynni-4 None 0 Feb 28 2005 TaynniCHX
    drwxr-xr-x 15 Taynni-4 None 0 Mar 30 01:04 TaynniGZ
    drwxr-xr-x 12 Taynni-4 None 0 May 11 01:30 TaynniH
    drwxr-xr-x 15 Taynni-4 None 0 Mar 12 04:27 TaynniYM
    drwxr-xr-x 6 Taynni-4 None 0 Dec 13 2004 Taynniwww
    drwxr-xr-x 8 Taynni-4 None 0 Aug 31 20:55 Word

    Taynni-417@ENTERBD-417 /cygdrive/d
    $

    在Cygwin下还可以运行Windows下的程序,如下:
    Taynni-417@ENTERBD-417 ~
    $ cmd.exe
    Microsoft Windows XP [Version 5.1.2600]
    (C) Copyright 1985-2001 Microsoft Corp.

    e:/cygwin/home/Taynni-417>d:

    D:/>cd hacker

    D:/HACKER>cd tools

    D:/HACKER/Tools>cd pstools

    D:/HACKER/Tools/Pstools>ls
    pdh.dll pskill.exe pspasswd.exe
    Psinfo.exe psexec.exe pslist.exe psservice.exe
    Pstools.chm psfile.exe psloggedon.exe psshutdown.exe
    README.TXT psgetsid.exe psloglist.exe pssuspend.exe

    D:/HACKER/Tools/Pstools>exit

    Taynni-417@ENTERBD-417 ~
    $
    很明显的,直接输入CMD.EXE便可以得到一个本机CMDSHELL,这样你想运行什么程序都可以了

    退出到Cygwin的Bash shell需要使用exit命令,很方便吧,呵呵

    在Cygwin下还可以进行编译程序,比如C和perl,当然,你也可以借助ActivePy,这个东西也很不错

    也是一个仿真器,在Windows下模拟perl的解释器.

    对于一个系统而言,没有相应的系统工具是不可能的,在Cygwin下拥有的UNIX工具基本上够你使用

    了。当然,这需要你安装完整的Cygwin包,我的机子上就安装了完整的,比较大,如果硬盘允许,苹果建

    议你完整安装!像grep,cut,sed,strings,strace,md5sum,diff,patch,ssh,xxd,等等工具

    你都可以进行安装和使用,如果你真的不知道应该怎么用这些工具,其实苹果很多也不会,只要去接触

    你就会了!!!没有不会使用的东西,只有你愿意不愿意去使用而已!说笑了,言归正传,请使用

    所要使用的命令 --help获取帮助,如下所示:比如我不知道md5sum做什么用的

    (这个命令是用于效验文件md5值的,主要是为了文件的完整性和安全性)
    Quote
    Taynni-417@ENTERBD-417 ~
    $ md5sum --help
    Usage: md5sum [OPTION] [FILE]...
    or: md5sum [OPTION] --check [FILE]
    Print or check MD5 (128-bit) checksums.
    With no FILE, or when FILE is -, read standard input.

    -b, --binary read files in binary mode (default on DOS/Windows)
    -c, --check check MD5 sums against given list
    -t, --text read files in text mode (default)

    The following two options are useful only when verifying checksums:
    --status don't output anything, status code shows success
    -w, --warn warn about improperly formated checksum lines

    --help display this help and exit
    --version output version information and exit

    The sums are computed as described in RFC 1321. When checking, the input
    should be a former output of this program. The default mode is to print
    a line with checksum, a character indicating type (`*' for binary, ` ' for
    text), and name for each FILE.

    Taynni-417@ENTERBD-417 ~
    $
    基本使用上应该没有多大的问题了,文章因为我偷懒,也是不知道该怎么写才可以帮助大家

    我很苦恼的是,并没有人给我意见,所以先写这么点吧,如果你有问题的话,请加我的qq或者

    给我邮件,大家可以讨论,不是么?

    下面给出一些关于Cygwin的资料:
    1:http://www.isi.edu/nsnam/ns/ns-cygwin.html
    2:http://pigtail.net/LRP/printsrv/cygwin-sshd.html
    3:http://kde-cygwin.sourceforge.net/
    4:http://x.cygwin.com/
    5:http://chinyi.ncit.edu.tw/~peterju/cygwin.html
    6:http://cygnome.sourceforge.net/
    http://xlivecd.indiana.edu/

     

    根据cygwin user guide翻译整理,希望对大家有所帮助。有错误清指出。

    1 引言
            cygwin是一个在windows平台上运行的unix模拟环境,是cygnus solutions公司开发的自由软件(该公司开发了很多好东西,著名的还有eCos,不过现已被Redhat收购)。它对于学习unix/linux操作环境,或者从unix到windows的应用程序移植,或者进行某些特殊的开发工作,尤其是使用gnu工具集在windows上进行嵌入式系统开发,非常有用。随着嵌入式系统开发在国内日渐流行,越来越多的开发者对cygwin产生了兴趣。本文将对其作一介绍。

    ---------------------------------------------------------------------

    根据cygwin user guide翻译整理,希望对大家有所帮助。有错误清指出。

    1 引言
            cygwin是一个在windows平台上运行的unix模拟环境,是cygnus solutions公司开发的自由软件(该公司开发了很多好东西,著名的还有eCos,不过现已被Redhat收购)。它对于学习unix/linux操作环境,或者从unix到windows的应用程序移植,或者进行某些特殊的开发工作,尤其是使用gnu工具集在windows上进行嵌入式系统开发,非常有用。随着嵌入式系统开发在国内日渐流行,越来越多的开发者对cygwin产生了兴趣。本文将对其作一介绍。

    2 机理
            cygnus当初首先把gcc,gdb,gas等开发工具进行了改进,使他们能够生成并解释win32的目标文件。然后,他们要把这些工具移植到windows平台上去。一种方案是基于win32 api对这些工具的源代码进行大幅修改,这样做显然需要大量工作。因此,他们采取了一种不同的方法——他们写了一个共享库(就是cygwin dll),把win32 api中没有的unix风格的调用(如fork,spawn,signals,select,sockets等)封装在里面,也就是说,他们基于win32 api写了一个unix系统库的模拟层。这样,只要把这些工具的源代码和这个共享库连接到一起,就可以使用unix主机上的交叉编译器来生成可以在windows平台上运行的工具集。以这些移植到windows平台上的开发工具为基础,cygnus又逐步把其他的工具(几乎不需要对源代码进行修改,只需要修改他们的配置脚本)软件移植到windows上来。这样,在windows平台上运行bash和开发工具、用户工具,感觉好像在unix上工作。
            关于cygwin实现的更详细描述,请参考http://cygwin.com/cygwin-ug-net/highlights.html.

    3 安装设置cygwin
    3.1 安装
            要安装网络版的cygwin,可以到http://cygwin.com,点击"Install Cygwin Now!"。这样会先下载一个叫做setup.exe的GUI安装程序,用它能下载一个完整的cygwin。按照每一屏的指示可以方便的进行安装。
    3.2 环境变量
            开始运行bash之前,应该设置一些环境变量。cygwin提供了一个.bat文件,里面已经设置好了最重要的环境变量。通过它来启动bash是最安全的办法。这个.bat文件安装在cygwin所在的根目录下。 可以随意编辑该文件。
            CYGWIN变量用来针对cygwin运行时系统进行多种全局设置。开始时,可以不设置CYGWIN或者在执行bash前用类似下面的格式在dos框下把它设为tty
    C:/> set CYGWIN=tty notitle glob

    PATH变量被cygwin应用程序作为搜索可知性文件的路径列表。当一个cygwin进程启动时,该变量被从windows格式(e.g. C:/WinNT/system32;C:/WinNT)转换成unix格式(e.g., /WinNT/system32:/WinNT)。如果想在不运行bash的时候也能够使用cygwin工具集,PATH起码应该包含x:/cygwin/bin,其中x:/cygwin 是你的系统中的cygwin目录。
            HOME变量用来指定主目录,推荐在执行bash前定义该变量。当cygwin进程启动时,该变量也被从windows格式转换成unix格式,例如,作者的机器上HOME的值为C:/(dos命令set HOME就可以看到他的值,set HOME=XXX可以进行设置),在bash中用echo $HOME看,其值为/cygdrive/c.
            TERM变量指定终端型态。如果美对它进行设置,它将自动设为cygwin。
            LD_LIBRARY_PATH被cygwin函数dlopen()作为搜索.dll文件的路径列表,该变量也被从windows格式转换成unix格式。多数Cygwin应用程序不使用dlopen,因而不需要该变量。
    3.3 改变cygwin的最大存储容量
            Cygwin程序缺省可以分配的内存不超过384 MB(program+data)。多数情况下不需要修改这个限制。然而,如果需要更多实际或虚拟内存,应该修改注册表的HKEY_LOCAL_MACHINE或HKEY_CURRENT_USER区段。田家一个DWORD键heap_chunk_in_mb并把它的值设为需要的内存限制,单位是十进制MB。也可以用cygwin中的regtool完成该设置。例子如下:
    regtool -i set /HKLM/Software/Cygnus/ Solutions/Cygwin/heap_chunk_in_mb 1024
    regtool -v list /HKLM/Software/Cygnus/ Solutions/Cygwin

    4 使用cygwin
            这一段讲一下cygwin和传统unix系统的不同之处。
    4.1 映射路径名
    4.1.1 引言
            cygwin同时支持win32和posix风格的路径,路径分隔符可以是正斜杠也可以是反斜杠。还支持UNC路径名。(在网络中,UNC是一种确定文件位置的方法,使用这种方法用户可以不关心存储设备的物理位置,方便了用户使用。在Windows操作系统,Novell Netware和其它操作系统中,都已经使用了这种规范以取代本地命名系统。在UNC中,我们不用关心文件在什么盘(或卷)上,不用关心这个盘(或卷)所在服务器在什么地方。我们只要以下面格式就可以访问文件:
    //服务器名/共享名/路径/文件名
            共享名有时也被称为文件所在卷或存储设备的逻辑标识,但使用它的目的是让用户不必关心这些卷或存储设备所在的物理位置。)
            符合posix标准的操作系统(如linux)没有盘符的概念。所有的绝对路径都以一个斜杠开始,而不是盘符(如c:)。所有的文件系统都是其中的子目录。例如,两个硬盘,其中之一为根,另一个可能是在/disk2路径下。
            因为许多unix系统上的程序假定存在单一的posix文件系统结构,所以cygwin专门维护了一个针对win32文件系统的内部posix视图,使这些程序可以在windows下正确运行。在某些必要的情况下,cygwin会使用这种映射来进行win32和posix路径之间的转换。
    4.1.2 cygwin mount表
            cygwin中的mount程序用来把win32盘符和网络共享路径映射到cygwin的内部posix目录树。这是与典型unix mount程序相似的概念。对于那些对unix不熟悉而具有windows背景的的人来说,mount程序和早期的dos命令join非常相似,就是把一个盘符作为其他路径的子目录。
            路径映射信息存放在当前用户的cygwin mount表中,这个mount table 又在windows的注册表中。这样,当该用户下一次登录进来时,这些信息又从注册表中取出。mount 表分为两种,除了每个用户特定的表,还有系统范围的mount表,每个cygwin用户的安装表都继承自系统表。系统表只能由拥有合适权限的用户(windows nt的管理员)修改。
            当前用户的mount表可以在注册表"HKEY_CURRENT_USER/Software/Red Hat, Inc./Cygwin/mounts v" 下看到。系统表存在HKEY_LOCAL_MACHINE下。
            posix根路径/缺省指向系统分区,但是可以使用mount命令重新指向到windows文件系统中的任何路径。cygwin从win32路径生成posix路径时,总是使用mount表中最长的前缀。例如如果c:被同时安装在/c和/,cygwin将把C:/foo/bar转换成/c/foo/bar.
            如果不加任何参数地调用mount命令,会把Cygwin当前安装点集合全部列出。在下面的例子中,c盘是POSIX根,而d盘被映射到/d。本例中,根是一个系统范围的安装点,它对所有用户都是可见的,而/d仅对当前用户可见。
    c:/> mount
    f:/cygwin/bin on /usr/bin type system (binmode)
    f:/cygwin/lib on /usr/lib type system (binmode)
    f:/cygwin on / type system (binmode)
    e:/src on /usr/src type system (binmode)
    c: on /cygdrive/c type user (binmode,noumount)
    e: on /cygdrive/e type user (binmode,noumount)
            还可以使用mount命令增加新的安装点,用umount删除安装点。
            当Cygwin不能根据已有的安装点把某个win32路径转化为posix路径时,cygwin会自动把它转化到一个处于缺省posix路径/cygdrive下的的一个安装点. 例如,如果Cygwin 访问Z:/foo,而Z盘当前不在安装表内,那么Z:/将被自动转化成/cygdrive/Z.
            可以给每个安装点赋予特殊的属性。自动安装的分区显示为“auto”安装。安装点还可以选择是"textmode"还是 "binmode",这个属性决定了文本文件和二进制文件是否按同样的方式处理。
    4.1.3 其他路径相关信息
            cygpath工具提供了在shell脚本中进行win32-posix路径格式转换的能力。
            HOME, PATH,和LD_LIBRARY_PATH环境变量会在cygwin进程启动时自动被从Win32格式转换成了POSIX格式(例如,如果存在从该win32路径到posix路径的安装,会把c:/cygwin/bin转为/bin)。

     

    cygwin的命令

    基本操作命令:
    ----------------------------------------------------------------------
    ----------------------------------------------------------------------
    ls #以默认方式显示当前目录文件列表
    ls –a #显示所有文件包括隐藏文件
    ls –l #显示文件属性,包括大小,日期,符号连接,是否可读写及是否可执行
    ls --color=never *.so > obj #不显示文字颜色,将所有so文件记录到obj文件中

    ----------------------------------------------------------------------
    cd dir #切换到当前目录下的dir目录
    cd / #切换到根目录
    cd .. #切换到到上一级目录
    cd ../.. #切换到上二级目录
    cd ~ #切换到用户目录,比如是root用户,则切换到/root下

    ----------------------------------------------------------------------
    rm file #删除某一个文件
    rm -fr dir #删除当前目录下叫dir的整个目录

    ----------------------------------------------------------------------
    cp source target #将文件source 复制为 target
    cp /root/source . #将/root下的文件source复制到当前目录
    cp –av soure_dir target_dir #将整个目录复制,两目录完全一样
    cp –fr source_dir target_dir #将整个目录复制,并且是以非链接方式复制,当source目录带有符号链接时,两个目录不相同

    ----------------------------------------------------------------------
    mv source target #将文件source更名为target

    ----------------------------------------------------------------------
    diff dir1 dir2 #比较目录1与目录2的文件列表是否相同,但不比较文件的实际内容,不同则列出
    diff file1 file2 #比较文件1与文件2的内容是否相同,如果是文本格式的文件,则将不相同的内容显示,如果是二进制代码则只表示两个文件是不同的
    comm file1 file2 #比较文件,显示两个文件不相同的内容

    ----------------------------------------------------------------------
    echo message #显示一串字符
    echo "message message2" #显示不连续的字符串
    cat:
    cat file #显示文件的内容,和DOS的type相同
    cat file | more #显示文件的内容并传输到more程序实现分页显示,使用命令less file可实现相同的功能
    more #分页命令,一般通过管道将内容传给它,如ls | more

    ----------------------------------------------------------------------
    export LC_ALL=zh_CN.GB2312 #将环境变量LC_ALL的值设为zh_CN.GB2312
    export DISPLAY=0:0 #通过该设置,当前字符终端下运行的图形程序可直接运行于Xserver
    date #显示当前日期时间
    date -s 20:30:30 #设置系统时间为20:30:30
    date -s 2002-3-5 #设置系统时期为2003-3-5
    clock –r #对系统Bios中读取时间参数
    clock –w #将系统时间(如由date设置的时间)写入Bios

    ----------------------------------------------------------------------
    eject #umout掉CDROM并将光碟弹出,但cdrom不能处于busy的状态,否则无效

    ----------------------------------------------------------------------
    du #计算当前目录的容量
    du -sm /root #计算/root目录的容量并以M为单位
    find -name /path file #在/path目录下查找看是否有文件file
    grep -ir “chars” #在当前目录的所有文件查找字串chars,并忽略大小写,-i为大小写,-r为下一级目录

    ----------------------------------------------------------------------
    vi file #编辑文件file
    vi 原基本使用及命令:
    输入命令的方式为先按ctrl+c, 然后输入:x(退出),:x!(退出并保存) :w(写入文件),:w!(不询问方式写入文件), :r file(读文件file) ,:%s/oldchars/newchars/g(将所有字串oldchars换成newchars) 这一类的命令进行操作

    ----------------------------------------------------------------------
    man ls #读取关于ls命令的帮助
    man ls | grep color #读取关于ls命令的帮助并通过grep程序在其中查找color字串

    ----------------------------------------------------------------------
    startx #运行Linux图形有环境
    Xfree86 #只运行X图形server

    ----------------------------------------------------------------------
    reboot #重新启动计算机
    halt #关闭计算机
    init 0 #关闭所有应用程序和服务,进入纯净的操作环境
    init 1 #重新启动应用及服务
    init 6 #重新启动计算机

    ----------------------------------------------------------------------
    扩展命令
    ----------------------------------------------------------------------
    ----------------------------------------------------------------------
    tar xfzv file.tgz #将文件file.tgz解压
    tar xfzv file.tgz -C target_path #将文件file.tgz解压到target_path目录下
    tar cfzv file.tgz source_path #将文件source_path压缩为file.tgz
    tar c directory > directory.tar #将目录directory打包成不压缩的directory.tar
    gzip directory.tar #将覆盖原文件生成压缩的 directory.tar.gz
    gunzip directory.tar.gz #覆盖原文件解压生成不压缩的 directory.tar。
    tar xf directory.tar #可将不压缩的文件解包

    ----------------------------------------------------------------------
    dmesg #显示kernle启动及驱动装载信息
    uname #显示操作系统的类型
    uname -R #显示操作系统内核的version

    ----------------------------------------------------------------------
    strings file 显示file文件中的ASCII字符内容

    ----------------------------------------------------------------------
    rpm -ihv program.rpm #安装程序program并显示安装进程
    rpm2targz program.rpm program.tgz #将rpm格式的文件转换成tarball格式

    ----------------------------------------------------------------------
    su root #切换到超级用户
    sulogin /dev/tty4 #在tty4即alt+F4终端等待用户登陆或直接登陆开启一个shell
    chmod a+x file #将file文件设置为可执行,脚本类文件一定要这样设置一个,否则得用bash file才能执行
    chmod 666 file #将文件file设置为可读写
    chown user /dir #将/dir目录设置为user所有

    ----------------------------------------------------------------------
    mknod /dev/hda1 b 3 1 #创建块设备hda1,主设备号为3,从设备号为1,即master硬盘的的第一个分区
    mknod /dev/tty1 c 4 1 #创建字符设备tty1,主设备号为4,众设备号为1,即第一个tty终端

    ----------------------------------------------------------------------
    touch /tmp/running #在/tmp下创建一个临时文件running,重新启动后消失

    ----------------------------------------------------------------------
    sleep 9 #系统挂起9秒钟的时间

    ----------------------------------------------------------------------
    lpd stop 或 cups stop #停止打印服务程序
    lpd start 或 cups start #启动打印服务程序
    lpd restart 或 cups restart #重新启动打印服务程序
    lpr file.txt #打印文件file.txt

    ----------------------------------------------------------------------
    fdisk /dev/hda #就像执行了dos的fdisk一样
    cfdisk /dev/hda #比fdisk界面稍为友好些
    mount -t ext2 /dev/hda1 /mnt #把/dev/hda1装载到 /mnt目录
    df #显示文件系统装载的相关信息
    mount -t iso9660 /dev/cdrom /mnt/cdrom #将光驱加载到/mnt/cdrom目录
    mount-t smb //192.168.1.5/sharedir /mnt -o username=tomlinux,password=tomlinux #将windows的的共享目录加载到/mnt/smb目录,用户名及密码均为tomlinux
    mount -t nfs 192.168.1.1:/sharedir /mnt #将nfs服务的共享目录sharedir加载到/mnt/nfs目录
    umount /mnt #将/mnt目录卸载,/mnt目录必须处于空闲状态
    umount /dev/hda1 #将/dev/hda1设备卸载,设备必须处于空亲状态
    sync #将cache中的内容与磁盘同步,在Linux中复制文件,一般要系统空闲才去写文件
    e2fsck /dev/hda1 #检查/dev/hda1是否有文件系统错误,提示修复方式
    e2fsck -p /dev/hda1#检查/dev/hda1是否有错误,如果有则自动修复
    e2fsck -y /dev/hda1#检查错误,所有提问均于yes方式执行
    e2fsck -c /dev/hda1#检查磁盘是否有坏区
    mkfs /dev/hda1 #格式化/dev/hda1为ext2格式
    mkfs.minix /dev/hda1 #格式化/dev/hda1为minix格式文件系统
    mfks /dev/hda9 #格工化/dev/hda9为Linux swap格式
    swapon /dev/hda9 #将swap分区装载当作内存来用
    swapoff /dev/hda9 #将swap分区卸载

    ----------------------------------------------------------------------
    lilo #运行lilo程序,程序自动查找/etc/lilo.conf并按该配置生效
    lilo -C /root/lilo.conf #lilo程序按/root/lilo.conf配置生效
    grub #在Linux shell状态下运行boot loader设置程序
    grub-install #安装grub磁盘引导程序,成功后升级内核无须像lilo一样要重新启动系统,只需修改/etc/grub.conf即可实现新引导配置
    rdev bzImage #显示kernel的根分区信息
    rdev bzImage /dev/hda1 #将kernel的根分区设置为/dev/hda1,这在没有lilo等引导程序的系统中非常重要.

    ----------------------------------------------------------------------
    dd if=/dev/fd0 f=floppy.fd #将软盘的内容复制成一个镜像,功能与旧石器时代常用的hd-copy相同
    dd if=/dev/zero f=root.ram bs=1024,count=1024 #生成一个大小为1M的块设备,可以把它当作硬盘的一个分区来用
    mkfs root.ram #将块设备格式化为ext2格式
    dd if=root.ram f=/dev/ram0 #将init.rd格式的root.ram的内容导入内存
    mount /dev/ram0 /mnt #ramdisk /dev/ram0装载到/mnt 目录

    ----------------------------------------------------------------------
    gcc hello.c #将hello.c编译成名为a.out二进制执行文件
    gcc hello.c -o hello #将hello.c编译成名为hello的二进制执行文件
    gcc -static -o hello hello.c #将hello.c编译成名为hello的二进制静态执行文件
    ldd program #显示程序所使用了哪些库
    objcopy -S program #将程序中的符号表及无用的调试信息去掉,可以小很多

    ----------------------------------------------------------------------
    strace netscape #跟踪程序netscape的执行,看调用的库,环境变量设置,配置文件,使用的设备,调用的其它应用程序等,在strace下,程序干了什么东东一目了然。
    ps #显示当前系统进程信息
    ps –ef #显示系统所有进程信息
    kill -9 500 #将进程编号为500的程序干掉
    killall -9 netscape #将所有名字为netscape的程序杀死,kill不是万能的,对僵死的程序则无效。
    top #显示系统进程的活动情况,按占CPU资源百分比来分
    free #显示系统内存及swap使用情况
    time program #在program程序结束后,将计算出program运行所使用的时间

    ----------------------------------------------------------------------
    chroot . #将根目录切换至当前目录,调试新系统时使用
    chroot /tomlinux #将根目录切换至/tomlinux目录
    chroot /tomlinux sbin/init #将根目录切换至/tomlinux并执行sbin/init
    adduser id #增加一个叫id的用户
    userdel id #增除叫id的用户
    userlist #显示已登陆的用户列表
    passwd id #修改用户id的密码
    passwd -d root #将root用户的密码删除
    chown id /work #指定/work目录为id用户所拥有

    ----------------------------------------------------------------------
    ifconfig eth0 192.168.1.1 netmask 255.255.255.0 #设置网卡1的地址192.168.1.1,掩码为255.255.255.0,不写netmask参数则默认为255.255.255.0
    ifconfig eth0:1 192.168.1.2 #捆绑网卡1的第二个地址为192.168.1.2
    ifconfig eth0:x 192.168.1.x #捆绑网卡1的第二个地址为192.168.1.x
    ifconfig down eth1 #关闭第二块网卡,使其停止工作
    hostname -F tomlinux.com #将主机名设置为tomlinux.com
    route #显示当前路由设置情况
    route add default gw 192.168.1.1 metric 1 #设置192.168.1.1为默认的路由
    route del default #将默认的路由删除
    dhcp #启动dhcp服务
    dhclient #启动dhcp终端并自动获取IP地址
    ping 163.com #测试与163.com的连接
    ping 202.96.128.68 #测试与IP 202。96.128.68的连接

    ----------------------------------------------------------------------
    probe rtl8139 #检查驱动程序rtl8139.o是否正常工作
    lsmod #显示已装载的驱动程序
    insmod rtl8139.o #装载驱动程序rtl8139.o
    insmod sb.o io=0x280 irq=7 dma=3 dma16=7 mpu_io=330 #装载驱动程序并设置相关的irq,dma参数
    rmmod rtl8139 #删除名为rtl8139的驱动模块
    gpm -k #停止字符状态下的mouse服务
    gpm -t ps2 #在字符状态下以ps2类型启动mouse的服务

    ----------------------------------------------------------------------
    telnet 192.168.1.1 #登陆IP为192.168.1.1的telnet服务器
    telnet iserver.com #登陆域名为iserver.com的telnet服务器
    ftp 192.168.1.1 或 ftp iserver.com #登陆到ftp服务

    Linux开发中的常用命令(cygwin环境也同样适用)

     cygwin使用心得
    1.在cygwin里访问Windows盘
    cd /cygdrive/c
    cd c:
    2.整合cygwin命令到Windows中
    假设cygwin安装在d:/develop/cygwin,则将d:/develop/cygwin/bin添加到系统变量PATH中(最好加在windows前面,这样的话,有些相同的命令的话,是先执行cygwin的命令,而不是windows命令,比如find)
    就可以直接在cmd.exe下面执行tar czvf xxx.tgz ./
    基本上所有的命令都可以用了,包括ls,more,less,find,grep等。
    3.使用TGZ备份
    将cygwin的BIN加入到PATH
    建一个BAT文件:
    @echo off
    d:
    cd d:/website/8thmanage
    tar czvf 8thmanage.tgz 8thmanage
    4.Windows使用SHELL脚本
    将cygwin的BIN加入到PATH
    在$CYGWIN的目录/var/下面建一脚本t.sh,注意,t.sh里面的路径,都是相对于$CYGWIN的,里面需要访问C盘的,请用/cygdrive/c/
    在Windows下执行:
    d:/cygwin/bin/bash d:/cygwin/var/t.sh
    (可以定期执行)
    5.同步Windows系统用户
    mkpasswd -l > /etc/passwd
    mkgroup -l > /etc/group
    如果有Domain的话,需要加上-d domainname
    6.安装系统服务
    cygrunsrv
    7.cygwing下使用rsync
    a.安装rsync组件
    b.进入cygwin,配置服务器
    vi /etc/rsyncd.conf
    ...screts file=/etc/tom.ipaddr.pas
    配置文件,参考我写的另外一篇rsync的文章,注意:密码文件权限必须是0400
    chmod 0400 /etc/tom.ipaddr.pas
    c.启动服务端
    rsync --daemon
    d.客户端同步
    在客户端的cygwin下面,运行rsync同步,具体命令,请参考另外一篇rsync的文章。
    8.cygwin下使用SSHD
    a.需要安装了cygrunsrc,openssh
    b.运行ssh-host-config -y
    一路回车,直到出现CYGWIN=时,输入tty ntsec,再回车,
    (或者,增加一系统环境变量CUGWIN=nesec tty)
    c.已经安装好SSHD服务到你的Windows服务中,可以直接在服务中启动,关闭。
    (cygrunsrc -S sshd或者net start sshd)
    9.中文显示
    vi ~/.bashrc
    # 让ls和dir命令显示中文和颜色
    alias ls='ls --show-control-chars --color'
    alias dir='dir -N --color'
    # 设置为中文环境,使提示成为中文
    export LANG="zh_CN.GBK"
    # 输出为中文编码
    export OUTPUT_CHARSET="GBK"
    ~/.inputrc为
    set completion-ignore-case on
    set meta-flag on
    set output-meta. on
    set convert-meta. off
    cygwin.bat脚本为:
    @echo off
    set MAKE_MODE=UNIX

    --------------------------------
    安装
    可以直接到http://www.cygwin.com下载一个安装程序,setup.exe,这个程序只是一个安装程序,所有的模块将从网络下载安装。或者,你可以下载一个cygwin.iso的镜像,直接映象成光盘,再从光盘本地安装,这样会快很多,而且不用考虑断线的问题。

    X下的中文支持
    locale支持
    Cygwin的locale支持一直都有问题,好在X程序还可以使用XLOCALE。
    建议还是使用zh_CN.gbk, 不要使用zh_CN.GB2312
    在移植程序时需要注意不要让程序连接libcygwin.a里面的setlocale,而是采用libX11.a里面的_Xsetlocale。方法是:检查被移植程序的全部源代码,发现
    #include
    就修改为
    #define X_LOCALE
    #include
    同时注意程序的连接库要添加-lX11.
    如果对于结果没有把握,可以找个Dependency Walker查看程序是否连接到了cygwin1.dll里面的setlocale,如果是,就说明有遗漏。
    中文字体
    PCF点阵字体
    GTK1.x 和其他一些老的X程序都是用X字体,
    注意必须要有编码与locale一致的字体,比如用zh_CN.gbk就必须要由GBK编码的字体,用zh_CN.GB2312就必须要有GB2312编码的字体
    如果使用zh_CN.GB2312,这里有一个RedOffice面带的点阵字体包
    可以采用ttf2bdf从TTF抽取得到bdf格式,然后再用bdf2pcf得到pcf格式的字体文件。
    (这里有一个Windows版本的TTF2BDF,可以将Windows TTF字体转换出BDF字体, 注意得到bdf后要手工编辑一下文件头,将编码声明修改正确)

    到字体之后,放到某个目录下,执行mkfontdir生成fonts.dir,然后用xset +fp
    /path/to/your/fonts将字体路径加入即可(注意与fontconfig的配置不同,这里路径是不递归的,如果有的字体放在子目录里面,
    子目录也需要添加进去才行)。

    TTF字体
    很多新的应用程序(比如GTK2)都使用fontconfig/libxft2来显示字体,它对TTF字体的支持比较好(X以前通过freetype, xft模块也支持TTF字体,但对中日韩字体的支持不是太好,而且也在Cygwin下似乎也没有这些模块)
    完全可以使用Linux下的arphic字体包. 如果没有安装Linux,可以到http://packages.debian.org下载相应的包,然后用7zip解压提取出ttf文件。
    得到字体文件之后,放到某个目录之下,编辑/etc/fonts/local.conf,将字体路径加入:
    /path/to/my/ttf/fonts如果只是自己使用,可以将字体文件放到~/.fonts下,不需要修改任何配置,最多三十秒fontconfig就能够发现这些字体了。

    中文输入法
    老黄(hzhr)移植了miniChinput到Cygwin,我也移植了fcitx-1.8.5和3.0,均可以从我的网站上找到 http://www.oliwen.com/bama...
    一般设置了LC_CTYPE和XMODIFIERS就可以在程序中激活输入输入法了(除非这个程序没有XIM支持):
    LC_CTYPE=zh_CN.gbk
    XMODIFIERS="@im=Chinput"
    export LC_CTYPE XMODIFIERS
    对于fcitx而言,XMODIFIERS设置为什么都可以(但必须要设置),所以设置为"@im=Chinput"的话chinput和fcitx都可以正常使用
    VI中的 Backspace 與 Delete 按鍵異常
    首先確定 $TERM的設定為cygwin

    echo $TERM

    若不是,請設定為

    TERM = cygwin
    export TERM

    Backspace 與 Delete這兩個鍵正常狀況下只有一個有用。可在 $HOME/.bash_profile 任選一個來使用

    stty erase '^H' //ctrl+v, ctrl+h

    stty erase '^?'

    本文来自: 脚本之家(www.jb51.net) 详细出处参考:http://www.jb51.net/article/6236.htm

    2008-04-14 22:17

    1. 资源

    1.1. 网址链接

    • 主页:
    http://www.cygwin.com/
    • 同步:
    ftp://ftp.sunsite.utk.edu/pub/cygwin/release/
    ftp://anonymous:cygwin@ftp.gnupilgrims.org/pub/cygwin/release/

     

    1.2. WIKI 关键字

     

    2. 版本

     

    3. FAQ

    3.1. Q Howto get version info?

             bash$ cygcheck -c cygwin

     

    3.2. Q 安装注意事项

    • gzip
    gzip 版本 1.3.3-4 可用。高版本如: 1.3.5-1 使 tar -z 命令运行不正常。

     

    3.3. Q Howto setup default text format, CRLF(dos) or LF(unix)?

    • 修改注册表项:HKEY_LOCAL_MACHINE/SOFTWARE/Cygnus Solutions/Cygwin/mounts v2/.../cygdrive flags。 cygdrive flags是一个DWORD值,&0x2 == 0x2 为 Unix Style,否则为 Dos like style。

     

    • 设置环境变量 CYGWIN, 使得在 pipe 等模式下的处理方式:export CYGWIN=nobinmode

     

    3.4. Q 为什么在 Cygwin 下创建的文件,其他管理员不可写?

    这是所谓的 ntsec 在起作用。通过 NTFS 的权限设置,模拟 UNIX 的权限。可以通过 CYGWIN 环境变量修改。如:
             bash$ export CYGWIN="nontsec nosmbntsec"

     

    3.5. Q 如何让 ls 能够显示中文文件名?

    因为 ls 不使用 readline 来显示, 因而不能用 .inputrc 控制。即 less 和 ls 需要特别设置。在 .bashrc 中加入如下 alias:
     alias less='/bin/less -r' alias ls='/bin/ls -F --color=tty --show-control-chars'

     

    3.6. Q 如何在按 TAB 键进行文件名扩展时忽略大小写,这样在 Windows 下才方便噢?

    参见: [Cygwin User's Guide]

     

    Customizing bash

    Three initialization files that control the behavior. of bash: .profile, .bashrc and .inputrc.

     

    .profile

    It is executed when bash is started as login shell, e.g. from the command bash --login.

    建议

    • 在 PATH 后加上 ":.",这样可以象在 DOS 下,执行本目录下程序;

     

    .bashrc

    .bashrc is similar to .profile but is executed each time an interactive bash shell is launched.

     

    .inputrc

    .inputrc controls how programs using the readline library (including bash) behave.

     

    # Ignore case while completingset completion-ignore-case on# Make Bash 8bit cleanset meta-flag onset output-meta. on # to show 8-bit charactersset convert-meta. off # to show it as character, not the octal representation

    但是并不能保证 ls 显示中文。因为这些工具不使用 readline 来显示。象 less 和 ls 需要特别设置。在 .bashrc 中加入如下 alias:

     alias less='/bin/less -r' alias ls='/bin/ls -F --color=tty --show-control-chars'

     

     

    3.7. Q 如何在 Cygwin 中运行 crontab?

    如下:
    • 在Windows上安装系统服务 cron,开机即运行。
             bash$ cygrunsrv -I cron -p /usr/sbin/cron -a -D
    • 启动服务
             bash$ cygrunsrv -S cron

     

    3.8. Q 配置 SSH client?

    • 为了能够通过公钥验证进行SSH登陆其他服务器,先要在本地建立 SSH 公钥私钥对:
             bash$ ssh-keygen -t rsa1         bash$ ssh-keygen -t rsa         bash$ ssh-keygen -t dsa
    • 建立无口令登录
    需要将本机的 *.pub 拷贝(cat>>)到服务器中 $HOME/.ssh/ 下的 authorized_keys (ssh1) 和 authorized_keys2 (ssh2) 文件中去。

     

    3.9. Q 如何在 cygwin 中运行 sshd (SSH Server)?

    如下:
    • 设置 Windows 环境变量,添加“CYGWIN = ntsec tty”

     

    • Config SSHD, running:
             bash$ ssh-host-config -y
    根据提示,输入 CYGWIN=ntsec tty

     

    • Change permissions and ownership on some files:
             bash$ cd /; chmod -R og-w .          bash$ chmod og+w /tmp          bash$ touch /var/log/sshd.log          bash$ chown system:system /var/log/sshd.log /var/empty /etc/ssh_h*          bash$ chmod 755 /var/empty

     

    • start the service:
             bash$ cygrunsrv -S sshd

     

    3.10. Q 如何在 cygwin 中配置 Email?

    As follows:
    • ssmtp & mutt
      • ssmtp
               bash$ /usr/bin/ssmtp-config
      When using mutt as the mail client, add the following line to your $HOME/.muttrc file:
               set sendmail="/usr/sbin/ssmtp"

     

    •  
      • mutt
        • Make sure you have the Cygwin ssmtp package installed
        check file /etc/ssmtp/ssmtp.conf
        • vi .bashrc and/or .bash_profile
                 export MAIL=~/Mail/inbox         export EDITOR=nano
        If you have nano installed (and I stongly recommend that you do)
        • Create the following directory structure in your HOME directory:
                 ~/Mail            |            -- inbox (EMPTY FILE, NOT DIRECTORY)            |            -- sent (EMPTY FILE, NOT DIRECTORY)            |            -- received (EMPTY FILE, NOT DIRECTORY)            |            -- postponed (EMPTY FILE, NOT DIRECTORY)
        • Create a ~/.muttrc file that looks like this:
                 # The file/directory where your incoming mail will be spooled to         # (same as 'set spoolfile' below)         mailboxes ~/Mail/inbox                 # Mail account setup.   I know nothing about IMAP, so you're         # on your own there.         set sendmail="/usr/sbin/ssmtp"         #set pop_host="your.pop3.mail.server.com"         #set pop_last=yes         #set pop_user="your_email_username"         #set pop_pass="your_email_password"         set from="your_complete@email_address.com"                 # Mail folder setup.         set folder=~/Mail         set mbox_type=mbox         set spoolfile=+inbox         set mbox=+received         set postponed=+postponed         set record=+sent

     

    •  
      •  
        • mutt command line
                 mutt [...] address         参数:             -a file : attach a file to message             -b address: BCC             -c address: CC             -F muttrc             -H draft: draft contain both header and body             -s subject: subject of the message             -x : emulate the mailx compose mode                 环境变量:             EMAIL : user's email address             MAIL   : user's spool mailbox         示例:             bash$ echo "contents" | mutt -x -s "subject" mail@address             bash$ echo   | mutt -x -s "subject" -i filename mail@address

     

    • exim & minires
      • exim
           Exim is a fully featured mail transfer agent, a drop-in replacement for sendmail.         bash$ /usr/bin/exim-config         bash$ view /etc/exim.conf          bash$ vi /etc/aliases                   postmaster: your_login_name         bash$ vi /etc/reslov.conf                   nameserver 10.0.0.7                   search your.domain         bash$ cygrunsrv -I exim -p /usr/bin/exim -e CYGWIN=nontsec                      -a "-bdf -q15m" -d "Exim Mail Transfer Agent"                    -1 /var/log/exim/cygrunsrv_out.log -2 /var/log/exim/cygrunsrv_err.log         bash$ cygrunsrv -S exim

     

    3.11. Q 如何得到 Dos/Windows? 格式的路径名?

             bash$ cygpath -d -m "`pwd`"

     

    3.12. Q Setup Xinetd

    • start init service
             bash$ /usr/bin/init-config

     

    • chkconfig 工具用来维护 /etc/rc.d 下的脚本
      • 若要启动 sshd 执行 "/sbin/chkconfig --add sshd"

     

    • xinetd config
             bash$ /usr/bin/xinetd-config

     

    3.13. Q other command?

    ttcp, netsnoop

     

    3.14. Q XFree86 under Cygwin?

    • add /usr/X11R6/bin to PATH;
    • start Xwindow using startxwin.bat(dos/windows), or startxwin.sh(cygwin);
    • if has a firewall installed, open port "6000" of local server;
    • run xclient in local machine, just set environment: export DISPLAY=127.0.0.1:0.0
    • if run xclient in remote machine, give authorize to remote host:
    bash$ /usr/X11R6/bin/xhost remote_hostname_or_ip_address
    • telnet/ssh to remote host;
    • set environment DISPLAY, like: export DISPLAY=<IP_of_Cygwin_XFree86>:0.0
    • xterm

     

    3.15. Q 安装后的设置综述?

    • binmode or textmode?
    执行 mount 命令,如果不是 textmode,修改注册表 HKEY_LOCAL_MACHINE/SOFTWARE/Cygnus Solutions/Cygwin/mounts v2/.../cygdrive flags。 cygdrive flags是一个DWORD值,&0x2 == 0x2 为 Unix Style,否则为 Dos like style。

     

    • 修改 ~/.inputrc 文件,加入如下内容
    # Ignore case while completingset completion-ignore-case on# Make Bash 8bit cleanset meta-flag onset output-meta. on # to show 8-bit charactersset convert-meta. off # to show it as character, not the octal representation

     

    • 修改 /etc/profile, 加入如下内容:
    set -o vialias less='/bin/less -r'alias ls='/bin/ls -F --color=tty --show-control-chars'# glob filenames in a case-insensitive mannershopt -s nocaseglobexport SGML_CATALOG_FILES=/share/catalog.sgmlexport XML_CATALOG_FILES=/share/catalog.xmlexport CYGWIN="nobinmode nontsec nosmbntsec"export PATH=$PATH:.

     

    • 修改登录用户的主要组:
             bash$ vi /etc/passwd
    默认属于 513 组(对于域控制器是Domain Users,非域控制器为 NONE),个人偏好设置为 544(Administrator)

     

    • 建立 symbol link:
      • 因为一些脚本默认的 md5 摘要程序是 md5, 而非 md5sum;
               bash$ ln -s /usr/bin/md5sum /usr/bin/md5
      • 设置 DOCBOOK DTD/DSSSL 路径
               bash$ ln -sf /cygdrive/e/HOME/WORK/johnson_homepage/worldhello/share /share

     

    •  
      • 设置 usemodwiki 路径映射
      mkdir /reposcd /repos/ln -s /cygdrive/d /dln -s /d/HOME/WORK/johnson_homepage/worldhello/usemod JohnsonUseModWikiln -s /d/HOME/WORK/johnson_homepage/worldhello/wiki .

     

     

    •  
      • 设置建立工作路径
               bash$ ln -sf /cygdrive/e/HOME/WORK/ ~/work
      在cygwin中输入中文和显示中文
      2008-07-31 15:45

      cygwin的缺省环境是不支持中文输入和显示的,通过google找到了能人介绍的解决方法。

      中文输入需要修改“.inputrc”文件,只要包括以下语句即可:

      set meta-flag on

      set convert-meta. off

      set output-meta. on

      set input-meta. on

      set completion-ignore-case on

      在我使用的cygwin环境中的“.inputrc”文件中已经包括这些指令了,只是被置成注释语句了,只要删掉行首的“#”就可。

      显示中文需要修改“.bashrc”文件,加入一行:

      alias ls='ls --show-control-chars --color=auto'

      文件修改完毕后,重新启动cygwin就可以看到效果了。

  • cygwin图文安装教程(一)

    2011-09-14 16:20:57

    安装 GCC   文章出处:

    http://hi.baidu.com/www100/blog/item/e985c717e656b601c93d6d10.html


    安装 GCC 最快捷的方式是在您的机器上安装完整的 Cygwin 环境。Cygwin 是 Windows 上类似于 Linux 的环境。它包括一个提供 UNIX 功能性基本子集的 DLL 以及在这之上的一组工具。安装好 Cygwin 之后,通常可以忽略它,即使您是命令行的爱好者,您仍能发现您活得更舒坦了。
    确保您具有相当快速的 Internet 连接。GCC 编译器及相关实用程序大约有 50 兆字节。另外确认您的连接是否需要一个代理服务器。这可通过您的 Internet 浏览器选项: 工具 -> Internet 选项 ->连接 ->局域网(LAN)设置来确定。
    确保在您的管理员帐户下安装这个程序,并选择为“所有用户”安装。
    将您的 Internet 浏览器指到
    www.cygwin.com
    。在屏幕的中央是一个黑绿两色组成的 “C” 徽标,标题是“Install or update now.”。在该链接上点击,这将下载一个小程序 setup.exe(250KB)。这个安装程序将在您的机器上引导 Cygwin 环境的安装或更新过程。
    运行安装程序
    将 setup.exe 下载到一个已知地方,如桌面,然后运行它。
    它将打开安装向导,如下图所示:
    图 1. Cygwin 环境的安装向导


    点击 Next按钮。
    选择下载位置
    在这个页面上,选择"Install from Internet"。
    图 2. 选择安装类型


    点击 Next按钮。
    选择一个安装目录
    在这个页面上,选择执行 Cygwin 所在的目录。
    设置图3所示的剩余选项。
    图 3.选择一个安装目录


    点击 Next按钮。
    选择一个临时安装目录
    在这个页面(图4),为安装包选择一个临时目录。当 Cygwin 安装完成后,您可以删除这个目录和它的内容。
    注意安装程序记住了这个目录,并在更新时只下载比这个目录中的包更新的版本。如果您删除这个目录并重新安装, setup将重新安装您选择的所有内容而不管这些包的安装程序在运行目录中已经存在。
    图 4.选择一个临时安装目录


    点击 Next按钮。
    指定您的 Internet 连接
    在这个页面上(图5),指定 Internet 连接。如果你有代理服务器,选择“使用 IE5 设置”,或从您的浏览器选项获得服务器名,选择使用代理,然后输入代理服务器的主机名和端口号。
    图 5. 选择连接类型


    点击 Next按钮。
    选择下载站点
    在这个页面上(图6),选择一个下载站点。因为这些站点是义务的镜像,所以选择一个下载点有点风险(通常它们是可用的,但有时不可用)。通常,试试离你比较近的那个站点。
    图6. 选择一个下载站点


    点击 Next按钮。
    选择包进行安装
    在这个页面上,您将选择要安装的包。默认情况下,Cygwin 基本包将不安装 GCC,因此,您必须修改默认设置。
    将鼠标移动到 Devel边的加号(+)上,然后点击它展开 Devel类。
    图 7. 选择包进行安装

    在你还没确定哪些需要哪些不需要时,最好全部下载,点击All后的default为install。即是完全安装了。保证了GCC编辑器的使用。

    您会看到在 Devel 下有许多入口,其中只有三个是您需要的,次序如下:

  • binutils
  • gcc
  • gcc-mingw
    不是所有默认的基本包都需要运行 GCC,但它们不太大,因此为简单化,就安装它们。
    注意很容易选错包或版本,尤其在重新安装的时候,因为选择窗口中的循环按钮是不标准的。在这一步我们建议的就是多加小心,尤其是有多个 GCC 版本的情况下。
    为选择这三个包,点击列 New中每个双向箭头直到显示每个包的版本号。根据您机器上已安装的以及镜像上所拥有的合适的版本,列入口在各图标间循环:


    如果有多个版本可用,选择数字最大的一个。要下载二进制文件,确保选中了“Bin”列的复选框。
    图 9. 下载二进制文件


    完成下载
    选择完三个包之后,Cygwin 就访问选择的镜像主机,然后下载那三个包以及默认的基本包。根据您的连接速度这将持续几分钟,在安装期间,将打开和关闭许多弹出窗口。
    因为存放 Cygwin 安装的镜像站点是义务的,有时不可用或负荷过重。如果发现选择的镜像没有响应,就按取消 ( Cancel),这将终止整个安装程序。
    惟一的办法就是重新开始安装并选择另一个镜像;这非常让人感到沮丧。幸运的是,安装程序记住了大多数您上次所做的,因此通常取默认情况。在重新选择正确的包时必须小心,因为在后面的安装中不帮你选择这些内容。
    setup程序然后询问是否在您的桌面或开始菜单创建一个 Cygwin 快捷键。该快捷键启动 Cygwin shell (称为 bash), 这对我们计划中的 DB2 使用并不是必须的,但对测试我们的安装是有用的。因此让 setup至少创建一个桌面快捷键。我们将在安装的后面使用它。
    最后,点击 Finish按钮。我们将在
    后面
    测试安装结果。
    图 10. 完成安装
  • 如果还肯不明白,我这有个视频教程,需要的跟我联系!
  • 用户注册和密码修改测试点

    2011-05-16 15:19:34

    转贴

    一.用户注册

    只从用户名和密码角度写了几个要考虑的测试点,如果需求中明确规定了安全问题,Email,出生日期,地址,性别等等一系列的格式和字符要求,那就都要写用例测了~
    以等价类划分和边界值法来分析
    1.填写符合要求的数据注册: 用户名字和密码都为最大长度 (边界值分析,取上点)
    2.填写符合要求的数据注册 :用户名字和密码都为最小长度 (边界值分析,取上点)
    3.填写符合要求的数据注册:用户名字和密码都是非最大和最小长度的数据(边界值分析,取内点)
    4.必填项分别为空注册           
    5.用户名长度大于要求注册1位(边界值分析,取离点)
    6.用户名长度小于要求注册1位(边界值分析,取离点)
    7.密码长度大于要求注册1位(边界值分析,取离点)
    8.密码长度小于要求注册1位(边界值分析,取离点)
    9.用户名是不符合要求的字符注册(这个可以划分几个无效的等价类,一般写一两个就行了,如含有空格,#等,看需求是否允许吧~)
    10.密码是不符合要求的字符注册(这个可以划分几个无效的等价类,一般写一两个就行了)
    11.两次输入密码不一致(如果注册时候要输入两次密码,那么这个是必须的)
    12.重新注册存在的用户
    13.改变存在的用户的用户名和密码的大小写,来注册。(有的需求是区分大小写,有的不区分)
    14.看是否支持tap和enter键等;密码是否可以复制粘贴;密码是否以* 之类的加秘符号显示


    二.修改密码
    当然具体情况具体分析哈~不能一概而论~
    实际测试中可能只用到其中几条而已,比如银行卡密码的修改,就不用考虑英文和非法字符,更不用考虑那些TAP之类的快捷键.
    而有的需要根据需求具体分析了,比如连续出错多少次出现的提示,和一些软件修改密码要求一定时间内有一定的修改次数限制等等。

    1.不输入旧密码,直接改密码
    2.输入错误旧密码
    3.不输入确认新密码
    4.不输入新密码
    5.新密码和确认新密码不一致
    6.新密码中有空格
    7.新密码为空
    8.新密码为符合要求的最多字符
    9.新密码为符合要求的最少字符
    10.新密码为符合要求的非最多和最少字符
    11.新密码为最多字符-1
    12.新密码为最少字符+1
    13.新密码为最多字符+1
    14.新密码为最少字符-1
    15.新密码为非允许字符(如有的密码要求必须是英文和数字组成,那么要试汉字和符号等)
    16.看是否支持tap和enter键等;密码是否可以复制粘贴;密码是否以* 之类的加秘符号
    17.看密码是否区分大小写,新密码中英文小写,确认密码中英文大写.
    18.新密码与旧密码一样能否修改成功.

  • VI编辑器的使用方法

    2010-08-06 19:44:54

    一、vi的工作模式
    vi有两种工作模式:
      编辑模式:用来输入和编辑文件的模式,屏幕上会显示用户的键入,按键不是被解释为命令执行,而是作为文本写到用户的文件中。
      指令模式:用来编辑、存盘和退出文件的模式。
        运行vi后,首先进入指令模式。此时输入的任何字符都被视为指令,键入的命令不会在屏幕上显示。
        从指令模式切换到编辑模式,则可以按“Insert”键或“i”键,从编辑模式切换到指令模式,可按“Esc”键。
        状态行是屏幕底部一行,被vi编辑器用来反馈编辑操作结果。错误消息或提供信息的消息会在状态行中显示出来。

    二、vi的启动和退出
    1.启动vi
        在系统图示字符下键入“vi”+“空格”+“文件名”,如:vi test.txt
        vi可以自动载入所要编辑的文件或是开启一个新文件。
    2.退出vi
    在指令模式下键入如下命令可以退出vi:
      :q 如果用户只是读文件的内容而未对文件进行修改,可以在命令模式下输入“:q”退出vi。
      :q! 如果用户对文件的内容作了修改,又决定放弃对文件的修改,则用“:q!”命令。
      :w! 强行保存一个vi文件,如果该文件已存在,则进行覆盖。
      :wq 保存文件并退出vi。
      ZZ 快速保存文件的内容,然后退出vi。功能和“:wq”相同。
      :w filename   相当于“另存为”。
      :n,mw filename   将第n-m行的文本保存到指定的文件filename中。

    三、vi长指令和短指令
      长指令:以冒号开头,键入冒号后,在屏幕的最末尾一行会出现冒号提示符,等待用户键入指令,输入完指令后回车,vi会执行该指令。
      段指令:与快捷键相似,键入短指令后,vi不会给任何提示就直接执行。
    1.输入输出命令
      a 在光标后输入文本
      A 在当前行末尾输入文本
      i 在光标前输入文本
      I 在当前行开始输入文本
      o 在当前行后输入新一行
      O 在当前行前输入新一行
    2.光标移动命令
      b 移动到当前单词的开始
      e 移动到当前单词的结尾
      w 向后移动一个单词
      h 向前移动一个字符
      l 向后移动一个字符
      j 向下移动一行
      k 向上移动一行
    3.删除操作命令
      x 删除光标所在的字符
      dw 删除光标所在的单词
      dd 删除当前行
      d$ 删除光标至行尾的所有字符
      D 与“d$”命令相同
    4.替换操作命令
      r 替换光标所在的字符
      R 替换字符序列
      cw 替换一个单词
      ce 与“cw”命令相同
      cb 替换光标所在的前一字符
      c$ 替换自光标位置至行尾的所有字符
      C 与“c$”命令相同
      cc 替换当前行
    5.查询操作命令
      /abc 向后查询字符串“abc”
      ?abc 想前查询字符串“abc”
      n 重复前一次查询
      N 重复前一次查询,但方向相反
    6.拷贝粘贴命令
      yw 将光标所在单词拷入剪贴板
      y$ 将光标至行尾的字符拷入剪贴板
      Y 与“y$”命令相同
      yy 将当前行拷入剪贴板
      y 将选取的内容拷入剪贴板
      p 将剪贴板中的内容粘贴在光标后
      P 将剪贴板中的内容粘贴在光标前
    7.其他操作命令
      v 选取文本内容
      u 取消上一次的操作
      U 可以恢复对光标所在行的所有改变
      J 把两行文本链接到一起
      :set 用来设置或浏览vi系统当前的选项(加参数“all”后查看所有选项的列表)
      :X 对所编辑的文件进行简单加密

    四、vi的高级应用
    1.设置vi环境
        vi编辑器的行为可以通过设置编辑参数来定义。
        使用vi的set命令进行设置。vi在进行设置前必须处于指令模式,但选项的改变是临时的,只在用户当前编辑回话下有效,当用户退出vi编

    辑器时,设置会被丢弃。
      autoindent选项
        将新行与前一行的开始对准,缩写:ai
        该选项将用户键入的每个新行与前一行的开始对齐。该选项对于使用程序语言编程时十分有用。本选项的默认值是noai。
      ignorecase选项
        在搜索命令下忽略大小写,缩写:ic
        vi编辑器提供大小写敏感的搜索,要使vi忽略大小写,键入“:set ignorecase”,要返回大小写敏感状态,键入“:set noignorecase”.
      magic选项
        在搜索时,允许使用特殊字符。
        某些符号在用于搜索时有特殊的含义。当用户将这些符号开头置为nomagic时,这些符号不再有特殊含义。
      number选项
        显示行号,缩写:nu
        vi编辑器一般情况下不显示每行的行号。可以改变number选项来显示行号。
      report选项
        告知用户最后一个命令作用行的行号。
        vi编辑器对用户的编辑工作并不给予任何反馈,如果希望在屏幕上看到自己编辑的反馈信息,用户可以通过编辑report选项来实现。
      scroll选项
        设定在指令模式下使用“Ctrl+d”命令翻滚的行数。
      shiftwidth选项
        设定缩进空格数,一般与autoindent一同使用,缩写:sw
      showmode选项
        在屏幕右角显示vi编辑器模式,缩写:smd
      terse选项
        缩短错误信息。
      wrapmargin选项
        将右边界设定为一定的字符个数,缩写:wm
        用户的终端屏幕通常为80列,当键入到行的末尾时,屏幕即开始一个新行,这就是行回绕。在用户按回车键时,屏幕同样开始一个新行。

    因此,屏幕上一行的长度可以为1-80个字符之间的任何长度。但是,vi编辑器只在用户按回车时,才在用户文件中生成一个新行。如果用户在

    按回车前键入了120个字符,这时键入的文本看起来是在2行,但实际在文件中,这120个字符只在1行中。如果要限制行长度,一是在到达屏幕

    行末尾前按回车换行,另一种是设定wrapmargin选项使vi编辑器自动插入回车。


    2.缩写操作符
        缩写操作符“:ab”命令使得用户给任何字符串指定缩写,该功能可以帮主用户提高输入速度。用户可以为自己经常输入的文本选择一个易

    输入的缩写。
        例如:键入“:ab uox Unix Operating System”命令,当vi处于文本输入模式时,用户键入“uox”接着键入一个空格时,vi自动将键入的

    “uox”变为“Unix Operating System”。
        取消缩写“:unab”命令可以取消一个缩写,例如:键入“:unab uox”命令即可。
        想列出已经设置了的所有缩写,键入“:ab”命令即可。
    3.宏操作符
        宏操作符“:map”命令使用户能将一系列按键指定给某一按键。给用户一个在指令模式下的快捷按键。
        例如:键入“:map q dd”命令,此后处于指令模式时,每当用户键入q时,vi编辑器自动执行“dd”命令。
        取消宏操作“:unmap”命令。
        用户也可以使用map指令指定功能键,例如:键入“:map #n dd”命令,其中“#n”代表以n为功能键号的功能键。
    4.“.exrc”文件
        用户在vi编辑器中所设置的所有选项都是临时的,当用户退出时,它们都会失效。要使这些设置永久保存,可以将选项的设置保存到文件

    “.exrc”中。
        当用户打开vi编辑器时,它自动查看用户当前的工作目录中的“.exrc”文件,并根据在文件中的内容设置编辑环境。如果vi没有在当前目

    录中发现“.exrc”文件,则将查找用户的主目录,并根据在哪里发现的“.exrc”文件设置编辑环境。如果vi一个“.exrc”文件也没找到,则

    对选项使用默认值。
        “.exrc”文件属于启动文件。
    例如:建立一个“.exrc”文件。
    在终端中键入“vi .exrc”,回车。
    在vi编辑器中键入:
      set autoindent
      set shiftwidth=2
      set nomagic
      set number
      set scroll=20
      set showmode
    保存退出即可
    5.运行Shell命令
        用户可以在vi的命令行运行Linux Shell命令,使得用户可以临时抛开vi来运行Shell命令。
        vi编辑器用“!”来通知vi其后面是一个Shell命令。例如:键入“:!date”命令,vi编辑器将清除屏幕,输出当前系统时间,后按任意键返回vi编辑器,并可以继续编辑。
        如果用户系统将Shell命令执行的结果加到文件文本中,可以使用“:r!”和相应的Shell命令来将命令结果写到用户文件文本中。

  • [论坛] 关于web测试的资料集

    2010-06-23 10:48:57

    最近发现论坛里有好多做web测试的同行,我也趁这两天有空,把我手上的关于web测试方面的资料贴上来,大家看看,了解一下,为了方便查看,我不用附件形式了,发贴形式,大家如想收集到自己电脑里,可以copy一下。
    安全性测试:
    Web应用系统的安全性测试区域主要有:
      (1)现在的Web应用系统基本采用先注册,后登陆的方式。因此,必须测试有效和无效的用户名和密码,要注意到是否大小写敏感,可以试多少次的限制,是否可以不登陆而直接浏览某个页面等。
      (2)Web应用系统是否有超时的限制,也就是说,用户登陆后在一定时间内(例如15分钟)没有点击任何页面,是否需要重新登陆才能正常使用。
      (3)为了保证Web应用系统的安全性,日志文件是至关重要的。需要测试相关信息是否写进了日志文件、是否可追踪。
      (4)当使用了安全套接字时,还要测试加密是否正确,检查信息的完整性。
      (5)服务器端的脚本常常构成安全漏洞,这些漏洞又常常被黑客利用。所以,还要测试没有经过授权,就不能在服务器端放置和编辑脚本的问题。

    导航测试:        导航描述了用户在一个页面内操作的方式,在不同的用户接口控制之间,例如按钮、对话框、列表和窗口等;或在不同的连接页面之间。通过考虑下列问题,可以决定一个Web应用系统是否易于导航:导航是否直观?Web系统的主要部分是否可通过主页存取?Web系统是否需要站点地图、搜索引擎或其他的导航帮助?
              在一个页面上放太多的信息往往起到与预期相反的效果。Web应用系统的用户趋向于目的驱动,很快地扫描一个Web应用系统,看是否有满足自己需要的信息,如果没有,就会很快地离开。很少有用户愿意花时间去熟悉Web应用系统的结构,因此,Web应用系统导航帮助要尽可能地准确。
              导航的另一个重要方面是Web应用系统的页面结构、导航、菜单、连接的风格是否一致。确保用户凭直觉就知道Web应用系统里面是否还有内容,内容在什么地方。
              Web应用系统的层次一旦决定,就要着手测试用户导航功能,让最终用户参与这种测试,效果将更加明显。
    整体界面测试 :
    整体界面是指整个Web应用系统的页面结构设计,是给用户的一个整体感。例如:当用户浏览Web应用系统时是否感到舒适,是否凭直觉就知道要找的信息在什么地方?整个Web应用系统的设计风格是否一致?
    对整体界面的测试过程,其实是一个对最终用户进行调查的过程。一般Web应用系统采取在主页上做一个调查问卷的形式,来得到最终用户的反馈信息。
      对所有的可用性测试来说,都需要有外部人员(与Web应用系统开发没有联系或联系很少的人员)的参与,最好是最终用户的参与。
      四、客户端兼容性测试
      1、平台测试
      市场上有很多不同的操作系统类型,最常见的有Windows、Unix、Macintosh、Linux等。Web应用系统的最终用户究竟使用哪一种操作系统,取决于用户系统的配置。这样,就可能会发生兼容性问题,同一个应用可能在某些操作系统下能正常运行,但在另外的操作系统下可能会运行失败。
      因此,在Web系统发布之前,需要在各种操作系统下对Web系统进行兼容性测试
      2、浏览器测试
      浏览器是Web客户端最核心的构件,来自不同厂商的浏览器对Java,、javascript、 ActiveX、 plug-ins或不同的HTML规格有不同的支持。例如,ActiveX是Microsoft的产品,是为Internet Explorer而设计的,javascript是Netscape的产品,Java是Sun的产品等等。另外,框架和层次结构风格在不同的浏览器中也有不同的显示,甚至根本不显示。不同的浏览器对安全性和Java的设置也不一样。
      测试浏览器兼容性的一个方法是创建一个兼容性矩阵。在这个矩阵中,测试不同厂商、不同版本的浏览器对某些构件和设置的适应性。

    图形测试 :
    在Web应用系统中,适当的图片和动画既能起到广告宣传的作用,又能起到美化页面的功能。一个Web应用系统的图形可以包括图片、动画、边框、颜色、字体、背景、按钮等。图形测试的内容有:
        (1)要确保图形有明确的用途,图片或动画不要胡乱地堆在一起,以免浪费传输时间。Web应用系统的图片尺寸要尽量地小,并且要能清楚地说明某件事情,一般都链接到某个具体的页面。
      (2)验证所有页面字体的风格是否一致。
      (3)背景颜色应该与字体颜色和前景颜色相搭配。
      (4)图片的大小和质量也是一个很重要的因素,一般采用JPG或GIF压缩。
      3、内容测试
      内容测试用来检验Web应用系统提供信息的正确性、准确性和相关性。
      信息的正确性是指信息是可靠的还是误传的。例如,在商品价格列表中,错误的价格可能引起财政问题甚至导致法律纠纷;信息的准确性是指是否有语法或拼写错误。这种测试通常使用一些文字处理软件来进行,例如使用Microsoft Word的"拼音与语法检查"功能;信息的相关性是指是否在当前页面可以找到与当前浏览信息相关的信息列表或入口,也就是一般Web站点中的所谓"相关文章列表"。

    在Web工程过程中,基于Web系统的测试、确认和验收是一项重要而富有挑战性的工作。基于Web的系统测试与传统的软件测试不同,它不但需要检查和验证 是否按照设计的要求运行,而且还要测试系统在不同用户的浏览器端的显示是否合适。重要的是,还要从最终用户的角度进行安全性和可用性测试。然而, Internet和Web媒体的不可预见性使测试基于Web的系统变得困难。因此,我们必须为测试和评估复杂的基于Web的系统研究新的方法和技术。
    本文将 web 测试分为 6 个部分:
    1.       功能测试
    2.       性能测试(包括负载/压力测试)
    3.       用户界面测试
    4.       兼容性测试
    5.       安全测试
    6.       接口测试
    本文的目的是覆盖 web 测试的各个方面,未就某一主题进行深入说明。
    1 功能测试
    1.1 链接测试
    链接是Web应用系统的一个主要特征,它是在页面之间切换和指导用户去一些不知道地址的页面的主要手段。链接测试可 分为三个方面。首先,测试所有链接是否按指示的那样确实链接到了该链接的页面;其次,测试所链接的页面是否存在;最后,保证Web应用系统上没有孤立的页 面,所谓孤立页面是指没有链接指向该页面,只有知道正确的URL地址才能访问。
    链接测试可以自动进行,现在已经有许多工具可以采用。链接测试必须在集成测试阶段完成,也就是说,在整个Web应用系统的所有页面开发完成之后进行链接测试。
    采取措施:采用自动检测网站链接的软件来进行。
    推荐软件:
    Xenu Link Sleuth 免费 绿色免安装软件
    HTML Link Validator 共享(30天试用)
    1.2 表单测试
    当用户通过表单提交信息的时候,都希望表单能正常工作。
    如果使用表单来进行在线注册,要确保提交按钮能正常工作,当注册完成后应返回注册成功的消息。如果使用表单收集配送 信息,应确保程序能够正确处理这些数据,最后能让顾客能让客户收到包裹。要测试这些程序,需要验证服务器能正确保存这些数据,而且后台运行的程序能正确解 释和使用这些信息。
    当用户使用表单进行用户注册、登陆、信息提交等操作时,我们必须测试提交操作的完整性,以校验提交给服务器的信息的 正确性。例如:用户填写的出生日期与职业是否恰当,填写的所属省份与所在城市是否匹配等。如果使用了默认值,还要检验默认值的正确性。如果表单只能接受指 定的某些值,则也要进行测试。例如:只能接受某些字符,测试时可以跳过这些字符,看系统是否会报错。
    1.3 数据校验
    如果系根据业务规则需要对用户输入进行校验,需要保证这些校验功能正常工作。例如,省份的字段可以用一个有效列表进行校验。在这种情况下,需要验证列表完整而且程序正确调用了该列表(例如在列表中添加一个测试值,确定系统能够接受这个测试值)。
    在测试表单时,该项测试和表单测试可能会有一些重复。
    1.2和1.3的采取措施:第一个完整的版本采用手动检查,同时形成WinRunner(QTP)脚本;回归测试以及升级版本主要靠WinRunner(QTP)自动回放测试。
    1.4 cookies测试
    Cookies通常用来存储用户信息和用户在某应用系统的操作,当一个用户使用Cookies访问了某一个应用系统时,Web服务器将发送关于用户的信息,把该信息以Cookies的形式存储在客户端计算机上,这可用来创建动态和自定义页面或者存储登陆等信息。
       如果Web应用系统使用了Cookies,就必须检查Cookies是否能正常工作。测试的内容可包括Cookies是否起作用,是否按预定的时间进行 保存,刷新对Cookies有什么影响等。如果在 cookies 中保存了注册信息,请确认该 cookie能够正常工作而且已对这些信息已经加密。如果使用 cookie 来统计次数,需要验证次数累计正确。
    采取措施:
         1 采用黑盒测试:采用上面提到的方法进行测试
    2 采用查看cookies的软件进行(初步的想法)
    可以选择采用的软件
    IECookiesView v1.50
    Cookies Manager v1.1
    1.5 数据库测试
    在Web应用技术中,数据库起着重要的作用,数据库为Web应用系统的管理、运行、查询和实现用户对数据存储的请求等提供空间。在Web应用中,最常用的数据库类型是关系型数据库,可以使用SQL对信息进行处理。
    在使用了数据库的Web应用系统中,一般情况下,可能发生两种错误,分别是数据一致性错误和输出错误。数据一致性错误主要是由于用户提交的表单信息不正确而造成的,而输出错误主要是由于网络速度或程序设计问题等引起的,针对这两种情况,可分别进行测试。
    采取措施:暂时没有更好的测试方法
         考虑结合到1.2和1.3的测试中
    1.6 应用程序特定的功能需求
    最重要的是,测试人员需要对应用程序特定的功能需求进行验证。尝试用户可能进行的所有操作:下订单、更改订单、取消订单、核对订单状态、在货物发送之前更改送货信息、在线支付等等。这是用户之所以使用网站的原因,一定要确认网站能像广告宣传的那样神奇。
    采取措施:深刻理解需求说明文档
    1.7 设计语言测试
    Web设计语言版本的差异可以引起客户端或服务器端严重的问题,例如使用哪种版本的HTML等。当在分布式环境中开 发时,开发人员都不在一起,这个问题就显得尤为重要。除了HTML的版本问题外,不同的脚本语言,例如Java、JavaScript、 ActiveX、VBScript或Perl等也要进行验证。
    2 性能测试
    2.1 连接速度测试
    用户连接到Web应用系统的速度根据上网方式的变化而变化,他们或许是电话拨号,或是宽带上网。当下载一个程序时,用户可以等较长的时间,但如果仅仅访问一个页面就不会这样。如果Web系统响应时间太长(例如超过5秒钟),用户就会因没有耐心等待而离开。
    另外,有些页面有超时的限制,如果响应速度太慢,用户可能还没来得及浏览内容,就需要重新登陆了。而且,连接速度太慢,还可能引起数据丢失,使用户得不到真实的页面。
    2.2 负载测试
    负载测试是为了测量Web系统在某一负载级别上的性能,以保证Web系统在需求范围内能正常工作。负载级别可以是某 个时刻同时访问Web系统的用户数量,也可以是在线数据处理的数量。例如:Web应用系统能允许多少个用户同时在线?如果超过了这个数量,会出现什么现 象?Web应用系统能否处理大量用户对同一个页面的请求?
    2.3 压力测试
    负载测试应该安排在Web系统发布以后,在实际的网络环境中进行测试。因为一个企业内部员工,特别是项目组人员总是有限的,而一个Web系统能同时处理的请求数量将远远超出这个限度,所以,只有放在Internet上,接受负载测试,其结果才是正确可信的。
    进行压力测试是指实际破坏一个Web应用系统,测试系统的反映。压力测试是测试系统的限制和故障恢复能力,也就是测试Web应用系统会不会崩溃,在什么情况下会崩溃。黑客常常提供错误的数据负载,直到Web应用系统崩溃,接着当系统重新启动时获得存取权。
    压力测试的区域包括表单、登陆和其他信息传输页面等。
    负载/压力测试应该关注什么
    测试需要验证系统能否在同一时间响应大量的用户,在用户传送大量数据的时候能否响应,系统能否长时间运行。可访问性 对用户来说是极其重要的。如果用户得到“系统忙”的信息,他们可能放弃,并转向竞争对手。系统检测不仅要使用户能够正常访问站点,在很多情况下,可能会有 黑客试图通过发送大量数据包来攻击服务器。出于安全的原因,测试人员应该知道当系统过载时,需要采取哪些措施,而不是简单地提升系统性能。
    瞬间访问高峰
    如果您的站点用于公布彩票的抽奖结果,最好使系统在中奖号码公布后的一段时间内能够响应上百万的请求。负载测试工具能够模拟 X 个用户同时访问测试站点。
    每个用户传送大量数据
    网上书店的多数用户可能只订购 1-5 书,但是大学书店可能会订购 5000 本有关心理学介绍的课本? 或者一个祖母为她的 50 个儿孙购买圣诞礼物(当然每个孩子都有自己的邮件地址) 系统能处理单个用户的大量数据吗?
    长时间的使用
    如果站点用于处理鲜花订单,那么至少希望它在母亲节前的一周内能持续运行。如果站点提供基于 web 的 email 服务,那么点最好能持续运行几个月,甚至几年。可能需要使用自动测试工具来完成这种类型的测试,因为很难通过手工完成这些测试。你可以想象组织100 个人同时点击某个站点。但是同时组织 100000 个人呢。通常,测试工具在第二次使用的时候,它创造的效益,就足以支付成本。而且,测试工具安装完成之后,再次使用的时候,只要点击几下。
    采取措施:采用测试工具WAS、ACT协助进行测试

    3 用户界面测试
    3.1 导航测试
    导航描述了用户在一个页面内操作的方式,在不同的用户接口控制之间,例如按钮、对话框、列表和窗口等;或在不同的连 接页面之间。通过考虑下列问题,可以决定一个Web应用系统是否易于导航:导航是否直观?Web系统的主要部分是否可通过主页存取?Web系统是否需要站 点地图、搜索引擎或其他的导航帮助?
    在一个页面上放太多的信息往往起到与预期相反的效果。Web应用系统的用户趋向于目的驱动,很快地扫描一个Web应 用系统,看是否有满足自己需要的信息,如果没有,就会很快地离开。很少有用户愿意花时间去熟悉Web应用系统的结构,因此,Web应用系统导航帮助要尽可 能地准确。
    导航的另一个重要方面是Web应用系统的页面结构、导航、菜单、连接的风格是否一致。确保用户凭直觉就知道Web应用系统里面是否还有内容,内容在什么地方。
    Web应用系统的层次一旦决定,就要着手测试用户导航功能,让最终用户参与这种测试,效果将更加明显。
    3.2 图形测试
    在Web应用系统中,适当的图片和动画既能起到广告宣传的作用,又能起到美化页面的功能。一个Web应用系统的图形可以包括图片、动画、边框、颜色、字体、背景、按钮等。图形测试的内容有:
    (1)要确保图形有明确的用途,图片或动画不要胡乱地堆在一起,以免浪费传输时间。Web应用系统的图片尺寸要尽量地小,并且要能清楚地说明某件事情,一般都链接到某个具体的页面。
    (2)验证所有页面字体的风格是否一致。
    (3)背景颜色应该与字体颜色和前景颜色相搭配。
    (4)图片的大小和质量也是一个很重要的因素,一般采用JPG或GIF压缩,最好能使图片的大小减小到 30k 以下
    (5)最后,需要验证的是文字回绕是否正确。如果说明文字指向右边的图片,应该确保该图片出现在右边。不要因为使用图片而使窗口和段落排列古怪或者出现孤行。
    通常来说,使用少许或尽量不使用背景是个不错的选择。如果您想用背景,那么最好使用单色的,和导航条一起放在页面的左边。另外,图案和图片可能会转移用户的注意力。
    3.3内容测试
    内容测试用来检验Web应用系统提供信息的正确性、准确性和相关性。
    信息的正确性是指信息是可靠的还是误传的。例如,在商品价格列表中,错误的价格可能引起财政问题甚至导致法律纠纷; 信息的准确性是指是否有语法或拼写错误。这种测试通常使用一些文字处理软件来进行,例如使用Microsoft Word的"拼音与语法检查"功能;信息的相关性是指是否在当前页面可以找到与当前浏览信息相关的信息列表或入口,也就是一般Web站点中的所谓"相关文 章列表"。
    对于开发人员来说,可能先有功能然后才对这个功能进行描述。大家坐在一起讨论一些新的功能,然后开始开发,在开发的 时候,开发人员可能不注重文字表达,他们添加文字可能只是为了对齐页面。不幸的是,这样出来的产品可能产生严重的误解。因此测试人员和公关部门一起检查内 容的文字表达是否恰当。否则,公司可能陷入麻烦之中,也可能引起法律方面的问题。测试人员应确保站点看起来更专业些。过分地使用粗体字、大字体和下划线可 能会让用户感到不舒服。在进行用户可用性方面的测试时,最好先请图形设计专家对站点进行评估。你可能不希望看到一篇到处是黑体字的文章,所以相信您也希望 自己的站点能更专业一些。最后,需要确定是否列出了相关站点的链接。很多站点希望用户将邮件发到一个特定的地址,或者从某个站点下载浏览器。但是如果用户 无法点击这些地址,他们可能会觉得很迷惑。
    3.4 表格测试
    需要验证表格是否设置正确。用户是否需要向右滚动页面才能看见产品的价格?把价格放在左边,而把产品细节放在右边是否更有效? 每一栏的宽度是否足够宽,表格里的文字是否都有折行?是否有因为某一格的内容太多,而将整行的内容拉长?
    3.5 整体界面测试
    整体界面是指整个Web应用系统的页面结构设计,是给用户的一个整体感。例如:当用户浏览Web应用系统时是否感到舒适,是否凭直觉就知道要找的信息在什么地方?整个Web应用系统的设计风格是否一致?
    对整体界面的测试过程,其实是一个对最终用户进行调查的过程。一般Web应用系统采取在主页上做一个调查问卷的形式,来得到最终用户的反馈信息。
    对所有的用户界面测试来说,都需要有外部人员(与Web应用系统开发没有联系或联系很少的人员)的参与,最好是最终用户的参与。
    4 兼容性测试
    4.1 平台测试
    市场上有很多不同的操作系统类型,最常见的有Windows、Unix、Macintosh、Linux等。Web 应用系统的最终用户究竟使用哪一种操作系统,取决于用户系统的配置。这样,就可能会发生兼容性问题,同一个应用可能在某些操作系统下能正常运行,但在另外 的操作系统下可能会运行失败。
    因此,在Web系统发布之前,需要在各种操作系统下对Web系统进行兼容性测试。
    4.2 浏览器测试
    浏览器是Web客户端最核心的构件,来自不同厂商的浏览器对Java,、JavaScript、 ActiveX、 plug-ins或不同的HTML规格有不同的支持。例如,ActiveX是Microsoft的产品,是为Internet Explorer而设计的,JavaScript是Netscape的产品,Java是Sun的产品等等。另外,框架和层次结构风格在不同的浏览器中也有 不同的显示,甚至根本不显示。不同的浏览器对安全性和Java的设置也不一样。
    测试浏览器兼容性的一个方法是创建一个兼容性矩阵。在这个矩阵中,测试不同厂商、不同版本的浏览器对某些构件和设置的适应性。
    4.3 分辨率测试
    页面版式在 640x400、600x800 或 1024x768 的分辨率模式下是否显示正常? 字体是否太小以至于无法浏览? 或者是太大? 文本和图片是否对齐?
    4.4 Modem/连接速率
    是否有这种情况,用户使用 28.8 modem下载一个页面需要 10 分钟,但测试人员在测试的时候使用的是 T1 专线? 用户在下载文章或演示的时候,可能会等待比较长的时间,但却不会耐心等待首页的出现。最后,需要确认图片不会太大。
    4.5 打印机
    用户可能会将网页打印下来。因此网也在设计的时候要考虑到打印问题,注意节约纸张和油墨。有不少用户喜欢阅读而不是 盯着屏幕,因此需要验证网页打印是否正常。有时在屏幕上显示的图片和文本的对齐方式可能与打印出来的东西不一样。测试人员至少需要验证订单确认页面打印是 正常的。
    4.6 组合测试
    最后需要进行组合测试。600x800 的分辨率在 MAC 机上可能不错,但是在 IBM 兼容机上却很难看。在 IBM 机器上使用 Netscape 能正常显示,但却无法使用 Lynx 来浏览。如果是内部使用的 web 站点,测试可能会轻松一些。如果公司指定使用某个类型的浏览器,那么只需在该浏览器上进行测试。如果所有的人都使用 T1 专线,可能不需要测试下载施加。(但需要注意的是,可能会有员工从家里拨号进入系统) 有些内部应用程序,开发部门可能在系统需求中声明不支持某些系统而只支持一些那些已设置的系统。但是,理想的情况是,系统能在所有机器上运行,这样就不会 限制将来的发展和变动。
    采取措施:根据实际情况,采取等价划分的方法,列出兼容性矩阵

    5 安全测试
    即使站点不接受信用卡支付,安全问题也是非常重要的。Web 站点收集的用户资料只能在公司内部使用。如果用户信息被黑客泄露,客户在进行交易时,就不会有安全感。
    5.1 目录设置
    Web 安全的第一步就是正确设置目录。每个目录下应该有 index.html 或 main.html 页面,这样就不会显示该目录下的所有内容。我服务的一个公司没有执行这条规则。我选中一幅图片,单击鼠标右键,找到该图片所在的路径"… com/objects/images"。然后在浏览器地址栏中手工输入该路径,发现该站点所有图片的列表。这可能没什么关系。我进入下一级目录 "…com/objects" ,点击 jackpot。在该目录下有很多资料,其中引起我注意的是已过期页面。该公司每个月都要更改产品价格,并且保存过期页面。我翻看了一下这些记录,就可以 估计他们的边际利润以及他们为了争取一个合同还有多大的降价空间。如果某个客户在谈判之前查看了这些信息,他们在谈判桌上肯定处于上风。
    5.2 SSL
    很多站点使用 SSL 进行安全传送。你知道你进入一个 SSL 站点是因为浏览器出现了警告消息,而且在地址栏中的 HTTP 变成 HTTPS。如果开发部门使用了SSL,测试人员需要确定是否有相应的替代页面(适用于3.0 以下版本的浏览器,这些浏览器不支持SSL。当用户进入或离开安全站点的时候,请确认有相应的提示信息。是否有连接时间限制?超过限制时间后出现什么情 况?
    5.3 登录
    有些站点需要用户进行登录,以验证他们的身份。这样对用户是方便的,他们不需要每次都输入个人资料。你需要验证系统 阻止非法的用户名/口令登录,而能够通过有效登录。用户登录是否有次数限制? 是否限制从某些 IP 地址登录? 如果允许登录失败的次数为3,你在第三次登录的时候输入正确的用户名和口令,能通过验证吗? 口令选择有规则限制吗?  是否可以不登陆而直接浏览某个页面?
    Web应用系统是否有超时的限制,也就是说,用户登陆后在一定时间内(例如15分钟)没有点击任何页面,是否需要重新登陆才能正常使用。
    5.4 日志文件
    在后台,要注意验证服务器日志工作正常。日志是否记所有的事务处理? 是否记录失败的注册企图? 是否记录被盗信用卡的使用? 是否在每次事务完成的时候都进行保存? 记录IP 地址吗? 记录用户名吗?
    5.5 脚本语言
    脚本语言是常见的安全隐患。每种语言的细节有所不同。有些脚本允许访问根目录。其他只允许访问邮件服务器,但是经验 丰富的黑客可以将服务器用户名和口令发送给他们自己。找出站点使用了哪些脚本语言,并研究该语言的缺陷。还要需要测试没有经过授权,就不能在服务器端放置 和编辑脚本的问题。最好的办法是订阅一个讨论站点使用的脚本语言安全性的新闻组。 

    6 接口测试
    在很多情况下,web 站点不是孤立。Web 站点可能会与外部服务器通讯,请求数据、验证数据或提交订单。
    6.1服务器接口
    第一个需要测试的接口是浏览器与服务器的接口。测试人员提交事务,然后查看服务器记录,并验证在浏览器上看到的正好是服务器上发生的。测试人员还可以查询数据库,确认事务数据已正确保存。
    这种测试可以归到功能测试中的表单测试和数据校验测试中
    6.2 外部接口
    有些 web 系统有外部接口。例如,网上商店可能要实时验证信用卡数据以减少欺诈行为的发生。测试的时候,要使用 web 接口发送一些事务数据,分别对有效信用卡、无效信用卡和被盗信用卡进行验证。如果商店只使用 Visa 卡和 Mastercard 卡, 可以尝试使用 Discover 卡的数据。(简单的客户端脚本能够在提交事务之前对代码进行识别,例如 3 表示 American Express,4 表示 Visa,5 表示 Mastercard,6 代表Discover。)通常,测试人员需要确认软件能够处理外部服务器返回的所有可能的消息。
    这种情况在远程抄表中可能会体现到
    6.3 错误处理
    最容易被测试人员忽略的地方是接口错误处理。通常我们试图确认系统能够处理所有错误,但却无法预期系统所有可能的错 误。尝试在处理过程中中断事务,看看会发生什么情况?订单是否完成?尝试中断用户到服务器的网络连接。尝试中断 web 服务器到信用卡验证服务器的连接。在这些情况下,系统能否正确处理这些错误?是否已对信用卡进行收费?如果用户自己中断事务处理,在订单已保存而用户没有 返回网站确认的时候,需要由客户代表致电用户进行订单确认。
    采取措施:在理解需求的基础上,充分发挥想象力,尽量比较全面的列出各种异常情况。

    7 结论
       无论你在测试 internet、intranet 或者是 extranet 应用程序,web 测试相对于非 web 测试来说都是更具挑战性的工作。用户对 web 页面质量有很高的期望。在很多情况下,就像业务功能一样,页面用于维护和发展公共关系,所以第一印象非常重要。

    [ 本帖最后由 月上百合 于 2010-6-23 10:47 编辑 ]
  • oracle常用命令

    2010-06-21 21:03:42

    一、ORACLE的启动和关闭
    1
    、在单机环境下
    要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下
    su - oracle
    a
    、启动ORACLE系统
    oracle>svrmgrl
    SVRMGR>connect internal
    SVRMGR>startup
    SVRMGR>quit
    b
    、关闭ORACLE系统
    oracle>svrmgrl
    SVRMGR>connect internal
    SVRMGR>shutdown
    SVRMGR>quit
    启动oracle9i数据库命令:
    $ sqlplus /nolog
    SQL*Plus: Release 9.2.0.1.0 - Production on Fri Oct 31 13:53:53 2003
    Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
    SQL> connect / as sysdba  
    Connected to an idle instance.
    SQL> startup^C
    SQL> startup
    ORACLE instance started.
    2
    、在双机环境下
    要想启动或关闭ORACLE系统必须首先切换到root用户,如下
    su 
     root
    a
    、启动ORACLE系统
    hareg 
    y oracle
    b
    、关闭ORACLE系统
    hareg 
    n oracle
    Oracle
    数据库有哪几种启动方式
    说明:
    有以下几种启动方式:
    1
    startup nomount
    非安装启动,这种方式启动下可执行:重建控制文件、重建数据库
    读取init.ora文件,启动instance,即启动SGA和后台进程,这种启动只需要init.ora文件。
    2
    startup mount dbname
    安装启动,这种方式启动下可执行:
    数据库日志归档、
    数据库介质恢复、
    使数据文件联机或脱机,
    重新定位数据文件、重做日志文件。
    执行“nomount”,然后打开控制文件,确认数据文件和联机日志文件的位置,
    但此时不对数据文件和日志文件进行校验检查。
    3
    startup open dbname
    先执行“nomount”,然后执行“mount”,再打开包括Redo log文件在内的所有数据库文件,
    这种方式下可访问数据库中的数据。
    4
    startup,等于以下三个命令
    startup nomount
    alter database mount
    alter database open
    5
    startup restrict
    约束方式启动
    这种方式能够启动数据库,但只允许具有一定特权的用户访问
    非特权用户访问时,会出现以下提示:
    ERROR

    ORA-01035: ORACLE 
    只允许具有 RESTRICTED SESSION 权限的用户使用
    6
    startup force
    强制启动方式
    当不能关闭数据库时,可以用startup force来完成数据库的关闭
    先关闭数据库,再执行正常启动数据库命令
    7
    startup pfile=参数文件名
    带初始化参数文件的启动方式
    先读取参数文件,再按参数文件中的设置启动数据库
    例:startup pfile=E:Oracleadminoradbpfileinit.ora
    8
    startup EXCLUSIVE
    二、用户如何有效地利用数据字典
      
     ORACLE的数据字典是数据库的重要组成部分之一,它随着数据库的产生而产生随着数据库的变化而变化,
    体现为sys用户下的一些表和视图。数据字典名称是大写的英文字符。
        
    数据字典里存有用户信息、用户的权限信息、所有数据对象信息、表的约束条件、统计分析数据库的视图等。
    我们不能手工修改数据字典里的信息。
      很多时候,一般的ORACLE用户不知道如何有效地利用它。
      dictionary   全部数据字典表的名称和解释,它有一个同义词dict
        dict_column
       全部数据字典表里字段名称和解释
        
    如果我们想查询跟索引有关的数据字典时,可以用下面这条SQL语句:
        SQL>select * from dictionary where instr(comments,'index')>0;
        
    如果我们想知道user_indexes表各字段名称的详细含义,可以用下面这条SQL语句:
        SQL>select column_name,comments from dict_columns where table_name='USER_INDEXES';
        
    依此类推,就可以轻松知道数据字典的详细名称和解释,不用查看ORACLE的其它文档资料了。
        
    下面按类别列出一些ORACLE用户常用数据字典的查询使用方法。
        1
    、用户
                
    查看当前用户的缺省表空间
                SQL>select username,default_tablespace from user_users;
            
    查看当前用户的角色
            SQL>select * from user_role_privs;
            
    查看当前用户的系统权限和表级权限
            SQL>select * from user_sys_privs;
            SQL>select * from user_tab_privs;
        2
    、表
                
    查看用户下所有的表
                SQL>select * from user_tables;
                
    查看名称包含log字符的表
                SQL>select object_name,object_id from user_objects
                    where instr(object_name,'LOG')>0;
                
    查看某表的创建时间
                SQL>select object_name,created from user_objects where object_name=upper('&table_name');
                
    查看某表的大小
                SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments
                    where segment_name=upper('&table_name');
                
    查看放在ORACLE的内存区里的表
                SQL>select table_name,cache from user_tables where instr(cache,'Y')>0;
        3
    、索引
                
    查看索引个数和类别
                SQL>select index_name,index_type,table_name from user_indexes order by table_name;
                
    查看索引被索引的字段
                SQL>select * from user_ind_columns where index_name=upper('&index_name');
                
    查看索引的大小
                SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments
                    where segment_name=upper('&index_name');
        4
    、序列号
                
    查看序列号,last_number是当前值
                SQL>select * from user_sequences;
        5
    、视图
                
    查看视图的名称
                SQL>select view_name from user_views;
                
    查看创建视图的select语句
                SQL>set view_name,text_length from user_views;
                SQL>set long 2000;                
    说明:可以根据视图的text_length值设定set long 的大小
                SQL>select text from user_views where view_name=upper('&view_name');
        6
    、同义词
                
    查看同义词的名称
                SQL>select * from user_synonyms;
        7
    、约束条件
                
    查看某表的约束条件
                SQL>select constraint_name, constraint_type,search_condition, r_constraint_name
                    from user_constraints where table_name = upper('&table_name');
            SQL>select c.constraint_name,c.constraint_type,cc.column_name
                from user_constraints c,user_cons_columns cc
                where c.owner = upper('&table_owner') and c.table_name = upper('&table_name')
                and c.owner = cc.owner and c.constraint_name = cc.constraint_name
                order by cc.position;
        8
    、存储函数和过程
                
    查看函数和过程的状态
                SQL>select object_name,status from user_objects where object_type='FUNCTION';
                SQL>select object_name,status from user_objects where object_type='PROCEDURE';
                
    查看函数和过程的源代码
                SQL>select text from all_source where owner=user and name=upper('&plsql_name');
    三、查看数据库的SQL
    1
    、查看表空间的名称及大小
        select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size
        from dba_tablespaces t, dba_data_files d
        where t.tablespace_name = d.tablespace_name
        group by t.tablespace_name;
    2
    、查看表空间物理文件的名称及大小
        select tablespace_name, file_id, file_name,
        round(bytes/(1024*1024),0) total_space
        from dba_data_files
        order by tablespace_name;
    3
    、查看回滚段名称及大小
        select segment_name, tablespace_name, r.status,
        (initial_extent/1024) InitialExtent,(next_extent/1024) NextExtent,
        max_extents, v.curext CurExtent
        From dba_rollback_segs r, v$rollstat v
        Where r.segment_id = v.usn(+)
        order by segment_name ;
    4
    、查看控制文件
        select name from v$controlfile;
    5
    、查看日志文件
        select member from v$logfile;
    6
    、查看表空间的使用情况
        select sum(bytes)/(1024*1024) as free_space,tablespace_name
        from dba_free_space
        group by tablespace_name;
        SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE,
        (B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE"
        FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE C
        WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE_NAME;
    7
    、查看数据库库对象
        select owner, object_type, status, count(*) count# from all_objects group by owner, object_type, status;
    8
    、查看数据库的版本
        Select version FROM Product_component_version
        Where SUBSTR(PRODUCT,1,6)='Oracle';
    9
    、查看数据库的创建日期和归档方式
        Select Created, Log_Mode, Log_Mode From V$Database;
    四、ORACLE用户连接的管理
    用系统管理员,查看当前数据库有几个用户连接:
    SQL> select username,sid,serial# from v$session;
    如果要停某个连接用
    SQL> alter system kill session 'sid,serial#';
    如果这命令不行,找它UNIX的进程数
    SQL> select pro.spid from v$session ses,v$process pro where ses.sid=21 and ses.paddr=pro.addr;
    说明:21是某个连接的sid
    然后用 kill 命令杀此进程号。

    五、SQL*PLUS使用
    a
    、近入SQL*Plus
    $sqlplus 
    用户名/密码
       
    退出SQL*Plus
    SQL>exit
    b
    、在sqlplus下得到帮助信息
    列出全部SQL命令和SQL*Plus命令
    SQL>help
    列出某个特定的命令的信息
    SQL>help 
    命令名

    c
    、显示表结构命令DESCRIBE
    SQL>DESC 
    表名

    d
    SQL*Plus中的编辑命令
    显示SQL缓冲区命令
    SQL>L

    修改SQL命令
    首先要将待改正行变为当前行
    SQL>n
    CHANGE命令修改内容
    SQL>c/
    /
    重新确认是否已正确
    SQL>L

    使用INPUT命令可以在SQL缓冲区中增加一行或多行
    SQL>i
    SQL>
    输入内容

    e
    、调用外部系统编辑器
    SQL>edit 
    文件名
    可以使用DEFINE命令设置系统变量EDITOR来改变文本编辑器的类型,在login.sql文件中定义如下一行
    DEFINE_EDITOR=vi

    f
    、运行命令文件
    SQL>START test
    SQL>@test

    常用SQL*Plus语句
    a
    、表的创建、修改、删除
    创建表的命令格式如下:
    create table 
    表名 (列说明列表);

    为基表增加新列命令如下:
    ALTER TABLE 
    表名 ADD (列说明列表)
    例:为test表增加一列Age,用来存放年龄
        sql>alter table test
            add 
    Age number(3));

    修改基表列定义命令如下:
    ALTER TABLE 
    表名
    MODIFY 
    (列名 数据类型)
    例:将test表中的Count列宽度加长为10个字符
        sql>alter atble test
            modify 
    County char(10));

    b
    、将一张表删除语句的格式如下:
    DORP TABLE 
    表名;
    例:表删除将同时删除表的数据和表的定义
    sql>drop table test

    c
    、表空间的创建、删除


    六、ORACLE逻辑备份的SH文件

    完全备份的SH文件:exp_comp.sh

    rq=` date +"%m%d" `

    su - oracle -c "exp system/manager full=y inctype=complete file=/oracle/export/db_comp$rq.dmp"

    累计备份的SH文件:exp_cumu.sh

    rq=` date +"%m%d" `

    su - oracle -c "exp system/manager full=y inctype=cumulative file=/oracle/export/db_cumu$rq.dmp"

    增量备份的SH文件: exp_incr.sh

    rq=` date +"%m%d" `

    su - oracle -c "exp system/manager full=y inctype=incremental file=/oracle/export/db_incr$rq.dmp"

    root
    用户crontab文件
    /var/spool/cron/crontabs/root
    增加以下内容

    0 2 1 * * /oracle/exp_comp.sh

    30 2 * * 0-5 /oracle/exp_incr.sh

    45 2 * * 6 /oracle/exp_cumu.sh

    当然这个时间表可以根据不同的需求来改变的,这只是一个例子。


    七、

  • linux常用命令

    2010-06-21 21:01:31

    1、最常用的命令列表

    下面列出十个在使用linux过程中使用频率最高的命令。这里只作简单介绍,具体用法请参考后面内容。

    cat,显示文件内容。cd,改变目录路径。cp,复制文件。find,查找文件。grep,搜索、过滤信息。ls,列出目录信息。more,分页显示。rm,删除文件或目录。vi,调用vi文本编辑器。who,显示登录用户信息。

    Poweroff 关机,shutdown关机重启,file 显示文件类型,mkdir创建目录,grep 在指定的文本文件中查找指定的字符串,dd转换及输入数据,mv 移动文件或目录,文件或目录改名, diff比较并显示文件差异的部分,comm比较文件内容,ln建立文件之间的链接,rmdir删除空目录,zip压缩文件或目录,unlink删除软链接,clear清楚界面,

    2. chmod----改变一个或多个文件的存取模式(mode)

    chmod [options] mode files

    只能文件属主或特权用户才能使用该功能来改变文件存取模式。mode可以是数字形式或以who opcode permission形式表示。who是可选的,默认是a(所有用户)。只能选择一个opcode(操作码)。可指定多个mode,以逗号分开。

    options

    -c--changes

    只输出被改变文件的信息

    -f--silent--quiet

    chmod不能改变文件模式时,不通知文件的用户

    --help

    输出帮助信息。

    -R--recursive

    可递归遍历子目录,把修改应到目录下所有文件和子目录

    --reference=filename

    参照filename的权限来设置权限

    -v--verbose

    无论修改是否成功,输出每个文件的信息

    --version

    输出版本信息。

    who

    u 用户     g       o 其它     a 所有用户(默认)

    opcode

    + 增加权限    - 删除权限     = 重新分配权限

    permission

    r      w    x 执行    s 设置用户(或组)ID

    t 设置粘着位(sticky bit),防止文件或目录被非属主删除

    u 用户的当前权限   g 组的当前权限    o 其他用户的当前权限

    作为选择,我们多数用三位八进制数字的形式来表示权限,第一位指定属主的权限,第二位指定组权限,第三位指定其他用户的权限,每位通过4()2()1(执行)三种数值的和来确定权限。如6(4+2)代表有读写权,7(4+2+1)有读、写和执行的权限。

    还可设置第四位,它位于三位权限序列的前面,第四位数字取值是421,代表意思如下:

    4,执行时设置用户ID,用于授权给基于文件属主的进程,而不是给创建此进程的用户。

    2,执行时设置用户组ID,用于授权给基于文件所在组的进程,而不是基于创建此进程的用户。

    1,设置粘着位。

    实例:

    $ chmod u+x file               file的属主增加执行权限

    $ chmod 751 file              file的属主分配读、写、执行(7)的权限,给file的所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限

    $ chmod u=rwx,g=rx,o=x file    上例的另一种形式

    $ chmod =r file                为所有用户分配读权限

    $ chmod 444 file               同上例

    $ chmod a-wx,a+r               同上例

    $ chmod -R u+r directory       递归地给directory目录下所有文件和子目录的属主分配读的权限

    $ chmod 4755           设置用ID,给属主分配读、写和执行权限,给组和其他用户分配读、执行的权限。

    3. chgrp----修改文件或目录的所属组

    chgrp [options] newgroup files/directorys

    组名可以用组的ID号,也可用/etc/group中的组名。只有文件的属主或特权用户(root)才可改变它的组。

    options

    -c--changes 只输出被改变文件的信息

    -f--silent--quiet 当不能改变文件组属性时,不通知文件的用户

    --help 输出帮助信息。

    -R--recursive 可递归遍历子目录,把修改应到目录下所有文件和子目录

    --reference=filename 参照filename的组信息来设置当前文件的组

    -v--verbose 输出详细信息

    --version 输出版本信息。

    实例:

    $ chgrp root test           test的所属组更改root

    $ chgrp -R mysql test       递归地把test目录及该目录下所有文件和子目录的组属性设置成mysql

    $ chgrp root *              把当前目录中所有文件的组属性设置成root

    4. chown----设置一个或多个文件或目录的属主身份

    chown [options] newowner files/directorys

    新的属主可以是用户的ID号,也可以是/etc/passwd里的登录名。chown也可接受这样的形式:newowner:newgroupnewowner.newgroup。同时改变所属组的属性。如果句点和冒号后没有组名,则组改变为新属主的组。只有文件或目录的当前属主才有权改变它的属性。

    options

    -c--changes 只输出被改变文件的信息

    --dereference 跟踪符号链接

    -h--no-dereference 改变每一个符号链的属主身份,而不是被引用文件的属主身份

    -f--silent--quiet 当不能改变文件属主属性时,不通知文件的用户

    --help 输出帮助信息。

    -R--recursive 可递归遍历子目录,把修改应到目录下所有文件和子目录

    --reference=filename 把属主改变成filename文件的属主

    -v--verbose 输出详细信息

    --version 输出版本信息。

    5. date----显示、修改系统时间

    date [options][+format][date]

    $ date -s 06/09/2004     修改日期(按月日年格式)

    $ date -s 13:56:00         修改时间(按时分秒格式)

    $ date -r test                 显示test文件最后一次的修改时间

    $ date +'%Y-%m-%d'   yyyy-mm-dd格式显示日期,其它格式请参考帮助

    $ clock -r             查询BIOS时间

    $ clock -w           把修改后的时间写回BIOS

    6. df-----显示已安装文件系统的磁盘容量状态

    df [options][name]

    $ df -h                 以友好的格式输出所有已安装文件系统的磁盘容量状态

    $ df -m /home      M为单位输出home目录的磁盘容量状态

    $ df -k                 K为单位输出所有已安装文件系统的磁盘容量状态

    $ df -i                  报告空闲的、用过的或部份用过的(百份比)索引节点

    $ df -t ext3 仅显示文件类型为ext3的文件系统的磁盘状态

    $ df -x ext3 仅显示文件类型不为ext3的文件系统的磁盘状态

    $ df -T                 除显示文件系统磁盘容量大小外还显示文件系统类型

    $ df -l                  仅显示本地文件系统。

    7. fdisk----分区表查询工具

    fdisk [options][driver]

    $ fdisk -l          列出所有分区信息

    8. hdparm----硬盘管理

    hdparm [options][driver]

    $ hdparm -d  /dev/hda           显示硬盘的DMA模式是不打开,1代表on

    $ hdparm -tT /dev/hda           测试硬盘的写性能

    $ hdparm -d1 /dev/hda           开启dma功能

    $ hdparm -d1 -X68 -c3 -m16 /dev/hda 

    选项说明:

    -c3:把硬盘的IO模式从16位转成32位。

    -m16:改变硬盘的多路扇区的读功能,-m16使硬盘在一次I/O中断中读入16个扇区的数据。

  • oracle Database 10g for Windows安装方法

    2010-06-11 17:06:00

    基本安装流程如下:
    一、安装
    1.运行setup.exe出现图1所示的“Oracle Database 10g安装”画面。
        选中“高级安装”,以便为SYS、SYSTEM设置不同的口令,并进行选择性配置。
    2.“下一步”进入“Oracle Universal Installer:指定文件位置”,见图2。
        设置源“路径”、“名称”和目的“路径”,见图3所示。
      “名称”对应ORACLE_HOME_NAME环境变量
      “路径”对应ORACLE_HOME环境变量
    3.“下一步” 进入“Oracle Universal Installer:选择安装类型”,见图4。

    4.保持默认值,下一步,进入“Oracle Universal Installer:选择数据库配置”,见图5。

    5.保持默认值,下一步,进入“Oracle Universal Installer:指定数据库配置选项”,见图6。

        指定“全局数据库名”和“SID”,对这两个参数的指定一般相同,例如:oralib。
        也可以将“全局数据库名”设置为域名。例如:lib.hunnu.edu.cn
        如果选择“创建带样本方案的数据库,OUI会在数据库中创建HR、OE、SH等范例方案(sample schema)
    6.下一步,进入“Oracle Universal Installer:选择数据库管理选项”,见图7。

    7.保持默认值,下一步,进入“Oracle Universal Installer:指定数据库文件存储选项”,见图8。

    8.保持默认值,下一步,进入“Oracle Universal Installer:指定备份和恢复选项”,见图9。

    9.保持默认值,单击“下一步”,进入“Oracle Universal Installer:指定数据库方案的口令”,如图10所示。
        对不同的帐户设置不同的口令。
    10.单击“下一步”,继续安装,进入“Oracle Universal Installer:概要”,如图11所示。

    12.单击“安装”,开始安装过程,大约半小时。

    13.数据库创建完成时,显示“Database Configuration Assistant”窗口,如图12所示。

    14.单击“口令管理”,进入“口令管理”窗口,如图13所示。

    15.解锁用户HR、OE和SCOTT,输入HR和OE的口令,SCOTT的默认口令为tiger。
    16.单击“确定”返回“Database Configuration Assistant”窗口。
    17.在图15所示窗口单击“确定”,进入“Oracle Universal Installer:安装 结束”窗口,如图14所示。
    18.检查,单击“退出”,完成安装。
    19.在自动打开的浏览器中以sys账户sysdba身份登录10g的企业管理器。

    第一次要接受license,单击Iagree,以后就不用了。

    二、查看安装情况
    1.目录结构
        默认ORACLE_BASE
        在Windows中,默认的ORACLE_BASE目录是:
    D:\oracle\product\10.1.0
        在UNIX中,默认的ORACLE_BASE目录是:
    /pm/app/oracle/10.1.0
    所有的ORACLE软件文件和数据库文件都位于ORACLE_BASE下面的子目录中。
        默认ORACLE_HOME
        在Windows中,默认的ORACLE_HOME目录是:
    D:\oracle\product\10.1.0\libdb
        在UNIX中,默认的ORACLE_HOME目录是:
    /pm/app/oracle/10.1.0/libdb
    orACLE_HOME是访问所有ORACLE软件的路径。
        Admin文件夹,存储初始化文件和日志文件
    2.查看“服务”管理器中相关的Oracle服务。

       oracleCSService服务在做10G RAC的時候才會有。CSS(Cluster Synchronization Service)

    3.注册表

        语言的设置
    名称                    数据
    NLS_LANG             SIMPLIFIED CHINESE_CHINA.ZHS16GBK
    其中:SIMPLIFIED CHINESE表示简体中文
            CHINA表示中文日期格式
            ZHS16GBK表示编码

    NLS_LANG格式:NLS_LANG=language_territory.charset
    有三个组成部分(语言、地域和字符集),每个组成成分控制了NLS子集的特性。三个成分可以任意组合,例如:
    AMERICAN_AMERICA.US7SCII
    JPANESE_JAPAN.JA16EUC
    其中:language 指定服务器消息的语言。
    territory 指定服务器的日期和数字格式。
    Charset 指定字符集

    还有一些子集可以更明确定义NLS_LANG参数:
    NLS_DATE_FORMAT 缺省的日期格式
    NLS_DATE_LANGUAGE 缺省的语言
    NLS_NUMBERIC_CHARACTERS 小数字符和组分隔开
    NLS_CURRENCY 本地货币字符
    NLS_ISO_CURRENCY ISO货币字符
    NLS_SORT 字符排序序列

    如果使用英文,将NLS_LANG的值改为:
    AMERICAN_AMERICA.WE8ISO8859P1

    englishi_ America.US7SCII
    在SQL/PLUS中,运行下面的SQL语句,检查所连接数据库的字符集:
    SQL> select userenv('language') from dual;
      USERENV('LANGUAGE')
      ----------------------------------------------------
      SIMPLIFIED CHINESE_CHINA.ZHS16GBK
    4.PATH环境变量
    D:\oracle\product\10.1.0\libdb\bin;D:\oracle\product\10.1.0\libdb\jre\1.4.2\bin\client;D:\oracle\product\10.1.0\libdb\jre\1.4.2\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem

    5.开始 > 所有程序 中增加Oracle - oraDb10g_home文件夹

    6.oracle 10g 更改8080端口号(如果需要)
    在sqlplus下执行:
    call dbms_xdb.cfg_update(updateXML( dbms_xdb.cfg_get()
      , '/xdbconfig/sysconfig/protocolconfig/httpconfig/http-port/text()'
      , 9000))
    /
    commit;

    三、测试安装好的Oracle 10g是否能正常运行
    在安装过程中,OUI会在 <ORACLE_HOME>\install下创建两个文件:
    readme.txt:记录各种Oracle应用程序的URL与端口。
    Portlist.ini:记录Oracle应用程序所使用的端口。
    1.登录Enterprise Manager 10g Database Control
    与以前的版本不同,Oracle企业管理器只有B/S模式。在Web浏览器中输入下列URL:
    http://<Oracle服务器名称>:5500/em
    例如:
    http://localhost:5500/em
    进入Enterprise Manager 10g登录窗口。用SYS帐户,以SYSDBA身份登录Oracle数据库。

    如果是第一次登录时,先进入Oracle 10g版权页。

    单击右下方的“I Agree”按钮,进入Enterprise Manager 10g。

    现在我们可以用来管理Oracle数据库了。

    2.使用iSQL*Pls登录Oracle数据库
    iSQL*Plus是B/S模式的客户端工具。在Web浏览器中输入下列URL:
    http://<Oracle服务器名称>:5560/isqlplus
    例如:
    http://localhost:5560/isqlplus
    进入iSQL*Plus登录窗口。用hr帐户登录Oracle数据库。

    注:如果不知道HR的口令,现用sys登录,修改HR的口令,例如,将HR的口令改为hr:alter user hr identified by hr;
    登录进入iSQL*Plus工作区后,可以在工作区输入SQL*Plus指令、SQL语句与PL/SQL语句。

    3.使用SQL*Plus登录Oracle数据库
    SQL*Plus是C/S模式的客户端工具程序。
        单击“开始” > “所有程序” > “Oracle – oracle10g_home” > “Application Development” > “SQL Plus”
        在登录窗口中输入hr帐号与口令

    4.使用命令行SQL*Plus登录Oracle数据库
    传统的SQL*Plus是一个命令行客户端程序。在命令窗口中输入图27中所示的命令进行测试。
     
  • Linux 常用命令

    2010-06-08 17:28:48

    系统
    # uname -a               # 查看内核/操作系统/CPU信息
    # head -n 1 /etc/issue   # 查看操作系统版本
    # cat /proc/cpuinfo      # 查看CPU信息
    # hostname               # 查看计算机名
    # lspci -tv              # 列出所有PCI设备
    # lsusb -tv              # 列出所有USB设备
    # lsmod                  # 列出加载的内核模块
    # env                    # 查看环境变量
    资源
    # free -m                # 查看内存使用量和交换区使用量
    # df -h                  # 查看各分区使用情况
    # du -sh <目录名>        # 查看指定目录的大小
    # grep MemTotal /proc/meminfo   # 查看内存总量
    # grep MemFree /proc/meminfo    # 查看空闲内存量
    # uptime                 # 查看系统运行时间、用户数、负载
    # cat /proc/loadavg      # 查看系统负载
    磁盘和分区
    # mount | column -t      # 查看挂接的分区状态
    # fdisk -l               # 查看所有分区
    # swapon -s              # 查看所有交换分区
    # hdparm -i /dev/hda     # 查看磁盘参数(仅适用于IDE设备)
    # dmesg | grep IDE       # 查看启动时IDE设备检测状况
    网络
    # ifconfig               # 查看所有网络接口的属性
    # iptables -L            # 查看防火墙设置
    # route -n               # 查看路由表
    # netstat -lntp          # 查看所有监听端口
    # netstat -antp          # 查看所有已经建立的连接
    # netstat -s             # 查看网络统计信息
    进程
    # ps -ef                 # 查看所有进程
    # top                    # 实时显示进程状态
    用户
    # w                      # 查看活动用户
    # id <用户名>            # 查看指定用户信息
    # last                   # 查看用户登录日志
    # cut -d: -f1 /etc/passwd   # 查看系统所有用户
    # cut -d: -f1 /etc/group    # 查看系统所有组
    # crontab -l             # 查看当前用户的计划任务
    服务
    # chkconfig --list       # 列出所有系统服务
    # chkconfig --list | grep on    # 列出所有启动的系统服务
    程序
    # rpm -qa                # 查看所有安装的软件包
  • Oracle 10g for Windows 简体中文版的安装过程

    2010-06-08 10:12:11

    我的配置

        操作系统:Windows Server 2003 sp2

        内存:256M以上

        1.下载Oracle 10g 地址

         http://www.oracle.com/technology/global/cn/software/products/database/oracle10g/index.html

        2.解压缩后就可以安装了。执行SETUP.EXE ,在DOS下运行片刻进入ORACLE 10G

        3.安装-安装方法界面在这里你要指定自己的安装方法,ORACLE提供了两种安装方法:基本安装(I)和高级安装(A)

        基本安装(I):使用标准配置选项(需要输入的内容最少)执行完整的10g安装。

                             注意:此选项使用文件系统进行存储,并将一个口令用于所有数据库帐户(SYS、SYSTEM、SYSMAN、DBSNMP)。要设置安装的主目录、安装类型和创建启动数据库。

        高级安装(A):高级选项,为不同的帐户设置不同的口令,选择数据库语言,产品语言,自动备份,定制安装以及备用存储选项(自动存储管理)。

    基本安装

        2009-03-07_145705

    测试成功

    2009-03-07_150528

    安装信息

    2009-03-07_150557

    2009-03-07_150614

    配置数据库

    2009-03-07_153453

    安装结束,已安装产品

    2009-03-07_155720

        点击口令管理,可以设置用户口令,

    2009-03-07_155514        

    高级安装

    2009-03-07_203534

        选择安装类型:(企业版、标准版、个人版、定制)。这里选择企业版。下一步。

    2009-03-07_203621

        指定主目录详细信息:包括安装产品的名称及安装产品的完整路径。选择后下一步。

    2009-03-07_203638

        进入产品特定先决条件的检查界面:在这里要检查安装ORACLE所需的操作系统需求、物理内存需求、网络配置需求等等。检查后的结果就在该界面下边的下拉框中。可能个别的检查结果会失败,但不会影响安装。

    2009-03-07_203658

        如果本机上还安装了其他版本的数据库的话,可能会询问是否升级现有的数据库。选择否。下一步。

        选择配置选项(创建数据库、配置自动存储管理(ASM)、仅安装数据库软件)。

    2009-03-07_203807

        选择数据库配置即选择你要创建的数据库类型:(一般用途、事务处理、数据仓库、高级)。

    2009-03-07_203835

        指定数据库配置选项(数据库命名:全局数据库名和系统标示符SID、数据库字符集、数据库示例是否创建带样本的数据库)。

    2009-03-07_203901

        选择数据库管理选项:默认为使用database control管理数据库,是否启用电子邮件通知。

    2009-03-07_203914

        指定数据库存储选项:选定要创建数据库的存储机制(文件系统即你创建的数据库的文件的位置、自动存储管理、裸设备。)

    2009-03-07_203949

        指定备份和恢复选项:选择是否起用自动备份选项。

    2009-03-07_203958

        指定数据库方案的口令。包括SYS、SYSTEM、SYSMAN、DBSNMP的口令。注意口令的首字符为字母

    2009-03-07_204034

        最后生成ORACLE UNIVERSAL INSTALL的概要文件。仔细检查概要文件确定自己的选项,如果没有什么更改的了。

               2009-03-07_204058

    点安装就开始ORACLE 10g的安装了

    2009-03-07_204108

    配置数据库

    2009-03-07_211152

    2009-03-07_155720

    安装完成

    安装客户端

    解压Client软件包,运行Setup.exe 启动安装程序

    2009-03-08_103859

    安装类型-选择管理员

    2009-03-08_103937

    指定安装目录

    2009-03-08_103947

    环境检查

    2009-03-08_104003

    点击安装,开始安装

    2009-03-08_104026

    安装进度

    2009-03-08_104042

    选择执行典型配置,如果需要以后再通过Net Manager工具配置

    2009-03-08_105622

    下一步

    2009-03-08_105631

    安装完成

    2009-03-08_105645

    from : http://www.cnblogs.com/TerryFeng/archive/2009/03/08/1406147.html

  • B/S与B/C

    2010-06-03 16:38:39

    有些东西只是看个眼熟,觉的会就不会看了,其实真不能轻敌啊,我昨天去离我家只有十分钟不到的公司去面试,结果走反了方向,因为我觉的我知道,就在我家附近,所以没有去查个清楚,今天面对B/S结构竟一时想不起来是做啥的,光知道B/C了。晕不,写到书面上时傻了,这两件事充分说明了什么问题?哎要吸取教训啊。越是觉的容易的,离自己生活近的东西越不能小看,我是长记性啦。

    B/S架构

      B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S 结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。相对于C/S结构属于“胖”客户端,需要在使用者电脑上安装相应的操作软件来说,B/S结构是属于一种“瘦”客户端,大多数或主要的业务逻辑都存在在服务器端,因此,B/S结构的系统不需要安装客户端软件,它运行在客户端的浏览器之上,系统升级或维护时只需更新服务器端软件即可,这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。 B/S结构系统的产生为系统面对无限未知用户提供了可能。当然,与C/S结构相比,B/S结构也存在着系统运行速度较慢,访问系统的用户不可控的弱点。

      以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN,WAN,Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。
      一、B/S模式的优点和缺点
      B/S结构的优点
      (1)、具有分布性特点,可以随时随地进行查询、浏览等业务处理。
      (2)、业务扩展简单方便,通过增加网页即可增加服务器功能。
      (3)、维护简单方便,只需要改变网页,即可实现所有用户的同步更新。
      (4)、开发简单,共享性强
      B/S 模式的缺点
      (1)、个性化特点明显降低,无法实现具有个性化的功能要求。
      (2)、操作是以鼠标为最基本的操作方式,无法满足快速操作的要求。
      (3)、页面动态刷新,响应速度明显降低。
      (4)、功能弱化,难以实现传统模式下的特殊功能要求。
       二、C/S 模式的优点和缺点
      C/S 模式的优点
      1.由于客户端实现与服务器的直接相连,没有中间环节,因此响应速度快。
      2.操作界面漂亮、形式多样,可以充分满足客户自身的个性化要求。
      3.C/S结构的管理信息系统具有较强的事务处理能力,能实现复杂的业务流程。
      C/S 模式的缺点
      1.需要专门的客户端安装程序,分布功能弱,针对点多面广且不具备网络条件的用户群体,不能够实现快速部署安装和配置。
      2.兼容性差,对于不同的开发工具,具有较大的局限性。若采用不同工具,需要重新改写程序。
      3.开发成本较高,需要具有一定专业水准的技术人员才能完成。
      三、B/S架构软件的优势与劣势
      (1)、维护和升级方式简单。目前,软件系统的改进和升级越来越频繁,C/S系统的各部分模块中有一部分改变,就要关联到其它模块的变动,使系统升级成本比较大。B/S与C/S处理模式相比,则大大简化了客户端,只要客户端机器能上网就可以。对于B/S而言,开发、维护等几乎所有工作也都集中在服务器端,当企业对网络应用进行升级时,只需更新服务器端的软件就可以,这减轻了异地用户系统维护与升级的成本。如果客户端的软件系统升级比较频繁,那么B/S架构的产品优势明显——所有的 升级操作只需要针对服务器进行,这对那些点多面广的应用是很有价值的,例如一些招聘网站就需要采用B/S模式,客户端分散,且应用简单,只需要进行简单的浏览和少量信息的录入。
      (2)、系统的性能
      在系统的性能方面,B/S占有优势的是其异地浏览和信息采集的灵活性。任何时间、任何地点、任何系统,只要可以使用浏览器上网,就可以使用B/S系统的终端。不过,采用B/S结构,客户端只能完成浏览、查询、数据输入等简单功能,绝大部分工作由服务器承担,这使得服务器的负担很重。采用C/S结构时,客户端和服务器端都能够处理任务,这虽然对客户机的要求较高,但因此可以减轻服务器的压力。而且,由于客户端使用浏览器,使得网上发布的信息必须是以HTML格式为主,其它格式文件多半是以附件的形式存放。而HTML格式文件(也就是Web页面)不便于编辑修改,给文件管理带来了许多不便。比如说很多人每天上“新浪”网,只要安装了浏览器就可以了,并不需要了解“新浪”的服务器用的是什么操作系统,而事实上大部分网站确实没有使用windows操作系统,但用户的电脑本身安装的大部分是windows操作系统。
      (3)、系统的开发
      C/S结构是建立在中间件产品基础之上的,要求应用开发者自己去处理事务管理、消息队列、数据的复制和同步、通信安全等系统级的问题。这对应用开发者提出了较高的要求,而且迫使应用开发者投入很多精力来解决应用程序以外的问题。这使得应用程序的维护、移植和互操作变得复杂。如果客户端是在不同的操作系统上,C/S结构的软件需要开发不同版本的客户端软件。但是,与B/S结构相比,C/S技术发展历史更为“悠久”。从技术成熟度及软件设计、开发人员的掌握水平来看,C/S技术应是更成熟、更可靠的。

    四、B/S、C/S结构软件技术上的比较

      其实,无论是B/S还是C/S,他们都不新鲜。C/S(Client server,客户端/服务器)技术从上世纪90年代初出现至今已经相当成熟,并得到了非常广泛的应用,其结构经历了二层C/S、三层C/S的更迭。B/S(Browser rver,浏览器/服务器)技术则是伴随着Internet的普及而来的。有必要说明的是,B/S最早并不叫“B/S”,此类应用国外通常叫Web应用,是国内一些公司“创造”了“B/S”这个词。
      应该说,B/S和C/S各有千秋,他们都是当前非常重要的计算架构。在适用Internet、维护工作量等方面,B/S比C/S要强得多;但在运行速度、数据安全、人机交互等方面,B/S远不如C/S。综合起来可以发现,凡是C/S的强项,便是B/S的弱项,反之亦然。因此,问题也就因此而产生了,我们的ERP产品到底该用B/S还是C/S架构呢?一场关于C/S与B/S的口水战也由此在ERP业界拉开了序幕。在互联网泡沫盛行的2000年至2002年间,这场口水战达到了顶峰。但直到现在,人们也没有辩出谁是谁非。
      事实上,从上面的分析可以看出,这场口水战不可能有胜负出现,因为B/S与C/S具有不同的优势与特点,他们无法相互取代。例如,对于以浏览为主、录入简单的应用程序,B/S技术有很大的优势,现在全球铺天盖地的Web网站就是明证;而对于交互复杂的ERP等企业级应用,B/S则很难胜任,从全球范围看,成熟的ERP产品大多采用二层或三层C/S架构,B/S的ERP产品并不多见。
      “B/S还是C/S”也就由此成了ERP的技术之痛。难道这个痛就无药可救了吗?是否有可能将B/S与C/S的优势融合呢?答案是肯定的,在这几年的发展中将B/S与C/S的优势完美地结合起来,就是说该平台的应用系统能以B/S的方式发布运行,同时又具有C/S方式的极强的可操作性。这点从该平台生成的商品化的网络协同商务管理软件上得到充分的体现!
  • 测试环境搭建

    2010-06-01 09:54:59

    一般来说,配置测试环境可遵循下列原则:
       1、真实:尽量模拟用户的真实使用环境。这里需要提一点,关于项目软件与产品软件需要不同看待。项目软件由于只针对某一群体的用户,所以测试的环境比较单一。但产品软件针对的是广大群众,所以测试环境比较复杂,要多方面考虑。
       2、干净:测试环境中尽量不要安装与被测软件无关的软件。笔者就遇到这种事情,两台机器,针对一个功能,一台测试OK,另一台测试NG,最后根据调查发现,测试OK的机器上安装了客户根本不会安装的VC++开发环境,测试NG的机器正因为没有安装VC,所以测试出了这个bug:软件中缺少必要的动态链接库支持。但这个干净也不是必须的,有时还要刻意去测试某个软件去其他软件并存时的兼容性问题。
       3、无毒,这个应该不必多说了,测试工作应该确保在无毒的环境中进行。
       4、独立:测试环境与开发环境相互独立。就是说开发环境和测试环境最好分开,即测试人员和开发人员分别用不同的服务器(数据库、后台服务器等),避免造成相互干扰。
  • CMMI评估流程

    2010-05-28 16:38:32

    SCAMPI概述 (Overview)
    CMMI评估方法简称为SCAMPI(Standard CMMI Appraisal Method for Process Improvement),全称为用于过程改进的CMMI标准评估方法。作为CMMI产品系列的一个重要组成部分,SCAMPI是CMMI实践检查工具,用于内部过程改进评估、供应商选取评估、及过程审计评估。
    目前在中国,SCAMPI主要用于乙方内部过程改进的检查及等级评定,作为乙方工程管理提升及市场竞争的工具。随着CMMI 采购模型(CMMI-ACQ V1.2)的正式发布,越来越多的甲方开始效法国外企业进行采购的管理和控制,并使用SCAMPI作为供应商选取的工具。同时,对于大中型项目,甲方也将使用SCAMPI作为项目过程审计的工具,以评估项目绩效,作为项目奖惩评定及合同付款的依据。
    SCAMPI评估方法,按级别可分为A、B、C三级,其中A级最为严格,是能进行CMMI等级评定的唯一正式评估方法。SCAMPI B主要用于预评估/阶段评估,总体要求和A类似,通常适于过程改进进行一段时间后的检查。而SCAMPI C则主要用于第一次评估,特别是企业没有CMM/CMMI过程改进经验时。SCAMPI评估必须由SEI授权的主任评估师领导进行。
     

    SCAMPI A
    评估流程 (Appraisal Process)
    从SCAMPI A评估的角度,评估包括评估准备和评估实施两个部分。其中评估准备通常需要1-3个月,评估实施一般需要5-10天,具体现场评估时间和被评估单位的规模、地理分布、待评估级别有关。主任评估师负责和管理者或其代表沟通制定并完善评估计划、培训评估小组成员和组织实施评估就绪检查(包括数据就绪、评估组就绪和后勤保障就绪三个部分)并领导评估组完成正式评估,提交评估结果。实施流程见如下图所示:
     
      
  • 软件测试工程师笔试试题

    2010-04-19 16:48:14

    一、判断题(每题1分,12 分,正确的√,错误的╳) 
    1.软件测试的目的是尽可能多的找出软件的缺陷。() 
    2.Beta 测试是验收测试的一种。() 
    3.验收测试是由最终用户来实施的。() 
    4.项目立项前测试人员不需要提交任何工件。() 
    5.单元测试能发现约80%的软件缺陷。() 
    6.代码评审是检查源代码是否达到模块设计的要求。() 
    7.自底向上集成需要测试员编写驱动程序。() 
    8.负载测试是验证要检验的系统的能力最高能达到什么程度。() 
    9.测试人员要坚持原则,缺陷未修复完坚决不予通过。() 
    10.代码评审员一般由测试员担任。() 
    11.我们可以人为的使得软件不存在配置问题。() 
    12.集成测试计划在需求分析阶段末提交。() 
    二、不定项选择题(每题2 分,10分) 
    1.软件验收测试的合格通过准则是:() 
    A. 软件需求分析说明书中定义的所有功能已全部实现,性能指标全部达到要求。 
    B. 所有测试项没有残余一级、二级和三级错误。 
    C. 立项审批表、需求分析文档、设计文档和编码实现一致。 
    D. 验收测试工件齐全。 
    2.软件测试计划评审会需要哪些人员参加?() 
    A.项目经理 
    B.SQA 负责人 
    C.配置负责人 
    D.测试组 
    3.下列关于alpha 测试的描述中正确的是:() 
    A.alpha 测试需要用户代表参加 
    B.alpha 测试不需要用户代表参加 
    C.alpha 测试是系统测试的一种 
    D.alpha 测试是验收测试的一种 
    4.测试设计员的职责有:() 
    A.制定测试计划 
    B.设计测试用例 
    C.设计测试过程、脚本 
    D.评估测试活动 
    5.软件实施活动的进入准则是:() 
    A.需求工件已经被基线化 
    B.详细设计工件已经被基线化 
    C.构架工件已经被基线化 
    D.项目阶段成果已经被基线化 
    三、填空题(每空1分,24 分) 
    1.软件验收测试包括、、三种类型。 
    2.系统测试的策略有功能测试、、、、易用性测 
    试、、、、、、、、 
    、、等15 种方法。 
    3.设计系统测试计划需要参考的项目文档有、和迭代计划。 
    4.对面向过程的系统采用的集成策略有、两种。 
    5.通过画因果图来写测试用例的步骤为、、、及把因果图转 
    换为状态图共五个步骤。 

    四、简答题(共37分) 
    1. 阶段评审与同行评审的区别。(4 分) 
    2 . 什么是软件测试。(3 分) 
    3 . 简述集成测试的过程。(5 分) 
    4 . 怎样做好文档测试?(4 分) 
    5. 白盒测试有那几种方法?(6 分) 
    6. 系统测试计划是否需要同行评审,为什么?(4 分) 
    7. Alpha 测试与beta 测试的区别。(4 分) 
    8 . 比较负载测试、容量测试和强度测试的区别。(6 分) 
    9 . 测试结束的标准是什么?(3 分) 
    五、 设计题(共15分) 
    对下面给出的程序控制图,分别以各种不同的测试方法写出最少的测试用例。 

    测试人员_考试试卷(考试时间100分钟,满分100分) 
    姓名:__________部门:__________员工号:__________ 
    一、填空题:(每一空格2分,共60分) 
    1、 软件实施活动的输出工件有 、 、 、 。 
    2、 代码评审主要做 工作。 
    3、 软件实施活动中集成员的职责是 。 
    4、 验证与确认软件实施活动主要有 、代码评审、 、 、 、SQA 
    验证。 
    5、 表明测试已经结束。 
    6、 软件测试的目的是 。 
    7、 软件测试主要分为 、 、 、 四类测试。 
    8、 软件测试活动有制定测试计划、 、 、 、 、 、测 
    试评估、测试结束八个步骤。 
    9、 软件测试活动的输出工件有_ 、 、 、 、 。 
    10、软件测试角色有 、 、 、 。 
    二、不定项选择题:(每题3 分,共15分) 
    1、 软件实施活动的进入准则是() 
    A、 需求工件已经被基线化 
    B、 详细设计工件已经被基线化 
    C、 构架工件已经被基线化 
    D、 项目阶段成果已经被基线化 
    2、 下面角色不属于集成计划评审的是() 
    A、 配置经理 
    B、 项目经理 
    C、 测试员 
    D、 编码员 
    3、软件测试设计活动主要有()

    A、 工作量分析 
    B、 确定并说明测试用例 
    C、 确立并结构化测试过程 
    D、 复审并评估测试覆盖 
    4、不属于集成测试步骤的是() 
    A、 制定集成计划 
    B、 执行集成测试 
    C、 记录集成测试结果 
    D、 回归测试 
    5、属于软件测试活动的输入工件的是() 
    A、 软件工作版本 
    B、 可测试性报告 
    C、 软件需求工件 
    D、 软件项目计划 
    三、问答题:(共25 分) 
    1、 项目的集中管理在软件公司的哪一个层面?(2 分) 
    2、 请描述软件测试活动的生命周期。(8 分) 
    3、 什么是测试评估,测试评估的范围是什么?(5 分) 
    4、 阐述工作版本的定义。(2 分) 
    5 、 请画出软件测试活动的流程图。(8 分) 


    测试人员考试试卷(考试时间90分钟,满分100分) 
    姓名:__________部门:__________员工号:__________ 
    一、 判断题(每题2分,正确的“√”,错误的“╳”) 
    1 、 好的测试员不懈追求完美。( ) 
    2、 测试程序仅仅按预期方式运行就行了。( ) 
    3、 不存在质量很高但可靠性很差的产品。( ) 
    4、 软件测试员可以对产品说明书进行白盒测试。( ) 
    5、 静态白盒测试可以找出遗漏之处和问题。( ) 
    6、 总是首先设计白盒测试用例。( ) 
    7、 可以发布具有配置缺陷的软件产品。( ) 
    8、 所有软件必须进行某种程度的兼容性测试。( ) 
    9、 所有软件都有一个用户界面,因此必须测试易用性。( ) 
    10、 测试组负责软件质量。( ) 
    二、 简答题 
    1、 软件的缺陷等级应如何划分?(3 分) 
    2、 如果能够执行完美的黑盒测试,还需要进行白盒测试吗?为什么?(5 分) 
    3、 你认为一个优秀的测试工程师应该具备哪些素质?(3 分) 
    4、 产品测试到什么时候就算是足够了?(2 分) 
    5、 测试计划的目的是什么?(2 分) 
    6、 为什么要进行软件测试?软件测试的目的是什么? (5 分) 
    7、 软件测试应该划分几个阶段?简述各个阶段应重点测试的点?各个阶段的含义?(5 分) 
    8、 如何做一名合格的测试人员?(3 分) 
    9、 针对缺陷采取怎样的管理措施?(5 分) 
    三、 专业词语解释(每题2 分) 
    α测试: 
    β测试: 
    驱动模块: 
    桩模块: 
    白盒测试: 
    静态测试: 
    四、 选择题(每题2分) 
    1.下面哪些属于动态分析( ) 
    A. 代码覆盖率 
    B. 模块功能检查 
    C. 系统压力测试 
    D. 程序数据流分析 
    2.下面哪些属于静态分析( ) 
    A、 代码规则检查 
    B、 序结构分析 
    C、 序复杂度分析 
    D、 内存泄漏 
    五、 设计题(10分) 
    在三角形计算中,要求三角型的三个边长:A、B 和C。当三边不可能构成三角形时提示错误,可构成三角 
    形时计算三角形周长。若是等腰三角形打印“等腰三角形”,若是等边三角形,则提示“等边三角形”。画出程 
    序流程图、控制流程图、找出基本测试路径 ,对此设计一个测试用例。 
    六、 论述题 
    1、 试叙述对一个软件项目测试的全过程。(10 分) 
    2、 简述你对测试工作的认识过程、在以后的工作的一些建议。(6 分) 
    3 、 述静态测试和动态测试的区别?(5 分) 

    测试人员_考试试卷(考试时间100分钟,每题10 分,满分100分) 
    姓名:__________部门:__________员工号:__________ 
    1. 什么是软件测试,以及软件测试的意义? 
    2. 什么是软件测试静态分析,软件测试动态分析, 
    3. 下面那些属于静态分析() 
    A、 编码规则检查 
    B、 程序结构分析 
    C、 程序复杂度分析 
    D、 内存泄漏 
    4. 下面那些属于动态分析() 
    A、 代码覆盖率 
    B、 模块功能检查 
    C、 系统压力测试 
    D、 程序数据流分析 
    5. 从测试技术角度,正确的选择是(),给出各自的含义? 
    A、 静态测试 
    B、 黑盒测试 
    C、 动态测试 
    D、 白盒测试 
    6. 从测试阶段角度,测试正确的顺序是(),同时给出所选择的正确策略含义和被测对象是什么? 
    A、 单元测试 
    B、 集成测试 
    C、 系统测试 
    D、 确认测试 
    7. 针对缺陷采取怎样的管理措施? 
    8. 在测试生命周期,测试过程分为几个阶段,以及各个阶段的含义? 
    9. 简要写出自己在理解的基础质上所认为引入测试管理的意义 
    10. 在三角形计算中,要求三角型的三个边长:A、B 和C。当三边不可能构成三角形时提示错误, 
    可构成三角形时计算三角形周长。若是等腰三角形打印“等腰三角形”,若是等边三角形,则提示“等 

    边三角形”。画出程序流程图、控制流程图、计算圈复杂度V(g),找出基本测试路径

    软件测试笔试题
    判断题1.软件测试的目的是尽可能多的找出软件的缺陷。(Y)

    2.Beta 测试是验收测试的一种。(Y)

    3.验收测试是由最终用户来实施的。(N)

    4.项目立项前测试人员不需要提交任何工件。(Y)

    5.单元测试能发现约80%的软件缺陷。(Y)

    6.代码评审是检查源代码是否达到模块设计的要求。(N)

    7.自底向上集成需要测试员编写驱动程序。(Y)

    8.负载测试是验证要检验的系统的能力最高能达到什么程度。(N)

    9.测试人员要坚持原则,缺陷未修复完坚决不予通过。(N)

    10.代码评审员一般由测试员担任。(N)

    11.我们可以人为的使得软件不存在配置问题。(N)

    12.集成测试计划在需求分析阶段末提交。(N)


    二、选折

    1.软件验收测试的合格通过准则是:(ABCD)

    A. 软件需求分析说明书中定义的所有功能已全部实现,性能指标全部达到要求。

    B. 所有测试项没有残余一级、二级和三级错误。

    C. 立项审批表、需求分析文档、设计文档和编码实现一致。

    D. 验收测试工件齐全。

    2.软件测试计划评审会需要哪些人员参加?(ABCD)

    A.项目经理

    B.SQA 负责人

    C.配置负责人

    D.测试组

    3.下列关于alpha 测试的描述中正确的是:(AD)

    A.alpha 测试需要用户代表参加

    B.alpha 测试不需要用户代表参加

    C.alpha 测试是系统测试的一种

    D.alpha 测试是验收测试的一种

    4.测试设计员的职责有:(BC)

    A.制定测试计划

    B.设计测试用例

    C.设计测试过程、脚本

    D.评估测试活动

    5.软件实施活动的进入准则是:(ABC)

    A.需求工件已经被基线化

    B.详细设计工件已经被基线化

    C.构架工件已经被基线化

    D.项目阶段成果已经被基线化

    三、添空

    1.软件验收测试包括:正式验收测试,alpha测试,beta测试。

    2.系统测试的策略有:功能测试,性能测试,可靠性测试,负载测试,易用性测试,强度测试,安全测试,配置测试,安装测试,卸载测试,文挡测试,故障恢复测试,界面测试,容量测试,兼容性测试,分布测试,可用性测试,(有的可以合在一起,分开写只要写出15就满分哦)

    3.设计系统测试计划需要参考的项目文挡有:软件测试计划,软件需求工件和迭代计划。

    4.对面向过程的系统采用的集成策略有:自顶向下,自底向上两种。

    5.(这题出的有问题哦,详细的5步骤为~~)通过画因果图来写测试用例的步骤为:

    (1)分析软件规格说明描述中,哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符。

    (2)分析软件规格说明描述中的语义,找出原因与结果之间,原因与原因之间对应的是什么关系? 根据这些关系,画出因果图。

    (3)由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号标明约束或限制条件。

    (4)把因果图转换成判定表。

    (5)把判定表的每一列拿出来作为依据,设计测试用例。


    四、简答(资料是搜集整理的,感谢前辈的解题)无

    1.区别阶段评审的与同行评审

    同行评审目的:发现小规模工作产品的错误,只要是找错误;

    阶段评审目的:评审模块 阶段作品的正确性 可行性 及完整性

    同行评审人数:3-7人 人员必须经过同行评审会议的培训,由SQA指导

    阶段评审人数:5人左右 评审人必须是专家 具有系统评审资格

    同行评审内容:内容小 一般文档 < 40页, 代码 < 500行
    阶段评审内容: 内容多,主要看重点

    同行评审时间:一小部分工作产品完成

    阶段评审时间: 通常是设置在关键路径的时间点上!


    2.什么是软件测试

    为了发现程序中的错误而执行程序的过程


    3简述集成测试的过程

    系统集成测试主要包括以下过程:

    1. 构建的确认过程。

    2. 补丁的确认过程。

    3. 系统集成测试测试组提交过程。

    4. 测试用例设计过程。

    5. 测试代码编写过程。

    6. Bug的报告过程。

    7. 每周/每两周的构建过程。

    8. 点对点的测试过程。

    9. 组内培训过程。


    4 怎么做好文档测试

    仔细阅读,跟随每个步骤,检查每个图形,尝试每个示例。P142

    检查文档的编写是否满足文档编写的目的

    内容是否齐全,正确

    内容是否完善

    标记是否正确



    5 白盒测试有几种方法

    总体上分为静态方法和动态方法两大类。

    静态:关键功能是检查软件的表示和描述是否一致,没有冲突或者没有歧义

    动态:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。


    6系统测试计划是否需要同行审批,为什么

    需要,系统测试计划属于项目阶段性关键文档,因此需要评审。


    7Alpha测试与beta的区别

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


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


    8比较负载测试,容量测试和强度测试的区别

    负载测试:在一定的工作负荷下,系统的负荷及响应时间。

    强度测试:在一定的负荷条件下,在较长时间跨度内的系统连续运行给系统性能所造成的影响。

    容量测试:容量测试目的是通过测试预先分 析出反映软件系统应用特征的某项指标的极限值(如最大并发用户数、数据库记录数等),系统在其极限值状态下没有出现任何软件故障或还能保持主要功能正常运行。容量测试还将确定测试对象在给定时间内能够持续处理的最大负载或工作量。容量测试的目的是使系统承受超额的数据容量来发现它是否能够正确处理。容量测试是面向数据的,并且它的目的是显示系统可以处理目标内确定的数据容量。


    9测试结束的标准是什么?

    用例全部测试。
    覆盖率达到标准。
    缺陷率达到标准。
    其他指标达到质量标准


    10描述软件测试活动的生命周期?

    测试周期分为计划、设计、实现、执行、总结。其中:

    计划:对整个测试周期中所有活动进行规划,估计工作量、风险,安排人力物力资源,安排进度等;
    设计:完成测试方案,从技术层面上对测试进行规划;
    实现:进行测试用例和测试规程设计;
    执行:根据前期完成的计划、方案、用例、规程等文档,执行测试用例。

    总结:记录测试结果,进行测试分析,完成测试报告。


    11软件的缺陷等级应如何划分?

    A类—严重错误,包括以下各种错误: 1.由于程序所引起的死机,非法退出 2. 死循环 3. 数据库发生死锁 4. 因错误操作导致的程序中断 5. 功能错误 6.与数据库连接错误 7. 数据通讯错误


    B类—较严重错误,包括以下各种错误: 1. 程序错误 2. 程序接口错误 3. 数据库的表、业务规则、缺省值未加完整性等约束条件

    C类—一般性错误,包括以下各种错误: 1. 操作界面错误(包括数据窗口内列名定义、含义是否一致) 2. 打印内容、格式错误 3. 简单的输入限制未放在前台进行控制 4.删除操作未给出提示 5. 数据库表中有过多的空字段

    D类—较小错误,包括以下各种错误: 1.界面不规范 2. 辅助说明描述不清楚 3. 输入输出不规范 4. 长操作未给用户提示 5. 提示窗口文字未采用行业术语 6.可输入区域和只读区域没有明显的区分标志


    E类—测试建议

  • 测试用例标准

    2010-02-09 15:12:37

    1. 接口测试用例
    接口A的函数原型 

    输入/动作

    期望的输出/相应

    实际情况

    典型值…   
    边界值…   
    异常值…   
         
        
    2. 路径测试的检查表

    检查项

    结论

    数据类型问题

    (1)变量的数据类型有错误吗?

    (2)存在不同数据类型的赋值吗?

    (3)存在不同数据类型的比较吗?

     
    变量值问题

    (1)变量的初始化或缺省值有错误吗?

    (2)变量发生上溢或下溢吗?

    (3)变量的精度不够吗?

     
    逻辑判断问题

    (1)由于精度原因导致比较无效吗?

    (2)表达式中的优先级有误吗?

    (3)逻辑判断结果颠倒吗?

     
    循环问题

    (1)循环终止条件不正确吗?

    (2)无法正常终止(死循环)吗?

    (3)错误地修改循环变量吗?

    (4)存在误差累积吗?

     
    内存问题

    (1)内存没有被正确地初始化却被使用吗?

    (2)内存被释放后却继续被使用吗?

    (3)内存泄漏吗?

    (4)内存越界吗?

    (5)出现野指针吗?

     
    文件I/O问题

    (1)对不存在的或者错误的文件进行操作吗?

    (2)文件以不正确的方式打开吗?

    (3)文件结束判断不正确吗?

    (4)没有正确地关闭文件吗?

     
    错误处理问题

    (1)忘记进行错误处理吗?

    (2)错误处理程序块一直没有机会被运行?

    (3)错误处理程序块本身就有毛病吗?如报告的错误与实际错误不一致,处理方式不正确等等。

    (4)错误处理程序块是“马后炮”吗?如在被它被调用之前软件已经出错。

     
     
    3. 功能测试用例
    功能A描述 
    用例目的 
    前提条件 

    输入/动作

    期望的输出/相应

    实际情况

    示例:典型值…   
    示例:边界值…   
    示例:异常值…   
        
    4.   容错能力/回复能力测试用例

    异常输入/动作

    容错能力/恢复能力

    造成的危害、损失

    示例:错误的数据类型…   
    示例:定义域外的值…   
    示例:错误的操作顺序…   
    示例:异常中断通信…   
    示例:异常关闭某个功能…   
    示例:负荷超出了极限…   
    5. 性能测试用例
    性能A描述 
    用例目的 
    前提条件 

    输入数据

    期望的性能(平均值)

    实际性能(平均值)

         
         
        
    6. 用户界面测试的检查表

    检查项

    测试人员的类别及其评价

    窗口切换、移动、改变大小时正常吗?

     

    各种界面元素的文字正确吗?(如标题、提示等)

     

    各种界面元素的状态正确吗?(如有效、无效、选中等状态)

     

    各种界面元素支持键盘操作吗?

     

    各种界面元素支持鼠标操作吗?

     

    对话框中的缺省焦点正确吗?

     

    数据项能正确回显吗?

     

    对于常用的功能,用户能否不必阅读手册就能使用?

     

    执行有风险的操作时,有“确认”、“放弃”等提示吗?

     

    操作顺序合理吗?

     

    有联机帮助吗?

     

    各种界面元素的布局合理吗?美观吗?

     

    各种界面元素的颜色协调吗?

     

    各种界面元素的形状美观吗?

     

    字体美观吗?

     

    图标直观吗?

     

     

     

     

     

    7. 信息安全测试

    假想目标A

     

    前提条件

     

    非法入侵手段

    是否实现目标

    代价-利益分析

    ……   
         
        
    8. 压力测试用例

    极限名称A

    例如“最大并发用户数量”

    前提条件

     

    输入/动作

    输出/响应

    是否能正常运行

    例如10个用户并发操作   
    例如20个用户并发操作   
       
        
    9. 可靠性测试用例

    任务A描述

     

    连续运行时间

     

    故障发生的时刻

    故障描述

       
       
    …… 

    统计分析

    任务A无故障运行的平均时间间隔

    (CPU小时)

    任务A无故障运行的最小时间间隔

    (CPU小时)

    任务A无故障运行的最大时间间隔

    (CPU小时)

    10.    安装/反安装测试用例

    配置说明

     

     

    安装选项

    描述是否正常

    使用难易程度

    全部   
    部分   
    升级   
    其它   

    反安装选项

    描述是否正常

    使用难易程度

         
         
  • 读书笔记二 ----------(测试过程)

    2010-02-03 10:11:45

    Ø按照开发阶段划分:单元测试、集成测试、系统测试、确认测试。
    Ø按照测试实施组织划分:开发方测试、用户测试(β测试)、第三方测试。
    Ø按照测试技术划分:白盒测试、黑盒测试、灰盒测试。
    Ø软件测试方法和技术的分类与软件开发过程相关联,它贯穿了整个软件生命周期。
    Ø走查、单元测试、集成测试、系统测试用于整个开发过程中的不同阶段。
    u开发文档和源程序可应用走查的方法;
    u单元测试可应用白盒测试方法;
    u集成测试应用近似灰盒测试方法;
    u系统测试和确认测试应用黑盒测试方法。

    ØV模型是最具有代表意义的测试模型
    ØV模型是软件开发瀑布模型的变种,它反映了测试活动与分析和设计的关
    Ø从左到右,描述了基本的开发过程和测试行为,非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发过程期间各阶段的对应关系
    Ø箭头代表了时间方向,左边下降的是开发过程各阶段,与此相对应的是右边上升的部分,即各测试过程的各个阶段。
    ØV模型存在一定的局限性,它仅仅把测试过程作为在需求分析、概要设计、详细设计及编码之后的一个阶段。容易使人理解为测试是软件开发的最后的一个阶段,主要是针对程序进行测试寻找错误,而需求分析阶段的隐藏的问题一直到后期的验收测试才被发现。
    ØV模型中增加软件各开发阶段应同步进行的测试,被演化为一种W模型。
    Ø开发是V,测试也是与此相重叠的V
    ØW模型体现了尽早地和不断地进行软件测试的原则。
    Ø岗位及职责
    u部门主管:负责审计测试报告,决定软件是否能够对外发布。
    u项目组负责人:负责需求分解、讲解和澄清,评审测试方案和测试样例。负责单元和集成测试并保证提交的产品质量达到系统测试的要求。组织研究组成员根据系统测试中提交的Bug进行修改并发布新版本。
    u测试负责人:负责组织测试团队,编写测试计划、测试大纲,按计划进行测试。
    u测试人员:负责编写测试样例、执行测试、发布测试报告等。
    u质量保证人员:负责审计系统测试过程和测试报告。
    u配置管理员:负责配置审计和检入、检出控制,为缺陷管理提供支持。


    Ø总体流程(参见流程图)
    u需求阶段
    u设计阶段
    u编码阶段
    u集成测试阶段
    u系统测试阶段
    u测试报告的确认

    Ø需求阶段
    在需求阶段,测试人员需要了解需求,根据需求编写测试用例。
    u测试人员必须参加研究组的需求培训和参加主要的需求讨论、分析会议。需求和原型的讨论结果也应发与测试人员。
    u测试人员应参加需求的评审会议,对于需求的可测性进行确认,协助确定需求的验收标准。
    u如果有原型的讨论会议,测试人员也应参加。
    u需求文档评审通过后研究组指定负责人编写系统测试方案。系统测试方案要经过评审后才可使用。
    u测试负责人根据需求文档和项目开发进度计划编写系统测试进度计划。系统测试进度计划可以与项目进度计划写在一起,但要给出编写系统测试样例和每轮测试的时间及资源。
    u测试人员根据需求说明书和业务流程图开始设计系统测试样例中的测试功能点和业务测试流程(包括正常业务测试流程和异常的业务测试流程)。
    u测试人员根据SCCB的需求变更修改系统测试样例。
    Ø设计阶段
    在设计阶段,测试人员需要了解设计,细化测试用例。
    u测试人员必须参与结构设计和详细设计的评审会议。
    u测试人员根据开发组的结构设计和详细设计精化测试样例,明确出测试步骤、分类的测试数据(正常数据、异常数据和边缘数据)和具体的期望值等。
    u测试人员根据设计变更修改系统测试样例。
    Ø编码阶段
    在编码阶段,测试人员完成系统测试样例,并提交评审。
    u开发人员根据结构设计和详细设计,确定相互间接口的参数和服务是否描述清晰、匹配。对于可能出现的问题要在编码前提出避免的方法。
    u开发人员在代码编写完成后进行代码自查和互查和单元测试。
    u测试人员完成系统测试样例(或者大纲)并提交评审。
    Ø系统测试阶段
    系统测试指根据需求对最终软件进行测试,以便发现软件中的缺陷,验证软件满足预先定义的需求。一般采用黑盒测试方法。
    u进入系统测试阶段的三个前提条件:
    送系统测试的产品经过了开发组内的集成测试,保证在系统测试时大体业务流程不会出现堵塞现象。
    测试人员得到开发人员的邮件通知。
    测试人员可以从静态配置库得到安装包或升级包,并确定包中的内容符合要求。
    u系统测试过程
    测试人员根据测试进度计划按照测试方案中的测试类型进行测试。
     对于功能测试,测试人员要进行自由测试和严格按照测试样例测试两种方式。
    测试人员可以根据测试进度进行回归测试。测试人员不用每轮都做完全回归测试只做部分回归测试即可,但发布现场的版本必须要进行完全回归测试。
    测试人员还必须对用户安装手册、使用手册、维护手册和升级安装手册进行测试。
    自由测试:自由测试就是测试人员不按照测试样例只是根据自己对业务和系统的理解进行测试,可以走任意的测试流程和输入任意的数据进行测试。这样有可能测试出测试样例发现不了的缺陷。
    完全回归测试:对以前已经测试过的工作产品全部地进行复测。回归测试主要是为了验证在添加新功能或修复功能后,工作产品是否还能够达到预期的标准。
    部分回归测试:对以前已经测试过的工作产品的重要部分进行复测。
    Ø质量记录
    u《系统测试计划》
    u《系统测试大纲》
    u《系统测试报告》
    Ø验证
    u评审人员评审《系统测试计划》、《系统测试大纲》。
    u部门主管、项目负责人、质量保证人员审计、确认《系统测试报告》。
    u质量保证人员对整体测试过程进行审核。
    功能测试
    用户界面测试
    性能测试
    配置测试
    安装卸载测试
    安全性和访问控制测试
    数据和数据库完整性测试
    故障转移和恢复测试
    文档测试
    <
  • 用户接受测试需求的基本属性

    2010-02-03 09:56:59


    (1)测试需求的名称

    为了便于对测试需求进行规范管理,方便查询和统计分析,用来唯一标识一个测试需求。

    (2)测试需求的编号

    “需求编号”采用“REQ-A-B-C”四段编号,其中“REQ”代表需求,“A”代表系统名称,“B”代表模块名称,“C”代表三位的功能点顺序编号,从“001”编起。

    如“REQ-CCI-外呼-001”,表示CCI系统“外呼”功能模块的第一个功能点。

    (3)上级需求的编号

    为了对某测试需求进行详细划分,请将该测试需求作层状显示。如下所示:
          需求1
              需求11
                        需求111
                    ……
                需求12
                        需求121
                  ……
            需求2
              需求21
                        需求211
                    ……  
                需求22
                        需求221
                  ……

    “上级需求名称”,即为该需求的父需求名称。若为空,表示该需求为第一级需求。

    (4)所属子系统名称

        例如:
     BIS:银行保险系统
     CCBSS:证券系统
     CCI:呼叫中心整合系统
     CMIS:信贷管理信息系统
     DCC:数据集中系统
     EAIH:总行企业级应用整合平台
     ECIF:企业级客户信息平台
     ECTIP:企业级渠道交易整合平台
     IPSS:综合产品服务系统
     OCRM:操作型客户关系管理
     UDI:数据交换池
     SRF:Server Farm(基础实施项目组)
     ICS:国际卡系统

    (5)评审状态

    为了便于需求跟踪,需要设置该需求的评审状态。

    “评审状态”有“创建”、“变更”、“评审”三个状态。

    (6)重要性

    测试需求的“重要性”用来度量该测试需求对应的“业务需求”在整个系统业务功能中的重要程度,其来源一般依据“软件需求”的重要性指标。

    “重要性”指标的取值有“核心”、“重要”、“一般”和“可选”四个值。

    (7)优先级

    测试需求的“优先级”指标用来表明测试需求实施的优先次序。

    优先级的取值有“高”、“中”和“低”三个值。

    优先级取值的设定由测试经理综合考虑测试需求的“重要性”、“稳定度”和“工作量”三个值来设定。

    (8)稳定度

    测试需求的“稳定度”指标用来表明该测试需求在测试实施过程中可能发生变更的可能性程度。

    测试需求的“稳定度”指标有“高”“中”“低”三个取值。

    影响测试需求稳定度的因素有业务需求的变更、业务需求的不正确理解等原因。

    需求的稳定度由测试经理根据相应的业务需求的稳定度和其它因素进行设置。

    (9)工作量

    测试需求的“工作量”指标用来标明在后续的测试实施过程中,为完全覆盖该测试需求而需要的工作量。

    该数值由测试经理根据该测试需求对应的业务需求的复杂程度及其业务流程的繁简程度进行设置。

    该值是一个权重值,采用百分制。

    工作量最大的为100,最小的为10,以10为增量进制。

    需求的工作量由测试经理进行设置。

    据此对测试人员的工作量进行量化考核。

    (10)版本

    需求版本用来记录该测试需求对应的测试版本号。

    (11)创建人

    记录该测试需求的创建人。

    (12)创建日期

    记录该测试需求的创建日期。  

    (13)功能点描述

    “功能点描述”是对该测试需求对应的业务功能进行详细的描述。

    每个测试需求只对应一个功能点,这一点一定注意。

    (14)业务规则描述

    “业务规则描述”指对与该测试需求相对应业务功能的逻辑约束的描述。

    业务规则一定要采用R1:到R9:进行编号。

    http://www.uml.org.cn/Test/200907175.asp

  • 权威《测试工作规范》文档

    2010-02-01 14:58:18

    来源:网络

    测试工作规范

    版本记录:

    文件状态: [√] 草稿 [  ] 正式发布 [  ] 正在修改当前版本:****
    作    者:*******
    完成日期:****.**.**
    签 收 人: 
    签收日期: 

    目录

    目录... 1

    1.编写目的... 2

    2.测试团队构成... 2

    2.1职责... 2

    2.2角色划分... 2

    3.1计划与设计阶段... 2

    3.1.1成立测试团队... 2

    3.1.3召开测试启动会议... 3

    3.1.4编写测试计划文档... 3

    3.1.5设计测试用例... 4

    3.2实施测试阶段... 4

    3.2.1实施测试用例... 4 3.2.2提交报告... 4

    3.2.3回归测试... 5

    3.3总结阶段... 5

    3.3.1编写测试报告... 5

    3.3.2测试工作总结... 6

    3.3.3测试验收... 6 3.3.4测试归档... 6

    3.4缺陷跟踪... 7

    4缺陷类型定义... 7

    5测试标准... 8

    6问题争议处理... 8

    7测试标准文档... 8 

    1.编写目的

    本文档是测试团队的日常工作规范,主要侧重测试工作流程的控制,明确软件工程的各阶段测试团队应完成的工作。测试技术和策略等问题不在本文档描述范围内。

    2.测试团队构成

    2.1职责

    测试是软件开发过程中的重要组成部分,肩负着如下责任:         

    A、在项目的前景、需求文档确立基线前对文档进行测试,从用户体验和测试的角度提出自己的看法。         

    B、编写合理的测试计划,并与项目整体计划有机地整合在一起。         

    C、编写覆盖率高的测试用例。         

    D、针对测试需求进行相关测试技术的研究。         

    E、认真仔细地实施测试工作,并提交测试报告以供项目组参考。         

    F、进行缺陷跟踪与分析。

    2.2角色划分

    在人力资源有限的情况下,一个团队成员可能会同时承担多个角色。

    角色名称相关主要责任
    测试负责人         组建测试组
             协调测试组内部的沟通          代表测试组与其它角色组进行沟通         编写测试计划q          测试报告分析
    测试用例设计工程师         编写测试用例{可以由测试负责人兼任}
    测试实施工程师         实施测试用例,执行测试
    技术支持工程师         为测试工作提供技术支持

    3.工作流程及规范

    3.1计划与设计阶段

    3.1.1成立测试团队 在项目组成立的同时,测试组也将同时成立。团队成立的工作与责任如下:

    过程要点详细说明
    输入条件项目组成立(参与《项目计划书》的评审)
    工作内容为测试组任命一名测试负责人,同时确定测试组的构成人选。
    退出标准测试组成立
    责任人测试负责人

    图表 1

    3.1.2测试预通知

    在正式测试任务下达前,开发团队应提前一周左右向测试团队下达预通知,告之较为确切的测试日期,提供当前最新的相关资料。测试负责人可视具体情况决定是否需要调整人力。测试人员可预先熟悉必要的背景资料,协助测试负责人编写《测试计划》初稿。

            过程要点详细说明
    输入条件项目进入软件实现阶段(编码)
    工作内容项目/产品经理邮件通知测试负责人正式测试交接时间,测试规模预估等
    退出标准预先通知得到测试负责人确认,并提交《测试计划》初稿
    责任人产品经理,测试负责人

    图表 2

    3.1.3召开测试启动会议

    过程要点详细说明
    输入条件测试负责人完成测试计划初稿
    工作内容开发团队与测试团队交接测试内容,对测试目标达成一致,商讨测试计划初稿的可行性,统一项目组的目标和测试的工作重点。
    退出标准明确测试内容与重点,项目方提交《测试任务书》,测试方提交《测试计划》正稿。
    责任人产品经理,测试负责人

    图表 3

    3.1.4编写测试计划文档

    需求分析文档确立后,测试组需要编写测试计划文档,为后续的测试工作提供直接的指导

    过程要点详细说明
    输入条件项目需求文档建立
    工作内容根据项目的需求文档,按照测试计划文档模板编写测试计划。测试计划中应该至少包括以下关键内容: a .测试需求——需要测试组测试的范围,估算出测试所花费的人力资源和各个测试需求的测试优先级 b.测试方案——整体测试的测试方法和每个测试需求的测试方法 c.测试资源——本次测试所需要用到的人力、硬件、软件、技术的资源 d.测试组角色——明确测试组内各个成员的角色和相关责任 e.里程碑——明确标准项目过程中测试组该关注的里程碑 a.可交付工件——在测试组的工作中必须向项目组提交的产物,包括测试计划、测试报告等等 b.风险管理——列举出测试工作所可能出现的风险 测试计划编写完毕后,必须提交给项目组全体成员,并由项目组组中各个角色组联合评审。
    退出标准a.测试计划由项目组评审通过. b.在项目开发过程中,要适时的对测试计划进行跟踪,以供评估此次计划的完整性、可行性,在项目结束时还要最后评估一下测试计划的质量
    责任人测试负责人

    图表 4

    3.1.5设计测试用例

    在需求分析文档确立基线以后,测试组需要针对项目的测试需求编写测试用例,在实际的测试中,测试用例将是唯一实施标准。在用例的编写过程中,具体的任务和责任人如下:

    过程要点详细说明
    输入条件测试需求明确,测试计划明确
    工作内容根据每一步测试计划编写全部的测试用例
    退出标准测试用例需要覆盖所有的测试需求
    责任人测试用例设计工程师(可由测试实施工程师或测试负责人兼做)

    图表 5

    3.2实施测试阶段

    3.2.1实施测试用例

    实施测试用例将花费测试组绝大部分时间,这些工作都是建立在前期很多计划工作的基础上。

    过程要点详细描述
    输入条件测试负责人之前一个工作日定出当日的测试计划,确定可用的测试用例。
    工作内容测试实施工程师根据测试计划中分配给自己的测试任务和提供的测试用例,实施相应的测试用例,并将记录实施用例的结果
    退出标准测试用例中的所有任务被执行,结果被记录。
    责任人测试实施工程师

    图表 6

    3.2.2提交报告

    在约定的测试周期完成之后,测试负责人需要总结此次测试的结果,编写测试报告

    过程要点详细描述
    输入条件测试组完成了预定周期的测试任务
    工作内容测试负责人根据此轮测试的结果,编写测试报告,主要应包含以下内容: a.测试报告的版本 b.测试的人员和时间 c.测试所覆盖的缺陷——测试组在这轮测试中所有处理的缺陷,报告了测试负责人处理的缺陷和实施工程师验证的缺陷。不仅要写出覆盖缺陷的总数,还要写明这些缺陷的去向 d.测试新发现的缺陷数量 e.上一版本活动缺陷的数量 f.经过此轮测试,所有活动缺陷的数量及其状态分类 g.测试评估——写明在这一版本中,那些功能被实现了,那些还没有实现,这里只需写明和上一版本不同之处即可 h.急待解决的问题——写明当前项目组中面临的最优先的问题,可以重复提出
    退出标准在每轮测试结束之后应尽快将符合标准的测试报告发给全项目组
    责任人测试负责人

    图表7

    3.2.3回归测试

    在每轮测试结束之后,由测试组重新拷贝修改后的最新版本,进行回归测试。

    过程要点详细描述
    输入条件在每轮测试中,按照现有的测试用例没有新的缺陷被发现,测试报告中全部的活动缺陷都被解决。
    工作内容测试组将按照测试计划中对于回归测试的策略对产品进行回归测试,回归测试的用例属于测试用例的一部分或者是全部测试用例,但不能超出原先预定的测试用例的范围。
    退出标准回归测试所运行的用例全部通过。
    责任人测试实施工程师 (可由测试实施工程师或测试负责人兼做)

    图表 2

    3.3总结阶段

    测试工作结束或即将结束时,测试组就要开始着手准备进行总结的工作。

    3.3.1编写测试报告

    在回归测试结束之后,测试负责人将要编写测试总结报告,对测试进行总结,并且提交给全体项目组,为产品的后续工作提供重要的信息支持。

    过程要点详细描述
    输入条件测试组完成了所有的测试实施工作
    工作内容测试负责人根据测试的结果,按照测试报告的文档模板编写测试报告,测试报告必须包含以下重要内容: a.测试资源概述——多少人、多长时间 b.测试结果摘要——分别描述各个测试需求的测试结果,产品实现了哪些功能点,哪些还没有实现 c.缺陷分析——按照缺陷的属性分类进行分析 d.测试需求覆盖率——原先列举的测试需求的测试覆盖率,可能一部分测试需求因为资源和优先级的因素没有进行测试,那么在这里要进行说明 e.测试评估——从总体对项目质量进行评估 f.测试组建议——从测试组的角度为项目组提出工作建议
    退出标准测试负责人完成了符合标准的测试报告,发送给全项目组。
    责任人测试负责人

    3.3.2测试工作总结

    测试总结工作是在以上的工作全部结束以后,它的目的是评估本次测试工作,总结经验,使下一次的工作做得更好。

    过程要点详细描述
    输入条件测试负责人完成了符合标准的测试报告,发送给全项目组
    工作内容测试负责人根据测试的结果,按照测试总结的文档模板编写测试总结,
    退出标准测试负责人完成了符合标准的测试总结,发送给全测试组。
    责任人测试负责人

    3.3.3测试验收

    测试验收工作是在以上工作全部结束后,对测试的过程,效果进行验收,宣布测试结束。

    过程要点详细描述
    输入条件测试组完成了所有的测试实施工作,测试负责人完成符合标准的测试总结文档
    工作内容由测试发起会上约定的验收组成员,对本测试进行验收,验收内容包括: a.测试效果验收——测试是否达到预期目的 b.测试文档验收——测试过程文档是否齐全,可信,符合标准 c.测试评估——从总体对测试的质量进行评估 d.测试建议——对本次测试工作指出不足,需要在以后工作中改进的地方 e.宣布测试结束——测试验收组成员签字宣布本次测试结束
    退出标准签发测试验收报告
    责任人产品经理

    3.3.4测试归档    

    测试归档是在测试验收结束宣布测试有效,结束测试后,对测试过程中涉及到各种标准文档进行归类,存档。

    过程要点详细描述
    输入条件测试验收通过
    工作内容归类,存档测试过程涉及到的文档,主要包括以下文档(必须) a.测试任务 b.测试计划 c.测试用例 d.测试报告 e.测试总结报告 f.测试验收报告
    退出标准全部文档归类完毕,版本号封存
    责任人测试负责人

    3.4缺陷跟踪

    测试验收结束后,跟踪产品在试运行阶段暴露出来的新缺陷,以及已提交的缺陷是否再次发生。

    过程要点详细描述
    输入条件测试组完成了所有的测试实施工作,测试验收通过,产品试运行、运行。
    工作内容a.已发现缺陷是否再次发生 b.是否有新发现的在测试中未发现的缺陷 c.是否有新发现的在测试中已发现但未修改的缺陷 定义: A类:新发现的缺陷 B类:已发现的缺陷 C类:已发现未修改的缺陷
    退出标准缺陷跟踪报告
    责任人产品经理、项目实施经理

    4.缺陷类型定义

    本规范定义以下五类缺陷

    A类——严重错误,包括:

    1.       由于程序所引起的死机,非法退出

    2.       死循环

    3.       导致数据库发生死锁

    4.       数据通讯错误

    5        严重的数值计算错误

    B类——较严重错误,包括:

    1.       功能不符

    2.       数据流错误

    3.       程序接口错误

    4.       轻微的数值计算错误

    C类——一般性错误,包括:

    1.       界面错误(详细文档)

    2.       打印内容、格式错误

    3.       简单的输入限制未放在前台进行控制

    4.       删除操作未给出提示

    D类——较小错误,包括:

    1.       辅助说明描述不清楚

    2.       显示格式不规范

    3.       长时间操作未给用户进度提示

    4.       提示窗口文字未采用行业术语

    5.       可输入区域和只读区域没有明显的区分标志

    6.       系统处理未优化 E类——测试建议(非缺陷)

    5.测试标准

    软件测试合格须符合以下标准。

    A类错误B类错误C类错误D类错误E类建议
    ≤2%≤4%暂不作要求

    以上比例为错误占总测试模块的比例。软件产品未经测试合格,不允许投运。

    6.问题争议处理

    如开发团队对测试结论有争议,由PM和成员会议协调解决。测试团队和开发团队应无条件服从仲裁结果。

    7.测试标准文档

    1.       《测试任务说明书》

    2.       《测试计划》

    3.       《测试用例》

    4.       《测试报告》

    5.       《测试总结报告》

    6.       《测试验收报告》

    7.       《缺陷跟踪报告》

  • 721/41234>

    用户菜单

    我的栏目

    我的存档

    数据统计

    RSS订阅

    Open Toolbar