欢迎光临、这里是ZT测试空间,希望大家互相共享资源,给我建议和留言!MSN:zhangtieing@hotmail.com

发布新日志

  • apache2.2简易安装与配置(转载)

    2007-10-10 17:29:00

    一、软件安装
    1、源文件件解压
       从官方网站下载httpd-2.2.2.tar.tar 安装包,考到/usr/src/目录
       tar zxvf httpd-2.2.2.tar.tar
    2、编译安装(可安INSTALL文档说明进行)
       cd /usr/src/httpd-2.2.2
       ./configure --prefix=/usr/local/apache2
       make
       make install
    3、启动与关闭APACHE2服务
       /usr/local/apache2/bin/apachectl stop
       /usr/local/apache2/bin/apachectl start
    4、测试APACHE2是否服务启动成功
       如果显示it works就表示服务已成功。
    二、软件配置篇
     1、基本环境配置
        编译安装的APACHE配置文件为 /usr/local/apache2/conf/httpd.conf
        ServerRoot "/usr/local/apache2"   apache的安装路径。相对路径都以该目录根。
        Listen 80   web侦听端口
        User daemon  
        Group daemon    apache启动服务的用户和组。2.2以前版本可能会用nobady用户及组。
        ServerAdmin you@example.com   管理员邮件地址。
        #ServerName www.example.com:80 定义客户端从服务器读取数据时返回给客房端的主机名。默认值为localhost。需要时才设置,否则注释掉。
        DocumentRoot "/usr/local/apache2/htdocs"  apache默认站点的根目录。
        <IfModule dir_module>
        DirectoryIndex index.html
        </IfModule>
                          此处可增加站点默认的首文件名。
     2、目录设置
        <Directory /yourdir>
         ......
        </Directory>
       options属性有
       ExecCGI:使该目录下的CGI具有可执行的能力。
       FolowSymLinks: 让你的link的目录或者文件,虽然在其它目录下,仍可以连接出去。
       Includes:在服务器端的工作可进行。
       Indexes:如果在该目录下面找不到index.html时,就显示整个目录下的文件名。请慎用。
       MultiViews:这有点类似多国语言支持。
       ALL:全部属性都启动。但不包含MultiViews.
    如:
    <Directory "/usr/local/apache2/htdocs">
       Options Indexes FollowSymLinks
       AllowOverride None
       Order allow,deny
       Allow from all
    </Directory>
    这是默认的站点目录设置,建议去掉indexes属性。
     3、访问控制(配合Directory块对目录进行访问控制)
        Order 明确了访问控制指令按什么顺序执行的。
        Allow 允许访问站点的主机名列表。
        Deny  拒绝访问站点的主机名列表。
    如:以例目录设置例子。

     
     
     
    三、虚拟主机篇
      1、启用虚拟主机
        去掉httpd.conf文件中 Include conf/extra/httpd-vhosts.conf 前面的# 注释.
      2、编辑/usr/local/apache2/conf/extra/httpd-vhosts.conf 文件
         1)注释掉以下内容,或者修改它。因为默认这几个站点我们根本不存在,如不去掉,启用apache服务会报错。
    <VirtualHost *:80>
        ServerAdmin webmaster@dummy-host.example.com
        DocumentRoot /www/docs/dummy-host.example.com
        ServerName dummy-host.example.com
        ServerAlias www.dummy-host.example.com
        ErrorLog logs/dummy-host.example.com-error_log
        CustomLog logs/dummy-host.example.com-access_log common
    </VirtualHost>
    <VirtualHost *:80>
        ServerAdmin webmaster@dummy-host2.example.com
        DocumentRoot /www/docs/dummy-host2.example.com
        ServerName dummy-host2.example.com
        ErrorLog logs/dummy-host2.example.com-error_log
        CustomLog logs/dummy-host2.example.com-access_log common
    </VirtualHost>
      3、加入虚拟站点,如现加了以下两个站点。
    <VirtualHost *:80>
        ServerAdmin webmaster@dummy-host.example.com
        DocumentRoot /usr/local/apache2/htdocs/web1
        ServerName www.web1.com
     </VirtualHost>
    <VirtualHost *:80>
        ServerAdmin webmaster@dummy-host2.example.com
        DocumentRoot /www/web2
        ServerName www.web2.com
    </VirtualHost>
      4、保存重启apache服务。
         此时会有这样的现象,www.web1.com能打开,而www.web2.com 却打不开。原因是因为web1的目录在/usr/local/apache2/htdocs 目录之下,而我们已对/usr/local/apache2/htdocs目录进行了权限控制处理。但web2站点的目录/www/web2 并未进行其访问授权。所以打不开。提示权限不够之类的信息。
      5、编辑httpd.conf 文件,加入以下内容。
        
    <Directory "/www/web2">
       Order allow,deny
       Allow from all
    </Directory>
       6、保存退出重启apache服务,一切正常。
    转载:http://blog.chinaunix.net/u/21771/showart.php?id=327703
  • linux 下bugzilla安装配置(整理)

    2007-10-10 16:26:18

    在linux下安装bugzilla,以前做过,由于涉及到很多其他服务器的安装,故重温一下,以便查阅,正所谓“好记性比不过烂笔头啊",下面开始了。。
    涉及到的安装:apache+mysql+sendmail+perl+bugzilla要求的perl模块+bugilla(系统有不用安了)
       软件的安装无非是这几种方式:rpm安装,tar.gz安装,从系统光盘安装,除系统光盘自带的安装外,下面从两种途径来进行。
    一、安装Apache
    *******tar包安装

          1、下载源码包: htttp://download.chinaunix.net/down.php?id=114&ResourceID=66&site=1

          2、解包:tar -xvf apapche-httpd-2.2.0.tar.bz2

          3、安装:cd apache-http*

                          ./configure --prefix=/usr/local/apache2 --enable-module=so

                          make    然后再    makeinstall     完成安装

          4、配置:vi /usr/local/apache2/conf/httpd.conf   

              添加: AddHandler cgi-scrīpt .cgi
                  <Directory "/var/www/bugzilla/"> *你的bugzilla目录
                  Options All
                  AllowOverride Limit
                  Order allow,deny
                  Allow from all    
                  </Directory>

              修改
          “DirectoryIndex index.html”在"index.html"前加入“index.cgi”

    找到,DocumentRoot "/var/www/html",将引号中的内容替换为bugzilla的安装路径,本例为 /root/bugzilla/bugzilla-2.18rc2 ,替换完结果为:

    DocumentRoot“/root/bugzilla/bugzilla-2.18rc2”

    说明:指定Apache服务器存放网页的根目录

    (可选)找到 ServerName

    在行#ServerName new.host.name:80 下面添加如下内容:

    ServerName 192.168.94.40:80


          5.启动与关闭APACHE2服务

             /usr/local/apache2/bin/apachectl stop

             /usr/local/apache2/bin/apachectl start     
          6、测试APACHE2是否服务启动成功
             http://ip或localhost
             如果显示it works就表示服务已成功。

    *******rpm包安装

    1、首先检查是否已经安装了httpd服务

    rpm-q httpd

    没有就安装,如:rpm-ivh httpd-2.0.40-21.i386.rpm

    4、启动关闭httpd,命令

    /etc/rc.d/init.d/httpd start/stop/restart 或 service httpd ...分别对应 启动/停止/重启

    配置测试同上(可能httpd.conf文件位置不一样)。

    二、安装mysql

    ********tar包安装

          1、下载源码包:http://download.chinaunix.net/down.php?id=24933&ResourceID=7159&site=1

          2、解包:tar -zxvf mysql-5.0.32.tar.gz

          3、安装:cd mysql-5.0*

                          ./configure --prefix=/usr/local/mysql

                          make     然后    make install    完成安装

          4、初始化mysql:/usr/local/mysql/bin/mysql_install_db --user=root

                                      /usr/local/mysql/bin/mysqld_safe --user=root &  (启动mysql服务端)

                                      /usr/local/mysql/bin/mysql --user=root    ( 启动mysql客户端)

                                      use mysql; (选择系统数据库)  

                                      update user set Password=password('YourPassword') where User='root';(设置数据库root密码)

    insert into user  (User,Host,Password,Select_priv,Insert_priv,Update_priv,Delete_priv,Index_priv,Alter_priv,Create_priv,Drop_priv,Grant_priv,Reload_priv,Shutdown_priv,Process_priv,File_priv) values('mysql','',password('YourPassword'),'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y'); (增加数据库用户)

    *********rpm安装
    安装和启动

    1、mysql依赖于三个安装包中,分别是:

    MySQL-server-4.0.21-0.i386.rpm

    MySQL-client-4.0.21-0.i386.rpm

    MySQL-devel-4.0.21-0.i386.rpm

    2、安装三个包:

    rpm-ivhMySQL*.rpm

    3、启动mysql数据库

    /etc/rc.d/init.d/mysql start

    4、查看mysql进程

    ps-ef | grep mysql

    配置及初始化

    1、连接到mysql

    mysql -u root

    注意:初始安装的MySQL,超级用户没有口令

    2、设置口令,在mysql提示符下,输入命令

    Set password for root=password("123456") ;

    为root设置口令为123456 ,注意sql语句以“;”结束

    设置后进入为:

    mysql -u root -p

    (输入密码)!

    3、创建数据库bugs

    Create database bugs ;

    show databases;

    use bugs;

    4、创建用户bugs

    Grant select,insert,update,delete,index,alter,create,lock tables,create temporary tables,drop,references ON bugs.* TO bugs@localhost identified by ‘123456’

    5.退出数据库
    exit 或 quit

    注意:(1)mysql中的sql语句是不区分大小写的,所以在mysql提示符下的输入不必在意大小写

    (2)mysql语句必须要以分号“;”结束

    (3)退出语句exit和quit后可以不写分号

    三、安装Perl(系统自带不用安)

          1、下载源码包:http://download.chinaunix.net/down.php?id=78&ResourceID=44&site=1

          2、解包:tar -jvxf perl-5.8.8.tar.bz2

          3、安装:rm -f config.sh Policy.sh

                          sh Configure -de

                          make    然后 make test    通过后再 make install

          (类似的开发工具包建议在安装系统时就装上,以后会少很多麻烦。假如这里编译出现问题,根据提示,找到相应的包装上就可以了。也可以用ubuntu的apt-get install。

    四、安装perl模块

    ***网络自动安装

          1、首先初始化perl的cpan:perl -MCPAN -e 'shell'

                命令执行以后会进行一系列的配置,都有提示这一步是比较简单的,一般一路回车就可以了,最后会选模块搜索服务器,这个在大陆比较快(http://cpan.linuxforum.net/)把它选在前面就可以了。

               cpan是Comprehensive Perl Archive Network的英文缩写,一个巨大的网络资源库。有了它后面安装perl的模块会相对简单一些。

          2、安装bugzilla所需的perl模块

          必要模块:    

          1. CGI 2.93 or CGI 3.11 if using mod_perl
          2. Date::Format (2.21)
          3. DBI (1.41)
          4. DBD::mysql (2.9003) if using MySQL
          5. DBD::Pg (1.45) if using PostgreSQL
          6. File::Spec (0.84)
          7. Template (2.12)
          8. Email::Send (2.00)
          9. Email::MIME::Modifier (any)

    其中DBD模块在本章中先不进行安装,因为这个模块需要先安装mysql,其他模块均可安装

         可选模块:

          1. GD (1.20) for bug charting
          2. Template::Plugin::GD::Image (1.20) for Graphical Reports
          3. Chart::Base (1.0) for bug charting
          4. GD::Graph (any) for bug charting
          5. GD::Text (any) for bug charting
          6. XML::Twig (any) for bug import/export
          7. MIME::Parser (5.406) for bug import/export
          8. LWP::UserAgent (any) for Automatic Update Notifications
          9. PatchReader (0.9.4) for pretty HTML view of patches
         10. Image::Magick (any) for converting BMP image attachments to PNG
         11. Net::LDAP (any) for LDAP Authentication
         12. SOAP::Lite (any) for the web service interface
         13. HTML::Parser (3.40) for More HTML in Product/Group Descrīptions
         14. HTML::Scrubber (any) for More HTML in Product/Group Descrīptions
         15. Email::MIME::Attachment::Stripper (any) for Inbound Email
         16. Email::Reply (any) for Inbound Email
         17. mod_perl2 (1.999022) for mod_perl
         18. CGI (2.93) for mod_perl
         19. Apache::DBI (0.96) for mod_perl2

             不过,别急~ perl提供了很简便的模块安装方式:(单模块安装方式)perl -MCPAN -e 'install 模块名'或用cpan:perl -MCPAN -e 'shell'连上后,键入:install xxx 。

    (批量安装方式)比如安装bugzilla的模块,执行这个命令就可以了:perl -MCPAN -e 'install "Bundle::Bugzilla"' 。(上面个命令是将所有模块一起装,还可以将各模块分开装,比如:perl -MCPAN -e 'install GD::Graph"')。

    ******手动下载安装

    先要到网上把bugzilla所需的模块都下下来(http://download.chinaunix.net)然后分别解压,安装就OK了。perl模块的安装稍微有点不同。
    ./configure换成perl Makefile.PL 后面一样了make  make test(可选)  然后 make install


    五、安装sendmail或者(qmail)

            红帽sendmail默认已经可以用了,如果没有,建议安装qmail。

    没有就安装:下载相关的rpm包,解压安装后,关键是配置。。

    sendmail 的配置

    首先进入 /etc/mail 目录

    1、配置文件 sendmail.mc

    (1)打开文件 sendmail.mc

    visendmail.mc

    (2)在命令状态下,输入

    /DAEMON_OPTIONS

    查找字符串:

    DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl

    (3)在该字符串前面加上dnl ,把该行注释掉,即:

    dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl

    保存退出

    (4)执行命令

    m4/etc/mail/sendmail.mc > /etc/mail/sendmail.cf

    输出新的配置文件

    2、配置文件access

    (1)打开文件 access

    viaccess

    (2)在文件中添加

    192.168.94RELAY

    (注意:网段根据实际确定)

    保存退出

    (3)执行命令

    makemaphash/etc/mail/access.db< /etc/mail/access

    建立索引文件

    3、配置文件local-host-names

    (1)打开文件 local-host-names

    vilocal-host-names

    (2)在文件中添加

    btest.com

    mail.btest.com

    设置本地域名,以进行本地传递

    4、修改hosts文件,用于接收邮件

    hosts文件位于 /etc目录下

    (1)进入/etc目录,打开hosts文件

    vihosts

    (2)添加linux服务器的IP地址和别名,内容如下:

    192.168.94.40btest.com

    5、修改完以上配置文件,重启sendmail

    /etc/rc.d/init.d/sendmailrestart

    (注意可能时间会比较慢)

     
    安装配置POP3IMAP(可选)

    1、加载CD2,进入RedHat/RPMS目录,找到文件imap-2001a-18.i386.rpm和imap-devel-2001a-18.i386.rpm ,进行安装

    rpm-ivhimap*.rpm

    2、进入目录 /etc/xinetd.d目录

    3、找到imap文件和ipop3 这两个文件,分别进行修改,把原来内容中

    disable的值由 yes 变为 no

    保存退出

    4、重新启动

    /etc/rc.d/init.d/xinetdrestart

    5、添加一个用户,并设置密码

    adduserzhaods

    passwdzhaods

    密码:123

    六、安装bugzilla

          1、下载源码包:http://ftp.mozilla.org/pub/mozilla.org/webtools/bugzilla-2.22.2.tar.gz

          2、解包:tar zxvf bugzilla-2*

          3、配置:mkdir /var/www/bugzilla    (创建bugzilla目录)

                          cd bugzilla*        然后         mv * /var/www/bugzilla    (移动bugzilla文件到apache服务目录)

                          chmod -R 777 /var/www/bugzilla    (改变权限)

                          /var/www/bugzilla/checksetup.pl (检查安装,如果上一步的perl模块没有装好,这里会提示)

                          vi /var/www/bugzilla/localconfig 修改以下内容:

                                             $db_host = "localhost";
                                             $db_name = "bugs";
                                             $db_user = "mysql";
                                             $db_pass = "YourPassword";

                          /var/www/bugzilla/checksetup.pl (自动创建数据库,设置目录权限,完了以后,要你输入bugzilla管理员的邮箱,密码等,这是登录用的,要记住。)

                          再来一次 /var/www/bugzilla/checksetup.pl 确认已经成功

    七,其他可能问题

    1。收不到邮件,要修改 /etc/hosts 文件,添加相关的ip记域名

    2。bugzilla配置文件设置(参考,老版本,有问题可以试一下)

       1、在自己的bugzilla安装路径下(如本例为/root/bugzilla/bugzilla-2.18rc.2目录),找到文件   localconfig

       vilocalconfig

       2、找到

       $index_html=0

       改为:

       $index_html=1

    这样会生成一个index.html文件,该文件指向index.cgi

    3、找到

    $db_pass=‘’

    改为:

    $db_pass=‘123456’

    注意:单引号中为创建bugs用户的密码,一定与前面设置的相同

    修改后保存退出

    4、在bugzilla安装路径,输入命令:

    perlchecksetup.pl

    创建bugs数据库中的表

    最后将提示输入如下信息:

    • Enter the e-mail address of the administrator:

    输入:zhaods@btest.com

    说明:要求输入bugzilla管理员e-mail地址,注意是自己前面配置的邮箱帐户,这是登录bugzilla的帐户

    • You entered 'zhaods@btest.com'.Is this correct? [Y/n]

    说明:确认刚才输入的e-mail地址是否正确,回答 y 即可

    • Enter the real name of the administrator:

    输入:zhaods

    说明:输入真实姓名

    • Enter a password for the administrator account:

    输入:123

    说明:登录bugzilla的密码,可以与前面不同,但一定要记住

    • Please retype the password to verify:

    输入:123

    说明:进行密码确认

    (6)这时将出现如下信息:

    'zhaods@btest.com' is now set up as an administrator account.

    表示帐户创建成功

    (7)这时,可以到mysql数据库中查看

    A、输入命令:

    mysql-uroot-p123456

    进入mysql

    B、在mysql提示符下输入命令:

    Usebugs;

    连接bugs数据库

    C、在mysql提示符下输入命令:

    Showtables;

    可以看到bugs数据库中已经创建好了表

    (8)退出mysql即可

    一切OK了后,用邮件客户端工具(如:outlook/foxmail,或linux下的kmail等)来接收邮件,重启http和network,在IE里打开地址(如:http://192.168.1.188/bugzilla)即可看到bugzilla的界面...

    参考:http://www.cy-btesting.com/news01/news140.htm
         http://hi.baidu.com/godmap/blog/item/d56569dac15c5adab7fd485d.html

  • solaris 10在vmware中的安装图解(转)

    2007-05-01 01:31:01

    目前我遇到安装时间最长的系统,搞了4个多小时,感谢原创呕心沥血之作,实践成功!

    原文链接:http://www.chinaunix.net/jh/6/524594.html

    转载请注明作者名及原文出处

  • vmware虚拟机系列问题.txt

    2007-05-01 01:09:15

    快捷键:CRTL+B启动       CRTL+Z暂停  CRTL+E关机  CRTL+R重启  CRTL+D设置

    *****************vmware tools 的 正确安装*******************
    1. VM --> 安装VmWare工具 --> instarll
    2. # mount /dev/cdrom /mnt/cdrom
    3. # tar -xzvf VMware...       -C/usr/local/src
    4. # cd /usr/local/src/vmware...
    5. # ./vmware-install.pl  --> 'Enter'
    6. # init 6 
       

    *************** VMware虚拟机与host机器文件共享设置*****************
    条件:host机器安装的是XP,VMware中安装的是RH9.0

    目的:RH9.0能够和XP共享host机器中的文件夹!


    实现步骤:

    1. 在VMware主菜单VM-〉Settings……,在弹出的窗口中切换到Options页,在左侧选择Share folders,在右侧添加一个文件夹作为共享目录,可设置相关权限;

    2. 启动VMware中的RH9.0,安装VMware Tools,注意安装那个.tar.gz包,而不是rpm包,因为在我的机器上安装rpm包后VMware仍然认为VMware Tools没有安装,而安装.tar.gz包后就可以

    3. 进入/mnt/目录,则可以看到多了一个hgfs文件,此即为最终的共享目录!

     

    *****************vmware “经典”错误9297解决方案*******************    

    > *** VMware Workstation internal monitor error (bug 9297) ***

    > The guest operating system you are running is using the Physical

    > Address Extension (PAE) processor option.  For more information

    > aboutrunning PAE-enabled guest operating systems, please consult

    > http://www.vmware.com/info?id=28

     
    If you are running GSX Server 2.5 and are trying to start a Linux or NetWare

    6 guest operating system, check the virtual machine's configuration file

    (.vmx on Windows hosts, .cfg on Linux hosts) and look for the following line:

    paevm=false


    到虚拟机器的数据夹里找设定文件,如果是 Windows 尾檔名是 .vmx,Linux 则是 .cfg,

    用文字编辑器开启后找到一行文字:paevm=false

     
    If the line appears, change it to

    paevm=true


    如果文字存在,改成:paevm=true

     If you are running GSX Server 2.5 and are trying to start any other

    PAE-enabled guest operating system, open the virtual machine's configuration

    file and add the following line anywhere within the file:

    paevm=true

    如果不存在,在设定档里随处加入:paevm=true

     
    Save the configuration file and try starting the virtual machine again.

    改好后储存设定档,然后重新执行虚拟机器。
     

  • Severity(严重性)与Priority(优先级)之间的区别是什么?

    2007-04-23 13:02:09

    What is diff between severity and priority?

    Differentiate Priority and Severity
    The effect of a bug on the software does not automatically correlate with the priority for fixing it. A severe bug that crashes the software only once in a blue moon for 1% of the users is lower priority than a mishandled error condition resulting in the need to re-enter a portion of the input for every user every time.

    Therefore:

    Track priority and severity separately, then triage appropriately. It helps to have input from others on the team on priority. The importance of a bug is a project decision, different from the bug's perception by the Customer. In some cases it makes sense to track Urgency, the customer's point of view, separately.

     

     


    What's the difference between priority and severity?

    "Priority" is associated with scheduling, and "severity" is associated with standards. "Piority" means something is afforded or deserves prior attention; a precedence established by order of importance (or urgency). "Severity" is the state or quality of being severe; severe implies adherence to rigorous standards or high principles and often suggests harshness; severe is marked by or requires strict adherence to rigorous standards or high principles, e.g. a severe code of behavīor. The words priority and severity do come up in bug tracking. A variety of commercial, problem-tracking/management software tools are available. These tools, with the detailed input of software test engineers, give the team complete information so developers can understand the bug, get an idea of its 'severity', reproduce it and fix it. The fixes are based on project 'priorities' and 'severity' of bugs. The 'severity' of a problem is defined in accordance to the customer's risk assessment and recorded in their selected tracking tool. A buggy software can 'severely' affect schedules, which, in turn can lead to a reassessment and renegotiation of 'priorities'.

     

    Severity(严重性)与Priority(优先级)之间的区别是什么?

    软件里的Bug所产生的效果不会自动的与修复它的优先级相关联。一个严重的Bug可能是那种对1%的用户来说也是不太会发生的使软件崩溃的bug。那它的优先级也比那些误操作导致的需要对每个用户每次需要重新键入一部分输入的Bug的优先级要低。

    因此:需要分别跟踪Bug优先级和严重性,然后进行适当的修复。Bug的重要性是由项目来决定的,不同于客户对Bug的感知。某些情况下,分别跟踪急迫的或是按照客户观点定义的Bug也是很有意义的。


    优先级与项目日程相关,严重性与标准相关。优先级表示需要优先考虑和注意的对象;由重要性顺序构建成优先级;严重性暗示需要严格遵照标准或者是高层原则,比如,一个严重的代码行为。优先级和严重性这2个词出现在Bug跟踪里。某种商业化的,问题跟踪及管理的软件工具是可行的。这些工具,随着测试工程师们逐条的输入,给予团队完整的信息,以致开发人员能明白Bug,明白Bug的严重性,重现它,并修复它。修复建立在优先级和严重性的基础上。严重性的问题按照客户的风险评估来定义,并记录于被选择的跟踪工具中。多Bug的软件会严重影响项目进度,依次也能导致对优先级重新评估和商榷。

  • 内存泄漏问题

    2007-04-23 12:57:41

    内存泄漏的定义

      一般我们常说的内存泄漏是指堆内存的泄漏。堆内存是指程序从堆中分配的,大小任意的(内存块的大小可以在程序运行期决定),使用完后必须显示释放的内存。应用程序一般使用mallocreallocnew等函数从堆中分配到一块内存,使用完后,程序必须负责相应的调用freedelete释放该内存块,否则,这块内存就不能被再次使用,我们就说这块内存泄漏了

    广义的说,内存泄漏不仅仅包含堆内存的泄漏,还包含系统资源的泄漏(resource leak),比如核心态HANDLEGDI ObjectSOCKET Interface等,从根本上说这些由操作系统分配的对象也消耗内存,如果这些对象发生泄漏最终也会导致内存的泄漏。而且,某些对象消耗的是核心态内存,这些对象严重泄漏时会导致整个操作系统不稳定。所以相比之下,系统资源的泄漏比堆内存的泄漏更为严重。

     

    内存泄漏的发生方式

      以发生的方式来分类,内存泄漏可以分为4类:

      1. 常发性内存泄漏。发生内存泄漏的代码会被多次执行到,每次被执行的时候都会导致一块内存泄漏。
      2. 偶发性内存泄漏。发生内存泄漏的代码只有在某些特定环境或操作过程下才会发生。
      3. 一次性内存泄漏。发生内存泄漏的代码只会被执行一次,或者由于算法上的缺陷,导致总会有一块仅且一块内存发生泄漏。

    4. 隐式内存泄漏。程序在运行过程中不停的分配内存,但是直到结束的时候才释放内存。严格的说这里并没有发生内存泄漏,因为最终程序释放了所有申请的内存。但是对于一个服务器程序,需要运行几天,几周甚至几个月,不及时释放内存也可能导致最终耗尽系统的所有内存。所以,我们称这类内存泄漏为隐式内存泄漏。

     

    从用户使用程序的角度来看,内存泄漏本身不会产生什么危害,作为一般的用户,根本感觉不到内存泄漏的存在。真正有危害的是内存泄漏的堆积,这会最终消耗尽系统所有的内存。从这个角度来说,一次性内存泄漏并没有什么危害,因为它不会堆积,而隐式内存泄漏危害性则非常大,因为较之于常发性和偶发性内存泄漏它更难被检测到。

  • 软件测试工具比较

    2007-04-23 12:52:36

    一、JTEST

    1、简介:

    jtest是parasoft公司推出的一款针对java语言的自动化白盒测试工具,它通过自动实现java的单元测试和代码标准校验,来提高代码的可靠性。Jtest先分析每个java类,然后自动生成junit测试用例并执行用例,从而实现代码的最大覆盖,并将代码运行时未处理的异常暴露出来;另外,它还可以检查以DbCDesign by Contract)规范开发的代码的正确性。用户还可以通过扩展测试用例的自动生成器来添加更多的junit用例。Jtest还能按照现有的超过350个编码标准来检查并自动纠正大多数常见的编码规则上的偏差,用户可自定义这些标准,通过简单的几个点击,就能预防类似于未处理异常、函数错误、内存泄漏、性能问题、安全隐患这样的代码问题。

    2、优势:

    1)使预防代码错误成为可能,从而大大节约成本,提高软件质量和开发效率

    2)使单元测试——包括白盒、黑盒以及回归测试成为可能

    3)使代码规范检查和自动纠正成为可能

    4)鼓励开发团队横向协作来预防代码错误

    3、特征:

    1)通过简单的点击,自动实现代码基本错误的预防,这包括单元测试和代码规范的检查

    2)生成并执行junit单元测试用例,对代码进行即时检查

    3)提供了进行黑盒测试、模型测试和系统测试的快速途径

    4)确认并阻止代码中不可捕获的异常、函数错误、内存泄漏、性能问题、安全弱点的问题

    5)监视测试的覆盖范围

    6)自动执行回归测试

    7)支持DbC编码规范

    8)检验超过350个来自java专家的开发规范

    9)自动纠正违反超过160个编码规范的错误

    10)允许用户通过图形方式或自动创建方式来自定义编码规范

    11)支持大型团队开发中测试设置和测试文件的共享

    12)实现和IBM Websphere Studio /Eclipse IDE 的安全集成

    4、价格:昂贵

     

    二、JUNIT

    1、简介:

    JUnit是一个开源的java测试框架,它是Xuint测试体系架构的一种实现。在JUnit单元测试框架的设计时,设定了三个总体目标,第一个是简化测试的编写,这种简化包括测试框架的学习和实际测试单元的编写;第二个是使测试单元保持持久性;第三个则是可以利用既有的测试来编写相关的测试.2、优势:

    2.1)junit是完全Free的。

    2.2)使用方便。在你提升程序代码的品质时JUnit测试仍允许你更快速的撰写程序 2.3)JUnit非常简单撰写测试应该很简单--这是重点!如果撰写测试太复杂或太耗时间,便无法要求程序设计师撰写测试。使用JUnit你可以快速的撰写测试并检测你的程序代码并逐步随着程序代码的成长增加测试。只要你写了一些测试,你想要快速并频繁的执行测试而不至于中断建立设计及开发程序。使用JUnit执行测试就像编译你的程序代码那么容易。事实上,你应该执行编译时也执行测试。编译是检测程序代码的语法而测试是检查程序代码的完整性(integrity)。如果你是以人工比对测试的期望与实际结果那么测试是很不好玩的,而且让你的速度慢下来。JUnit测试可以自动执行并且检查他们自己的结果。当你执行测试,你获得简单且立即的回馈; 比如测试是通过或失败。而不再需要人工检查测试结果的报告。JUnit可以把测试组织成测试系列;这个测试系列可以包含其它的测试或测试系列。JUnit测试的合成行为允许你组合多个测试并自动的回归(regression)从头到尾测试整个测试系列。你也可以执行测试系列层级架构中任何一层的测试。使用Junit测试框架,你可以很便宜的撰写测试并享受由测试框架所提供的信心。撰写一个测试就像写一个方法一样简单;测试是检验要测试的程序代码并定义期望的结果。这个测试框架提供自动执行测试的背景;这个背景并成为其它测试集合的一部份。在测试少量的投资将持续让你从时间及品质中获得回收。你写的测试愈少;你的程序代码变的愈不稳定。测试使得软件稳定并逐步累积信心;因为任何变动不会造成涟漪效应而漫及整个软件。测试可以形成软件的完整结构的胶结。 2.8)JUnit测试是开发者测试。JUnit测试是高度区域性(localized)测试;用以改善开发者的生产力及程序代码品质。不像功能测试(function test)视系统为一个黑箱以确认软件整体的工作性为主,单元测试是由内而外测试系统基础的建构区块。开发者撰写并拥有JUnit测试。每当一个开发反复(iteration)完成,这个测试便包裹成为交付软件的一部份提供一种沟通的方式,「这是我交付的软件并且是通过测试的。使用Java测试Java软件形成一个介于测试及程序代码间的无缝(seamless)边界。在测试的控制下测试变成整个软件的扩充同时程序代码可以被重整。Java编译器的单元测试静态语法检查可已帮助测试程序并且确认遵守软件接口的约定。
    一段测试的程序代码无法单独的执行,它需要是执行环境的一部份。同时,它需要自动执行的单元测试--譬如在系统中周期性的执行所有的测试以证明没有任何东西被破坏。由于单元测试需要符合特定的准则:一个成功的测试不应该是人工检查的(那可要到天荒地老了啊),一个未通过测试的失败应可以产出文件以供诊断修改。而Junit可以提供给我们这些便利.。这样所有测试开发者所需撰写的只是测试码本身了。跟optimizeitJtest那些昂贵而又超级麻烦的tool比较起来,其利昭然可见!
    2.9)JUnit
    测试是以Java写成的。
    2.7)JUnit
    测试提升软件的稳定性。
    2.6)
    撰写JUnit测试所费不多。
    2.5)JUnit
    测试可以合成一个测试系列的层级架构。
    2.4)JUnit
    测试检验其结果并提供立即的回馈。
    那听起来似乎不是很直觉,但那是事实。当你使用JUnit撰写测试,你将花更少的时间除虫,同时对你程序代码的改变更俱有信心。这个信心让你更积极重整程序代码并增加新的功能。没有测试,对于重整及增加新功能你会变得没有信心;因为你不知道有甚么东西会破坏产出的结果。采用一个综合的测试系列,你可以在改变程序代码之后快速的执行多个测试并对于你的变动并未破坏任何东西感到有信心。在执行测试时如果发现臭虫,原始码仍然清楚的在你脑中,因此很容易找到臭虫。在JUnit中撰写的测试帮助你以一种极 大(extreme)的步伐撰写程序及快速的找出缺点。

    3、价格:免费

     

    三、WINRUNNER

    1、简介

    WinRunner:强大的企业级自动化测试工具

    Mercury Interactive公司的WinRunner是一种企业级的功能测试工具,用于检测应用程序是否

    能够达到预期的功能及正常运行。通过自动录制、检测和回放用户的应用操作,WinRunner能够

    有效地帮助测试人员对复杂的企业级应用的不同发布版进行测试,提高测试人员的工作效率和

    质量,确保跨平台的、复杂的企业级应用无故障发布及长期稳定运行。

    企业级应用可能包括Web应用系统,ERP系统,CRM系统等等。这些系统在发布之前,升级之后都

    要经过测试,确保所有功能都能正常运行,没有任何错误。如何有效地测试不断升级更新且不

    同环境的应用系统,是每个公司都会面临的问题。

    如果时间或资源有限,这个问题会更加棘手。人工测试的工作量太大,还要额外的时间来培训

    新的测试人员等等。为了确保那些复杂的企业级应用在不同环境下都能正常可靠地运行,你需

    要一个能简单操作的测试工具来自动完成应用程序的功能性测试。

    2、特征:

    1)轻松创建测试

    2)插入检查点

    WinRuuner创建一个测试,只需点击鼠标和键盘,完成一个标准的业务操作流程,WinRunner

    自动记录你的操作并生成所需的脚本代码。这样,即使计算机技术知识有限的业务用户轻松创

    建完整的测试。你还可以直接修改测试脚本以满足各种复杂测试的需求。WinRunner提供这两种

    测试创建方式,满足测试团队中业务用户和专业技术人员的不同需求。

    在记录一个测试的过程中,可以插入检查点,检查在某个时刻/状态下,应用程序是否运行正

    常。在插入检查点后,WinRunner会收集一套数据指标,在测试运行时对其一一验证。

    WinRunner提供几种不同类型的检查点,包括文本的、GUI、位图和数据库。例如,用一个位图

    检查点,你可以检查公司的图标是否出现于指定位置。

    3)检验数据 

    除了创建并运行测试,WinRunner还能验证数据库的数值,从而确保业务交易的准确性。例如,

    在创建测试时,可以设定哪些数据库表和记录需要检测;在测试运行时,测试程序就会自动核

    对数据库内的实际数值和预期的数值。WinRunner自动显示检测结果,在有更新/删除/插入的记

    录上突出显示以引起注意。

    4)增强测试

    为了彻底全面地测试一个应用程序,需要使用不同类型的数据来测试。WinRunner的数据驱动向

    ( Data Driver Wizard)可以让你简单地点击几下鼠标,就可以把一个业务流程测试转化为数

    据驱动测试,从而反映多个用户各自独特且真实的行为。

    以一个订单输入的流程为例,你可能希望把订单号或客户名称作为可变栏,用多套数据进行测

    试。使用Data Driver Wizard,你可以选择订单号或客户名称用数据表格文件中的哪个栏目的

    数据替换。你可以把订单号或客户名称输入数据表格文件,或从其它表格和数据库中导入。数

    据驱动测试不仅节省了时间和资源,又提高了应用的测试覆盖率。

    WinRunner还可以通过Function Generator增加测试的功能。使用Function Generator可以目

    录列表中选择一个功能增加到你的测试中以提高测试能力。例如,你可以选择”calendar”

    然后从日历功能的下属目录中选择,如Calendar_select_date(),然后你可以直观地输入参数,

    把这个功能插入到你的测试中。

    针对相当数量的企业应用里非标准对象,WinRunner提供了Virtual Object Wizard来识别以前

    未知的对象。使用Virtual Object Wizard,你可以选择未知对象的类型,设定标识和命名。在

    录制使用该对象的测试时,WinRunner会自动对应它的名字,从而提高测试脚本的可读性和测试

    质量。

    未知的对象。使用Virtual Object Wizard,你可以选择未知对象的类型,设定标识和命名。在

    录制使用该对象的测试时,WinRunner会自动对应它的名字,从而提高测试脚本的可读性和测试

    质量。

    5)运行测试

    创建好测试脚本,并插入检查点和必要的添加功能后,你就可以开始运行测试。运行测试时,

    WinRunner会自动操作应用程序,就象一个真实的用户根据业务流程执行着每一步的操作。测试

    运行过程中,如有网络消息窗口出现或其它意外事件出现,WinRunner也会根据预先的设定排除

    这些干扰。

    6)分析结果

    测试运行结束后,你需要分析测试结果。WinRunner通过交互式的报告工具来提供详尽的、易读的

    报告。报告中会列出测试中发现的错误内容、位置、检查点和其它重要事件,帮助你对测试结

    果进行分析。这些测试结果还可以通过Mercury Interactive的测试管理工具TestDirector来查

    阅。

    7)维护测试

    随着时间的推移,开发人员会对应用程序做进一步的修改,并需要增加另外的测试。使用

    WinRunner,你不必对程序的每一次改动都重新创建你的测试。WinRunner可以创建在整个应用

    程序生命周期内都可以重复使用的测试,从而大大地节省时间和资源,充分利用你的测试投资。

    每次记录测试时,WinRunner会自动创建一个GUI Map文件以保存应用对象。这些对象分层次组织

    ,既可以总览所有的对象,也可以查询某个对象的详细信息。一般而言,对应用程序的任何改

    动都会影响到成百上千个测试。通过修改一个GUI Map文件而非无数个测试,WinRunner可以方

    便地实现测试重用。

    8)帮助你的应用程序为无线应用作准备

    随着无线设备种类和数量的增加,你的应用程序测试计划需要同时满足传统的基于浏览器的用户

    和无线浏览设备,如移动电话、传呼机和个人数字助理(PDA)

    无线应用协议是一种公开的、全球性的网络协议,用来支持标准数据格式化和无线设备信号的

    传输。

    使用WinRunner,测试人员可以利用微型浏览模拟器来记录业务流程操作,然后回放和检查这些

    业务流程功能的正确性。 

     

    四、LOADRUNNER

    1、简介:

        LoadRunner 是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner 能够对整个企业架构进行测试。通过使用LoadRunner ,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。

        目前企业的网络应用环境都必须支持大量用户,网络体系架构中含各类应用环境且由不同供应商提供软件和硬件产品。难以预知的用户负载和愈来愈复杂的应用环境使公司时时担心会发生用户响应速度过慢,系统崩溃等问题。这些都不可避免地导致公司收益的损失。Mercury Interactive LoadRunner 能让企业保护自己的收入来源,无需购置额外硬件而最大限度地利用现有的IT 资源,并确保终端用户在应用系统的各个环节中对其测试应用的质量,可靠性和可扩展性都有良好的评价。

        LoadRunner 是一种适用于各种体系架构的自动负载测试工具,它能预测系统行为并优化系统性能。LoadRunner 的测试对象是整个企业的系统,它通过模拟实际用户的操作行为和实行实时性能监测,来帮助您更快的查找和发现问题。此外,LoadRunner 能支持广范的协议和技术,为您的特殊环境提供特殊的解决方案。

    2、特征:

    1)轻松创建虚拟用户

        使用LoadRunner Virtual User Generator,您能很简便地创立起系统负载。该引擎能够生成虚拟用户,以虚拟用户的方式模拟真实用户的业务操作行为。它先记录下业务流程(如下订单或机票预定),然后将其转化为测试脚本。利用虚拟用户,您可以在Windows UNIX Linux 机器上同时产生成千上万个用户访问。所以LoadRunner能极大的减少负载测试所需的硬件和人力资源。另外,LoadRunner TurboLoad 专利技术能。

        提供很高的适应性。TurboLoad 使您可以产生每天几十万名在线用户和数以百万计的点击数的负载。

        用Virtual User Generator 建立测试脚本后,您可以对其进行参数化操作,这一操作能让您利用几套不同的实际发生数据来测试您的应用程序,从而反映出本系统的负载能力。以一个订单输入过程为例,参数化操作可将记录中的固定数据,如订单号和客户名称,由可变值来代替。在这些变量内随意输入可能的订单号和客户名,来匹配多个实际用户的操作行为。

         LoadRunner 通过它的Data Wizard 来自动实现其测试数据的参数化。Data Wizard 直接连于数据库服务器,从中您可以获取所需的数据(如定单号和用户名)并直接将其输入到测试脚本。这样避免了人工处理数据的需要,Data Wizard 为您节省了大量的时间。

         为了进一步确定您的Virtual user 能够模拟真实用户,您可利用LoadRunner 控制某些行为特性。例如,只需要点击一下鼠标,您就能轻易控制交易的数量,交易频率,用户的思考时间和连接速度等。

    2)创建真实的负载

         Virtual users 建立起后,您需要设定您的负载方案,业务流程组合和虚拟用户数量。用LoadRunner Controller,您能很快组织起多用户的测试方案。Controller Rendezvous 功能提供一个互动的环境,在其中您既能建立起持续且循环的负载,又能管理和驱动负载测试方案。

         而且,您可以利用它的日程计划服务来定义用户在什么时候访问系统以产生负载。这样,您就能将测试过程自动化。同样您还可以用Controller 来限定您的负载方案,在这个方案中所有的用户同时执行一个动作---如登陆到一个库存应用程序----来模拟峰值负载的情况。另外,您还能监测系统架构中各个组件的性能---- 包括服务器,数据库,网络设备等----来帮助客户决定系统的配置。

         LoadRunner 通过它的AutoLoad 技术,为您提供更多的测试灵活性。使用AutoLoad ,您可以根据目前的用户人数事先设定测试目标,优化测试流程。例如,您的目标可以是确定您的应用系统承受的每秒点击数或每秒的交易量。

    3)定位性能问题

         LoadRunner 内含集成的实时监测器,在负载测试过程的任何时候,您都可以观察到应用系统的运行性能。这些性能监测器为您实时显示交易性能数据(如响应时间)和其它系统组件包括application server, web server,网路设备和数据库等的实时性能。这样,您就可以在测试过程中从客户和服务器的双方面评估这些系统组件的运行性能,从而更快地发现问题。

         再者,利用LoadRunner ContentCheck TM ,您可以判断负载下的应用程序功能正常与否。ContentCheck Virtual users 运行时,检测应用程序的网络数据包内容,从中确定是否有错误内容传送出去。它的实时浏览器帮助您从终端用户角度观察程序性能状况。

    4)分析结果以精确定位问题所在

         一旦测试完毕后,LoadRunner 收集汇总所有的测试数据,并为您提供高级的分析和报告工具,以便迅速查找到性能问题并追溯原由。使用LoadRunner Web 交易细节监测器,您可以了解到将所有的图象、框架和文本下载到每一网页上所需的时间。例如,这个交易细节分析机制能

         够分析是否因为一个大尺寸的图形文件或是第三方的数据组件造成应用系统运行速度减慢。另外,Web 交易细节监测器分解用于客户端、网络和服务器上端到端的反应时间,便于确认问题,定位查找真正出错的组件。例如,您可以将网络延时进行分解,以判断DNS 解析时间,连接服务器或SSL 认证所花费的时间。通过使用LoadRunner 的分析工具,您能很快地查找到出错的位置和原因并作出相应的调整。

    5)重复测试保证系统发布的高性能

         负载测试是一个重复过程。每次处理完一个出错情况,您都需要对您的应用程序在相同的方案下,再进行一次负载测试。以此检验您所做的修正是否改善了运行性能

    6)Enterprise Java Beans的测试

         LoadRunner 完全支持EJB 的负载测试。这些基于Java 的组件运行在应用服务器上,提供广泛的应用服务。通过测试这些组件,您可以在应用程序开发的早期就确认并解决可能产生的问题。

         利用LoadRunner, 您可以很方便地了解系统的性能。 它的Controller 允许您重复执行与出错修改前相同的测试方案。它的基于HTML 的报告为您提供一个比较性能结果所需的基准,以此衡量在一段时间内,有多大程度的改进并确保应用成功。由于这些报告是基于HTML 的文本,您可以将其公布于您公司的内部网上,便于随时查阅。

    7)最大化投资回报

         所有Mercury Interactive 的产品和服务都是集成设计的, 能完全相容地一起运作。由于它们具有相同的核心技术,来自于LoadRunnerActiveTest TM 的测试脚本,在Mercury Interactive 的负载测试服务项目中,可以被重复用于性能监测。借助Mercury Interactive的监测功能--Topaz TM ActiveWatch TM ,测试脚本可重复使用从而平衡投资收益。更重要的是,您能为测试的前期布署和生产系统的监测提供一个完整的应用性能管理解决方案。

    8)支持无线应用协议

         随着无线设备数量和种类的增多,您的测试计划需要同时满足传统的基于浏览器的用户和无线互联网设备,如手机和PDALoadRunner 支持2 项最广泛使用的协议:WAPI-mode。此外,通过负载测试系统整体架构,LoadRunner 能让您只需要通过记录一次脚本,就可完全检测上述这些无线互联网系统。

    9)支持Media Stream应用

         LoadRunner 还能支持Media Stream应用。为了保证终端用户得到良好的操作体验和高质量Media Stream,您需要检测您的Media Stream应用程序。使用LoadRunner ,您可以记录和重放任何流行的多媒体数据流格式来诊断系统的性能问题,查找原由,分析数据的质量。

    10)完整的企业应用环境的支持

    LoadRunner 支持广泛的协议,可以测试各种IT 基础架构。

  • 软件测试的14种类型

    2007-04-23 12:49:30

    软件测试是指使用人工或者自动的手段来运行或测定某个软件产品系统的过程,其目的是在于检验是否满足规定的需求或者弄清预期的结果与实际结果的区别。本文主要描述软件测试的类型。

    1
    数据和数据库完整性测试

    数据与数据库完整测试是指测试关系型数据库完整性原则以及数据合理性测试。
    数据库完整性原即:
    主码完整性:主码不能为空;
    外码完整性:外码必须等于对应的主码或者为空。
    数据合理性指数据在数据库中的类型,长度,索引等是否建的比较合理。
    在项目名称中,数据库和数据库进程应作为一个子系统来进行测试。在测试这些子系统时,不应将测试对象的用户界面用作数据的接口。对于数据库管理系统 (DBMS),还需要进行深入的研究,以确定可以支1持测试的工具和技术。

    比如,有两张表:部门和员工。部门中有部门编号,部门名称,部门经理等字段,主码为部门编号;员工表中有员工编号,员工所属部门编号,员工名称,员工类型等字段,主码为员工编号,外码为员工所属部门编号,对应部门表。如果在某条部门记录中部门编号或员工记录员工编号为空,他就违反主码完整性原则。如果某个员工所属部门的编号为##,但是##在部门编号中确找不到,这就违反外码完整性原则。
    员工类型如下定义:0:职工,1:职员,2:实习生。但数据类型为Int,我们都知道Int占有4个字节,如果定义成char(1).就比原来节约空间。

    2
    白盒测试

    白盒测试是基于代码的测试,测试人员通过阅读程序代码或者通过使用开发工具中的单步调试来判断软件的质量,一般黑盒测试由项目经理在程序员开发中来实现。白盒测试分为动态白盒测试和静态白盒测试
    2.1
    静态白盒测试
    利用眼睛,浏览代码,凭借经验,找出代码中的错误或者代码中不符合书写规范的地方。比如,代码规范中规定,函数必须为动宾结构。而黑盒测试发现一个函数定义如下:
    Function NameGet(){
    ….
    }
    这是属于不符合开发规范的错误。
    有这样一段代码:
    if (i<0) & (i>=0)

    这段代码交集为整个数轴,IF语句没有必要
    I=0;
    while(I>100){
    J=J+100;
    T=J*PI;
    }
    在循环体内没有I的增加,bug产生。

    2.2
    动态白盒测试
    利用开发工具中的调式工具进行测试。比如一段代码有4个分支,输入4组不同的测试数据使4组分支都可以走通而且结果必须正确。
    看一段代码
    if(I<0){
    P1
    }else{
    P2
    }
    在调试中输入I=-1,P1程序段通过, P2程序段未通过,属于动态黑盒测试的缺陷

    3.
    功能测试

    功能测试指测试软件各个功能模块是否正确,逻辑是否正确。
    对测试对象的功能测试应侧重于所有可直接追踪到用例或业务功能和业务规则的测试需求。这种测试的目标是核实数据的接受、处理和检索是否正确,以及业务规则的实施是否恰当。此类测试基于黑盒技术,该技术通过图形用户界面 (GUI) 与应用程序进行交互,并对交互的输出或结果进行分析,以此来核实应用程序及其内部进程。功能测试的主要参考为类似于功能说明书之类的文档。
    比如一个对电子商务系统,前台用户浏览商品-放入购物车-进入结账台,后台处理订单,配货,付款,发货,这一系列流程必须正确无误的走通,不能存在任何的错误。

    4.UI
    测试

    UI
    测试指测试用户界面的风格是否满足客户要求,文字是否正确,页面美工是否好看,文字,图片组合是否完美,背景是否美观,操作是否友好等等
    用户界面 (UI) 测试用于核实用户与软件之间的交互。UI 测试的目标是确保用户界面会通过测试对象的功能来为用户提供相应的访问或浏览功能。另外,UI 测试还可确保 UI 中的对象按照预期的方式运行,并符合公司或行业的标准。包括用户友好性,人性化,易操作性测试。UI测试比较主观,与测试人员的喜好有关
    比如:页面基调颜色刺眼;用户登入页面比较难于找到,文字中出现错别字,页面图片范围太广等都属于UI测试中的缺陷,但是这些缺陷都不太严重。

    5.
    性能测试

    性能测试主要测试软件测试的性能,包括负载测试,强度测试,数据库容量测试,基准测试以及基准测试
    5.1
    负载测试
    负载测试是一种性能测试指数据在超负荷环境中运行,程序是否能够承担。
    在这种测试中,将使测试对象承担不同的工作量,以评测和评估测试对象在不同工作量条件下的性能行为,以及持续正常运行的能力。负载测试的目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行。此外,负载测试还要评估性能特征,例如,响应时间、事务处理速率和其他与时间相关的方面。
    比如,在B/S结构中用户并发量测试就是属于负载测试的用户,可以使用webload工具,模拟上百人客户同时访问网站,看系统响应时间,处理速度如何?
    5.2
    强度测试
    强度测试是一种性能测试,他在系统资源特别低的情况下软件系统运行情况。这类测试往往可以书写系统要求的软硬件水平要求。
    实施和执行此类测试的目的是找出因资源不足或资源争用而导致的错误。如果内存或磁盘空间不足,测试对象就可能会表现出一些在正常条件下并不明显的缺陷。而其他缺陷则可能由于争用共享资源(如数据库锁或网络带宽)而造成的。强度测试还可用于确定测试对象能够处理的最大工作量。
    比如:一个系统在内存366M下可以正常运行,但是降低到258M下不可以运行,告诉内存不足,这个系统对内存的要求就是366M
    5.3
    数据库容量测试
    数据库容量测试指通过存储过程往数据库表中插入一定数量的数据,看看相关页面是否能够及时显示数据。
    数据库容量测试使测试对象处理大量的数据,以确定是否达到了将使软件发生故障的极限。容量测试还将确定测试对象在给定时间内能够持续处理的最大负载或工作量。例如,如果测试对象正在为生成一份报表而处理一组数据库记录,那么容量测试就会使用一个大型的测试数据库,检验该软件是否正常运行并生成了正确的报表。做这种测试通常通过书写存储过程向数据库某个表中插入一定数量的记录,计算相关页面的调用时间。
    比如,在电子商务系统中,通过insert customer user表中插入10 000数据,看其是否可以正常显示顾客信息列表页面,如果要求达到最多可以处理100 000个客户,但是顾客信息列表页面不能够在规定的时间内显示出来,就需要调整程序中的SQL查询语句;如果在规定的时间内显示出来,可以将用户数分别提高到20 000 , 50 000, 100 000进行测试。
    5.4
    基准测试
    基准测试与已知现有的系统进行比较,主要检验是否与类似的产品具有竞争性的一种测试。
    如果你要开发一套财务系统软件并且你已经获得用友财务系统的性能等数据,你可以测试你这套系统,看看哪些地方比用友财务系统好,哪些地方差?以便改进自己的系统,也可为产品广告提供数据。
    5.5
    竞争测试
    软件竞争使用各种资源(数据纪录,内存等),看他与其他相关系统对资源的争夺能力。比如:一台机器上即安装您的财务系统,又安装用友财务系统。当CPU占有率下降后,看看是否能够强过用友财务系统,而是自己的系统能够正常运行?

    6.
    安全性和访问控制测试

    安全性和访问控制测试侧重于安全性的两个关键方面:
    应用程序级别的安全性,包括对数据或业务功能的访问
    系统级别的安全性,包括对系统的登录或远程访问。
    6.1
    应用程序级别的安全性
    可确保:在预期的安全性情况下,主角只能访问特定的功能或用例,或者只能访问有限的数据。例如,可能会允许所有人输入数据,创建新账户,但只有管理员才能删除这些数据或账户。如果具有数据级别的安全性,测试就可确保用户类型一能够看到所有客户消息(包括财务数据),而用户二只能看见同一客户的统计数据。
    比如B/S系统,不通过登入页面,直接输入URL,看其是否能够进入系统?
    6.2
    系统级别的安全性
    可确保只有具备系统访问权限的用户才能访问应用程序,而且只能通过相应的网关来访问。
    比如输入管理员账户,检查其密码是否容易猜取,或者可以从数据库中获得?

    7.
    故障转移和恢复测试

    故障转移和恢复测试指当主机软硬件发生灾难时候,备份机器是否能够正常启动,使系统是否可以正常运行,这对于电信,银行等领域的软件是十分重要的。
    故障转移和恢复测试可确保测试对象能成功完成故障转移,并能从导致意外数据损失或数据完整性破坏的各种硬件、软件或网络故障中恢复。
    故障转移测试可确保:对于必须持续运行的系统,一旦发生故障,备用系统就将不失时机地顶替发生故障的系统,以避免丢失任何数据或事务。
    恢复测试是一种对抗性的测试过程。在这种测试中,将把应用程序或系统置于极端的条件下(或者是模拟的极端条件下),以产生故障(例如设备输入/输出 (I/O) 故障或无效的数据库指针和关健字)。然后调用恢复进程并监测和检查应用程序和系统,核实应用程序或系统和数据已得到了正确的恢复。一定要注意主备定时备份
    比如电信系统,突然主机程序发生死机,备份机器是否能够启动,使系统能够正常运行,从而不影响用户打电话?

     

    8.配置测试

    又叫兼容性测试。配置测试核实测试对象在不同的软件和硬件配置中的运行情况。在大多数生产环境中,客户机工作站、网络连接和数据库服务器的具体硬件规格会有所不同。客户机工作站可能会安装不同的软件例如,应用程序、驱动程序等而且在任何时候,都可能运行许多不同的软件组合,从而占用不同的资源。(如浏览器版本,操作系统版本等)
    下面列出主要配置测试
    8.1
    浏览器兼容性
    测试软件在不同产商的浏览器下是否能够正确显示与运行;
    比如测试IENatscape浏览器下是否可以运行这套软件?
    8.2
    操作系统兼容性
    测试软件在不同操作系统下是否能够正确显示与运行;
    比如测试WINDOWS98,WINDOWS 2000,WINDOWS XP,LINU, UNIX下是否可以运行这套软件?
    8.3
    硬件兼容性
    测试与硬件密切相关的软件产品与其他硬件产品的兼容性,比如该软件是少在并口设备中的,测试同时使用其他并口设备,系统是否可以正确使用.
    比如在INTER,舒龙CPU芯片下系统是否能够正常运行?
    这样的测试必须建立测试实验室,在各种环境下进行测试。

    9.
    安装测试

    安装测试有两个目的。第一个目的是确保该软件在正常情况和异常情况的不同条件下: 例如,进行首次安装、升级、完整的或自定义的安装_都能进行安装。异常情况包括磁盘空间不足、缺少目录创建权限等。第二个目的是核实软件在安装后可立即正常运行。这通常是指运行大量为功能测试制定的测试。
    安装测试包括测试安装代码以及安装手册。安装手册提供如何进行安装,安装代码提供安装一些程序能够运行的基础数据。

    10.
    多语种测试

    又称本地化测试,是指为各个地方开发产品的测试,如英文版,中文版等等,包括程序是否能够正常运行,界面是否符合当地习俗,快捷键是否正常起作用等等,特别测试在A语言环境下运行B语言软件(比如在英文win98下试图运行中文版的程序),出现现象是否正常。
    本地化测试还要考虑:
    l
    当语言从A翻译到B,字符长度变化是否影响页面效果。比如中文软件中有个按键叫看广告,翻译到英文版本中为 “View advertisement”可能影响页面的美观程度
    l
    要考虑同一单词在各个国家的不同意思,比如football在英文中为足球,而美国人使用中可能理解为美式橄榄球。
    l
    要考虑各个国家的民族习惯,比如龙个美国中被理解邪恶的象征,但翻译到中国,中国人认为为吉祥的象征。

    11.
    文字测试

    文字测试测试软件中是否拼写正确,是否易懂,不存在二义性,没有语法错误;文字与内容是否有出入等等,包括图片文字。
    比如:比如,请输入正确的证件号码!何谓正确的证件号码,证件可以为身份证,驾驶证,也可为军官证,如果改为请输入正确的身份证号码!用户就比较容易理解了。

    12.
    分辨率测试

    测试在不同分辨率下,界面的美观程度,分为800*6001024*7681152*8641280*7681280*10241200*1600大小字体下测试。一个好的软件要有一个极佳的分辨率,而在其他分辨率下也都能可以运行。

    13
    发布测试

    主要在产品发布前对一些附带产品,比如说明书,广告稿等进行测试

    13.1
    说明书测试
    主要为语言检查,功能检查,图片检查
    语言检查:检查说明书语言是否正确,用词是否易于理解;
    功能检查:功能是否描述完全,或者描述了并没有的功能等;
    图片检查::检查图片是否正确
    13.2
    宣传材料测试
    主要测试产品中的附带的宣传材料中的语言,描述功能,图片
    13.3
    帮助文件测试
    帮助文件是否正确,易懂,是否人性化。最好能够提供检索功能。
    13.4
    广告用语
    产品出公司前的广告材料文字,功能,图片,人性化的检查

    14
    文档审核测试

    文档审核测试目前越来越引起人们的重视,软件质量不是检查出来的,而是融进软件开发中来。前置软件测试发越来越受到重视。请看一个资料:

  • 软件测试人员应该清楚的东西

    2007-04-23 12:46:39

    1.什么叫驱动模块?什么叫桩模块?

        驱动模块 (driver) ── 相当于所测模块的主程序。它接收测试数据,把这些数据传送给所测模块,最后再输出实测结果。

      桩模块 (stub) ── 存根模块。用以代替所测模块调用的子模块。

     

         2.什么叫确认测试?

         确认测试又称有效性测试。任务是验证软件的功能和性能及其它特性是否与用户的要求一致。

         对软件的功能和性能要求在软件需求规格说明书中已经明确规定。它包含的信息就是软件确认测试的基础。

        

        3.什么叫α测试?

         在软件交付使用之后,用户将如何实际使用程序,对于开发者来说是无法预测的。

         α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试。

       α测试的目的是评价软件产品的FLURPS(即功能、局域化、可使用性、可靠性、性能和支持)。尤其注重产品的界面和特色。

      α测试可以从软件产品编码结束之时开始,或在模块(子系统)测试完成之后开始,也可以在确认测试过程中产品达到一定的稳定和可靠程度之后再开始。

     

      4.什么叫β测试?

        β测试是由软件的多个用户在实际使用环境下进行的测试。这些用户返回有关错误信息给开发者。

    测试时,开发者通常不在测试现场。因而,β测试是在开发者无法控制的环境下进行的软件现场应用。

         在β测试中,由用户记下遇到的所有问题,包括真实的以及主观认定的,定期向开发者报告。

         β测试主要衡量产品的FLURPS。着重于产品的支持性,包括文档、客户培训和支持产品生产能力。

      只有当α测试达到一定的可靠程度时,才能开始β测试。它处在整个测试的最后阶段。同时,产品的所有手册文本也应该在此阶段完全定稿。

     

    5.什么叫验收测试(Acceptance Testing

      在通过了系统的有效性测试及软件配置审查之后,就应开始系统的验收测试。

       验收测试是以用户为主的测试。软件开发人员和QA(质量保证)人员也应参加。

      由用户参加设计测试用例,使用生产中的实际数据进行测试。

     

             6.组装测试把已测试过的模块组装起来,主要对与设计相关的软件体系结构的构造进行测试。

       确认测试则是要检查已实现的软件是否满足了需求规格说明中确定了的各种需求,以及软件配置是否完全、正确。

           系统测试,是将通过确认测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其它系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列的组装测试和确认测试。

    系统测试的目的在于通过与系统的需求定义作比较,  发现软件与系统的定义不符合或与之矛盾的地方。

    功能测试是在规定的一段时间内运行软件系统的所有功能,以验证这个软件系统有无严重错误。

     

         7.单元测试又称模块测试,是针对软件设计的最小单位 程序模块,进行正确性检验的测试工作。其目的在于发现各模块内部可能存在的各种差错。

       单元测试需要从程序的内部结构出发设计测试用例。多个模块可以平行地独立进行单元测试。

    在单元测试时,测试者需要依据详细设计说明书和源程序清单,了解该模块的I/O条件和模块的逻辑结构,主要采用白盒测试的测试用例,辅之以黑盒测试的测试用例,使之对任何合理的输入和不合理的输入,都能鉴别和响应。

     

    8. 什么叫性能测试?

    性能测试是要检查系统是否满足在需求说明书中规定的性能。特别是对于实时系统或嵌入式系统。

    性能测试常常需要与强度测试结合起来进行,并常常要求同时进行硬件和软件检测。

         通常,对软件性能的检测表现在以下几个方面:响应时间、吞吐量、辅助存储区,例如缓冲区,工作区的大小等、处理精度,等等

  • 几种常用的黑盒测试用例设计

    2007-04-23 00:40:41

    右击下面的图片,查看其属性,将其URL用工具下载下来,是个word文档,改掉后缀为.doc即可!

    改进:现在也可以进入 我的文件 直接下载

  • 界面测试

    2007-04-23 00:35:47

    界面是软件与用户交互的最直接的层,界面的好坏决定用户对软件的第一印象。而且设计良好的界面能够引导用户自己完成相应的操作,起到向导的作用。同时界面如同人的面孔,具有吸引用户的直接优势。设计合理的界面能给用户带来轻松愉悦的感受和成功的感觉,相反由于界面设计的失败,让用户有挫败感,再实用强大的功能都可能在用户的畏惧与放弃中付诸东流。目前界面的设计引起软件设计人员的重视的程度还远远不够,直到最近网页制作的兴起,才受到专家的青睐。而且设计良好的界面由于需要具有艺术美的天赋而遭拒绝。
      目前流行的界面风格有三种方式:多窗体、单窗体以及资源管理器风格,无论那种风格,以下规则是应该被重视的。
    1
    :易用性:
      按钮名称应该易懂,用词准确,屏弃摸棱两可的字眼,要与同一界面上的其他按钮易于区分,能望文知意最好。理想的情况是用户不用查阅帮助就能知道该界面的功能并进行相关的正确操作。
    易用性细则:
    1):
    完成相同或相近功能的按钮用Frame框起来,常用按钮要支持快捷方式。
    2):
    完成同一功能或任务的元素放在集中位置,减少鼠标移动的距离。
    3):
    按功能将界面划分区域块,用Frame框括起来,并要有功能说明或标题。
    4):
    界面要支持键盘自动浏览按钮功能,即按Tab键、回車鍵的自动切换功能。
    5):
    界面上首先要输入的和重要信息的控件在Tab顺序中应当靠前,位置也应放在窗口上较醒目的位置。
    6):
    同一界面上的控件数最好不要超过10个,多于10个时可以考虑使用分页界面显示。
    7):
    分页界面要支持在页面间的快捷切换,常用组合快捷键Ctrl+Tab
    8):
    默认按钮要支持Enter及选操作,即按Enter后自动执行默认按钮对应操作。

    9):可寫控制項檢測到非法輸入後應給出說明並能自動獲得焦點。
    10):Tab
    键的顺序与控件排列顺序要一致,目前流行总体从上到下,同时行间从左到右的方式。
    11):
    核取方塊和選項框按選擇幾率的高底而先後排列。
    12):
    核取方塊和選項框要有默認選項,並支援Tab選擇。
    13):
    選項數相同時多用選項框而不用下拉清單框。
    14):
    界面空间较小时使用下拉框而不用选项框。
    15):
    选项数較少时使用选项框,相反使用下拉列表框。
    16):
    专业性强的软件要使用相关的专业术语,通用性界面则提倡使用通用性词语。
    2
    规范性:
    通常界面设计都按Windows界面的规范来设计,可以说:界面遵循规范化的程度越高,则易用性相应的就越好。小型软件一般不提供工具厢。
    规范性细则:
    1):
    常用菜单要有命令快捷方式。
    2):
    完成相同或相近功能的菜单用横线隔开放在同一位置。
    3):
    菜单前的图标能直观的代表要完成的操作。
    4):
    菜单深度一般要求最多控制在三层以内。
    5):
    工具栏要求可以根据用户的要求自己选择定制。
    6):
    相同或相近功能的工具栏放在一起。
    7):
    工具栏中的每一个按钮要有及时提示信息。
    8):
    一条工具栏的长度最长不能超出屏幕宽度。
    9):
    工具栏的图标能直观的代表要完成的操作。
    10):
    系统常用的工具栏设置默认放置位置。
    11):
    工具栏太多时可以考虑使用工具箱。
    12):
    工具箱要具有可增减性,由用户自己根据需求定制。
    13):
    工具箱的默认总宽度不要超过屏幕宽度的1/5
    14):
    状态条要能显示用户切实需要的信息,常用的有:
    目前的操作、系统状态、用户位置、用户信息、提示信息、错误信息等,如果某一操作需要的时间较长,还应该显示进度条和进程提示。
    15)
    :滚动条的长度要根据显示信息的长度或宽度能及时变换,以利于用户了解显示信息的位置和百分比。
    16)
    :状态条的高度以放置五好字为宜,滚动条的宽度比状态条的略窄。
    17)
    :菜单和工具条要有清楚的界限;菜单要求凸出显示,这样在移走工具条时仍有立体感。
    18)
    :菜单和状态条中通常使用5号字体。工具条一般比菜单要宽,但不要宽的太多,否则看起来很不协调。
    19):
    右键快捷菜单采用与菜单相同的准则。
    3
    :帮助设施:
    系统应该提供详尽而可靠的帮助文档,在用户使用产生迷惑时可以自己寻求解决方法。
    帮助设施细则:
    1)
    :帮助文档中的性能介绍与说明要与系统性能配套一致。(我们的系统帮助文档都是系统的祖先时期的说明,让人困惑)
    2)
    :打包新系统时,对作了修改的地方在帮助文档中要做相应的修改。
    3)
    :操作时要提供及时调用系统帮助的功能。常用F1
    4)
    :在界面上调用帮助时应该能够及时定位到与该操作相对的帮助位置。也就是说帮助要有即时针对性。
    5)
    :最好提供目前流行的联机帮助格式或HTML帮助格式。
    6)
    :用户可以用关键词在帮助索引中搜索所要的帮助,当然也应该提供帮助主题词。
    7)
    :如果没有提供书面的帮助文档的话,最好有打印帮助的功能。
    8)
    :在帮助中应该提供我们的技术支持方式,一旦用户难以自己解决可以方便的寻求新的帮助方式。

    4:合理性:
    屏幕对角线相交的位置是用户直视的地方,正上方四分之一处为易吸引用户注意力的位置,在放置窗体时要注意利用这两个位置。
    合理性细则:
    1)
    :父窗体或主窗体的中心位置应该在对角线焦点附近。
    2)
    :子窗体位置应该在主窗体的左上角或正中。
    3)
    :多个子窗体弹出时应该依次向右下方偏移,以显示窗体出标题为宜。
    4)
    :重要的命令按钮与使用较频繁的按钮要放在界面上注目的位置。
    5)
    :错误使用容易引起界面退出或关闭的按钮不应该放在易点击的位置。横排开头或最后与竖排最后为易点位置。
    6)
    :与正在进行的操作无关的按钮应该加以屏蔽(Windows中用灰色显示,没法使用该按钮)
    7)
    :对可能造成数据无法恢复的操作必须提供确认信息,给用户放弃选择的机会。
    8)
    :非法的输入或操作应有足够的提示说明。
    9):
    对运行过程中出现问题而引起错误的地方要有提示,让用户明白错误出处,避免形成无限期的等待。
    10):
    提示、警告、或错误说明应该清楚、明了、恰当。
    5
    :美观与协调性:
    界面应该大小适合美学观点,感觉协调舒适,能在有效的范围内吸引用户的注意力。
    美观与协调性细则:
    1):
    长宽接近黄金点比例,切忌长宽比例失调、或宽度超过长度。
    2):
    布局要合理,不宜过于密集,也不能过于空旷,合理的利用空间。
    3):
    按钮大小基本相近,忌用太长的名称,免得占用过多的界面位置。
    4):
    按钮的大小要与界面的大小和空间要协调。
    5):
    避免空旷的界面上放置很大的按钮。
    6)
    :放置完控件后界面不应有很大的空缺位置。
    7):
    字体的大小要与界面的大小比例协调, 通常使用的字体中宋体9-12较为美观,很少使用超过12号的字体。
    8):
    前景与背景色搭配合理协调,反差不宜太大,最好少用深色,如大红、大绿等。常用色考虑使用Windows界面色调。
    9):
    如果使用其他颜色,主色调要柔和,具有亲和力与磁力,坚决杜绝刺目的颜色。
    10):
    大型系统常用的主色有"#E1E1E1""#EFEFEF""#C0C0C0"等。
    11):
    界面风格要保持一致,字的大小、颜色、字体要相同,除非是需要艺术处理或有特殊要求的地方。
    12):
    如果窗体支持最小化和最大化或放大时,窗体上的控件也要随着窗体而缩放;切忌只放大窗体而忽略控件的缩放。
    13)
    :对于含有按钮的界面一般不应该支持缩放,即右上角只有关闭功能。
    14):
    通常父窗体支持缩放时,子窗体没有必要缩放。
    15)
    :如果能给用户提供自定义界面风格则更好,由用户自己选择颜色、字体等。
    6
    :菜单位置:
    菜单是界面上最重要的元素,菜单位置按照按功能来组织。
    菜单测试细则:
    1):
    菜单通常采用常用--主要--次要--工具--帮助的位置排列,符合流行的Windows风格。
    2):
    常用的有文件編輯查看等,幾乎每個系統都有這些選項,當然要根據不同的系統有所取捨。
    3):
    下拉菜单要根据菜单选项的含义进行分组,並且按照一定的规则进行排列,用横线隔开。
    4):
    一组菜单的使用有先后要求或有向导作用时,应该按先后次序排列。
    5):
    没有顺序要求的菜单项按使用频率和重要性排列,常用的放在开头, 不常用的靠后放置;重要的放在开头,次要的放在后边。
    6):
    如果菜单选项较多,应该采用加长菜单的长度而减少深度的原则排列。
    7):
    菜单深度一般要求最多控制在三层以内。
    8):
    对常用的菜单要有快捷命令方式,组合原则见8
    9):
    对与进行的操作无关的菜单要用屏蔽的方式加以处理,如果采用动态加载方式——即只有需要的菜单才显示——最好。
    10):
    菜单前的图标不宜太大,与字高保持一直最好。
    11):
    主菜单的宽度要接近,字数不应多于四个,每个菜单的字数能相同最好。
    12):
    主菜单数目不应太多,最好为单排布置。

    13):菜单条是否显示在合适的语境中?

    14):应用程序的菜单条是否显示系统相关的特性(如时钟显示)?

    15):下拉式操作能正确工作吗?

    16):菜单、调色板和工具条是否工作正确?

    17):是否适当地列出了所有的菜单功能和下拉式子功能?

    18):是否可能通过鼠标访问所有的菜单功能?

    19):相同功能按钮的图标和文字是否一致?

    20):是否能够用其他的文本命令激活每个菜单功能?

    21):菜单功能是否随当前的窗口操作加亮或变灰?

    22):菜单功能是否正确执行?

    23):菜单功能的名字是否具有自解释性?

    24):菜单项是否有帮助,是否语境相关?

    25):在整个交互式语境中,是否可以识别鼠标操作?

    26):如果要求多次点击鼠标,是否能够在语境正确识别?

    27):如果鼠标有多个按钮,是否能够在语境中正确识别?

    28):光标、处理指示器和识别指针是否随操作恰当地改变?        
    7:
    独特性:
    如果一味的遵循业界的界面标准,则会丧失自己的个性.在框架符合以上规范的情况下,设计具有自己独特风格的界面尤为重要。尤其在商业软件流通中有着很好的迁移默化的广告效用。
    测试细则:
    1):
     安装界面上应有单位介绍或产品介绍,并有自己的图标。
    2):
     主界面,最好是大多数界面上要有公司图标。
    3):
     登录界面上要有本产品的标志,同时包含公司图标。
    4):
     帮助菜单的关于中应有版权和产品信息。
    5):
     公司的系列产品要保持一直的界面风格,如背景色、字体、菜单排列方式、图标、安装过程、按钮用语等应该大体一致。

    8:快捷方式的组合
    在菜单及按钮中使用快捷键可以让喜欢使用键盘的用户操作得更快一些在西文Windows及其应用软件中快捷键的使用大多是一致的。
    菜单中:
    1):
    面向事务的组合有:
    Ctrl-D
    删除 Ctrl-F 寻找 Ctrl –H替换;Ctrl-I 插入 Ctrl-N 新记录 Ctrl-S 保存 Ctrl-O 打开。
    2)
    :列表:
    Ctrl-R
    Ctrl-G定位;Ctrl-Tab下一分页窗口或反序浏览同一页面控件;。
    3):
    编辑:
    Ctrl-A
    全选;Ctrl-C 拷贝;Ctrl-V 粘贴;Ctrl-X 剪切;Ctrl-Z撤消操作;Ctrl-Y恢复操作。
    4)
    文件操作:
    Ctrl-P
    打印;Ctrl-W 关闭。
    5):
    系统菜单
    Alt-A
    文件;Alt-E编辑;Alt-T工具;AltW窗口;AltH帮助。
    6):MS Windows
    保留键:
    Ctrl-Esc
    任务列表 Ctrl-F4 关闭窗口; Alt-F4 结束应用;Alt-Tab 下一应用 Enter 缺省按钮/确认操作 Esc 取消按钮/取消操作;Shift-F1 上下文相关帮助。
    按钮中:
    可以根据系统需要而调节,以下只是常用的组合。
    Alt-Y
    确定()Alt-C取消;Alt-N 否;Alt-D删除;Alt-Q退出;Alt-A添加;Alt-E编辑;Alt-B浏览;Alt-R读;Alt-W写。

  • 2006年上半年软件评测师级答案

    2007-04-23 00:28:44

    2006年上半年软件评测师级答案
    上午答案
     
    (1) A (16) B (31) B (46) C (61) C   
    (2) D (17) A (32) A (47) B (62) B   
    (3) A (18) A (33) A (48) C (63) D   
    (4) B (19) B (34) B (49) D (64) D   
    (5) B (20) A (35) C (50) B (65) A   
    (6) C (21) B (36) D (51) C (66) B   
    (7) D (22) C (37) B (52) A (67) C   
    (8) C (23) B (38) D (53) B (68) A   
    (9) C (24) A (39) B (54) B (69) D   
    (10) B (25) D (40) A (55) D (70) B   
    (11) C (26) B (41) A (56) D (71) A   
    (12) A (27) C (42) A (57) D (72) C   
    (13) D (28) B (43) A (58) C (73) B   
    (14) B (29) C (44) A (59) B (74) A   
    (15) A (30) C (45) C (60) A (75) D 
    下午答案
    试题一
    [问题1]
     
    [问题2]
      V(G)=6
    [问题3]
     
    用例编号 temp取值   
    1 >=   
    2 >   
    3 ==   
    4 <=   
    5 <   
    6 除>=、>、==、<=、<之外的字符组合 
    试题二
    [问题1]
      响应时间是系统完成事务执行准备后所采集的时间戳和系统完成待执行事务后所采集的时间戳之间的时间间隔,是衡量特定类型应用事务性能的重要指标,标志了用户执行一项操作大致需要多长时间。
    [问题2]
      系统能够承受的并发用户登录的最大数量为50
      题中指出"通常情况下,交易操作合理的响应时间为5秒以内"。此案例中,登录响应时间随虚拟并发用户数增加而增长。在50个虚拟并发用户的负载下,登录响应时间达到5秒(注意图形中响应时间指标的比例为10)。当负载超过50个虚拟并发用户,响应时间超过5秒。所以此案例中最合理的并发用户数为50。
    [问题3]
      服务器CPU资源使用率是合理的。
      2M带宽是系统处理业务的瓶颈。
      理由是对比"4M带宽登录"案例,4M带宽下,系统每秒处理完成的登录个数固定在13.5个左右,登录响应时间随虚拟用户数增加而增长。在60个虚拟用户的压力下,登录响应时间在4.2秒左右(注意图形中响应时间指标的比例为10)。在80个虚拟用户的压力下,登录响应时间在5.8秒左右,所以在合理登录响应时间(5秒)内预计同时登录用户数是70左右。服务器CPU使用率成为系统处理的瓶颈。说明随着带宽的提高,系统的处理能力进一步提高,同时高吞吐量造成了系统资源的紧张,带来了新的系统性能瓶颈。
    [问题4]
      服务器CPU资源使用率不合理,其平均值超过85%。
      4M带宽的网络测试环境与2M带宽的网络测试环境相比,带来了新的系统瓶颈(CPU资源使用率平均值超过85%),所以增加带宽不是提高系统性能的有效方法。在此基础上,继续提高带宽,系统的处理能力将进一步提高,高的处理能力会使服务器的资源瓶颈进一步加重,带来更加严重的后果。
    [问题5]
      当CPU资源使用成为系统瓶颈时的解决方案可以概括为:
       1. 增加CPU的个数;
       2. 提高CPU的主频;
       3. 将web服务器与数据库服务器分开部署;
       4. 调整软件的设计与开发;
      当带宽成为系统瓶颈时的解决方案可以概括为:
       1. 增加带宽;
       2. 压缩传输数据。

    试题三
    [问题1]
      场景1:A
      场景2:A、B
      场景3:A、C
      场景4:A、D
      场景5:A、E
    [问题2]
     
    测试用例ID号 场景 帐号 是否黑名单卡 输入油量 帐面金额 加油机油黑 预期结果   
    C02. 场景2:卡无效 1 n/a n/a n/a n/a 退卡   
    C03. 场景3:黑名单卡 V V n/a n/a n/a 吞卡   
    C04. 场景4:金额不足 V I V I V 提示错误,重新输入加油量   
    C05. 场景5:油量不足 V I V V I 提示错误,重新输入加油量 
    [问题3]
      1. 0升
      2. 250升
      3. 251升
    [问题4]
      DDP=Bugstester(Bugstester+ Bugscustomer)=(20+100)(20+100+30)=80%(0.8)
      其中,Bugstester为测试者发现的错误数;
      Bugscustomer为客户发现并反馈技术支持人员进行修复的错误数。

    试题四
    [问题1]
      评估安装手册
      安装的自动化测试
      安装选项和设置的测试
      安装过程的中断测试
      安装顺序测试
      多环境安装测试
      安装正确性测试
      修复安装与卸载测试

    [问题2]
      界面整体测试:规范性测试、合理性测试、一致性测试和界面定制性测试
      界面元素测试:窗口测试、菜单测试、图标测试、鼠标测试和文字测试。
    [问题3]
      文本的准确性
      与程序的接口
      帮助索引的检查
      超链接的正确性
      链接的意义
      风格应简洁

    试题五
    [问题1]
      单元测试
      集成测试
      确认测试(系统测试)
      验收测试
    [问题2]
      知识点包括:
       软件测试过程的关键活动:
       测试需求分析
       制定测试计划
       测试设计
       测试执行
       测试分析与总结

      质量保证手段:
       制定质量保证计划、质量体系建立
       测试活动审核、测试文档评审
       测试过程数据的收集、度量与分析

  • 2006年上半年软件评测师试题

    2007-04-23 00:22:41

    2006年上半年软件评测师上午试题
    ● 在计算机系统中,存取速度最快的是___(1)___。
      (1)A.CPU内部寄存器        B.计算机的高速缓存Cache
        C.计算机的主存        D.大容量磁盘
      ● 模块的耦合度描述了___(2)___。
      (2)A.模块内各种元素结合的程度  B.模块内多个功能之间的接口
        C.模块之间公共数据的数量   D.模块之间相互关联的程度
      ● 若某计算机系统是由500个元器件构成的串联系统,且每个元器件的失效率均为10-7/H,在不考虑其它因素对可靠性的影响时,该计算机系统的平均故障间隔时间为___(3)___小时。
      (3)A.2¡1O4     B.5¡1O4    C.2¡1O5    D.5¡105
      ● 内聚是一种指标,表示一个模块___(4)___。
      (4)A.代码优化的程度         B.代码功能的集中程度
        C.完成任务时及时程度       D.为了与其他模块连接所要完成的工作量
      ● 为了解决进程间的同步和互斥问题,通常来用一种称为___(5)___机制的方法。若系统中有5个进程共享若干个资源R,每个进程都需要4个资源R,那么使系统不发生死锁的资源R的最少数目是___(6)___。?
      (5)A.调度     B.信号量    C.分派     D.通讯
      (6)A.20      B.18      C.16      D.15
      ● 在UNIX操作系统中,把输入/输出设备看作是___(7)___。
      (7)A.普通文件   B.目录文件   C.索引文件   D.特殊文件
      ● 某磁盘盘组共有10个盘面,每个盘面上有100个磁道,每个磁道有16个扇区,假定分配以扇区为单位。若使用位示图管理磁盘空间,则位示图需要占用___(8)___字节空间。
      (8)A.16000     B.1000     C.2000     D.1600
      ●___(9)___描述数据的局部逻辑视图,是数据库用户的数据视图,它是与某一应用有关的数据逻辑表示。
      (9)A.模式     B.逻辑模式   C.外模式    D.内模式
      ● 某数据库中有员工关系E、产品关系P、仓库关系W和库存关系I,其中:
      员工关系E(employeelD,name,department)中的属性为:员工编号,姓名,部门;
      产品关系P(productID,name,model,size,color)中的属性为:产品编号,产品名称,型号,尺寸,颜色;
      仓库关系W(warehouselD,name,address,employeeID)中的属性为:仓库编号,仓库名称,地址,员工编号;
      库存关系I(warehouseID,productID,quantity)中的属性为仓库编号,产品编号和产品数量。
      a.若要求仓库关系的负责人引用员工关系的员工编号,员工关系E的员工编号、仓库关系W的仓库编号和产品关系P的产品编号不能为空且惟一标识一个记录,并且仓库的地址不能为空,则依次要满足的完整性约束是___(10)___。
      b.可得到每种产品伪名称和该产品的总库存量的查询语句为;
       SELELCT name,SUM(quantity)
       FROM P,I
       WHERE___(11)___
      (10)A.实体完整性、参照完整性、用户定义完整性
        B.参照完整性、实体完整性、用户定义完整性
        C.用户定义完整性、实体完整性、参照完整性
        D.实体完整性、用户定义完整性、参照完整性
      (11)A.P.productID=I.productlD;
        B.P.productID=I.product ID ORDER BY name;
        C.P.productID=I.product ID GROUP BY name;
        D.P.productID=I.product ID GROUP BY name,quantity。
      ● 与多模光纤相比较,单模光纤具有___(12)___等特点。
      (12)A. 较高的传输率、较长的传输距离、较高的成本
        B. 较低的传输率、较短的传输距离、较高的成本
        C. 较高的传输率、较短的传输距离、较低的成本
        D. 较低的传输率、较长的传输距离、较低的成本
      ● “<title style="italic">science</title>”是一个XML 元素的定义,其中元素标记的属性值是___(13)___。
      (13)A.title     B.style    C.italic    D.science
      ● 某校园网用户无法访问外部站点210.102.58.74,管理人员在windows 操作系统下可以使用___(14)___判断故障发生在校园网内还是校园网外。
      (14)A. ping 210.102.58.74        B. tracert 210.102.58.74
        C. netstat 210.102.58.74      D. arp 210.102.58.74
      ● SNMP 所采用的传输层协议是___(15)___。
      (15)A. UDP      B. ICMP      C. TCP      D. IP
      ● 渐增式开发方法有利于___(16)___。
      (16)A.获取软件需求 B.快速开发软件  C.大型团队开发 D.商业软件开发
      ● 高级程序设计语言中用于描述程序中的运算步骤、控制结构及数据传输的是___(17)___。
      (17)A.语句     B.语义      C.语用     D.语法
      ● ___(18)___是面向对象程序设计语言不同于其它语言的主要特点,是否建立了丰富的___(19)___是衡量一个面向对象程序设计语言成熟与否的重要标志之一。
      (18)A. 继承性    B. 消息传递   C. 多态性    D. 静态联编
      (19)A. 函数库    B. 类库     C. 类型库    D. 方法库
      ● 某市标准化行政主管部门制定并发布的工业产品的安全、卫生要求的标准,在其行政区域内是___(20)___。
      (20)A.强制性标准  B.推荐性标准  C.自愿性标准  D.指导性标准
      ● 王某购买了一个“海之久”牌活动硬盘,而且该活动硬盘还包含有一项实用新型专利,那么,王某享有___21___。
      (21)A.“海之久”商标专用权      B.该盘的所有权
        C.该盘的实用新型专利权      D.前三项权利之全部
      ● 甲企业委托软件公司程序员王某开发管理软件,并与王某签订了书面协议,但协议中未对软件著作权归属做出明确的约定,其软件著作权属于___(22)___。
      (22)A.甲企业    B.软件公司    C.程序员王某  D.软件公司和甲企业
      ● 依据著作权法,计算机软件著作权保护的对象是指___(23)___。
      (23)A. 计算机硬件  B. 计算机软件  C. 计算机硬件和软件 D. 计算机文档
      ● 相对于DES算法而言,RSA算法的___(24)___,因此,RSA___(25)___。
      (24)A.加密密钥和解密密钥是不相同的  B.加密密钥和解密密钥是相同的
        C.加密速度比DES要高        D.解密速度比DES要高
      (25)A.更适用于对文件加密       B.保密性不如DES
        C.可用于对不同长度的消息生成消息摘要  D.可以用于数字签名
      ● 在C++语言中,已知3个类O、P和Q,类O中定义了一个私有方法F1、一个公有方法F2和一个受保护的方法F3:类P和类Q是类O的派生类,其继承方式如下所示:
       class P : protected O {…};
       class Q : public O {…};
      关于方法F1的描述中正确的是___(26)___;关于方法F2韵描述中正确的是___(27)___;关于方法F3的描述中正确的是___(28)___。
      (26)A.方法F1无法被访问          B.只有在类O内才能访问方法F1
        C.只有在类P内才能访问方法F1     D.只有在类Q内才能访问方法F1
      (27)A.类O、P和Q的对象都可以访问方法F2  B.类P和Q的对象都可以访问方法F2
        C.类0和Q的对象都可以访问方法F2    D.只有在类P内才能访问方法F2
      (28)A.类0、P和Q的对象都可以访问方法F3  B.类0、P和Q的对象都不可以访问方法F3
        C.类0和Q的对象都可以访问方法F3    D.类P和Q的对象都可以访问方法F3。
      ● 正式的技术评审FTR(Formal Technical Review)是软件工程师组织的软件质量保证活动,下面关于FTR指导原则中不正确的是___(29)___。
      (29)A.评审产品,而不是评审生产者的能力
        B.要有严格的评审计划,并遵守日程安排
        C.对评审中出现的问题要充分讨论,以求彻底解决
        D.限制参与者人数,并要求评审会之前做好准备
      ● 在绘制数据流图时,要遵循的一个原则是父图与子图的平衡,所谓平衡是指___(30)___。
      (30)A.父图和子图都不得改变数据流的性质
        B.子图不改变父图数据流的—致性
        C.父图的输入/输出数据流与子图的输入/输出数据流一致
        D.子图的输出数据流完全由父图的输入数据流确定
      ● 某系统的顶层DFD图如下,其中,加工1细化后的DFD图是___(31)___。
     

      (31) 
      ● 下图中的程序由A、B、C、D、E 5个模块组成,下表中描述了这些模块之间的接口,每一个接口有一个编号。此外,模块A、D和E都要引用一个专用数据区。那么A和E之间耦合关系是___(32)___。
     
      编号
    参数
    返回值

    1
    数据项
    数据项

    2
    数据项
    数据项

    3
    功能码

    4

    列表


      (32)A.公共耦合    B.数据耦合    C.内容耦合    D.无耦合
      ● 在C++语言中,若类C中定义了一个方法int f(int a,int b),那么方法___(33)___不能与该方法同时存在于类C中。
      (33)A.int f(int x,int y)        B.int f(float a,int b)
        C.float f(int x,float y)      D.int f(int x,float y)
      ● 在面向对象软件开发过程中,采用设计模式___(34)___。
      (34)A.允许在非面向对象程序设计语言中使用面向对象的概念
        B.以复用成功的设计和体系结构
        C.以减少设计过程创建的类的个数
        D.以保证程序的运行速度达到最优值
      ● 两个小组独立地测试同一个程序,第一组发现25个错误,第二组发现30个错误,在两个小组发现的错误中有15个是共同的,那么可以估计程序中的错误总数是___(35)___个。
      (35)A.25       B.30      C.50     D.60
      ● 对于软件的β测试,下列描述正确的是___(36)___。
      (36)A.β测试就是在软件公司内部展开的测试,由公司专业的测试人员执行的测试
        B.β测试就是在软件公司内部展开的测试,由公司的非专业测试人员执行的测试
        C.β测试就是在软件公司外部展开的测试,由专业的测试人员执行的测试
        D.β测试就是在软件公司外部展开的测试,可以由非专业的测试人员执行的测试
      ●___(37)___可以作为软件测试结束的标志。
      (37)A.使用了特定的测试用例      B.错误强度曲线下降到预定的水平
        C.查出了预定数目的错误      D.按照测试计划中所规定的时间进行了测试
      ● 下面①--④是关于软件评测师工作原则的描述,正确的判断是___(38)___。
       ①对于开发人员提交的程序必须进行完全的测试,以确保程序的质量
       ②必须合理安排测试任务,做好周密的测试计划,平均分配软件各个模块的测试时间
       ③在测试之前需要与开发人员进行详细的交流,明确开发人员的程序设计思路,并以此为依据开展软件测试工作,最大程度地发现程序中与其设计思路不一致的错误
       ④要对自己发现的问题负责,确保每一个问题都能被开发人员理解和修改。
      (38)A.①、②     B.②、③     C.①、③    D.无
      ● 在软件生命周期的不同阶段,需要实施不同类型的测试工作,单元测试是对程序设计进行验证,其中___(39)___不是单元测试的主要内容。在进行单元测试过程中,通常测试工程师都需要借助___(40)___来代替所测模块调用的子模块:在单元测试的基础上,需要将所有模块按照概要设计和详细设计说明书的要求进行组装,模块组装成系统的方式有两种,分别是___(41)___。
      (39)A.模块接口测试  B.有效性测试  C.路径测试    D.边界测试
      (40)A.桩模块     B.驱动模块   C.桩模块和驱动模块  D.存根模块和驱动模块
      (41)A.一次性组装和增殖性组装      B.自顶向下组装和启底向上组装
        C.单个模块组装和混合模块组装    D.接口组装和功能组装
      ● 黑盒测试是通过软件的外部表现来发现软件缺陷和错误的测试方法,具体地说,黑盒测试用例设计技术包括___(42)___等。现有一个处理单价为1元的盒装饮料的自动售货机软件,若投入1元币,按下“可乐”、“雪碧”或“红茶”按钮,相应的饮料就送出来,若投入的是2元币,在送出饮料的同时退还1元币。下表是用因果图法设计的部分测试用例,l表示执行该动作,0表示不执行该动作,___(43)___的各位数据,从左到右分别填入空格表中的(1)—(8)是正确的。
     
    用例序号 1 2 3 4 5   

    入  投入1元币 1 1 0 0 0   
      投入2元币 0 0 1 0 0   
      按“可乐”按钮 1 0 0 0 0   
      按“雪碧”按钮 0 0 0 1 0   
      按“红茶”按钮 0 0 1 0 1   

    出  退还1元币 (1) 0 (5) (7) 0   
      送出“可乐”饮料 (2) 0 0 0 0   
      送出“雪碧”饮料 (3) 0 0 (8) 0   
      送出“红茶”饮料 (4) 0 (6) 0 0 
      (42)A.等价类划分法、因果图法、边界值分析法、错误推测法、判定表驱动法
        B.等价类划分法、因果图法、边界值分析法、正交试验法、符号法
        C.等价类划分法、因果图法、边界值分析法、功能图法、基本路径法
        D.等价类划分法、因果图法、边界值分析法、静态质量度量法、场景法
      (43)A.01001100   B.01101100   C.01001010   D.11001100
      ● 多条件覆盖是一种逻辑覆盖,它的含义是设计足够的测试用例,使得每个判定中条件的各种可能组合都至少出现一次,满足多条件覆盖级别的测试用例也是满足___(44)___级别的:针对布尔表达式
    A&&(B||C) 执行逻辑覆盖测试,测试用例至少需要___(45)___种组合才能满足多条件覆盖的要求。
      (44)A.语句覆盖、判定覆盖、条件覆盖、条件判定组合覆盖
        B.判定覆盖、条件覆盖;条件判定组合覆盖、修正条件判定覆盖
        C.语句覆盖、判定覆盖、条件判定组合覆盖、修正条件判定覆盖
        D.路径覆盖、判定覆盖、条件覆盖、条件判定组合覆盖
      (45)A.6       B.4       C.8       D.12
      ● 典型的软件测试过程模型有___(46)___等,在这些模型中,___(47)___强调了测试计划等工作的先行和对系统需求和系统设计的测试,___(48)___对软件测试流程予以了说明。
      (46)A.V模型、W模型、H模型、渐进模型
        B.V模型、W模型、H模型、螺旋模型
        C.X模型、W模型、H模型、前置测试模型
        D.X模型、W模型、H模型、增量模型
      (47)A.V模型     B.W模型     C.渐进模型   D.螺旋模型
      (48)A.V模型     B.W模型     C.H模型     D.增量模型
      ● 下述关于错误处理流程管理的原则,___(49)___的说法是不正确的。
      (49)A.为了保证正确地定位错误,需要有丰富测试经验的测试人员验证发现的错误是否是真正的错误,并且验证错误是否可以再现。
        B.每次对错误的处理都要保留处理信息,包括处理人姓名、处理时间、处理方法、处理意见以及错误状态
        C.错误修复后必须由报告错误的测试人员确认错误已经修复,才能关闭错误
        D.对于无法再现的错误,应该由项目经理,测试经理和设计经理共同讨论决定拒绝或者延期。
      ● GB/T16260—2003《软件工程产品质量》规定的软件产品使用质量特性包括___(50)___。
      (50)A.适应性、生产率、可靠性、满意度
        B.有效性、生产率、安全性、满意度
        C.有效性、可靠性、适应性、满意度
        D.适应性、适用性、效率、满意度
      ● 软件可靠性是指在指定的条件下使用时,软件产品维持规定的性能级别的能力,其子特性___(51)___是指在软件发生故障或者违反指定接口的情况下,软件产品维持规定的性能级别的能力。
      (51)A.成熟性     B.易恢复性     C.容错性     D.可靠性依从性
      ● GB/T18905—2002《软件工程 产品评价》中确定的通用评价过程包括四个方面,即:确立评价需求,规定评价,设计评价和执行评价,其中有关“规定评价”部分包含的内容有___(52)___。
      (52)A.选择度量、建立度量评定等级、确立评估准则:
        B.指定质量模型、选择度量、建立度量评定等级
        C.选择度量、建立度量评定等级、制定评价计划
        D.确定产品类型、选择度量、建立度量评定等级
      ● GB/T18905-2002《软件工程 产品评价》提供了软件产品评价的过程,其中GB/T18905—2002《软件工程 产品评价》第五部分评价者用的过程供___(53)___。
      (53)A.计划获取或复用某个已有的软件产品的组织予以使用
        B.对软件产品执行独立评估的评价者使用
        C.计划开发新产品或增强现有的产品,以及打算利用他们自己的技术人员进行产品评价的组织使用
        D.编制评价模块的文档提供指南
      ● 用边界值分析法,假定1<X<100,那么X在测试中应该取的边界值是___(54)___。
      (54)A.X=1,X=100   B.X=0,X=1,X=100,X=101  C.X=2,X=99  D.X=O,X=101
      ● 导致软件缺陷的原因有很多,①—④是可能的原因,其中最主要的原因包括___(55)___。
        ①软件需求说明书编写的不全面,不完整,不准确,而且经常更改
        ②软件设计说明书
        ③软件操作人员的水平
        ④开发人员不能很好的理解需求说明书和沟通不足
      (55)A.①、②、③   B.①、③    C.②、③    D.①、④
      ● 关于软件质量的描述,正确的是___(56)___。
      (56)A.软件质量是指软件满足规定用户需求的能力
        B.软件质量特性是指软件的功能性、可靠性、易用性、效率、可维护性、可移植性
        C.软件质量保证过程就是软件测试过程
        D.以上描述都不对
      ● 对于业务流清晰的系统可以利用___(57)___贯穿整个测试用例设计过程广在用例中综合使用各种测试方法,对于参数配置类的软件,要用___(58)___选择较少的组合方式达到最佳效果,如果程序的功能说明中含有输入条件的组合情况,则一开始就可以选用___(59)___和判定表驱动法。
      (57)A.等价类划分    B.因果图法    C.正交试验法   D.场景法
      (58)A.等价类划分    B.因果图法    C.正交试验法   D.场景法
      (59)A.等价类划分    B.因果图法    C.正交试验法   D.场景法
      ● 逻辑路径覆盖法是白盒测试用例的重要设计方法,其中语句覆盖法是较为常用的方法,针对下面的语句段,采用语句覆盖法完成测试用例设计,测试用例见下表,对表中的空缺项(True或者False),正确的选择是___(60)___。
      语句段:
       if (A && (B||C)) x=l;
       else x=O;
      用例表:
     
      用例1 用例2   
    A TRUE FALSE   
    B ① FALSE   
    C TRUE ②   
    A &&(B||C) ③ FALSE 
      (60)A.①TRUE ②FALSE ③TRUE       B.①TRUE ②FALSE ③FALSE
        C.①FALSE ②FALSE ③TRUE      D.①TRUE ②TRUE ③FALSE
      ● ___(61)___方法根据输出对输入的依赖关系设计测试用例。
      (61)A.路径测试    B.等价类     C.因果图    D.边界值
      ● 针对下面程序段,边界值问题可以定位在___(62)___。
       1:Rem Create a 10 element integer array
       2:Rem lnitialize each element to -1
       3:Dim data(10) As Integer
       4:Dim i As Integer
       5:For i=1 TO 10
       6:data(i)=-1
       7:Next i
       8:End
      (62) A. data(1)   B. data(0)  C. data(9)   D. data(10)
      ● 以下控制流图的圈复杂度V(g)和基本圈复杂度EV(g)是___(63)___
     
      (63)A.V(g)=5 EV(g)=1       B.V(g)=6 EV(g)=6
        C.V(g)=5 EV(g)=5       D.V(g)=6 EV(g)=1
      ● 在网络应用测试中,网络延迟是一个重要指标。以下关于网络延迟的理解,正确的是___(64)___
      (64)A.指响应时间
        B.指报文从客户端发出到客户端接收到服务器响应的间隔时间
        C.指报文在网络上的传输时间
        D.指从报文开始进入网络到它开始离开网络之间的时间
      ● 为保证测试活动的可控性,必须在软件测试过程中进行软件测试配置管理,一般来说,软件测试配置管理中最基本的活动包括___(65)___
      (65)A.配置项标识、配置项控制、配置状态报告、配置审计
        B.配置基线确立、配置项控制、配置报告、配置审计
        C.配置项标识、配置项变更、配置审计、配置跟踪
        D.配置项标识、配置项控制、配置状态报告、配置跟踪
      ● Originally introduced by Netscape Communications,___(66)___ are a general mechanism which HTTP Server side applications, such as CGI (67) , can use to both store and retrieve information on the HTTP ___(68)___ side of the connection. Basically, Cookies can be used to compensate for the ___(69)___ nature of HTTP. The addition of a simple, persistent, client-side state significantly extends the capabilities of WWW-based ___(70)___ .
      (66)A. Browsers   B. Cookies     C. Connections   D. scrīpts
      (67)A. graphics   B. processes    C. scrīpts     D. texts
      (68)A. Client    B. Editor    ? C. Creator     D. Server
      (69)A. fixed     B. flexible   ? C. stable     D. stateless
      (70)A. programs   B. applications  C. frameworks   D. constrains
      ● WebSQL is a SQL-like ___(71)___ language for extracting information from the web. Its capabilities for performing navigation of web ___(72)___ make it a useful tool for automating several web-related tasks that require the systematic processing of either all the links in a ___(73)___ , all the pages that can be reached from a given URL through ___(74)___ that match a pattern, or a combination of both. WebSQL also provides transparent access to index servers that can be queried via the Common ___(75)___ Interface.
      (71)A. query     B. transaction    C. communication    D. programming
      (72)A. browsers   B. servers      C. hypertexts     D. clients
      (73)A. hypertext   B. page       C. protocol      D. operation
      (74)A. paths     B. chips       C. tools        D. directories
      (75)A. Router    B. Device      C. Computer      D. Gateway

    2006年上半年软件评测师下午试题
    试题一 (15分)
      阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
    [说明]
      基本路径法设计出的测试用例能够保证在测试中程序的每一条可执行语句至少执行一次。以下代码由C什语言书写,请按要求回答问题。
      void ReadPara( CString temp)
      {
       if ( temp == ">=")
         m_oper.SetCurSel(0);
       else
       {
         if (temp == ">")
          m_oper.SetCurSel(1);
         else
         {
          if ( temp == "==")
           m_oper.SetCurSel(2);
          else
          {
           if( temp == "<=")
            m_oper.SetCurSel(3);
           else
           {
            if ( temp == "<")
             m_oper.SetCurSel(4);
            else
             m_oper.SetCurSel(5);
           }
          }
         }
        }
       return;
      }
    [问题1] (6分)
      请画出以上代码的控制流图。
    [问题2] (3分)
      请计算上述控制流图的环路复杂度V(G)。
    [问题3] (6分)
      请使用基本路径测试法为变量temp设计测试用例,使之满足基本路径覆盖要求。
    试题二 (20分)
      阅读下列说明,回答问题1至问题5,将解答填入答题纸的对应栏内。
    [说明]
      针对某公司办公自动化(OA)系统的负载压力测试,采用专业的负载压力测试工具来执行测试。系统采用Browse/Server架构,服务器是一台PC Server(4路2.7GHz处理器,4GB内存),安装的平台软件包括Microsoft Internet Information Server 5.0,ASP.NET,SQLServer2000。使用2台笔记本电脑安装测试工具模拟客户端执行“登录”业务操作。
      测试目标分别为以下两个:
      第一,测试系统分别在2M、4M网络带宽下,能够支持用户登录的最大并发用户数;
      第二,测试服务器的吞吐量(即:每秒可以处理的交易数),主要包括服务器CPU平均使用率达到85%时系统能够支持的最大吞吐量和服务器CPU平均使用率达到100%时系统能够支持的最大吞吐量。
      本次测试的性能需求是:指标“响应时间”合理范围为0~5秒。
      测试结果如下:
      案例 1
      网络环境:2M带宽
      客户端性能测试结果;
     
    测试指标 平均值   
    登录响应时间 3.391秒   
    虚拟用户数 N/A   
    每秒处理完成登录的个数 11.897交易/秒 
     
      注:图中登录响应时间的纵坐标单位是0.1秒
      服务器资源使用结果:
     
    测试指标 平均值   
    CPU使用率 78% 
     
      案例2
      网络环境:4M带宽
      客户端性能测试结果:
     
    测试指标 平均值   
    登录响应时间 4.795秒   
    虚拟用户数 N/A   
    每秒处理完成登录的个数 13.447交易/秒 
     
      注:图中登录响应时间的纵坐标单位是0.1秒
      服务器资源使用结果
     
    测试指标 平均值   
    CPU使用率 98% 
    [问题1] (3分)
      简述软件系统交易执行响应时间(“RT”,ResponseTime)的概念。
    [问题2] (3分)
      分析案例 1 的测试结果数据;指出满足系统的性能指标需求时,系统能够承受的并发用户登录的最大数量,并说明理由。
    [问题3] (4分)
      分析案例 1 的测试结果数据,说明服务器CPU资源使用率是否合理,以及带宽是否是系统瓶颈,并陈述理由。
    [问题4] (4分)
      分析案例 2 的测试结果数据,说明服务器CPU资源使用率是否合理,以及增加带宽是否是提高系统性能的有效方法,并陈述理由。
    [问题5] (6分)
      论述CPU使用率成为系统性能瓶颈时,如何制定解决方案?论述网络带宽成为系统性能瓶颈时,如何制定解决方案?
    试题三 (15分)
      阅读下列说明,回答问题1至问题4,将解答填入答题纸的对应栏内。
    [说明]
      软件系统几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。场景法就是通过用例场景描述业务操作流程,从用例开始到结束遍历应用流程上所有基本流(基本事件)和备选流(分支事件)。下面是对某IC卡加油机应用系统的基本流和备选流的描述。
      基本流A;
     
    序号 用例名称 用例描述   
    1 准备加油 客户将IC加油卡插入加油机   
    2 验证加油卡 加油机从加油卡的磁条中读取账户代码,并检查它是否属于可以接收的加油卡   
    3 验证黑名单 加油机验证卡账户是否存在于黑名单中,如果属于黑名单,加油机吞卡   
    4 输入购油量 客户输入需要购买的汽油数量   
    5 加油 加油机完成加油操作,从加油卡中扣除相应金额   
    6 返回加油卡 退还加油卡 
      备选流:
     
    序号 用例名称 用例描述   
    B 加油卡无效 在基本流A2过程中,该卡不能够识别或是非本机可以使用的IC 卡,加油机退卡,并退出基本流   
    C 卡账户属于黑名单 在基本流A3过程中,判断该卡账产属于黑名单,例如:已经挂 失,加油机吞卡退出基本流   
    D 加油卡账面现金不足 系统判断加油卡内现金不足,重新加入基本流A4,或选择退卡   
    E 加油机油量不足 系统判断加油机内油量不足,重新加入基本流A4,或选择退卡 
    [问题1] (5分)
      使用场景法设计测试案例,指出场景涉及到的基本流和备选流,基本流用字母A表示,备选流用题干中描述的相应字母表示。
    [问题2] (4分)?
      场景中的每一个场景都需要确定测试用例,一般采用矩阵来确定和管理测试用例。
      如下表所示是一种通用格式,其中行代表各个测试用例,列代表测试用例的信息。本例中的测试用例包含测试用例、ID、场景涤件、测试用例中涉及的所有数据元素和预期结果等项目。首先确定执行用例场景所需的数据元素(本例中包括账号、是否黑名单卡、输入油量、账面金额、加油机油量),然后构建矩阵,最后要确定包含执行场景所需的适当条件的测试用例。在下面的矩阵中,V表示有效数据元素,I表示无效数据元素,n/a表示不适用,例如C01表示“成功加油”基本流。请按上述规定为其它应用场景设计用例矩阵。
    测试用例表
     
    测试用例
    ID号 场景 账号 是否黑
    名单卡 输入
    油量 账面
    金额 加油机
    油量 预期结果   
    C01. 场景1;成功加油 V I V V V 成功加油   
    C02.                 
    C03.                 
    C04.                 
    C05.                 
                    
    [问题3] (3分)
      假如每升油4元人民币,用户的账户金额为1000元,加油机内油量足够,那么在A4输入油量的过程中,请运用边界值分析方法为A4选取合适的输入数据(即油量,单位;升)。
    [问题4] (3分)
      假设本系统开发人员在开发过程中通过测试发现了20个错误,独立的测试组通过上述测试用例发现了100个软件错误,系统在上线后,用户反馈了30个错误,请计算缺陷探测率(DDP)。
    试题四 (15分)
      阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
    [说明]
      易用性和用户文档是影响软件质量的重要指标,也是直接决定一个软件能否取得市场成功的关键因素。
    [问题1] (5分)?
      用户对软件系统的第一认识来自于安装,因此易用性的一个重要体现就是安装的易用性。简述安装测试应当从哪几个方面来考虑?
    [问题2] (6分)
      软件用户界面起着引导用户操作的重要作用,简述整体界面测试和界面中的元素测试分别应当设计哪些测试点?
    [问题3] (4分)
      软件帮助是协助用户使用软件的关键途径,因此也是软件测试过程中的一个重要内容,简述在进行软件帮助测试时的测试要点。
    试题五 (10分)
      阅读以下说明,回答问题1和问题2,将解答填入答题纸的对应栏内。
    [说明]
      软件测试是与软件开发密切相关的一系列有计划的活动,在软件测试过程模型“V模型”的指导下,开发过程中应该安排一系列不同类型的测试活动。
      软件测试过程是由一系列的关键活动组成的,同时软件测试质量的保证手段是必不可少的。
    [问题1] (2分)
      针对开发过程中的不同阶段,应该包含那些类型的软件测试。
    [问题2] (8分)
      简述软件测试过程的关键活动,以及保证软件测试质量的手段。

  • 2005年上半年软件评测师试题及答案

    2007-04-23 00:20:48

    2005年上半年软件评测师上午试题

    ● 在计算机中,最适合进行数字加减运算的数字编码是_____(1)_____,最适合表示浮点数阶码的数字编码是____(2)____。
    (1)A.原码    B.反码     C.补码     D.移码
    (2)A.原码     B.反码     C.补码     D.移码

    ● 如果主存容量为16M字节,且按字节编址,表示该主存地址至少应需要_____(3)____位。
    (3)A.16      B.20      C.24       D.32
    ● 操作数所处的位置,可以决定指令的寻址方式。操作数包含在指令中,寻址方式为___(4)___;操作数在寄存器中,寻址方式为_____(5)_____;操作数的地址在寄存器中,寻址方式为____(6)_____。
    (4)A.立即寻址           B.直接寻址
       C.寄存器寻址          D.寄存器间接寻址
    (5)A.立即寻址           B.相对寻址
       C.寄存器寻址          D.寄存器间接寻址
    (6)A.相对寻址           B.直接寻址
       C.寄存器寻址          D.寄存器间接寻址
    ● 三个可靠度R均为0.8的部件串联构成一个系统,如下图所示:

     

    则该系统的可靠度为___(7)____。
    (7) A.0.240     B.0.512    C.0.800     D.0.992
    ● 在计算机系统中,构成虚拟存储器___(8)____。
    (8) A.只需要一定的硬件资源便可实现 B.只需要一定的软件即可实现
      C.既需要软件也需要硬件方可实现 D.既不需要软件也不需要硬件
    ● 某公司使用包过滤防火墙控制进出公司局域网的数据,在不考虑使用代理服务器的情况下,下面描述错误的是“该防火墙能够___(9)____”。
    (9) A.使公司员工只能访问Intrenet上与其有业务联系的公司的IP地址
      B.仅允许HTTP协议通过
      C.使员工不能直接访问FTP服务端口号为21的FTP服务
      D.仅允许公司中具有某些特定IP地址的计算机可以访问外部网络
    ● 两个公司希望通过Internet进行安全通信,保证从信息源到目的地之间的数据传输以密文形式出现,而且公司不希望由于在中间节点使用特殊的安全单元增加开支,最合适的加密方式是____(10)____,使用的会话密钥算法应该是 ____(11)____。
    (10)A.链路加密   B.节点加密   C.端—端加密   D.混合加密
    (11)A.RSA     B.RC-5     C.MD5       D.ECC
     
    SMTP Telnet   
    TCP UDP   
    IP LLC   
    MAC   
    SMTP Telnet   
    TCP SSL   
    IP UDP   
    ARP 
    ● 在Internet上又许多协议,下面地选项中能够正确表示协议层次关系地是 (12) 。
       A.                    B.         C.                       D.
     
    SNMP POP3   
    UDP TCP   
    IP   
    SNMP POP3   
    TCP ARP   
    IP 
                  

     

    ● 我国著作权法中,__(13)__系指同一概念。
    (13)A.出版权与版权         B.著作权与版权
       C.作者权与专有权        D.发行权与版权
    ● 由我国信息产业部批准发布,在信息产业部门范围内统一使用的标准,称为___(14)___。
    (14) A.地方标准            B.部门标准
       C.行业标准            D.企业标准
    ● 某软件设计师自行将他人使用C程序语言开发的控制程序转换为机器语言形式的控制程序,并固化在芯片中,该软件设计师的行为____(15)____。
    (15)A.不构成侵权,因为新的控制程序与原控制程序使用的程序设计语言不同
       B.不构成侵权,因为对原控制程序进行了转换与固化,其使用和表现形式不同
       C.不构成侵权,将一种程序语言编写的源程序转换为另一种程序语言形式,属于一种“翻译”行为
       D.构成侵权,因为他不享有原软件作品的著作权
    ● 数据存储在磁盘上的排列方式会影响I/O服务的总时间。假设每磁道划分成10个物理块,每块存放1个逻辑记录。逻辑记录R1,R2,…,R10存放在同一个磁道上,记录的安排顺序如下表所示:


    物理块 1 2        3        4 5        6        7 8 9     10   
    逻辑记录 R1 R2       R3       R4 R5       R6       R7 R8 R9     R10 

    假定磁盘的旋转速度为20ms/周,磁头当前处在R1的开始处。若系统顺序处理这些记录,使用单缓冲区,每个记录处理时间为4ms,则处理这10个记录的最长时间为___(16)___;若对信息存储进行优化分布后,处理10个记录的最少时间为___(17)___。
    (16)A.180ms    B.200ms    C.204ms    D.220ms
    (17)A.40ms     B.60ms     C.100ms    D.160ms
    ● 页式存储系统的逻辑地址是由页号和页内地址两部分组成。假定页面的大小为4K,地址变换过程如下图所示,图中逻辑地址用十进制表示。
    图中有效地址经过变换后,十进制物理地址a应为___(18)____。
    (18)A.33220    B.8644    C.4548     D.2500

    ● 下列叙述中,与提高软件可移植性相关的是___(19)____
    (19) A.选择时间效率高的算法
       B.尽可能减少注释
       C.选择空间效率高的算法
       D.尽量用高级语言编写系统中对效率要求不高的部分
    ● 在系统转换的过程中,旧系统和新系统并行工作一段时间,再由新系统代替旧系统的策略称为___(20)____;在新系统全部正式运行前,一部分一部分地代替旧系统的策略称为_____(21)_____。
    (20)A.直接转换 B.位置转换 C.分段转换 D.并行转换
    (21)A.直接转换 B.位置转换 C.分段转换 D.并行转换
    ● 下列要素中,不属于DFD的是___(22)____。当使用DFD对一个工资系统进行建模时,____(23)_____可以被认定为外部实体。
    (22)A.加工         B.数据流
        C.数据存储       D.联系
    (23)A.接收工资单的银行   B.工资系统源代码程序
       C.工资单        D.工资数据库的维护
    ● 目前比较热门的软件开发工具,如VB、PB、Delphi等都是可视化的。这些工具是一种 (24) 。
    (25)A.外部设计评审报告在概要设计阶段产生
       B.集成测试计划在程序设计阶段产生
       C.系统计划和需求说明在详细设计解答产生
       D.在进行编码的同时,独立地设计单元测试计划
    ● 采用瀑布模型进行系统开发的过程中,每个阶段都会产生不同的文档。以下关于产生这些文档的描述中,正确的是____(25)_____。
    (25)A.外部设计评审报告在概要设计阶段产生
       B.集成测试计划在程序设计阶段产生
       C.系统计划和需求说明在详细设计阶段产生
       D.在进行编码的同时,独立地设计单元测试计划
    ● 在一个单CPU的计算机系统中,有两台外部设备R1、R2和三个进程P1、P2、P3。系统采用可剥夺方式优先级的进程调度方案,且所有进程可以并行使用I/O设备,三个进程的优先级、使用设备的先后顺序和占用设备时间如下表所示:


    进程 优先级 使用设备的先后顺序和占用设备时间   
    P1 高 R2(30ms)→CPU(10ms)→R1(30ms)→CPU(10ms)   
    P2 中 R1(20ms)→CPU(30ms)→R2(40ms)   
    P3 低 CPU(40ms)→R1(10ms) 

    假设操作系统的开销忽略不计,三个进程从投入运行到全部完成,CPU的利用率约为__(26)__%;R2的利用率约为____(27)____%(设备的利用率指该设备的使用时间与进程组全部完成所占用时间的比率)。
    (26)A.60   B.67    C.78   D.90
    (27)A.70   B.78    C.80   D.89
    ● 某数据库中有供应商关系S和零件关系P,其中;供应商关系模式S(Sno,Sname,Szip,City)中的属性分别表示:供应商代码、供应商名、邮编、供应商所在城市;零件关系模式P(Pno,Pname,Color,Weight,City)中的属性分别表示:零件号、零件名、颜色、重量、产地。要求一个供应商可以供应多种零件,而一种零件可由多个供应商供应。请将下面的SQL语句空缺部分补充完整。
    CREATE TABLE SP(Sno CHAR(5),
    Pno CHAR(6),
    Status CHAR(8),
    Qty NUMERIC(9),
    __(28)__(Sno,Pno),
    __(29)__(Sno),
    __(30)__(Pno));
    查询供应了“红”色零件的供应商号、零件号和数量(Qty)的元组演算表达式为:
    (28)A.FOREIGN KEY
       B.PRIMARY KEY
       C.FOREIGN KEY(Sno)REFERENCES S
       D.FOREIGN KEY(Pno)PEFERENCES P
    (29)A.FOREIGN KEY
       B.PRIMARY KEY
       C.FOREIGN KEY(Sno)REFERENCES S
       D.FOREIGN KEY(Pno)PEFERENCES P
    (30)A.FOREIGN KEY
       B.PRIMARY KEY
       C.FOREIGN KEY(Sno)REFERENCES S
       D.FOREIGN KEY(Pno)PEFERENCES P
    (31)
     
    (32)A.t[1]=u[1]∧t[2]=w[2]∧t[3]=v[4]
       B.t[1]=v[1]∧t[2]=u[2]∧t[3]=u[4]
       C.t[1]=w[1]∧t[2]=u[2]∧t[3]=u[4]
       D.t[1]=u[1]∧t[2]=u[2]∧t[3]=v[4]

    ● 某一确定性有限自动机(DFA)的状态转换图如下图所示,令d=0|1|2|…|9, 则以下字符串中,不能被该DFA接受的是____(33)____,与该DFA等价的正规式是_(34)___。(其中,ε表示空字符)
    ① 3857 ② 1.2E+5 ③ -123. ④ .576E10
             
    (33)A. ①、②、③     B.  ①、②、④
       C. ②、③、④     D. ①、②、③、④
    (34)A.(-d|d)d*E(-d|d)d*|(-d|d)*.d*(ε|E(-d|d)d*)
       B.(-d|d)dd*(.|ε)d*|(ε|E(-d|d)d*)
       C.(-|d)dd*E(-|d)d*|(-d|d)dd*.d*(ε|E(-|d)d*)
       D.(-d|d)dd*E(-d|d)d*|(-d|d|)dd*.d*(ε|E(-dd*|dd*))
    ● 对于以下编号为①、②、③的正规式,正确的说法是___(35)___
    ① (aa*|ab)*b ② (a|b)*b ③ ((a|b)*|aa)*b
    (35)A.正规式①、②等价   B.正规式①、③等价
       C.正规式②、③等价   D.正规式①、②、③互不等价
    ● 在UML提供的图中,____(36)____用于描述系统与外部系统及用户之间的交互;___(37)___用于按时间顺序描述对象间交互。
    (36)A.用例图   B.类图   C.对象图   D.部署图
    (37)A.网络图   B.状态图  C.协作图   D.序列图
    ● 某评测机构A承接了公司B开发的ERP软件的测试工作,负责该项目的软件评测师甲为了提高自己在ERP方面的知识,向机构A的负责人提出要到开发ERP软件的公司D做兼职开发工作的要求。
    当测试工作正在进行时,公司B为了申报某科技奖项,希望机构A能先出具一份证实其软件质量优秀的测试报告,并且口头承诺测试会继续进行,并且测试过程中发现的问题都会得到改正。
    如果你是机构A的负责人,对于评测师甲的请求,你将 (38) 。
    对于公司B提出的要求,机构A的评测师甲、乙分别给出了如下的建议:甲认为可以出质量优秀报告,但是需要公司B出具改正所有测试问题的书面承诺书和自己QA部门认可;乙认为由于测试还没有结束,很多问题海没有得到改正,因此不能出质量优秀的报告,但可以根据已经测试过的模块的情况,出具一个质量基本合格的报告。对于以上建议你认为
    (39) 。
    测试结束后,评测师乙提出要保留公司B的被测试软件的样品,对于评测师乙的要求你认为 (40) 。
    (38)A.不批准甲的要求
       B.批准甲的要求,但是要求甲不能透露公司B的信息
       C.不批准甲的请求,但是建议甲可以到公司B做兼职开发工作
       D.批准甲的请求,并要求甲尽快提高自己在ERP方面的知识,为公司多做贡献
    (39)A.应该听从甲的建议
       B.应该听从乙的建议
       C.应该综合甲乙的建议
       D.都不正确
    (40)A.不合理,这样侵犯了B的知识产权
       B.不合理,仅保留程序就行了
       C.不合理,仅保留文档就行了
       D.合理
    ● 关于软件测试对软件质量的意义,有以下观点:①度量与评估软件的质量;②保证软件质量;③改进软件开发过程;④发现软件错误。其中正确的是 (41) 。
    (41)A.①、②、③
       B.①、②、④
       C.①、③、④
       D.①、②、③、④
    ● 软件质量的定义是 (42) 。
    (42)A.软件的功能性、可靠性、易用性、效率、可维护性、可移植性
       B.满足规定用户需求的能力
       C.最大限度达到用户满意
       D.软件特性的总和,以及满足规定和潜在用户需求的能力
    ● 某软件公司在招聘软件评测师时,应聘者甲向公司做如下保证:
    ①经过自己测试的软件今后不会再出现问题;
    ②在工作中对所有程序员一视同仁,不会因为在某个程序员编写的程序中发现的问题多,就重点审查该程序,以免不利于团结;
    ③承诺不需要其他人员,自己就可以独立进行测试工作;
    ④发扬咬定青山不放松的精神,不把所有问题都找出来,决不罢休;
    你认为应聘者甲的保证 (43) 。
    (43)A.①、④是正确的
       B.②是正确的
       C.都是正确的
       D.都不正确
    ● 软件测试的对象包括 (44) 。
    (44)A.目标程序和相关文档
       B.源程序、目标程序、数据及相关文档
       C.目标程序、操作系统和平台软件
       D.源程序和目标程序
    ● 软件测试类型按开发阶段划分是 (45) 。
    (45)A.需求测试、单元测试、集成测试、验证测试
       B.单元测试、集成测试、确认测试、系统测试、验收测试
       C.单元测试、集成测试、验证测试、确认测试、验收测试
       D.调试、单元测试、集成测试、用户测试
    ● 下述说法错误的是 (46)。
    (46)A.单元测试又称为模块测试,是针对软件测试的最小单位-程序模块进行正确性检验的测试工作
       B.集成测试也叫做组装测试,通常在编码完成的基础上,将所有的程序模块进行有序的、递增的测试
       C.集成测试是检验程序单元或部件的接口关系,逐步集成为符合概要设计要求的程序部件或整个系统。
       D.系统测试是在真实或模拟系统运行环境下,检查完整的程序系统能否和相关硬件、外设、网络、系统软件和支持平台等正确配置与连接,并满足用户需求
    ● V模型指出, (47) 对程序设计进行验证, (48) 对系统设计进行验证,(49)应当追朔到用户需求说明。
    (47)A.单元和集成测试     B.系统测试
       C.验收测试和确认测试   D.验证测试
    (48)A.单元测试        B.集成测试
       C.功能测试        D.系统测试
    (49)A.代码测试        B.集成测试
       C.验收测试        D.单元测试
    ● 错误管理的流程可以概括为:测试人员提交新的错误入库,错误状态为1;高级测
    试人员验证错误,如果确认是错误,分配给相应的开发人员,设置状态为2,如果不是错误,
    则拒绝,设置为“拒绝”状态;开发人员查询状态为3的错误,做如下处理:如果不是错误,
    则置状态为“拒绝”,如果是错误则修复并置状态为4,如果不能解决的错误,要留下文字
    说明并保持错误为“拒绝”状态;测试人员查询状态为5的错误,验证错误是否已解决,做
    如下处理:如问题解决了置错误的状态为6,如问题没有解决则置状态为7。上述流程中1
    至7相对应的状态标识为 (50) 。
    (50)A.新信息→打开→打开→修正→修正→关闭→重新打开
       B.打开→修正→关闭→修正→修正→关闭→打开
       C.新信息→打开→打开→关闭→修正→关闭→重新打开
       D.新信息→打开→打开→修正→关闭→修正→重新打开
    ● 关于对第三方测试的描述,正确的观点是 (51) 。
    (51)A.既不是开发人员,也不是用户所进行的测试就是第三方测试
       B.由在技术、管理和财务上与开发方和用户方相对独立的组织进行的测试
       C.第三方测试是在开发方与用户方的测试基础上所进行的验证测试
       D.第三方测试又被称为β测试
    ● 验收测试的定义是 (52) 。
    (52)A.由用户按照用户手册对软件进行测试以决定是否接收
       B.由某个测试机构代表用户按照需求说明书和用户手册对软件进行测试以决定是否接收
       C.按照软件任务书或合同,供需双方约定的验收依据进行测试,决定是否接收
       D.由开发方和用户按照用户手册执行软件验收
    ● 在GB/T17544中,软件包质量要求包括三部分,即产品描述要求、 (53) 、程
    序和数据要求。
    (53)A.用户文档要求
       B.系统功能要求
       C.设计要求说明
       D.软件配置要求
    ● 软件内部/外部质量模型中,可移植性不包括 (54) 子特性。
    (54)A.适应性
       B.共存性
       C.兼容性
       D.易替换性
    ● 《GB/T 18905 软件工程 产品评价》中确定的通用评价过程包括: (55) 。
    (55)A.确立评价需求、设计评价、执行评价和评估结果
       B.确立评价目的、规定评价、设计评价和执行评价
       C.确立评价需求、规定评价、设计评价和执行评价
       D.确立评价目的、设计评价、执行评价和评估结果
    ● GB/T16260-2003将软件质量特性分为内部质量特性、外部质量特性和 (56) 。
    (56)A.安全质量特性
       B.适用质量特性
       C.性能特性
       D.使用质量特性
    ● PC机处理人耳能听得到的音频信号,其频率范围是__(57)___。
    (57)A.80~3400Hz       B.300~3400Hz
       C.20~20kHz        D.20~44.1kHz
    ● 电视系统采用的颜色空间中,其亮度信号和色度信号是相分离的。下列颜色空间中,__(58)___不属于电视系统的颜色空间。
    (58)A.YUV           B.YIQ
       C.YcbCr          D.HSL
    ● 双层双面只读DVD盘片的存储容量可以达到___(59)____。
    (59) A.4.7GB           B.8.5GB
       C.17GB           D.6.6GB
    ● 静态图像压缩标准JPEG2000中使用的是__(60)____算法。
    (60)A.K-L变换         B.离散正弦变换
       C.离散余弦变换       D.离散小波变换
    ● 一个局域网中某台主机的IP地址为176.68.160.12,使用22位作为网络地址,那么该局域网的子网掩码为__(61)___,最多可以连接的主机数为____(62)_____。
    (61) A.255.255.255.0      B.255.255.248.0
       C.255.255.252.0      D.255.255.0.0
    (62) A.254           B.512
       C.1022           D.1024
    ● 以下选项中,可以用于Internet信息服务器远程管理的是 ____(63)____。
    (63) A.Telnet    B.RAS    C.FTP    D.SMTP
    ● 在TCP/IP网络中,为各种公共服务保留的端口号范围是__(64)____。
    (64) A.1~255   B.1~1023   C.1~1024   D.1~65535
    ● 在以下网络应用中,要求带宽最高的应用是___(65)___。
    (65) A.可视电话  B.数字电视  C.拨号上网   D.收发邮件
    ● DOM is a platform-and language-____(66)___API that allows programs and scrīpts to dynamically access and update the content, structure and style of WWW docements (currently,definitions for HTML and XML documents are part of the specification).The document can be further processed and the results of that processing can be incprporated back into the presented ___(67)____.DOM is a ___(68)___-based API to documents ,which requires the whole document to be represented in ____(69)___while processing it .A simpler alternative to DOM is the event –based SAX,which can be used to process very large ___(70)___documents that do not fit info the memory available for processing.
    (66)A.specific  B.neutral  C.contained  D.related
    (67)A.text    B.image   C.page     D.graphic
    (68)A.table    B.tree    C.control   D.event
    (69)A.document  B.processor C.disc     D.memory
    (70)A.XML     B.HTML    C.scrīpt    D.web
    ● Melissa and LoveLetter made use of the trust that exists between friends or colleagues.Imagine receiving an __(71)___from a friend who asks you to open it.This is what happens with Melissa and several other similar email __(72)___.Upon running ,such worms usually proceed to send themselves out to email addresses from the vicitm’s address book,previous emails,web pages__(73)___.
    As administrators seek to bolock dangerous email attachments through the
    recognition of well-known ___(74)____,virus writers use other extensions to circumvent such protection.Executable (.exe) files are renamed to .bat and .cmd plus a whole list of other extensions and will still run and successfully infect target users.
    Frequently ,hackers try to penetrate networks by sending an attachment that
    looks like a flash movie ,which,while displaying some cute animation ,simultaneously runs commands in the background to steal your passwords and give the __(75)__access to your network.
    (71)A.attachment B.packet   C.datagram   D.message
    (72)A.virtual   B.virus   C.worms    D.bacteria
    (73)A.memory    B.caches  C.ports    D.registers
    (74)A.names    B.cookies  C.software   D.extensions
    (75)A.cracker   B.user    C.customer  D.client

     

     

     

     

     

     

     


    参考答案:
     
    (1) C (16) C (31) A (46) B (61) C   
    (2) D (17) B (32) D (47) A (62) C   
    (3) C (18) A (33) B (48) D (63) A   
    (4) A (19) D (34) A (49) C (64) B   
    (5) C (20) D (35) C (50) A (65) B   
    (6) D (21) C (36) A (51) B (66) B   
    (7) B (22) D (37) C (52) C (67) C   
    (8) C (23) A (38) A (53) A (68) B   
    (9) B (24) A (39) D (54) C (69) D   
    (10) C (25) D (40) D (55) C (70) A   
    (11) B (26) D (41) C (56) D (71) A   
    (12) A (27) A (42) D (57) C (72) C   
    (13) B (28) B (43) D (58) D (73) B   
    (14) C (29) C (44) B (59) C (74) D   
    (15) D (30) D (45) B (60) D (75) A 

  • 软件测试的8020原则

    2006-12-31 12:32:03

    80-20 原则
    80%
    的软件缺陷常常生存在软件 20% 的空间里。这个原则告诉我们,如果你想使软件测试有效地话,记住常常光临其高危多发地段。在那里发现软件缺陷的可能性会大的多。这一原则对于软件测试人员提高测试效率及缺陷发现率有着重大的意义。聪明的测试人员会根据这个原则很快找出较多的缺陷而愚蠢的测试人员却仍在漫无目的地到处搜寻。

    80-20 原则的另外一种情况是,我们在系统分析、系统设计、系统实现阶段的复审,测试工作中能够发现和避免 80% 的软件缺陷,此后的系统测试能够帮助我们找出剩余缺陷中的 80% ,最后的 5% 的软件缺陷可能只有在系统交付使用后用户经过大范围、长时间使用后才会曝露出来。因为软件测试只能够保证尽可能多地发现软件缺陷,却无法保证能够发现所有的软件缺陷。

    80-20 原则还能反映到软件测试的自动化方面上来,实践证明 80% 的软件缺陷可以借助人工测试而发现, 20% 的软件缺陷可以借助自动化测试能够得以发现。由于这二者间具有交叉的部分,因此尚有 5% 左右的软件缺陷需要通过其他方式进行发现和修正。

Open Toolbar