发布新日志

  • linux常用命令-小毛驴的

    2008-10-24 15:29:18

    Linux下的mysql数据库常用操作
    1.登入登出
    mysql -uroot -p123456;
    mysql
    mysql
    show databases;
    use HostCache;
    show tables;
    desc HostCache;
    exit;
    2.数据操作
    alter table voucherwinner modify cpuid varchar(36);
    alter table installerreport add skypeid varchar(32);
    update operator set agentid='00000124' where username='00000124';
    select * from HostCache order by TimeStamp;
    select * from voucherwinner where skypeid not like '#%';
    select ExternalIP, InternalIP from HostCache order by TimeStamp;
    delete from HostCache where ISPType = 4;
    delete from HostCache;
    3.数据导入导出
    把数据库skypeuser中的表voucherwinner中的数据导入到voucherwinner文件中。该命令会把创建表的操作以及插入数据记录以脚本的形式存入文件
    mysqldump -h172.24.172.47 -uskypeuser -ptomskype47 skypeuser voucherwinner > voucherwinner
    带where条件的数据表导出
    mysqldump -h61.135.158.241 -uroot -p --w "time >= '2007-05-03 00:00:00' and time
    installerreport > installerreport20070503
    把记录导入到新库中
    mysql -uroot -p skypeuser
    mysql -h61.135.158.241 -uroot -p skypeuser
    4.权限分配
    数据库服务器端运行下面命令:
    mysql> grant all on *.* to username@IP identified by 'password';
    比如:
    mysql> grant all on *.* to root@192.168.15.96 identified by '123456';
    则可以如此访问:
    mysql -h192.168.15.96 -uroot -p123456;
    修改最大连接数
    mysql默认的最大连接数是100,该值存放在mysql的ini文件中,比如:my.ini,找到对应值修改就可以了
    二: Linux常用普通操作
    1.常见文件操作
    cd ../home/tcast/NATServer; 进入到一个目录
    cd ${ACE_ROOT}
    tail -f 2005-10-28.log 查看正在被其它进程修改的文件
    ps -A 显示当前进程列表
    ps -ef | grep natserver 查询名字包含natserver的进程是否存在
    killall -9 p2pserver kill进程
    kill -9 6499 结束ID为6499的进程
    df 查看磁盘使用比例
    2.设置定时任务
    一个 cron 作业是一个命令,其运行是由 cron 守护程序在规则的调度间隔执行的。
    crontab -e 编辑用户的 crontab 文件的副本,或者,如果一个有效的 UserName 的 crontab 文件不存在则创建一个空的文件进行编辑。当编辑完成后,文件被到 crontab 目录作为用户的 crontab 文件。
    例如:增加一条每天9点16执行一次的任务,则添加如下文字:
    16 9 * * * echo "hello" > /root/hello.txt
    crontab -l 列出用户的 crontab 文件。
    3.显示或修改系统时间
    date
    date -s 'Sat Apr 21 09:55:11 CST 2007'
    4.远程登录
    ssh 61.135.234.140 从一台Linux系统登录到另一台Linux系统
    exit 从那台Linux系统中退出
    三: 环境变量相关
    locale 查看本地化设置(locale的东东在/usr/lib/locale下)
    export LANG=zh_CN 设置本地化的变量export LANG= 设置这个变量为空uname -a 查看操作系统,CPU的信息top 查看进程使用CPU,内存的情况env 查看环境变量/etc/profile 环境变量的文件,可以设置export path添加环境变量路径
    export CPPFLAGS="-I/data/TOMSKYPEIVR/asterisk/include"
    export LD_LIBRARY_PATH=/data/TOMSKYPEIVR/cpprad/lib
    echo $CPPFLAGS
    ${ACE_ROOT}
    su -root
    四: C/C++编译和调试
    1.常用操作
    vi makefile 编辑makefile文件
    make 编译当前目录下的源码
    ./kill.sh 运行结束程序的脚本
    ctrl + c 结束控制台下正在运行的程序
    chmod a+x tcastchanroot 修改文件属性使其可以运行
    ./runnewtcast.sh & 后台运行脚本
    nohup ./tcastchanroot >runlog 不挂起执行程序, 输出定向到文件runlog
    2.gdb调试相关
    gdb ./reportserver 开始调试reportserver程序
    b main 在main()处设置断点
    b CReportServer::svc 在CReportServer:svc()处设置断点
    b 100 在当前文件的第100行放置断点
    d 删除所有断点
    start 开始以调试状态运行程序
    t 显示当前线程情况
    p argc 显示变量情况
    s 进入函数内执行
    n 跳到下一行执行
    c 跳到下一个断点执行
    quit 退出调试
    ulimit -c unlimited 设置运行时产生调试信息
    gdb tcastchanroot core.6200 调入调试信息查看
    where 模块结构
    五: 文本操作命令
    1.常见操作
    tail -f 2005-10-31.log :查看日志
    cat /proc/cpuinfo 只读的形式打开文本文件
    grep MyKeyword statistics.2006102700.log
    grep MyKeyword statistics.2006102800.log | wc
    grep MyKeyword statistics.2006102800.log | awk '{print$1}' | sort -u | wc
    在日志statistics.2006102800.log的每行中出现过MyKeyword的行中,打印他们的第1列内容不重复的行数
    cat testsetuplog2006-10-28 | awk '{print$3}' | sort -u | wc
    cat testsetuplog2006-10-30 | awk '{print $6}' | grep 0 | wc
    cat testsetuplog2006-11-15 | awk '($5$6==62) {print $4}' | sort -u | wc
    在日志testsetuplog2006-11-15的每行中,第5列等于6,第5列等于2的行中,打印他们的第4列内容不重复的行数
    cat ExportMac2005.txt > mac.txt 把ExportMac2005.txt的内容拷贝到另外一个文件mac.txt
    cat ExportMac2006-01-01.txt >> mac.txt 把ExportMac2006-01-01.txt的内容追加到文件mac.txt
    wc mac.txt 对mac.txt中的内容条数进行统计
    cat mac.txt | sort -u | wc 对mac.txt中的不重复内容条数进行统计
    cat mac.txt | sort -u > macunique.txt 把mac.txt中的不重复内容条数拷贝到macunique.txt
    grep 'Radius' * 在当前文件夹下的所有文件中搜索出现Radius的地方
    find -name Main.cpp 搜索文件名为Main.cpp的文件所在路径
    2. vi命令
    i从命令模式到插入模式
    ESC从插入模式到命令模式
    命令模式滚屏:ctrl+f
    yy复制当前行
    p粘贴
    dd删除当前行
    /xx 在文档中查找xx字符串, n查找下一个
    :wq
    将文本中的installerreport替换成为installerreport20070503
    :g/installerreport/s/installerreport/installerreport20070503/g
    六:文件系统操作
    touch xxx 创建新文件
    mkdir xxx 创建新目录
    mv jspwiki-2.2.33-bin.zip ../../usr/tomcat55/webapps/
    mv(move)可以将文件移动到另一个地方,或者更改文件名称(Lniux中并没有ren或rename命令来更改文件名)。
    cp JSPWiki.war ../JSPWiki.war
    rm -rf WEB-INF 强制删除有内容的文件夹
    rm xa* 删除所有xa开头的文件
    split -l 10000 ExportMac.txt 把ExportMac.txt分割成多个文件,每个文件10000行
    cp -a ./star_zh_CN ../../../tomwiki/templates/start_zh_CN 拷贝整个目录
    cp -a ./star_zh_CN ../../../tomwiki/templates/start_zh_CN 拷贝,使用绝对路径
    ln
    这是linux中一个非常重要命令,请大家一定要熟悉。它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是
    -s,具体用法是:ln -s 源文件 目标文件。
    当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。例如:ln -s /bin/less /usr/local/bin/less
    -s 是代号(symbolic)的意思。
    这里有两点要注意:第一,ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化;第二,ln的链接又软链接和硬链接两种,软链接就是ln -s ** **,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,硬链接ln ****,没有参数-s, 它会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。如果你用ls察看一个目录时,发现有的文件后面有一个@的符号,那就是一个用ln命令生成的文件,用ls -l命令去察看,就可以看到显示的link的路径了。
    从网络上获取并下载一个文件到当前目录下
    wget http://www.blogdove.com/nnt.tar.gz
    文件传输命令,将当前目录的.so文件传到机器211.99.190.120的/data/TOMSKYPEIVR/asterisk/lib/asterisk/modules/下
    scp *.so web@211.99.190.120:/data/TOMSKYPEIVR/asterisk/lib/asterisk/modules/
    七: 压缩解压命令
    unzip JSPWiki.zip
    unzip -d ../JSPWiki JSPWiki.zip 解压zip包
    unrar x udt2.rar 解压rar包
    gunzip backup.tar.gz &
    tar xvf backup.tar
    tar zxvf KingSoftUnion.tar.gz 解压后缀为tar.gz的文件。
    tar jxvf upx-3.00-i386_linux.tar.bz2 解压后缀为tar.bz2的文件。
    打包一个文件夹成压缩文件
    tar zcvf KingSoftUnion.tar.gz KingSoftUnion/
    八:PHP命令
    php ExportMac.php 执行一个php脚本
    九: 后台执行命令
    启动一个程序时让它立即进入后台运行方式看过前面一篇bash的介绍应该明白Ctrl+z/bg/fg的用法。有些程序工作起来挺费时间,在它后面加个&符号看看,例如“updatedb &”,“netscape &”等等。这样这个shell会释放出来干别的活。请注意这样出来的程序父进程仍然是这个shell,若你退出这个shell,这些程序也会被kill掉。建议退出shell之前用jobs命令查看后台作业。
    使用nohup(不挂起)命令
      如果想进程在你退出系统后还能执行,可以使用nohup命令如:
      % nohup tar -cf /dev/tape /home &
      如logout退出后再重新登录的话,使用“ps”命令可以看到进程还在执行。注意,要想把命令真正放到后台运行,nohup必须与&操作同时使用。有些软件自己能处理SIGHUP信号,如wget,对它们则无须用nohup。你还可以用nohup来实现ppp回拨:先拨号上去,然后以nohup执行一个自制的脚本,如“sleep 60; ppp-start-scrīpt”等等。最后logout退出并挂断电话等着就是。
    十: 软件包通用安装方法
    1.百度或者Google得到安装包的下载路径,比如在google中搜lrzsz,得到
    http://www.ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz
    在linux下wget http://www.ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz
    2.解压软件包
    tar zxvf lrzsz-0.12.20.tar.gz
    3. 安装三部曲
    ./configure --prefix=/data/TOMSKYPEIVR/bin
    make
    make install
    先说一个比较好使的扫描工具,据说黑客帝国中有人使用过它 Nmap,我后来觉得 某些时候这个东西比netstat ,要方便。
  • Linux关机命令

    2008-10-24 15:28:18

    linux下一些常用的关机/重启命令有shutdownhaltreboot、及init,它们都可以达到重启系统的目的,但每个命令的内部工作过程是不同的,通过本文的介绍,希望你可以更加灵活的运用各种关机命令。

    1.shutdown

    shutdown命令安全地将系统关机。 有些用户会使用直接断掉电源的方式来关闭linux,这是十分危险的。因为linuxwindows不同,其后台运行着许多进程,所以强制关机可能会导致进程的数据丢失﹐使系统处于不稳定的状态﹐甚至在有的系统中会损坏硬件设备。而在系统关机前使用shutdown命令﹐系统管理员会通知所有登录的用户系统将要关闭。并且login指令会被冻结﹐即新的用户不能再登录。直接关机或者延迟一定的时间才关机都是可能的﹐还可能重启。这是由所有进程〔process〕都会收到系统所送达的信号〔signal决定的。这让像vi之类的程序有时间储存目前正在编辑的文档﹐而像处理邮件〔mail〕和新闻〔news〕的程序则可以正常地离开等等。

    shutdown执行它的工作是送信号〔signal〕给init程序﹐要求它改变runlevelRunlevel 0被用来停机〔halt〕﹐runlevel 6是用来重新激活〔reboot〕系统﹐而runlevel 1则是被用来让系统进入管理工作可以进行的状态﹔这是预设的﹐假定没有-h也没有-r参数给shutdown。要想了解在停机〔halt〕或者重新开机〔reboot〕过程中做了哪些动作﹐你可以在这个文件/etc/inittab里看到这些runlevels相关的资料。

    shutdown 参数说明:

       [-t] 在改变到其它runlevel之前﹐告诉init多久以后关机。

       [-r] 重启计算器。

       [-k] 并不真正关机﹐只是送警告信号给每位登录者〔login〕。

       [-h] 关机后关闭电源〔halt〕。

       [-n] 不用init﹐而是自己来关机。不鼓励使用这个选项﹐而且该选项所产生的后果往往不总是你所预期得到的。

       [-c] cancel current process取消目前正在执行的关机程序。所以这个选项当然没有时间参数﹐但是可以输入一个用来解释的讯息﹐而这信息将会送到每位使用者。

       [-f] 在重启计算器〔reboot〕时忽略fsck

    [-F] 在重启计算器〔reboot〕时强迫fsck

       [-time] 设定关机〔shutdown〕前的时间。     

    2.halt----最简单的关机命令

    其实halt就是调用shutdown -hhalt执行时﹐杀死应用进程﹐执行sync系统调用﹐文件系统写操作完成后就会停止内核。

    参数说明:

       [-n] 防止sync系统调用﹐它用在用fsck修补根分区之后﹐以阻止内核用老版本的超级块〔superblock〕覆盖修补过的超级块。

       [-w] 并不是真正的重启或关机﹐只是写wtmp/var/log/wtmp〕纪录。

       [-d] 不写wtmp纪录〔已包含在选项[-n]中〕。

       [-f] 没有调用shutdown而强制关机或重启。

       [-i] 关机〔或重启〕前﹐关掉所有的网络接口。

       [-p] 该选项为缺省选项。就是关机时调用poweroff  

    3.reboot

    4.init
    转自:小毛驴的个人空间
    http://www.51testing.com/?46301/action_viewspace_itemid_94284.html

  • 初步认识LINUX

    2008-10-24 15:26:24

     

    一、文件目录对应windows中的硬盘分区
    二、swap交换分区相当于windows下的虚拟内存。它的容量一般分配为256M或者512M。
    三、分区格式:ext3
    四、Linux的目录结构
        /bin:存放LINUX的常用命令
        /boot:该目录下存放的都是系统启动时要用到的程序
        /dev:包含了该系统中使用的所用外部设备,它是访问这些外部设备的端口。
        /etc:该目录存放了系统管理时要用到的各种配置文件和子目录,例如:网络配置文件、文件系统、系统配置文件、设备配置信息、设置用户信息等
        /sbin:该目录用来存放系统管理员的系统管理程序
        /home:用来存储用户信息的主目录
        /lib:该目录用来存放系统动态连接共享库,几乎所有的应用程序都会用到该目录下的共享库
        /lost+found:该目录在大多数情况下是空的,但当突然停电、或者非正常关机后,有些文件就临时存放在这里
       
    五、usr->user
        LS->list
        rm->remove
        src->source
        mv->move
        cp->copy
        LS:列出文件和目录的命令  LS-help
    转载于 navy2008的个人空间。
    http://www.51testing.com/?183873/action_viewspace_itemid_95016.html
       

  • 两道笔试题

    2008-06-11 16:55:08

    --找出表中91-100之间的记录条数
    select top 10 StartDate from QY_ZpInfo where StartDate in(select top 100 StartDate from QY_ZpInfo order by StartDate asc)order by StartDate Desc

    //求13的13次方的后三位数(比较简单了,总结下而已,路过的不要笑)

    #include "iostream.h"
    void main()
    {
     long i=13,x,y,a,b,c,sum1=1,sum2=1,sum3=1;
     int j;
     for(j=0;j<=6;j++)
     {
      sum1=sum1*i;
     }
     x=sum1%1000;//考虑到会有数据溢出,所以先做7次13
     for(j=0;j<=5;j++)
     {
      sum2=sum2*i;
     }
     y=sum2%1000;//再做6次13
     sum3=x*y;//取后3位相乘
     a=sum3%10;
     b=(sum3%100-a)/10;
     c=(sum3%1000-10*b-a)/100;
     cout<<c<<b<<a<<endl;
    }

  • 等价类划分法之我用

    2008-06-11 16:26:02

     

    等价类划分法


    输入条件

    有效等价类

    无效等价类

    处理过程1=>是否输入超出三角形的3条边

    a,b,c (23这将在以下几个方面进行覆盖)

    A,b,c,d (24)

    处理过程12=>是否三角形的3条边

    (0<a=<100) and a属于int (1)

    (0<b=<100) and b属于int (2)

    (0<c=<100) and c属于 int (3)

    (a+b>c) (4)

    (b+c>a) (5)

    (a+c)>b (6)

    (a=<0 or a>100 or a不属于 int) (7)

    (b=<0 or b>100 or b 不属于 int) (8)

    (c=<0 or c>100 or c 不属于 int) (9)

    (a+b=<c) (10)

    (b+c=<a) (11)

    (a+c=<b) (12)

    是否等腰三角形

    (a=b) (13)

    (b=c) (14)

    (c=a) (15)

    (a<>b)and(b<>c)and(c<>a)

    (16)

    是否等边三角形

    (a=b)and(b=c)and(c=a)

    (17)

    (a<>b) (18)

    (b<>c) (19)

    (c<>a) (20)

    是否直角三角形

    A的二次方+b的二次方=c的二次方 21

    A的二次方+b的二次方<>c的二次方 22

    是否钝角或锐角三角形

    A的二次方+b的二次方<c的二次方(钝角三角形) or A的二次方+b的二次方>c的二次方(锐角三角形)(25)

    A的二次方+b的二次方=c的二次方 (26)

    测试用例

    序号

    a,b,c

    覆盖等价类

    输出

    1

    7,8,9

    (1),(2),(3),(4),(5),(6),(23)

    一般三角形

    2

    0,1,2

    (7) ,(23)

    参数1和参数2两边之和不大于参数3,不是三角形

    3

    1,0,2

    (8) ,(23)

    4

    1,2,0

    (9) ,(23)

    5

    1,2,3

    (10) ,(23)

    6

    1,3,2

    (11) ,(23)

    7

    3,1,2

    (12) ,(23)

    8

    1,2,3,4

    (24)

    参数数目错误,应该是3个参数

    9

    3,3,4

    (1),(2),(3),(4),(5),(6),(13) ,(23)

    该三条边构成等腰三角形

    10

    3,4,4

    (1),(2),(3),(4),(5),(6),(14) ,(23)

    11

    3,4,3

    (1),(2),(3),(4),(5),(6),(15) ,(23)

    12

    7,8,9

    (1),(2),(3),(4),(5),(6),(16) ,(23)

    非等腰三角形

    13

    3,3,3

    (1),(2),(3),(4),(5),(6),(17) ,(23)

    该三条边构成等边三角形

    14

    3,4,4

    (1),(2),(3),(4),(5),(6),(14),(18) ,(23)

    非等边三角形

    15

    3,4,3

    (1),(2),(3),(4),(5),(6),(15),(19) ,(23)

    16

    3,3,4

    (1),(2),(3),(4),(5),(6),(13),(20) ,(23)

    17

    3,4,5

    (1),(2),(3),(4),(5),(6),(21) ,(23),(26)

    该三条边构成直角三角形

    18

    7,8,9

    (1),(2),(3),(4),(5),(6),(22) ,(23)

    非直角三角形

    19

    7.7,8,9

    (7) ,(23)

    参数XX不是正整数,请重新输入;

    20

    7,8.8,9

    (8) ,(23)

    21

    7,8,9.9

    (9) ,(23)

    22

    -7,8,9】 【101,8,9

    (7) ,(23)

    三角形的三条边长度不要大于100或者小于等于0,请重新输入

    23

    7,-8,9】 【7,101,9

    (8) ,(23)

    24

    7,8,-9】 【7,8,101

    (9) ,(23)

    25

    7,8,9

    (25) ,(23) ,(1),(2),(3),(4),(5),(6)

    该三条边构成锐角或者钝角三角形

    26

    2,4,3

    (26) ,(23) ,(1),(2),(3),(4),(5),(6)


  • 合法邮箱的测试用例

    2008-06-11 16:23:53

    先讲创建邮箱的规则
    要判定邮箱地址,那我们必须先设定我们邮箱命名的规则
    这里我们以Gmail为例,创建邮箱时候只写用户名,后缀会直接加上@gmail.com

    only letters (a-z), numbers (0-9), and periods (.)  is allowed,
    the first character of your username must be an ascii letter (a-z) or number (0-9)
    username must be between 6 and 30 characters long
    无效等价类如下
    (1)邮箱名组成有"a-z","0-9", ".'以外的字符   eg.#!12#,ewewe
    (2)邮箱名长度 小于6,大于30个字符   eg. werw, wew...
    (3)邮箱名以以"."号开始    eg. .test

    ---------------
    我们的应用程序填写表单时判定邮箱是否为有效邮箱,一般判定规则为
    (1)@(2).(3)

    (1)为任意字符串,长度5~100 
            (邮箱名没有太严格的限制,比如说一般不会以"_"做开始符,结束符;有的邮箱还不能用特殊符号等等。是因为各种邮箱都有不同的命名规则,所以我们不做限制)
    (2)为任意字符串,长度1~30
    (3)为任意字符串,长度2~67
            [(2),(3)就是域名,其实域名是有要求的,可以看看这里http://www.39idc.com/help/hlp_dtl.asp?nid=10000022
            国际域名可使用英文26个字母,10个阿拉伯数字以及横杠("-"),横杠不能作为开始符和结束符,这里并不做太多限制,太多了...]
    (4)必须要有@符号
    (5)必须要有.
    (6)@后面没有以*.*结束(*为任意字符串)
    (7)域名不能使用"_"作为了开始符,结束符

    无效等价类:
    不符合(1)/(2)/(3)/(4)/(5)/(6)/(7)
    不符合(1)(2)/(1)(3)/(1)(4)/(1)(5)/(1)(6)/(1)(7)
    不符合(2)(3)/(2)(4)/(2)(5)/(2)(6)/(2)(7)
    。。。。 以上各个任意组合, eg. 就没写了,太多了
    所以说繁琐的测试工作我们需要工具来做....


    --------------------------------------------------------
    邮箱文本框测试用例
    1) 有@和.符号
    1。 @和.之间没有字符串
    2。 字符串的第一位是@或.
    3。 字符串的最后一位是@或.
    4。 有@和.符号,并有特殊字符
    2) 没有@和.符号
    3) @/.符号中只有一个
    4) 有@@符号重复
    5) 有..符号重复
    ------

  • 压力测试实例

    2008-06-11 16:21:16

    压力测试实例


    利用现代的设计技术和正式的技术复审可以减少代码中存在的初始错误,但是错误总是存在的,如果开发者找不到错误,那么,客户就会找到它们。越来越多的软件组织认识到软件测试是软件质量保证的重要元素之一,很多软件开发组织将30%—40%甚至更多的项目资源用在测试上,软件测试技术和软件测试策略受到了高度的重视和广泛的应用。

    本文不想就软件测试技术和软件测试策略作深入的理论分析,而是列举一个在软件系统测试阶段进行的压力测试实例,希望能通过这个实例与从事软件测试相关工作的朋友进行交流。

    首先介绍一下实例中软件的项目背景,该软件是一个典型的三层C/S架构的MIS系统(客户端/应用服务器/数据库管),中间层是业务逻辑层,应用服务器处理所有的业务逻辑,但应用服务器本身不提供负载均衡的能力,而是利用开发工具提供的ORB(对象请求代理)软件保证多个应用服务器间的负载均衡。本次测试的目的是:进行单个应用服务器的压力测试,找出单个应用服务器能够支持的最大客户端数。测试压力估算的依据是:假定在实际环中,用户只启用一个应用服务器进行所有的业务处理。方法是:按照正常业务压力估算值的1~10倍进行测试,考察应用服务器的运行情况。


    压力测试的详细计划如下:


    压力测试计划


    1、测试计划名称

    河北省公安交通管理信息系统压力测试计划。

    2、测试内容

    2.1背景

    本次测试中的压力测试是指模拟实际应用的软硬件环境及用户使用过程的系统负荷,长时间运行测试软件来测试被测系统的可靠性,同时还要测试被测系统的响应时间。


    用户的实际使用环境:

    ◇由两台IBM XSeries250 PC Server组成的Microsoft Cluster

    ◇数据库管理系统采用Oracle8.1.6

    ◇应用服务器程序和数据库管理系统同时运行在Microsoft Cluster上。

    ◇有200个用户使用客户端软件进行业务处理,每年通过软件进行处理的总业务量为:150万笔业务/年。


    2.2测试项

    应用服务器的压力测试;

    2.3不被测试的特性

    ◇系统的客户端应用程序的内部功能;

    ◇数据库中的数据量对程序性能的影响。

    3、测试计划

    3.1测试强度估算

    测试压力估算时采用如下原则:

    ◇全年的业务量集中在8个月完成,每个月20个工作日,每个工作日8个小时;

    ◇采用80—20原理,每个工作日中80%的业务在20%的时间内完成,即每天80%的业务在1.6小时内完成;

    测试压力的估算结果:

    去年全年处理业务约100万笔,其中15%的业务处理每笔业务需对应用服务器提交7次请求;

    70%的业务处理每笔业务需对应用服务器提交5次请求;其余15%的业务每笔业务向应用服务器

    提交3次请求。根据以往统计结果,每年的业务增量为15%,考虑到今后三年业务发展的需

    要,测试需按现有业务量的2倍进行。

    每年总的请求数量为:(100*15%*7+100*70%*5+100*15%*3*2=300万次/年。

    每天的请求数量为:300/160=1.875万次/天。

    每秒的请求数量为:(18750*80%/8*20%*3600=2.60/秒。

    正常情况下,应用服务器处理请求的能力应达到:3/秒。

    3.2测试环境准备

    3.2.1基本硬件及软件环境的准备

    1)网络环境:公司内部的以太网,与服务器的连接速率为100M,与客户端的连接速率为10/100M自适应。

    2)使用两台IBM XSeries2501G内存)PC ServerMicrosoft Cluster,安装系统软件 Windows 2000 Advance ServerMicrosoft Cluster ServerMSCS)。

    3)数据库管理系统的安装及配置:在测试用的IBM XSeries服务器上安装Oracle8.1.6,数据库采用Oracle Fail Safeofs)的Active/Passive配置。 安装数据库管理系统及支撑软件(包括VisiBrokerBDE Administrator)。

    4)安装被测的应用服务器程序。

    5)客户端的PC机:10台(PⅢ600/128M RAM)。

    3.2.2系统客户端测试程序的编写系统客户端测试程序使用Delphi编写,要求测试程序实现如下功能:

    1)模拟一个主要的向应用服务器发送请求并接收响应信息的功能。要求交替模拟两种情况:第一种,发送的请求至少包括10个参数,参数类型涵盖字符、日期、数字种类型;接收的响应信息不少于1个参数;第二种,发送的请求不少于1个参数;接收的响应信息至少包括10个参数,参数类型涵盖字符、日期、数字种类型。

    2)必须能够通过参数设定在每台PC机上运行的客户端测试程序个数、请求的时间间隔(单位:毫秒)、运行时间(单位:小时)。

    3)在数据库中建立测试记录表,生成测试记录,向数据库写入测试记录的功能不通过被测的应用服务器实现。日志内容包括:发送测试请求的机器名、客户端测试程序序号、发出请求时间、收到响应时间、处理是否成功。表名:TEST_LOG,字段名:MACHINEIDSTART_TIMEEND_TIMEFLAG

    3.2.3系统本底数据的准备

    为考察系统运行一段时间后系统的响应性能,参照实际运行情况及发展进行系统的本底数据准备。业务处理中涉及到的业务表中都要求按设计规模进行本底数据的准备。要求准备的数据记录的有效性符合系统要求,数据有效性的具体要求参见数据库设计及系统设计文档。

    3.3破坏性测试

    按照设计连接的客户端连接数量进行测试,把应用服务器处理请求的设计频度增加110倍,分别测试出现错误的状态和和出现错误的比率,考察是否出现不可恢复错误,系统设计要考虑出现严重错误情况下负荷减轻错误自动恢复的实现方法。

    计划时间:2天;这个时间包括破坏性的修复和自动恢复的实现需要的时间。

    在测试过程中每10分钟记录一次IBM Xseries PC Server的内存及CPU使用情况,包括被测程序的内存占用百分比、数据库管理系统的内存占用百分比、操作系统的内存占用百分比。

    3.4强度稳定性测试

    选择一种负荷比设计负荷重的情况(应用服务器处理请求的频度为应用服务器处理请求的

    设计频度的1.5倍),进行24小时稳定性测试。

    3.5测试方法和工具

    黑盒测试

    测试工具:无外购的测试工具,自己编制的测试工具。

    3.6测试时间计划

    3.6.1环境准备:2天。

    其中:基本硬件、软件环境及系统本底数据的准备:1天,

    系统客户端测试程序的编写及测试:1天。

    3.6.2破环性测试:2天。

    3.6.3强度稳定性测试:1天。

    3.7测试中的问题及处理

    3.7.1暂停标准和再启动要求

    暂停标准:被测试软件在强度稳定性测试中频繁出现异常(每小时出现1次以上)时。用户或公司要求暂停测试时。

    再启动要求:通过调试后,预计被测试软件的可靠性有所提高时,可再次启动测试。

    3.7.2不可预见问题

    不可预见问题包括:

    ◇测试环境被破坏而导致测试无法进行;

    ◇当出现上述不可预见问题时,测试终止,就已完成的测试内容编制测试总结报告,并在报告中说明测试终止的原因。

    3.8测试报告 2002.06.21

    测试总结报告提交日期:2002.06.21

    3.8.1应生成的测试文件

    测试记录(测试负责人和参与测试的人员签字);

    测试总结报告。

    3.8.2测试总结报告中必须包含的内容

    被测试软件名称、测试项、测试环境;

    被测试软件的压力测试结论:响应时间、最大/最小并发数、失败的次数、正常连续运行的最长/最短时间,并发数与失败的关系。

    4、人员和职责

    4.1职责

    测试工程师:负责编写测试计划,组织测试,对测试过程进行记录,收集、整理测试记录数据,对测试结果进行分析,编写测试总结报告。

    软件工程师:负责编写、调试客户端测试软件;数据库管理系统的安装、ofs配置及系统的本底数据准备。

    系统工程师:负责测试用的硬件维护及操作系统安装、MSCS配置。

    总工程师:负责对测试计划及测试总结报告进行批准。

    用户:必要时可参加测试,并提出具体的测试要求;可要求暂停测试。

    4.2人员和训练要求

    本次测试无特别的人员及培训要求。

    5、批准

    本测试计划必须经过总工程师批准后才能开始实施。


  • 两分钟让你明白什么是ERP

    2008-06-11 16:11:28

         ERP(Enterprise Resource Planning)企业资源计划系统,是指建立在信息技术基础上,以系统化的管理思想,为企业决策层及员工提供决策运行手段的管理平台。

      一天中午,丈夫在外给家里打电话:“亲爱的老婆,晚上我想带几个同事回家吃饭可以吗?” (订货意向)

      妻子:“当然可以,来几个人,几点来,想吃什么菜?”

      丈夫:“6个人,我们7点左右回来,准备些酒、烤鸭、番茄炒蛋、凉菜、蛋花汤……。你看可吗?” (商务沟通)

      妻子:“没问题,我会准备好的。” (订单确认)

      妻子记录下需要做的菜单 (MPS计划) ,具体要准备的东西:鸭、酒、番茄、鸡蛋、调料…… (BOM物料清单) ,发现需要:1只鸭蛋,5瓶酒,4个鸡蛋…… (BOM展开) ,炒蛋需要6个鸡蛋,蛋花汤需要4个鸡蛋 (共用物料) 。

      打开冰箱一看 (库房) ,只剩下2个鸡蛋 (缺料) 。

      来到自由市场,妻子:“请问鸡蛋怎么卖?” (采购询价)

      小贩:“1个1元,半打5元,1打9.5元。”

      妻子:“我只需要8个,但这次买1打。” (经济批量采购)

      妻子:“这有一个坏的,换一个。” (验收、退料、换料)

      回到家中,准备洗采、切菜、炒菜…… (工艺线路) ,厨房中有燃气灶、微波炉、电饭煲…… (工作中心) 。

      妻子发现拨鸭毛最费时间 (瓶颈工序,关键工艺路线) ,用微波炉自己做烤鸭可能来不及 (产能不足) ,于是阅览室在楼下的餐厅里买现成的 (产品委外) 。

      下午4点,接到儿子的电话:“妈妈,晚上几个同学想来家里吃饭,你帮忙准备一下。” (紧急订单)

      “好的,你们想吃什么,爸爸晚上也有客人,你愿意和他们一起吃吗?”

      “菜你看着办吧,但一定要有番茄炒鸡蛋,我们不和大人一起吃,6:30左右回来。” (不能并单处理)

      “好的,肯定让你们满意。” (订单确定)

      “鸡蛋又不购了,打电话叫小店送来。” (紧急采购)

      6:30,一切准备就绪,可烤鸭还没送来,急忙打电话询问:“我是李太,怎么订的烤鸭还不送来?” (采购委外单跟催)

      “不好意思,送货的人已经走了,可能是堵车吧,马上就会到的。”

      门铃响了。

      “李太太,这是您要的烤鸭。请在单上签一个字。” (验收、入库、转应付账款)

      6:45,女儿的电话:“妈妈,我想现在带几个朋友回家吃饭可以吗?” (呵呵,又是紧急订购意向,要求现货)

      “不行呀,女儿,今天妈已经需要准备两桌饭了,时间实在是来不及,真的非常抱歉,下次早点说,一定给你们准备好。” (哈哈,这就是ERP的使用局限,要有稳定的外部环境,要有一个起码的提前期) 。

      …… ……

      送走了所有客人,疲惫的妻子坐在沙发上对丈夫说:“亲爱的,现在咱们家请客的频率非常高,应该要买些厨房用品了 (设备采购) ,最好能再雇个小保姆 (连人力资源系统也有缺口了) 。

      丈夫:“家里你做主,需要什么你就去办吧。” (通过审核)

      妻子:“还有,最近家里花销太大,用你的私房钱来补贴一下,好吗?” (最后就是应收货款的催要)

      现在还有人不理解ERP吗?记住,每一个合格的家庭主妇都是生产厂长的有力竞争者。

    本文转自:我在这里个人博客

    http://www.51testing.com/?action/viewspace/itemid/84586.html

  • Web 测试经验总结(抄)

    2008-06-11 16:07:13


    Web 测试经验总结
    Web功能测试常用方法
    ? 1页面链接检查每一个链接是否都有对应的页面,并且页面之间切换正确;
    ? 2相关性检查删除/增加一项会不会对其他项产生影响,如果产生影响,这些影响是否都正确。
    ? 3检查按钮的功能是否正确如update, cancel, delete,save等功能是否正确。
    ? 4字符串长度检查输入超出需求所说明的字符串长度的内容, 看系统是否检查字符串长度,会不会出错.
    ? 5字符类型检查在应该输入指定类型的内容的地方输入其他类型的内容(如在应该输入整型的地方输入其他字符类型),看系统是否检查字符类型,会否报错.Web功能测试常用方法
    ? 6标点符号检查输入内容包括各种标点符号,特别是空格,各种引号,回车键.看系统处理是否正确.
    ? 7中文字符处理在可以输入中文的系统输入中文,看会否出现乱码或出错.
    ? 8检查带出信息的完整性在查看信息和update信息时,查看所填写的信息是不是全部带出.,带出信息和添加的是否一致
    ? 9信息重复在一些需要命名,且名字应该唯一的信息输入重复的名字或ID,看系统有没有处理,会否报错,重名包括是否区分大小写,以及在输入内容的前后输入空格,系统是否作出正确处理.
    ? 10检查删除功能在一些可以一次删除多个信息的地方,不选择任何信息,按”delete”,看系统如何处理,会否出错;然后选择一个和多个信息,进行删除,看是否正确处理.
    ? 11检查添加和修改是否一致检查添加和修改信息的要求是否一致,例如添加要求必填的项,修改也应该必填;添加规定为整型的项,修改也必须为整型.
    ? 12检查修改重名修改时把不能重名的项改为已存在的内容,看会否处理,报错.同时,也要注意,会不会报和自己重名的错.
    ? 13重复提交表单一条已经成功提交的纪录,back后再提交,看看系统是否做了处理。
    ? 14检查多次使用back键的情况在有back的地方,back,回到原来页面,再back,重复多次,看会否出错.
    ? 15Search检查在有search功能的地方输入系统存在和不存在的内容,看search结果是否正确.如果可以输入多个search条件,可以同时添加合理和不合理的条件,看系统处理是否正确.
    ? 16输入信息位置注意在光标停留的地方输入信息时,光标和所输入的信息会否跳到别的地方.
    ? 17上传下载文件检查上传下载文件的功能是否实现,上传文件是否能打开。对上传文件的格式有何规定,系统是否有解释信息,并检查系统是否能够做到。
    ? 18必填键检查应该填写的项没有填写时系统是否都做了处理,对必填项是否有提示信息,如在必填项前加*
    ? 19快捷键检查是否支持常用快捷键,如Ctrl+C Ctrl+V Backspace等,对一些不允许输入信息的字段,如选人,选日期对快捷方式是否也做了限制。
    ? 20回车键检查在输入结束后直接按回车键,看系统处理如何,会否报错。
    WEB测试
    ? 1. 功能测试
    ? 1.1.链接测试
    ? 链接是Web 应用系统的一个主要特征,它是在页面之间切换和指导用户去一些不知道地址的页面的主要手段。链接测试可分为三个方面。首先,测试所有链接是否按指示的那样确实链接到了该链接的页面;其次,测试所链
    接的页面是否存在;最后,保证Web 应用系统上没有孤立的页面,所谓孤立页面是指没有链接指向该页面,只有知道正确的URL 地址才能访问。
    ? 链接测试可以自动进行,现在已经有许多工具可以采用。链接测试必须在集成测试阶段完成,也就是说,在整个Web 应用系统的所有页面开发完成之后进行链接测试。
    ? 1.2. 表单测试
    ? 当用户给Web 应用系统管理员提交信息时,就需要使用表单操作,例如用户注册、登陆、信息提交等。在这种情况下,我们必须测试提交操作的完整性,以校验提交给服务器的信息的正确性。例如:用户填写的出生日期与职业是否恰当,填写的所属省份与所在城市是否匹配等。如果使用了默认值,还要检验默认值的正确性。如果表单只能接受指定的某些值,则也要进行测试。例如:只能接受某些字符,测试时可以跳过这些字符,看系统是否会报错。
    ? 1.3.Cookies测试
    ? Cookies 通常用来存储用户信息和用户在某应用系统的操作,当一个用户使用Cookies 访问了某一个应用系统时,Web 服务器将发送关于用户的信息,把该信息以Cookies 的形式存储在客户端计算机上,这可用来创建动态和自定义页面或者存储登陆等信息。
    ? 如果Web 应用系统使用了Cookies ,就必须检查Cookies 是否能正常工作。测试的内容可包括Cookies 是否起作用,是否按预定的时间进行保存,刷新对Cookies 有什么影响等。
    ? 1.4.设计语言测试
    ? Web 设计语言版本的差异可以引起客户端或服务器端严重的问题,例如使用哪种版本的HTML 等。当在分布式环境中开发时,开发人员都不在一起,这个问题就显得尤为重要。除了HTML 的版本问题外,不同的脚本语言,例如Java 、Javascrīpt 、ActiveX 、VBscrīpt 或Perl 等也要进行验证。
    ?
    ? 1.5.数据库测试
    ? 在Web 应用技术中,数据库起着重要的作用,数据库为Web 应用系统的管理、运行、查询和实现用户对数据存储的请求等提供空间。在Web 应用中,最常用的数据库类型是关系型数据库,可以使用SQL 对信息进行处理。
    ? 在使用了数据库的Web 应用系统中,一般情况下,可能发生两种错误,分别是数据一致性错误和输出错误。数据一致性错误主要是由于用户提交的表单信息不正确而造成的,而输出错误主要是由于网络速度或程序设计问题等引起的,针对这两种情况,可分别进行测试。
    ? 2. 性能测试
    ? 2.1.连接速度测试
    ? 用户连接到Web 应用系统的速度根据上网方式的变化而变化,他们或许是电话拨号,或是宽带上网。当下载一个程序时,用户可以等较长的时间,但如果仅仅访问一个页面就不会这样。如果Web 系统响应时间太长(例如超过5 秒钟),用户就会因没有耐心等待而离开。
    ? 另外,有些页面有超时的限制,如果响应速度太慢,用户可能还没来得及浏览内容,就需要重新登陆了。而且,连接速度太慢,还可能引起数据丢失,使用户得不到真实的页面。
    ? 2.2.负载测试
    ? 负载测试是为了测量Web 系统在某一负载级别上的性能,以保证Web 系统在需求范围内能正常工作。负载级别可以是某个时刻同时访问Web 系统的用户数量,也可以是在线数据处理的数量。例如:Web 应用系统能允许多少个用户同时在线?如果超过了这个数量,会出现什么现象?Web 应用系统能否处理大量用户对同一个页面的请求?
    ?
    ? 2.3.压力测试
    ? 负载测试应该安排在Web 系统发布以后,在实际的网络环境中进行测试。因为一个企业内部员工,特别是项目组人员总是有限的,而一个Web 系统能同时处理的请求数量将远远超出这个限度,所以,只有放在Internet 上,接受负载测试,其结果才是正确可信的。
    ? 进行压力测试是指实际破坏一个Web 应用系统,测试系统的反映。压力测试是测试系统的限制和故障恢复能力,也就是测试Web 应用系统会不会崩溃,在什么情况下会崩溃。黑客常常提供错误的数据负载,直到Web 应用系统崩溃,接着当系统重新启动时获得存取权。压力测试的区域包括表单、登陆和其他信息传输页面等。
    ? 3. 可用性测试
    ? 3.1.导航测试
    ? 导航描述了用户在一个页面内操作的方式,在不同的用户接口控制之间,例如按钮、对话框、列表和窗口等;或在不同的连接页面之间。通过考虑下列问题,可以决定一个Web 应用系统是否易于导航:导航是否直观?Web系统的主要部分是否可通过主页存取?Web 系统是否需要站点地图、搜索引擎或其他的导航帮助?
    ? 在一个页面上放太多的信息往往起到与预期相反的效果。Web 应用系统的用户趋向于目的驱动,很快地扫描一个Web 应用系统,看是否有满足自己需要的信息,如果没有,就会很快地离开。很少有用户愿意花时间去熟悉Web 应用系统的结构,因此,Web 应用系统导航帮助要尽可能地准确。
    ? 导航的另一个重要方面是Web 应用系统的页面结构、导航、菜单、连接的风格是否一致。确保用户凭直觉就知道Web 应用系统里面是否还有内容,内容在什么地方。
    ? Web 应用系统的层次一旦决定,就要着手测试用户导航功能,让最终用户参与这种测试,效果将更加明显。
    ? 3.2.图形测试
    ? 在Web 应用系统中,适当的图片和动画既能起到广告宣传的作用,又能起到美化页面的功能。一个Web 应用系统的图形可以包括图片、动画、边框、颜色、字体、背景、按钮等。图形测试的内容有:
    ? (1 )要确保图形有明确的用途,图片或动画不要胡乱地堆在一起,以免浪费传输时间。Web 应用系统的图片尺寸要尽量地小,并且要能清楚地说明某件事情,一般都链接到某个具体的页面。
    ? (2 )验证所有页面字体的风格是否一致。
    ? (3 )背景颜色应该与字体颜色和前景颜色相搭配。
    ? (4 )图片的大小和质量也是一个很重要的因素,一般采用JPG 或GIF 压缩。
    ? 3.3.内容测试
    ? 内容测试用来检验Web 应用系统提供信息的正确性、准确性和相关性。
    ? 信息的正确性是指信息是可靠的还是误传的。例如,在商品价格列表中,错误的价格可能引起财政问题甚至导致法律纠纷;信息的准确性是指是否有语法或拼写错误。这种测试通常使用一些文字处理软件来进行,例如使用Microsoft Word的" 拼音与语法检查" 功能;信息的相关性是指是否在当前页面可以找到与当前浏览信息相关的信息列表或入口,也就是一般Web 站点中的所谓" 相关文章列表" 。
    ? 3.4.整体界面测试
    ? 整体界面是指整个Web 应用系统的页面结构设计,是给用户的一个整体感。例如:当用户浏览Web 应用系统时是否感到舒适,是否凭直觉就知道要找的信息在什么地方?整个Web 应用系统的设计风格是否一致?
    ? 对整体界面的测试过程,其实是一个对最终用户进行调查的过程。一般Web 应用系统采取在主页上做一个调查问卷的形式,来得到最终用户的反馈信息。
    ? 对所有的可用性测试来说,都需要有外部人员(与Web 应用系统开发没有联系或联系很少的人员)的参与,最好是最终用户的参与。
    ? 4. 客户端兼容性测试
    ? 4.1.平台测试
    ? 市场上有很多不同的操作系统类型,最常见的有Windows 、Unix 、Macintosh 、Linux 等。Web 应用系统的最终用户究竟使用哪一种操作系统,取决于用户系统的配置。这样,就可能会发生兼容性问题,同一个应用可能在某些操作系统下能正常运行,但在另外的操作系统下可能会运行失败。
    ? 因此,在Web 系统发布之前,需要在各种操作系统下对Web 系统进行兼容性测试。
    ? 4.2.浏览器测试
    ? 浏览器是Web 客户端最核心的构件,来自不同厂商的浏览器对Java ,、Javascrīpt 、ActiveX 、plug-ins或不同的HTML 规格有不同的支持。例如,ActiveX 是Microsoft 的产品,是为Internet Explorer 而设计的,Javascrīpt 是Netscape 的产品,Java 是Sun 的产品等等。另外,框架和层次结构风格在不同的浏览器中也有不同的显示,甚至根本不显示。不同的浏览器对安全性和Java 的设置也不一样。
    ? 测试浏览器兼容性的一个方法是创建一个兼容性矩阵。在这个矩阵中,测试不同厂商、不同版本的浏览器对某些构件和设置的适应性。
    ? 5. 安全性测试
    ? Web 应用系统的安全性测试区域主要有:
    ? (1 )现在的Web 应用系统基本采用先注册,后登陆的方式。因此,必须测试有效和无效的用户名和密码,要注意到是否大小写敏感,可以试多少次的限制,是否可以不登陆而直接浏览某个页面等。
    ? (2 )Web 应用系统是否有超时的限制,也就是说,用户登陆后在一定时间内(例如15 分钟)没有点击任何页面,是否需要重新登陆才能正常使用。
    ? (3 )为了保证Web 应用系统的安全性,日志文件是至关重要的。需要测试相关信息是否写进了日志文件、是否可追踪。
    ? (4 )当使用了安全套接字时,还要测试加密是否正确,检查信息的完整性。
    ? (5 )服务器端的脚本常常构成安全漏洞,这些漏洞又常常被黑客利用。所以,还要测试没有经过授权,就不能在服务器端放置和编辑脚本的问题。
    ? 6. 总结
    ? 本文从功能、性能、可用性、客户端兼容性、安全性等方面讨论了基于Web 的系统测试方法。
    ? 基于Web 的系统测试与传统的软件测试既有相同之处,也有不同的地方,对软件测试提出了新的挑战。基于Web 的系统测试不但需要检查和验证是否按照设计的要求运行,而且还要评价系统在不同用户的浏览器端的显示是否合适。重要的是,还要从最终用户的角度进行安全性和可用性测试。
  • 软件容易出现问题的地方(转)

    2008-06-10 16:35:03

       有一天我老大开完会就对我说:公司要我们帮开发人员培训一下,主题是:软件中常出现错误的地方.我听了这句话后就觉得很模糊,不能理解它的意思,因为我不知道他是要我针对某个软件或程序来说还是针对所有软件来说,如果是针对某个软件或程序来说的话这也没有什么问题,但如果针对所有软件来说的话,那我真是不知道怎么说了.不同的软件有不同的功能和特性,也有不同的操作方式,而且业务性质也不尽相同,所以要让我说出这些软件容易出现问题的地方那真是难透了,再说我才刚毕业,经验还没到家啊。

        就在这时候,我想了一想,虽然每个软件有不同的功能,特性和操作方式,但它们彼此之间也有一些共同点,不过我理解的是,这些共同不是在一些细节上面,如输入框,按钮之类的,而是一种比较概念化的理解上,而要理解透也是很简单,那就是:业务,性能,边界值和等价类。(声明:下面我所说的是我自已的个人观点而已,不代表所有人的立场。)

    业务我想所有人都应该很容易理解了,如果软件的业务功能达不到需求上所规定的要求那样的话,这根本就不能再继续执行测试,只能打回给开发部再进行修改,我想这个缺陷毫无疑问是最严重的吧,如果这个软件已开发到后期的时候,不知道已经浪费了多少人力资源了。能够发现业务问题的可以使用因果图法。

    然后就是性能,每个软件都有它的性能,特别是对于C/SB/S结构的软件来说,它的服务端的性能就是我们要测试的重点了,当然也不能把客户端的忽略掉。所以从这点看出,性能也是所有软件中所出现问题的共同点,不过性能问题有时也让人摸不着头脑的,例如:如果有一个服务端程序分别安装在两个配置不一样的服务器上面,可能得出的结果不尽相同,配置低一点的服务器响应的时间会比较长,而配置高一些的服务器的响应时间可能会很短从而达到需求所规定的时间;又或者在不同网络的情况下来对服务端进行性能测试,得到的结果也不一样(网络堵塞或者网络畅通的情况下);这样我们可能就会这样问:那系统到底达到要求没有啊?其实我说这个东西啊,就要看当初需求上所对服务器的配置和不同因络的情况下所规定下来所决定的,如果在规定配置的服务器上达不到所规定的响应时间的话,那毫无疑问这个程序是存在性能问题了,而如果所发现的性能问题是难以修改或会耗费比较大的资源的话,那就可以和用户沟通来提高服务器的硬件配置来解决性能上的问题。还有就是网络吞吐量的问题,这个一定要在需求上有所规定,如在网络畅通的情况下最大的响应时间是多少,而在网络堵塞的情况下系统最大的响应时间又是多少,或者在大量用户并发的情况下系统的响应最大时间又是多少,如果在当初的需求上没有作出相应的规定话,那到问题出现时就可能会争论不休了。

    最后就是边界值和等界类了,每个软件都有一定的输入边界和输入范围,而有时程序员可能因为其他原因而会忽略这两点,所以一些教程上经常会说边界值和等价类是最容易发现问题的测试方法,我在工作中也用这两种方法发现过不少问题,这个我就不多说了,因为我想每个测试人员都会知道这一知识点的。

    说到这里,我也觉得自已很烦,不知道为什么要对这个问题写一篇这样的文章,其实这个问题是不重要的,对于我们来说,最重要的说要发现问题,而且要找出所出现问题的原因。

     

    本文转自:bossy的个人空间

    http://www.51testing.com/index.php?uid/92053/action/viewspace/itemid/70443/php/1

  • 面试问题总结(转)

    2008-06-10 16:19:53

    测试经理:

    1.什么是双V模型

    2.需求分析如何做?

    3.SRS如何写,评审时要注意什么?

    4.什么样的测试计划才算是好的测试计划?

    5.如何使用QC执行测试用例,提交缺陷,缺陷跟踪?

    6.Loadrunner中的参数化有什么作用?什么是关联?

    7.什么是等价类划分?

    8.需求变更流程?

    9.Linux命令

    10.什么是存储过程,好处?

    11.给你一个网站,应该怎么样去测?

    项目部分:

    1.在项目中你都做了什么工作

    2.测试中遇到了什么困难?

    3.你所测的模块,是怎样去设计用例的?

    4.发现了些什么缺陷?

    5.缺陷管理流程?

    6.如何搭建测试环境?

    7.测试报告包括什么内容?

    8.做完项目最大的收获是什么?

    HR部分:

    1.自我介绍

    2.为什么去第一家公司上班?为什么又离职?

    3.为什么又去了第二家公司上班?为什么又离职?

    4.为什么要来做测试?

    5.自己的优缺点

    6.你做测试的优势是什么?

    7.之前的工作对做测试有什么帮助?

    8.对公司的印象是怎么样的?

    9.未来3年内的规划

    10.为什么选择我们公司?

    11.期望薪资

    12.到岗时间

  • (转)Web测试中书写Test Case时要考虑的检查点

    2008-06-10 16:14:28

    通常书写Test Case时需要考虑的检查点

    对于屏幕显示来说包括:
    检查显示的布局;
    检查域和按钮的顺序;
    检查域的尺寸;
    检查字体的大小和风格;
    检查文本的含义;
    检查拼写错误;
    检查屏蔽域;
    检查只读域;
    检查图片;
    检查按钮的状态;
    检查按钮的尺寸;
    检查按钮的图标和名字;
    检查是否有重复的图标;
    检查指针是否在第一个可输入域;
    检查TAB键的次序;

    对于域来说包括:
    检查可编辑性;
    检查域间的移动;
    检查分界条件;
    检查有效分界符;
    检查无效分界符;
    检查连续多个有效分界符;
    检查仅一个分界符输入;
    检查多余空格的截取;
    检查只读域和屏蔽域在TAB时的状态;

    对于数字域来说包括:
    检查正数值;
    检查负数值;
    检查零值;
    检查小数点;
    检查特殊字符加数字;
    检查字母加数字;
    检查ASCII值;
    检查重复值;
    检查空值;


    对于字符域来说包括:
    检查仅有字母;
    检查仅有数字;
    检查字母数字;
    检查允许的特殊字符;
    检查禁止的特殊字符;
    检查包含特殊字符的字母数字;
    检查ASCII值;

    对于字母域来说包括:
    检查字母;
    检查数字值;
    检查字母数字值;
    检查特殊字符;
    检查ASCII值;

    对于时间域来说包括:
    检查字符?和/;
    检查
    其他特殊字符;
    检查字母数字值;
    检查正确的格式;
    检查错误的格式;
    检查错误的日期数字;
    检查正确的日期数字;
    检查日历表;

    对于错误信息和警告信息来说:
    检查错误信息和警告信息的含义;
    检查错误信息和警告信息的一致性;
    检查确定位置的错误信息;
    检查错误信息后的光标位置;
    检查所有异常对应的错误信息;
    检查错误信息的格式;

    对于普通的检查来说:
    检查文本域和字符域输入是否左对齐;
    检查数字域输入是否右对齐;
    检查标签的切换;
    检查重复的名字;
    检查可删除的表格;
    检查表格的多选;
    检查过滤器的逻辑性;
    检查多个过滤器的逻辑性;
    检查重复的序列号;
    检查显示切换;
    检查快捷键;
    检查工具栏提示;
    检查日期域是否居中;
    检查选择项的高显;
    检查选择符;
    检查显示窗口的风格统一性;


    对于按键的功能包括:
    New button:
    检查包含next和cancel按键的子窗口的显示;
    检查子窗口显示的内容;
    Add button:
    检查包含save和cancel按键的子窗口的显示;
    Edit button:
    检查在未选择项目情况下点击后的警告信息;
    检查包update和cancel按键的子窗口的显示;
    检查选择的项目是否显示在制定的位置;
    Copy button:
    检查在未选择项目情况下点击后的警告信息;
    检查点击后的确认信息;
    检查插入后的复制数据;
    Delete button:
    检查在未选择项目情况下点击后的警告信息;
    检查点击后的确认信息;
    检查删除后的数据;
    Run button:
    检测运行时的参数窗口;
    检查执行结果;
    检查未选择项目情况下点击后的警告信息;
    Back button:
    检查是否回到上一屏幕;
    Next button:
    检查是否显示下一屏幕;
    Finish button:
    检查数据是否进入
    数据库
    检查完成屏幕的显示;
    Cancel button:
    检查确认信息;
    检查是否有其他键执行同样功能;
    检测是否能能够正确处理;
     

  • 安装和卸载测试总结(转)

    2008-06-10 16:11:37

    ============卸载测试==============
    文件----安装目录里的文件及文件夹(如:程序安装在几处的)
          非安装目录(向系统其它地方添加的文件及文件夹)它们包括(exe,dll,配置文件等)


    快捷方式-(桌面,菜单,任务栏,系统栏,控件面板,系统服务列表等)


    复原方面-卸载后,系统能否恢复到软件安装前的状态(包含目录结构、动态库,注册表,系统配置文件,驱动程序,关联情况等)


    卸载方式--程序自带卸载程序/系统的控件面板卸载/其它自动卸载工具(如:优化大师)


    卸载状态--程序在运行/暂停/终止等状态时的卸载


    非正常卸载情况-卸载软件过程中,取消卸载进程,然后,观察软件能否继续正常使用


    冲击卸载--在卸载的过程中,中断电源,然后,启动计算机后,重新卸载软件,如果软件无法卸载,则重新安装软件,安装之后再重新卸载。


    卸载环境--不同的(操作系统,硬件环境,网络环境等)下进行卸载


    卸载后,该系统是否对其他的应用程序造成不正常影响(如操作系统,应用软件等)


    ==========安装测试============
    一:基本目标
    1.安装程序能正确运行
    2.程序安装正确
    3.程序安装后能正确运行
    4.完善性安装后程序能正确运行


    二:一些方面
    0、安装手册给的所有步骤得到验证;
    1、安装过程中所有缺省选项得到验证;
    2、安装过程中典型选项得到验证;
    3、测试各种不同的安装组合,并验证各种不同组合的正确性(包括参数组合,控件执行顺序组合,产品安装组件组合,产品组件安装顺序组合(如b/s)等)
    4、安装过程中异常配置或状态(非法和不合理配置)情况进行了测试(如:断电;数据库终止,网络终止等)
    5、安装后是否能产生正确的目录结构和文件,文件属性正确;
    6、安装后动态库是否正确;
    6、安装后软件能否正确运行;
    7、安装后没有生成多余的目录结构,文件,注册表信息,快捷方式等;
    9、安装测试应该在所有的运行环境上进行验证(手册上指定如:操作系统,数据库,硬件环境,网络环境等);
    10、自动安装还是手工配置安装
    11、至少要在一台笔记本上进行安装/卸载测试,因为有很多产品在笔记本中会出现问题,尤其是系统级的产品
    13、安装,该系统是否对其他的应用程序造成不正常影响(如操作系统,应用软件等)

我的栏目

数据统计

  • 访问量: 8000
  • 日志数: 15
  • 图片数: 1
  • 建立时间: 2008-06-04
  • 更新时间: 2008-10-24

RSS订阅

Open Toolbar