111111111111111111111

发布新日志

  • SQL常有语句

    2009-10-20 13:25:35

    一、基础

    1、说明:创建数据库
    CREATE DATABASE database-name
    2、说明:删除数据库
    drop database dbname
    3、说明:备份sql server
    --- 创建 备份数据的 device
    USE master
    EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'
    --- 开始 备份
    BACKUP DATABASE pubs TO testBack
    4、说明:创建新表
    create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
    根据已有的表创建新表:
    A:create table tab_new like tab_old (使用旧表创建新表)
    B:create table tab_new as select col1,col2… from tab_old definition only
    5、说明:删除新表
    drop table tabname
    6、说明:增加一个列
    Alter table tabname add column col type
    注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。
    7、说明:添加主键: Alter table tabname add primary key(col)
    说明:删除主键: Alter table tabname drop primary key(col)
    8、说明:创建索引:create [unique] index idxname on tabname(col….)
    删除索引:drop index idxname
    注:索引是不可更改的,想更改必须删除重新建。
    9、说明:创建视图:create view viewname as select statement
    删除视图:drop view viewname
    10、说明:几个简单的基本的sql语句
    选择:select * from table1 where 范围
    插入:insert into table1(field1,field2) values(value1,value2)
    删除:delete from table1 where 范围
    更新:update table1 set field1=value1 where 范围
    查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料!
    排序:select * from table1 order by field1,field2 [desc]
    总数:select count as totalcount from table1
    求和:select sum(field1) as sumvalue from table1
    平均:select avg(field1) as avgvalue from table1
    最大:select max(field1) as maxvalue from table1
    最小:select min(field1) as minvalue from table1
    11、说明:几个高级查询运算词
    A: UNION 运算符
    UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。
    B: EXCEPT 运算符
    EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。
    C: INTERSECT 运算符

    INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。
    注:使用运算词的几个查询结果行必须是一致的。
    12、说明:使用外连接
    A、left outer join:
    左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。
    SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
    B:right outer join:
    右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。
    C:full outer join:
    全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。

  • 在线学习嵌入式linux好网站

    2009-09-24 09:40:38

    嵌入式linux中文站 旨在为广大嵌入式linux中文爱好者提供一个学习、讨论、研究嵌入式linux的优良平台,所有提供的服务永久免费,欢迎广大嵌入式linux爱好者经常光临本站
    嵌入式linux中文站地址:
      http://www.embeddedlinux.org.cn

    其中网站的"技术手册"版面:
      s3c2440a中文datasheet- 第5章 存储控制器
      s3c2440a中文datasheet- 第6章 Nandflash
      s3c2440a中文datasheet- 第7章 时钟及电源
      s3c2440a中文datasheet- 第8章 DMA
      s3c2440a中文datasheet- 第10章 PWM及定时器
      s3c2440a中文datasheet- 第11章 UART控制器
      s3c2440a中文datasheet- 第14章 中断控制
      s3c2440a中文datasheet- 第16章 ADC及触摸屏接口
      s3c2440a中文datasheet- 第17章 RTC
      s3c2440a中文datasheet- 第18章 看门狗
      s3c2440a中文datasheet- 第19章 MMC/SD/SDIO 控制器
      s3c2440a中文datasheet- 第20章 IIC接口
      s3c2440a中文datasheet- 第21章 IIS接口
      s3c2440a中文datasheet- 第22章 SPI接口
      s3c2440a中文datasheet- 第24章 AC97接口
      
      嵌入式linux中文站同时提供以下在线图书:
      以下图书搜集自互联网,仅供学习使用!!
      
      【在线图书】Linux C 参考手册
      【在线图书】linux内核详解
      【在线图书】Linux MTD源代码分析
      【在线图书】设计嵌入式通讯软件
      【在线图书】嵌入式系统实时概念
      【在线图书】嵌入式系统firmware揭秘
      【在线图书】嵌入式Linux:硬件软件和接口
      【在线图书】Essential Linux Device Drivers
      【在线图书】Embedded Linux Primer
      【在线图书】Linux Kernel核心中文手册
      【在线图书】uCOSII中文教程
      【在线图书】构建嵌入式Linux系统
      【在线图书】linux设备驱动程序(第三版)中文版
      【在线笔记】linux设备驱动程序(第三版)笔记
      
      嵌入式linux中文站 旨在为广大嵌入式linux中文爱好者提供一个学习、讨论、研究嵌入式linux的优良平台,所有提供的服务永久免费,欢迎广大嵌入式linux爱好者经常光临本站
      
      
      嵌入式linux中文站地址:
      http://www.embeddedlinux.org.cn

  • linux常有命令集

    2009-08-10 11:32:21

    Linux常用命令大全

     

    系统信息
    arch 显示机器的处理器架构(1)
    uname -m 显示机器的处理器架构(2)
    uname -r 显示正在使用的内核版本
    dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI)
    hdparm -i /dev/hda 罗列一个磁盘的架构特性
    hdparm -tT /dev/sda 在磁盘上执行测试性读取操作
    cat /proc/cpuinfo 显示CPU info的信息
    cat /proc/interrupts 显示中断
    cat /proc/meminfo 校验内存使用
    cat /proc/swaps 显示哪些swap被使用
    cat /proc/version 显示内核的版本
    cat /proc/net/dev 显示网络适配器及统计 
    cat /proc/mounts 显示已加载的文件系统
    lspci -tv 罗列 PCI 设备
    lsusb -tv 显示 USB 设备
    date 显示系统日期
    cal 2007 显示2007年的日历表
    date 041217002007.00  设置日期和时间 - 月日时分年.秒
    clock -w 将时间修改保存到 BIOS 
     


    关机 (系统的关机、重启以及登出 ) 
    shutdown -h now 关闭系统(1)
    init 0  关闭系统(2)
    telinit 0  关闭系统(3)
    shutdown -h hours:minutes & 按预定时间关闭系统
    shutdown -c 取消按预定时间关闭系统
    shutdown -r now 重启(1)
    reboot 重启(2)
    logout 注销
     


    文件和目录 
    cd /home 进入 '/ home' 目录'
    cd .. 返回上一级目录
    cd ../.. 返回上两级目录
    cd 进入个人的主目录
    cd ~user1 进入个人的主目录
    cd - 返回上次所在的目录
    pwd 显示工作路径
    ls 查看目录中的文件
    ls -F 查看目录中的文件
    ls -l 显示文件和目录的详细资料
    ls -a 显示隐藏文件
    ls *[0-9]* 显示包含数字的文件名和目录名
    tree 显示文件和目录由根目录开始的树形结构(1)
    lstree 显示文件和目录由根目录开始的树形结构(2)
    mkdir dir1 创建一个叫做 'dir1' 的目录'
    mkdir dir1 dir2 同时创建两个目录
    mkdir -p /tmp/dir1/dir2 创建一个目录树
    rm -f file1 删除一个叫做 'file1' 的文件'
    rmdir dir1  删除一个叫做 'dir1' 的目录'
    rm -rf dir1 删除一个叫做 'dir1' 的目录并同时删除其内容
    rm -rf dir1 dir2 同时删除两个目录及它们的内容
    mv dir1 new_dir 重命名/移动 一个目录 
    cp file1 file2 复制一个文件 
    cp dir/* . 复制一个目录下的所有文件到当前工作目录
    cp -a /tmp/dir1 . 复制一个目录到当前工作目录
    cp -a dir1 dir2 复制一个目录
    ln -s file1 lnk1  创建一个指向文件或目录的软链接
    ln file1 lnk1 创建一个指向文件或目录的物理链接
    touch -t 0712250000 file1  修改一个文件或目录的时间戳 - (YYMMDDhhmm)
    file file1  outputs the mime type of the file as text
    iconv -l 列出已知的编码
    iconv -f fromEncoding -t toEncoding inputFile > outputFile creates a new from the given input file by assuming it is encoded in fromEncoding and converting it to toEncoding.
    find . -maxdepth 1 -name *.jpg -print -exec convert "{}" -resize 80x60 "thumbs/{}" \; batch resize files in the current directory and send them to a thumbnails directory (requires convert from Imagemagick)
     


    文件搜索 
    find / -name file1 从 '/' 开始进入根文件系统搜索文件和目录
    find / -user user1 搜索属于用户 'user1' 的文件和目录
    find /home/user1 -name \*.bin 在目录 '/ home/user1' 中搜索带有'.bin' 结尾的文件
    find /usr/bin -type f -atime +100 搜索在过去100天内未被使用过的执行文件
    find /usr/bin -type f -mtime -10 搜索在10天内被创建或者修改过的文件
    find / -name \*.rpm -exec chmod 755 '{}' \; 搜索以 '.rpm' 结尾的文件并定义其权限
    find / -xdev -name \*.rpm 搜索以 '.rpm' 结尾的文件,忽略光驱、捷盘等可移动设备
    locate \*.ps 寻找以 '.ps' 结尾的文件 - 先运行 'updatedb' 命令
    whereis halt 显示一个二进制文件、源码或man的位置
    which halt 显示一个二进制文件或可执行文件的完整路径
     


    挂载一个文件系统 
    mount /dev/hda2 /mnt/hda2 挂载一个叫做hda2的盘 - 确定目录 '/ mnt/hda2' 已经存在
    umount /dev/hda2 卸载一个叫做hda2的盘 - 先从挂载点 '/ mnt/hda2' 退出
    fuser -km /mnt/hda2 当设备繁忙时强制卸载
    umount -n /mnt/hda2 运行卸载操作而不写入 /etc/mtab 文件- 当文件为只读或当磁盘写满时非常有用
    mount /dev/fd0 /mnt/floppy 挂载一个软盘
    mount /dev/cdrom /mnt/cdrom 挂载一个cdrom或dvdrom
    mount /dev/hdc /mnt/cdrecorder 挂载一个cdrw或dvdrom
    mount /dev/hdb /mnt/cdrecorder 挂载一个cdrw或dvdrom
    mount -o loop file.iso /mnt/cdrom 挂载一个文件或ISO镜像文件
    mount -t vfat /dev/hda5 /mnt/hda5 挂载一个Windows FAT32文件系统
    mount /dev/sda1 /mnt/usbdisk 挂载一个usb 捷盘或闪存设备
    mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share 挂载一个windows网络共享
     


    磁盘空间 
    df -h 显示已经挂载的分区列表
    ls -lSr |more 以尺寸大小排列文件和目录
    du -sh dir1 估算目录 'dir1' 已经使用的磁盘空间'
    du -sk * | sort -rn  以容量大小为依据依次显示文件和目录的大小
    rpm -q -a --qf '%10{SIZE}t%{NAME}n' | sort -k1,1n 以大小为依据依次显示已安装的rpm包所使用的空间 (fedora, redhat类系统)
    dpkg-query -W -f='${Installed-Size;10}t${Package}n' | sort -k1,1n 以大小为依据显示已安装的deb包所使用的空间 (ubuntu, debian类系统)
     
    返回顶部索引 ^
     
    用户和群组
    groupadd group_name 创建一个新用户组
    groupdel group_name 删除一个用户组
    groupmod -n new_group_name old_group_name 重命名一个用户组
    useradd -c "Name Surname " -g admin -d /home/user1 -s /bin/bash user1 创建一个属于 "admin" 用户组的用户
    useradd user1 创建一个新用户
    userdel -r user1 删除一个用户 ( '-r' 排除主目录)
    usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1 修改用户属性
    passwd 修改口令
    passwd user1 修改一个用户的口令 (只允许root执行)
    chage -E 2005-12-31 user1 设置用户口令的失效期限
    pwck 检查 '/etc/passwd' 的文件格式和语法修正以及存在的用户
    grpck 检查 '/etc/passwd' 的文件格式和语法修正以及存在的群组
    newgrp group_name 登陆进一个新的群组以改变新创建文件的预设群组
     
    返回顶部索引 ^
     
    文件的权限 - 使用 "+" 设置权限,使用 "-" 用于取消
    ls -lh 显示权限
    ls /tmp | pr -T5 -W$COLUMNS 将终端划分成5栏显示
    chmod ugo+rwx directory1 设置目录的所有人(u)、群组(g)以及其他人(o)以读(r )、写(w)和执行(x)的权限
    chmod go-rwx directory1 删除群组(g)与其他人(o)对目录的读写执行权限
    chown user1 file1 改变一个文件的所有人属性
    chown -R user1 directory1 改变一个目录的所有人属性并同时改变改目录下所有文件的属性
    chgrp group1 file1 改变文件的群组
    chown user1:group1 file1 改变一个文件的所有人和群组属性
    find / -perm -u+s 罗列一个系统中所有使用了SUID控制的文件 
    chmod u+s /bin/file1 设置一个二进制文件的 SUID 位 - 运行该文件的用户也被赋予和所有者同样的权限
    chmod u-s /bin/file1 禁用一个二进制文件的 SUID位
    chmod g+s /home/public 设置一个目录的SGID 位 - 类似SUID ,不过这是针对目录的
    chmod g-s /home/public 禁用一个目录的 SGID 位
    chmod o+t /home/public 设置一个文件的 STIKY 位 - 只允许合法所有人删除文件
    chmod o-t /home/public 禁用一个目录的 STIKY 位
     
    返回顶部索引 ^
     
    文件的特殊属性 - 使用 "+" 设置权限,使用 "-" 用于取消
    chattr +a file1 只允许以追加方式读写文件
    chattr +c file1 允许这个文件能被内核自动压缩/解压
    chattr +d file1 在进行文件系统备份时,dump程序将忽略这个文件
    chattr +i file1 设置成不可变的文件,不能被删除、修改、重命名或者链接
    chattr +s file1 允许一个文件被安全地删除
    chattr +S  file1 一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘
    chattr +u file1 若文件被删除,系统会允许你在以后恢复这个被删除的文件
    lsattr 显示特殊的属性
     
    返回顶部索引 ^
     
    打包和压缩文件 
    bunzip2 file1.bz2 解压一个叫做 'file1.bz2'的文件
    bzip2 file1 压缩一个叫做 'file1' 的文件
    gunzip file1.gz 解压一个叫做 'file1.gz'的文件
    gzip file1 压缩一个叫做 'file1'的文件
    gzip -9 file1 最大程度压缩
    rar a file1.rar test_file 创建一个叫做 'file1.rar' 的包
    rar a file1.rar file1 file2 dir1 同时压缩 'file1', 'file2' 以及目录 'dir1'
    rar x file1.rar 解压rar包
    unrar x file1.rar 解压rar包
    tar -cvf archive.tar file1 创建一个非压缩的 tarball
    tar -cvf archive.tar file1 file2 dir1 创建一个包含了 'file1', 'file2' 以及 'dir1'的档案文件
    tar -tf archive.tar 显示一个包中的内容
    tar -xvf archive.tar 释放一个包
    tar -xvf archive.tar -C /tmp 将压缩包释放到 /tmp目录下
    tar -cvfj archive.tar.bz2 dir1 创建一个bzip2格式的压缩包
    tar -xvfj archive.tar.bz2 解压一个bzip2格式的压缩包
    tar -cvfz archive.tar.gz dir1 创建一个gzip格式的压缩包
    tar -xvfz archive.tar.gz 解压一个gzip格式的压缩包
    zip file1.zip file1 创建一个zip格式的压缩包
    zip -r file1.zip file1 file2 dir1 将几个文件和目录同时压缩成一个zip格式的压缩包
    unzip file1.zip 解压一个zip格式压缩包
     
    返回顶部索引 ^
     
    RPM 包 - (Fedora, Redhat及类似系统) 
    rpm -ivh package.rpm 安装一个rpm包
    rpm -ivh --nodeeps package.rpm 安装一个rpm包而忽略依赖关系警告
    rpm -U package.rpm 更新一个rpm包但不改变其配置文件
    rpm -F package.rpm 更新一个确定已经安装的rpm包
    rpm -e package_name.rpm 删除一个rpm包
    rpm -qa 显示系统中所有已经安装的rpm包
    rpm -qa | grep httpd 显示所有名称中包含 "httpd" 字样的rpm包
    rpm -qi package_name 获取一个已安装包的特殊信息
    rpm -qg "System Environment/Daemons" 显示一个组件的rpm包
    rpm -ql package_name 显示一个已经安装的rpm包提供的文件列表
    rpm -qc package_name 显示一个已经安装的rpm包提供的配置文件列表
    rpm -q package_name --whatrequires 显示与一个rpm包存在依赖关系的列表
    rpm -q package_name --whatprovides 显示一个rpm包所占的体积
    rpm -q package_name --scripts 显示在安装/删除期间所执行的脚本l
    rpm -q package_name --changelog 显示一个rpm包的修改历史
    rpm -qf /etc/httpd/conf/httpd.conf 确认所给的文件由哪个rpm包所提供
    rpm -qp package.rpm  -l 显示由一个尚未安装的rpm包提供的文件列表
    rpm --import /media/cdrom/RPM-GPG-KEY 导入公钥数字证书
    rpm --checksig package.rpm 确认一个rpm包的完整性
    rpm -qa gpg-pubkey 确认已安装的所有rpm包的完整性 
    rpm -V package_name 检查文件尺寸、 许可、类型、所有者、群组、MD5检查以及最后修改时间
    rpm -Va 检查系统中所有已安装的rpm包- 小心使用
    rpm -Vp package.rpm 确认一个rpm包还未安装
    rpm2cpio package.rpm | cpio --extract --make-directories  *bin* 从一个rpm包运行可执行文件
    rpm -ivh /usr/src/redhat/RPMS/`arch`/package.rpm 从一个rpm源码安装一个构建好的包
    rpmbuild --rebuild package_name.src.rpm 从一个rpm源码构建一个 rpm 包
     
    返回顶部索引 ^
     
    YUM 软件包升级器 - (Fedora, RedHat及类似系统)
    yum install package_name 下载并安装一个rpm包
    yum localinstall package_name.rpm 将安装一个rpm包,使用你自己的软件仓库为你解决所有依赖关系
    yum update package_name.rpm 更新当前系统中所有安装的rpm包
    yum update package_name 更新一个rpm包
    yum remove package_name 删除一个rpm包
    yum list 列出当前系统中安装的所有包
    yum search package_name 在rpm仓库中搜寻软件包
    yum clean packages 清理rpm缓存删除下载的包
    yum clean headers 删除所有头文件
    yum clean all 删除所有缓存的包和头文件
     
    返回顶部索引 ^
     
    DEB 包 (Debian, Ubuntu 以及类似系统) 
    dpkg -i package.deb 安装/更新一个 deb 包
    dpkg -r package_name 从系统删除一个 deb 包
    dpkg -l 显示系统中所有已经安装的 deb 包
    dpkg -l | grep httpd 显示所有名称中包含 "httpd" 字样的deb包
    dpkg -s package_name 获得已经安装在系统中一个特殊包的信息
    dpkg -L package_name 显示系统中已经安装的一个deb包所提供的文件列表
    dpkg --contents package.deb 显示尚未安装的一个包所提供的文件列表
    dpkg -S /bin/ping 确认所给的文件由哪个deb包提供 

  • SQL常有语句

    2009-08-10 11:30:12

    1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用)
    法一:select * into b from a where 1<>1
    法二:select top 0 * into b from a
    2、说明:拷贝表(拷贝数据,源表名:a 目标表名:b) (Access可用)
    insert into b(a, b, c) select d,e,f from b;

    3、说明:跨数据库之间表的拷贝(具体数据使用绝对路径) (Access可用)
    insert into b(a, b, c) select d,e,f from b in ‘具体数据库’ where 条件
    例子:..from b in '"&Server.MapPath(".")&"\data.mdb" &"' where..

    4、说明:子查询(表名1:a 表名2:b)
    select a,b,c from a where a IN (select d from b ) 或者: select a,b,c from a where a IN (1,2,3)

    5、说明:显示文章、提交人和最后回复时间
    select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b

    6、说明:外连接查询(表名1:a 表名2:b)
    select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c

    7、说明:在线视图查询(表名1:a )
    select * from (SELECT a,b,c FROM a) T where t.a > 1;

    8、说明:between的用法,between限制查询数据范围时包括了边界值,not between不包括
    select * from table1 where time between time1 and time2
    select a,b,c, from table1 where a not between 数值1 and 数值2

    9、说明:in 的使用方法
    select * from table1 where a [not] in (‘值1’,’值2’,’值4’,’值6’)

    10、说明:两张关联表,删除主表中已经在副表中没有的信息
    delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 )

    11、说明:四表联查问题:
    select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where .....

    12、说明:日程安排提前五分钟提醒
    SQL: select * from 日程安排 where datediff('minute',f开始时间,getdate())>5

    13、说明:一条sql 语句搞定数据库分页

    select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段

    14、说明:前10条记录
    select top 10 * form. table1 where 范围

    15、说明:选择在每一组b值相同的数据中对应的a最大的记录的所有信息(类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.)
    select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b)

    16、说明:包括所有在 TableA 中但不在 TableB和TableC 中的行并消除所有重复行而派生出一个结果表
    (select a from tableA ) except (select a from tableB) except (select a from tableC)

    17、说明:随机取出10条数据
    select top 10 * from tablename order by newid()

    18、说明:随机选择记录
    select newid()

    19、说明:删除重复记录
    Delete from tablename where id not in (select max(id) from tablename group by col1,col2,...)

    20、说明:列出数据库里所有的表名
    select name from sysobjects where type='U'

    21、说明:列出表里的所有的
    select name from syscolumns where id=object_id('TableName')

    22、说明:列示type、vender、pcs字段,以type字段排列,case可以方便地实现多重选择,类似select 中的case。
    select type,sum(case vender when 'A' then pcs else 0 end),sum(case vender when 'C' then pcs else 0 end),sum(case vender when 'B' then pcs else 0 end) FROM tablename group by type
    显示结果:
    type vender pcs
    电脑 A 1
    电脑 A 1
    光盘 B 2
    光盘 A 2
    手机 B 3
    手机 C 3

    23、说明:初始化表table1

    TRUNCATE TABLE table1

    24、说明:选择从10到15的记录
    select top 5 * from (select top 15 * from table order by id asc) table_别名 order by id desc

     


     

  • 如何提高测试技术与能力

    2009-07-14 09:22:43

    如何提高测试技术与能力 ?

    真正测试工作以后就知道 学习的知识很多并且 很专哦!!!

    有以下观点:

    观点1:

     个人认为测试人员是杂家,我们要做的是成为杂家中的专家,就是说测试人员的知识面要非常广泛,但是必须精通一种,我们不仅要熟悉测试理论,还要知道各种操作系统,比如linux、Unix等,还有各种数据库,测试工具,网络知识,甚至还有各种业务知识,比如金融、财务等。所以我觉得我们不仅要在工作中进行总结,还要不断的充实自己,尽可能的扩大自己的知识面,还有想要精通一种的话可能就要自己下功夫去学了

    观点2:

     提高自己的技术水平,我觉得重要的是定期的进行总结,总结这一个月或是一个星期哪块做的好,哪块还应该改善,至于测试这块,测试工具固然重要,但是他只是辅助的工具而以,最重要的应该是形成一个良好的测试思维,就像一个人,胳膊,腿都很重要,但是最重要的是大脑,如果大脑瘫痪了,别的都无所谓了。
    如何提高自己的薪资待遇? 我认为一个人十年都在一个行业上奋斗和十年干了十个行业相比,前者肯定会更有成就,也就是说无论做哪一行,都要专,不要盲目的去工作,这样薪资待遇就不可能低。

  • bugzilla使用

    2009-06-03 17:43:35

    1   用户登录及设置流程:

    打开浏览器,进入Bugzilla主页面。

    进入主页面后,点击【新建帐号】,进入注册页面。

    在注册页面中输入E-Mail真实姓名(为了统一,这里我们都使用计算机名),然后,点击【Create Account】,随后,你将收到一封包含初始密码的E-Mail

    在收到E-Mail之后,点击【登录】,在帐号栏输入注册时使用的E-Mail地址,在密码栏输入邮件里通知的初始密码,然后,点击【Login】。

    如忘记密码,在登陆页面中输入注册用户名,点击【Submit Request,根据收到的邮件进行重新设置密码。

    成功登录后,点击【Edit属性】->【帐号设置】,进行密码修改。

    点击【Edit属性】->【邮件设置】,进行邮件通知设置。

    点击【Edit属性】->【权限】,进行权限查询。

    注意:在登陆使用之后,一定要退出登陆,这不仅是一个好不好习惯的问题,在bugzilla中将成为一个隐患——当你没有退出登陆而关闭页面,当用同一台机器再次访问的时候,系统会以上次登陆的用户访问——小心你的权限被错误使用哦!


     2  BUG处理流程    测试人员或开发人员发现bug后,判断属于哪个模块的问题,填写bug报告后,系统会自动通过Email通知项目组长或直接通知开发者。

      项目组长根据具体情况,重新reassigned分配给bug所属的开发者。

    ③ 开发者收到Email信息后,判断是否为自己的修改范围.
     1) 若不是,重新reassigned分配给项目组长或应该分配的开发者。

     2) 若是,进行处理,resolved并给出解决方法。(可创建补丁附件及补充说明)
    ④ 测试人员查询开发者已修改的bug,进行重新测试。(可创建test case附件)
     1) 经验证无误后,修改状态为VERIFIED。待整个产品发布后,修改为CLOSED
     2) 还有问题,REOPENED,状态重新变为“New",并发邮件通知。
    ⑤ 如果这个BUG一周内一直没被处理过。Bugzilla就会一直用email骚扰它的属主,直到采取行 动。管理员可以设定最迟采取行动的期限,比如说3天,系统默认为7天。

    Bug开始

    初始状态

    指派处理人员

    二次指派

    处理Bug

    确认处理

    关闭

    Bug结束

    重新

    打开

     

     

     

     3   Bug的提交过程

    要先进行查询

    ◎确认要提交的bug报告不会在原有纪录中存在,若已经存在,不要提交,若有什么建议,可在原有纪录中增加注释,告知其属主。

    确认你发现的Bug是否在最新的版本中所发生的。

     

    Ⅱ若Bug不存在,原谅自己的无情了,添加吧!!

    操作:

    点击【新建】—〉选择发现的bug所在的产品名称。

    在选择的产品bug提交页面中,选择或者输入bug信息。

    ◎模块:点“模块”两个字,可以查看关于这个产品的模块的详细信息。

    ◎平台、操作系统:可以根据发现bug的实际情况来选择,如果确定这个bug可以发生在所有的平台,选择all好了!

    ◎优先级:P1P5优先级逐渐减弱。

    ◎严重级:blockerenhancement严重程度降低。

      Blocker:阻碍了项目开发或者测试的继续进行。

      Critical:冲突,数据丢失和严重的内存泄漏等问题。

      Major:较大的功能缺陷。

      Minor:较小的功能缺陷。

      Trivial:拼写、对齐类的错误。

      Enhancement:需要改进的。

    ◎初始状态:开发人员的默认状态为“unconfirmed”(这个要由管理员设置,参见管理员操作指南),测试人员或者管理员此处为可选状态:unconfirmednew.

    Assigned to: 为空时默认为管理员指定的 owner, 也可手工制定。

    CC: 可为多人,需用""隔开。

    URL: bug的定位(可选)。

    ◎注释:是对bug的概述(必须填写)。

    Desription中要详细说明下列情况:
    1
    ) 发现问题的步骤

    2) 执行上述步骤后出现的情况
    3
    ) 期望应出现的正确结果

    ◎关键字:单击“关键字”三个字,会显示管理员已经设定的关键字,选择其一,便于以查询。注意:此处不可以随意添加,必须使用已经存在的关键字才好。另外,如果管理员没有创建关键字的话,那么此项缺省。

    ◎依赖:直接输入与当前bug有依赖关系的bug的编号。简单地说,比如说这里输入“3”,那么就是说当前提交的bug有依赖关系,不是由于3导致了当前bug,就是当前bug导致了bug3

    确认无误后,“commit”!

    提交之后,系统会提示:bug 已经提交。在此页面的下半部分,会再次显示刚才提交的bug的详细信息,你可以在这里进行修改,重新commit,也可以在此增加新的附件或是附加说明来进一步说明bug

    ◎投票:可以查看票数,只要点击显示这个bug的票数,也可以参加投票,【为这个bug投票】—〉在“票数”一栏中直接输入票数—〉【change my votes.

    需要说明的是:票数并不是任意的,管理员为每一个用户设置了可以投票的最大数目和每个用户为某个bug投票的最大数目。

    建议:一次只投一票,多投也没什么意义。

     

    Ⅲ 冲突

    当两个或几个人同时修改一个bug提交信息的时候,bugzilla会有弹出 Mid- air collision!提示,并且列出解决冲突的选择:◎提交修改,但是会导致覆盖别人所做的修改。

    ◎不改了,返回。

    建议选择返回,看看别人修改了什么,不同的话,添加一个附加说明来补充吧!!

    以上各项可能会因为权限的关系,有所缺省。

    4  对于Bug的不同处理情况

    4.1 Bug的属主 (owner) 处理问题,提出解决意见及方法。
    给出解决方法并填写附加说明(Additional Comments),还可创建附件(如:更改提交单)。
    填表提示:
     FIXED 描述的问题已经修改,
    bug已经修复并检查过,源文件已经检入CVS库。

    INVALID 描述的问题不是一个bug (输入错误后,通过此项来取消)
      WONTFIX 描述的问题将永远不会被修复。

      LATER 描述的问题将不会在产品的这个版本中解决。
      DUPLICATE 描述的问题是一个存在的bug的复件。
      WORKSFORME 所有要重新产生这个bug的企图是无效的。如果有更多的信息出现,请重新分配这个bug,而现在只把它归档。

     

    4.2 项目组长或开发者重新指定Bug的属主。
    bug不属于自己的范围,可置为 Assigned ,等待测试人员重新指定。
    bug不属于自己的范围,但知道谁应该负责,在
    Reassign bug to的输入框中直接输入被指定人的Email。  

    ③操作结果:此时bug状态又变为New,此bugowner变为被指定的人。

     

    4.3 测试人员确认开发人员报告的Bug是否存在.

    查询状态为“Unconfirmed"Bug,

    测试人员对开发人员提交的Bug进行确认,确认Bug存在。

    具体操作:选中“Confirm bug(change status to New)"后,进行commit.

    操作结果:状态变为“New".

     

    4.4 测试人员验证已修改的 Bug
    ① 测试人员查询开发者已修改的bug,即Status"Resolved", Resolution"Fixed".进行重新测试。(可创建test case附件)

    ② 经验证无误后,修改ResolutionVERIFIED。待整个产品发布后,修改为CLOSED
     若测试之后发现还有问题,REOPENED,状态重新变为“New",并发邮件通知。

    5、关于权限的说明

    ◎组内成员对bug具有查询的权利,但不能进行修改。

    Bugowner reporter 具有修改的权利。
    ◎ 具有特殊权限的用户具有修改的权利。

  • 测试计划

    2009-06-03 17:38:50

    测试计划


    第一部分:测试计划

     

    测试计划的问题:

      1、测试计划经常是等到开发周期后期才开始实行,使得没有时间有效的执行计划;

      2、测试计划的组织者可能缺乏Client/Server测试经验;

      3、测试的量度和复杂性可能太大,没有自动化工具,很难计划和控制。

    测试策略:

      测试策略描述测试工程的总体方法和目标。描述目前在进行哪一阶段的测试(单元测试、集成测试、系统测试)以及每个阶段内在进行的测试种类(功能测试、性能测试、压力测试等)。

      测试策略包括

      1、要使用的测试技术和工具;

      2、测试完成标准;

      3、影响资源分配的特殊考虑例如测试与外部接口或者模拟物理损坏、安全性威胁。

      测试计划最关键的一步就是将软件分解成单元,写成测试需求。

      测试需求有很多分类方法,最普通的一种就是按照商业功能分类。把软件分解成单元元件有几个好处:

      1、测试需求是测试设计和开发测试用例的基础,分成单元可以更好地进行设计;

      2、详细的测试需求是用来衡量测试覆盖率的重要指标;

      3、测试需求包括各种测试实际和开发以及所需资源。

    怎样估计测试工作量:

      1、效率假设:即测试队伍的工作效率。对于功能测试,这主要依赖于应用的复杂度,窗口的个数,每个窗口中的动作数目。对容量测试,主要依赖于建立测试所需数据的工作量大小。

      2、测试假设:为了验证一个测试需求所需测试动作数目。

      3、应用的维数:应用的复杂度指标。例如要加入一个记录,测试需求的维数就是这个记录中域的数目。

      4、所处测试周期的阶段:有些阶段主要工作都在设计,有些阶段主要是测试执行。

  • 第二阶段考试复习重点(转载)

    2008-12-27 13:45:52

                         第二阶段知识重点

    由于二阶段起更加注重思路,所以对二阶段应该是对每一阶段每条思路的总结。对测试二阶段的学习重点可分为:输入文档的评审、用例设计、用例执行三部分。

    第一部分:系统测试

    一、 软件需求规格说明书评审

    SRS介绍——→SRS写作——→SRS评审

    1、 SRS对原始需求的描述:功能、外部接口、性能、属性、实现的设计约束

    2、 SRS特点:a)正确性:描述了用户想要的功能

                 b)无歧义性:表达准确、解释唯一

                 c)完整性:包含隐式+显式需求,正常+异常情况

                 d)一致性:与原始需求一致,与同级一致

                 e)可验证性:

                 f)可追踪性:

    3、SRS需求分类:对很多需求按照可以管理的方式分组,每一组可以看做一个对象

                     每一对象包含多个属性:优先级、工作量、风险

    3、 SRS需求表达:a)自然语言

                     b)规范模型方法:UMLDFD、ER、STD

                     c)Execl表格

    4、SRS:基于事实的准确完整描述用户要求范围内的软件所需要做到的。

    SRS写作应包括:项目介绍、产品环境介绍、用户特征、假设和依赖关系、

    具体需求(功能、性能)、用户接口、软件接口、硬件接口、

    标准符合、硬件约束、技术限制和本地化 12个方面。

    1、 项目介绍:描述项目背景。(本项目存在的位置)

    2、 产品环境介绍:当前产品是独立的还是整个大系统中一部分。

    3、 软件功能:只是简要描述软件要做到什么。

    4、 功能需求: Step1:划出每一类或单独的功能子项

                     Step2:对setp1划出的子项,描述输入、处理、输出

             a)输入:所有输入数据的详细描述其来源、数量、单位、

    时间要求、精度和范围

                        b)处理:所有输入数据详细描述对其所有操作、如何获得

    输出的过程。

    (检测输入操作次序异常回应处理方法检测输出)

                        c)输出:所有输出数据的详细描述其输出位置、数量、单位、

                                时序、精度和范围、非法处理、错误消息 

       5、性能需求:静态量化   终端数、并发用户数、处理文件记录数、表和文件大小

                    动态量化   正常或峰值工作情况下  a)时间上处理任务的具体量

                                                     b)处理单个任务所占系统资源量

       SRS评审:流程与同行评审相同。

       评审要点:1、所有分配的需求都在srs体现?

                 2、定义和描述中解释是否唯一 无歧义

                 3、清楚描述软件该做什么不做什么

                 4、描述了软件使用目标环境

                 5、每个具体需求编号唯一

                6、需求可行并可测试

                7、描述了输入的验证及度量、边界等要求

                8、对输入的处理和对输出的具体属性的描述

                9、描述性能需求

                10、说明对系统的可约束性

                11、对每个具体接口的描述

    二、  系统测试用例设计

    基本格式:

    测试用例编号

    测试项目

    测试标题

    重要级别

    预置条件

    输入

    操作步骤

    预期输出

    系统测试的对象应该是被测试软件的整体与硬件集合在一起的整体系统。

    系统测试的依据SRS和各种规范(如企业内部的系统测试出口标准)

    设计思路:

    STEP1:根据软件质量模型将需求测试项划到质量特性及质量子特性下

    STEP2:根据需求确定有那些类型的测试(如功能测试、性能测试、压力测试)

    STEP3:将测试项根据step1的划分,总结归纳到相应的测试类型下

    STEP4:将各测试类型下的测试项细分为测试子项

    STEP5:对测试子项所覆盖的SRS中的具体需求规格分析,采用等价类、边界值等

    各种用例设计方法设计用例。

    对于各种用例设计方法都不是孤立存在的,应该是各种方法的综合应用,在具体用某种

    方法设计中也可以包含其他的方法。

    等价类划分法:(也可以是针对于输出)

    STEP1:确定每个输入和输入条件

    STEP2;根据每个输入条件的规定方式不同,划分有效等价类与无效等价类

    STEP3:对被测对象背后的信息进行分析,从已经划分的类中选择最佳的值做代表

            在选有效值和无效值时,又可采用边界值法

    STEP4:针对选取的值设计用例,对于有效类以尽少的用例覆盖较多的有效类

            对于无效类以每一个无效类对应一个用例 确保用例关注点唯一

    边界值分析法:

    STEP1:确定输入有明确的范围或取值 有序集合并先对其等价类划分

    STEP2:根据每个输入条件的规定方式,在其条件内取值,条件边界上取值,

            离边界点最近的点上取值

    STEP3:根据这些取值设计用例

    判定表分析法:

    STEP1:确定规则的个数 (规则:条件项与其对应的动作项)

    STEP2:列出条件桩和动作桩 并填入条件项 动作项

    STEP3:化简  注:不同规则间只有输出相同,条件项只有一个不同才能化简。

    STEP4:一条规则设计一个用例

    因果图法:

     分析被测系统规格,找出原因和结果,画出因果图,对应原因=条件桩 结果=动作桩

     转化成判定表。

    状态迁移法:

    STEP1:列出状态事件表  (前状态、后状态、动作)

    STEP2:将其转换成状态树 

    STEP3:根据树中每一分支路径设计用例

    流程分析法:

     以流程为路径 选择测试数据覆盖流程中每条分支路径 设计用例

    正交分析法:

    STEP1:列举出各个因子和各因子的状态 构造因子-状态表

    STEP2:选择合适正交表 将因子 状态映射到正交表中

    STEP3:针对每行数据设计用例

    其中STEP2可以对因子-状态表进行加权筛选生成因素分析表 组合相似的因子状态

    极端测试法:

    输出域覆盖法:输出的等价类划分

    错误猜测法:

    异常分析法:

    三、 系统测试执行

    执行阶段应完成:环境准备、测试操作、测试记录、测试报告

    输入:系统测试计划、测试方案、测试用例、预测试项、测试规程(用例执行顺序)、

          集成测试报告

    输出:系统测试报告、系统预测试报告、评审表、缺陷报告、测试日报

    出口标准:达到系统测试计划中的测试通过标准;《软件系统测试报告》通过评审

    过程:构造测试环境—→系统测试预测试—→转系统测试评审—→执行系统测试(系统测试用例记录、填写测试日报、提交bug报告并进行缺陷跟踪)—→系统测试报告

    四、系统测试计划

    计划内容:明确 组织形式、测试对象、出口标准、挂起标准恢复条件、工作任务分配、

                   系统测试结束后的输出产品

              完成  系统测试的需求跟踪 保证测试项很好的对应

     

      第二部分:集成测试

    一、概要设计评审

    写作要点:1 确定框架结构

              2 将系统划分为子模块

              3 确定模块功能

              4 划分模块调用关系

              5 确定模块的接口

    HLD的分层设计:

         零层:描述系统与外部的接口关系

         一层设计:划分系统子模块

         二层设计:描述对1层划分出来的子模块设计

    其中每层都应:分解描述(先描述系统/组件的整体结构,再描述每个组件功能)

                  依赖关系(组件间的依赖关系按功能处理或业务流程组织)

                  接口描述(具体描述每个组件的输入、输出)

    HLD评审要点:耦合性的7个方面+其他规范性的方面

    二、集成测试用例设计

    STEP1:确定集成测试的层次(模块内集成、子系统内集成、子系统间集成)

    STEP2:选择每一层所采取的测试策略 根据策略确定该层测试子项

    STEP3:利用等价类、边界值等方式设计用例

    三、集成测试执行 (个人总结 不对望指出)

    环境搭建:

    STEP1:搭建集成测试环境 需要用到TCL、VC++

    STEP2: 针对用例的输入、输出构造测试环境的输入数据,每条代表一个用例

    STEP3:编写TCL脚本循环逐条读取构造的数据 利用扩展命令处理这些数据

    STEP4:用vc++创建TCL 查看(1770) 评论(1) 收藏 分享 管理

  • 扫雷的游戏规则:

    2008-11-21 13:26:40

    扫雷的游戏规则:

    1.扫雷就是要把所有非地雷的格子揭开即胜利;踩到地雷格子就算失败。

    2.游戏主区域由很多个方格组成。使用鼠标左键随机点击一个方格,方格即被打开并显示出方格中的数字;方格中数字则表示其周围的8个方格隐藏了几颗雷;如果点开的格子为空白格,即其周围有0颗雷,则其周围格子自动打开;

    3.1代表1的上下左右及斜角合计有一颗雷,依次轮推,2则有2颗,3则有3颗。在确实是炸弹的方格上点了旗子,就安全了,不是炸弹的被点了旗子,后面会被炸死的。问号就三不确定这里有没有炸弹,不会存在点错了被炸死的状况。有个小窍门,在数字旁同时点左键和右键可以排雷。
    ,第一下点的一定不是雷,哈哈。
    4.左键点开,右键用旗子标记雷,同时左右键点数字可以判断周围的雷是否已经全部标出
    5.每个数字代表 这个数字周围九个格里,有几颗雷!比如,1,周围九个格里只有一颗雷,2 周围九个格里就有两颗雷,以此类推
    6.通过单击即可挖开方块。如果挖开的是地雷,则您输掉游戏。
    7.如果方块上出现数字,则表示在其周围的八个方块中共有多少颗地雷。
    8.要标记您认为可能有地雷的方块,请右键单击它。
    9.游戏区包括雷区、地雷计数器和计时器。
    10.数字就是这个方块周围的8个方块里有的雷的数量,问号是自己弄上去的,可以的地方可以弄个问号,旗子就是确定那里有雷了
    11.通过单击即可挖开方块。如果挖开的是地雷,则您输掉游戏。
     
    12• 如果方块上出现数字,则表示在其周围的八个方块中共有多少颗地雷。 您可以使用此数字来帮助推断某个方块是否可以安全挖开。
     
    13• 要标记您认为可能有地雷的方块,请右键单击它。这样将向该方块添加一个标记。如果您不确信,请再次右键单击,这样会向该方块添加一个问号。
    14.如果一个已打开格子周围所有的雷已经正确标出,则可以在此格上同时点击鼠标左右键以打开其周围剩余的无雷格。
    15.如果其周围还有空白格,则会引发连锁反应;在你认为有雷的格子上,点击右键即可标记雷;

  • 第一阶段的 复习资料(待整理中)

    2008-11-12 12:56:46

    1.什么是测试?
    使用人工或自动化来测试某个程序,来验证它是否满足规定的需求或者实际结果和预期结果之间的差别
    2.为什么要测试?
    在软件开发过程中容易出现缺乏有效沟通,软件复杂,编程错误,需求不断变更,时间的压力,缺乏文档的代码,软件开发工具和人员的自大等原因引发的错误,通过测试能够找出其中的错误,解决错误,从而提高软件的质量
    3.测试的目的是什么?
    是为了证明软件没有问题。检验,发现软件只能够的错误。预防,验证软件于需求是不是一致。
    4.软件的什么周期分为哪几个阶段?具体的内容是什么?
    大体份七个阶段,是计划,需求分析,设计,编码,测试,运行,评价。
    计划 1.确定软件开发总目标2.给出软件给方面的设想3.研究可行性和解决方案
    4.给出评估计划5.指定完整的实施计划

    需求分析 对开发软件进行详细定义,给出《需求规格说明书》SRS。
    设计 在设计阶段把各项需求转换成相应的体系结构,给出《概要设计说明书》HLD
    编码 将软件设计转换成计算机能识别的语言,给出《详细设计说明书》LLD
    测试 检测软件是否符合用户需求
    运行 交付客户使用
    评价 用户对软件好坏做出判断。
    5.研发团队的组织架构与研发流程是什么?
    常见的项目组架构  项目经理 SQA 开发经理 测试经理 配置经理 软件开发组 包括开发经理 分析人员,设计人员,开发人员 软件测试组 包括 测试经理 测试人员 配置管理组 包括 配置经理和配置管理员(CMO)
    常见的研发流程
    1.瀑布模型
    2.螺旋模型
    3,RUP流程
    4.IPD流程
    6.测试阶段怎么划分?
    划分为 单元测试 集成测试 系统测试
    7.什么是UT,IT,ST?它们有什么区别
    UT是测试软件的基本组成单元来进行正确性检验
    IT是测试模块或子系统组装后功能以及模块间接口是否正确
    ST是将被测软件系统和计算机硬件,数据库,外设,人员以及其他软件结合在一起,在实际运行环境下,对计算机系统进行一系列的组装测试和确认测试
    区别在于测试方法不同,考察范围不同,评估基准不同。UI属于白盒测试,主要测试单元内部的数据结构、逻辑结构、异常处理,评估基准主要是逻辑覆盖率。IT属于灰盒测试,测试模块之间的接口于接口的数据传递关系以及整合后的功能,评估基准是接口覆盖率。ST属于黑盒测试,测试整系统对需求的符合度,评估的基准是对需求规格的覆盖率。
    8.什么是回归测试?为什么要回归测试?回归测试的流程是什么?回归测试的测试策略有哪些?
    是软件维护阶段,对缺陷进行修复后的测试
    回归测试的流程是
    1.在测试策略制定阶段,制定回归测试策略
    2.确定需要回归测试的版本
    3.测试版本发布后,按照回归测试策略来执行回归测试
    4.回归测试通过,关闭缺陷跟踪单
    5.回归测试不通过,缺陷跟踪单返回给开发人员,开发人员重新修改BUG.再次提交给测试人员回归测试
    回归测试策略是 完全重复测试和选择性重复测试。选择重复新测试又分 覆盖修改法,周边影响法和指标达成法。
    9.画V&V模型?
    10.软件质量的定义是什么?影响软件质量的因素是哪些?ISO 2000的八大原则是什么?
    一个实体的所有特性,基于这些特性可以满足明显或隐含的需求。
    影响质量的因素主要是技术,组织和流程。
    ISO的八大原则是以顾客为中心、领导作用、全员参与、过程方法、管理的系统方法、持续改进、基于事实的决策方法、互利的供方关系。
    11.CMM/CMMI是什么?它的等级怎么划分?有什么目的?有什么作用?
    CMM/CMMI是能力成熟度模型。它的等级是按文档来划分的。目的是帮助软件企业对软件工程过程进行管理和改进,增强开发与改进能力,从而能按时地,不超预算地开发出高质量的软件。作用
      1.评估组用来识别组织中的强处和弱点。
      2.评价组用来识别选择不同的业务承包商的风险和监督合同
      3.管理者用来了解其组织的能力,并了解为了提高其能力成熟度而进行软件过程改进所需要进行的活动
      4.技术人员和过程改进组用来作为指南,指导他们在组织中定义和改进软件过程
    12.描述软件质量模型中的内容?
    软件的功能性,包括适合性、准确性、互操作性、保密安全性、功能性的依从性。
    软件的可靠性,包括成熟性、容错性、易恢复性、可靠性的依从性。
    软件的易用性,包括易理解性、易学性、易操作性、吸引性、易用性的依从性。
    软件的效率,包括时间特性、资源利用率、效率依从性。
    软件的维护性,包括易分析性、易改变性、稳定性、易测试性、维护性的依从性。
    13.测试的方法有哪些?
    按测试的重点分为黑盒测试和白盒测试,按软件是不是在运行分静态测试和动态测试,是不是使用工具分为人工测试和自动化测试。
    14.什么是白盒测试?
    依据被测软件分析程序内部构造,并根据内部构造设计用例,来对内部控制流程进行测试
    15.什么是黑盒测试?
    把测试对象看做一个黑盒,只考虑整体特性,不考虑内部具体实现
    16.什么是静态测试不运行被测软件系统,而采用其他手段和技术对被测软件进行检测的一种技术
    17.什么是动态测试?
    运行被测软件系统的测试
    18.什么是人工测试?
    测试活动由人来完成,狭义上指测试执行由人工完成
    19.什么是自动化测试?
    通过计算机模拟人的测试行为,替代人的测试活动,狭义上指测试执行由计算机来完成
    20.逻辑覆盖关注的内容是哪些?
    21.常见的黑盒测试方法有哪些?
    等价类划分法、边界值分析法、因果图分析法、判定表法、正交试验法、状态迁移法。
    22.什么是同行评审?
    正规检视
      以发现软件产品中的缺陷为目的,但有正规流程,形式比较严格,多用于文档的评审
    技术评审
      以某个技术方案的裁决为目的,多发生在项目开始时,主要由高层和技术管理人员参与
    走查
      以发现软件产品中的缺陷为目的,没有正规的流程,形式比较随意,多用于代码的走查
    23.自动化测试有什么意义?
    1.提高回归测试效率
    2.减少重复劳动时间
    3.减少软件发布的时间
    4.测试脚本能重复利用。
    24.测试用例的八大要素是什么?
    测试用例编号、测试项目、测试标题、重要级别、预置条件、输入、操作步骤、预期输出。
    25.什么是缺陷管理?引入的原因有哪些?
    BUG
      程序缺陷,电脑系统或者程序中存在的任何一种破坏正常运转能力的问题或者缺陷,都叫“BUG”,在实际工作中缺陷,错误和BUG都认为是一样的
    缺陷(defect)
      指静态存在于软件工作产品(文档,代码)中的错误,也指软件运行时由于错误被激发引起的和软件产品预期属性的偏离现象
    错误(error)
      指编写错误的代码
        语法错误(synta error)
        逻辑错误(logical error)
    故障(fault)
      软件运行中出现的状态,可引起意外情况,若不加处理,可产生失效,是一种动态行为
    失效(failure)
      软件运行时产生的外部异常行为结果,表现与用户需求不一致,功能能力终止,用户无法完成所需要的应用
    引入的原因有:
    1.开发过程中缺乏有效沟通,或者没有沟通
    2.软件负责度越来越高
    3.编程中产生的错误
    4.需求不断变更
    5.项目进度的压力
    6.不重视开发文档
    7.软件开发工具本身隐藏的问题
    26.缺陷的属性有哪些?
    1.bug发现人
    2.bug发现的时间
    3.bug的状态
      NEW(BUG的初始状态)
      OPEN(开发人员开始修改)
      FIXED(开发人员修改BUG完毕)
      CLOSED(回归测试通过)
      REOPEN(回归测试失败)
      POSTPONE(推迟修改)
      REJECTED(开发人员认为不是BUG.拒绝BUG)
      DUPLICATE(与已经提交的DEFACT重复)
      ABANDON(被REJECTED和DUPLICATE的DEFACT,测试人员确认后确实不是问题,所改成的状态)
    4.bug的严重程度
      致命
        基本功能不能实现,数据丢失等
      严重
        处理结果不正确,流程不对,性能达不到要求
      一般
        不影响整个系统的运行
      建议
        界面整体效果,提示信息等
    5.bug所属的版本
    6.bug修改日期
    27.画缺陷管理流程图?
    28.如何写缺陷跟踪单?
    缺陷跟踪单写作
      5C准则
        1.准确(Correct):每个组成部分的描述准确,不会引起误会
        2.清晰(Clear):每个组成部分的描述清晰,易于理解
        3.简洁(Concise):只包含必不可少的信息,不包括任何多余的内容
        4.完整(Complete):包含复现该缺陷的完成步骤和其他本质信息
        5.一致(Consistent):按照一致的格式书写全部缺陷报告
      写作要点
        1.再现:一般尽量三次再现故障,有间断的时候,记录发生的频率
        2.初步定位:可能影响再现的变量.
        3.推广:确定系统其他部分是否可能出现这种错误等
        4.压缩:精简任何不必要的信息,特别是冗余的测试步骤
        5.去除歧义:使用清晰的语言,避免使用有歧义的词汇
        6.中立:公正的表达自己的意思,对错误以及其特征的事实进行陈述,避免夸张,幽默和讽刺
        7.评审:至少有一个同行,最好是有经验的测试工程师或经理,在递交错误报告前阅读一遍
    29.什么测试覆盖率?
    用来度量测试完整性的一个手段,是测试技术有效性的一个度量
  • 如何应对金融危机对就业的影响

    2008-11-12 12:50:24

    美国次贷危机引发的世界金融危机,使全球经济发展面临严峻挑战,对我国经济发展也造成一定影响。就业,从来都与宏观经济的发展紧密相连。金融危机对中国就业的影响有多大?如何努力化解危机对我国经济带来的不利影响?记者采访了人力资源和社会保障部部长尹蔚民。

    今年就业未受明显影响

      统计数字显示,1-9月,全国累计实现城镇新增就业人员936万人,为全年目标任务1000万人的94%;下岗失业人员再就业人数409万人,为全年目标任务500万人的82%;就业困难人员再就业人数119万人,为全年目标任务100万人的119%。9月底,全国城镇登记失业人员830万人,登记失业率为4.0%。

      从社会保障情况看,今年前三季度,我国社会保障工作稳步推进,社会保险覆盖范围不断扩大,各项社会保险待遇按时足额支付,待遇水平不断提高。截至9月底,全国已连续57个月实现基本养老金当期发放无拖欠。

      尹蔚民分析说,今年以来,就业和各项社会保障工作之所以能够取得好的进展,主要取决于以下三个重要因素:一是党中央、国务院高度重视民生,更加注重以人为本,制定出台了促进就业再就业、加强社会保障工作、维护劳动者合法权益等一系列政策措施。二是我国经济基本面没有发生改变,前三个季度GDP增长仍然达到9.9%,做好就业和社会保障工作的前提条件很好。尹蔚民说,今年前三季度,广东省生产总值仍保持10.4%的高速增长,同期全省注吊销企业57608户,但新增企业达92609户,说明企业生产经营的经济环境依然良好,用人需求仍然旺盛。三是各级劳动保障部门采取有效措施,认真贯彻落实积极就业政策和各项就业扶持政策,推动社会保障政策落实和制度建设,劳动关系总体保持和谐稳定。

      “从就业情况看,随着《就业促进法》的贯彻实施,积极就业政策进一步落实,就业工作稳步推进,各项目标任务完成情况良好。”尹蔚民说,从目前情况看,经济形势的变化尚未对我国就业、社会保障和劳动关系带来明显影响。

    未来就业面临三个挑战

      尹蔚民也指出,尽管目前经济形势变化未对就业带来明显影响,但是,已有一些值得关注的迹象。

      一是经济增长速度趋缓,对就业的拉动能力减弱。从劳动力市场监测情况看,第三季度企业用人需求与去年同期相比有所下降,一些地区新增就业人数增速减缓。

      二是部分中小企业生产经营困难,特别是纺织服装、加工制造等劳动密集型产业的困难较大,对就业带来一些不利影响。

      三是部分外贸出口型企业由于对外依存度高,受世界金融危机影响较大,出口的减速将减少对劳动力的需求。这种影响,广东劳动保障部门同志概括为“四大四小”:对外贸出口型企业影响大,对内向型企业影响小;对纺织、玩具等传统劳动密集型企业影响大,对高新技术企业影响小;对外资企业影响大,对民营企业影响小;对外来农民工影响大,对本地劳动者影响小。

      尹蔚民说,这些新变化,有可能对今年第四季度和明年第一季度的就业、社会保障、劳动者权益带来一定影响。近期就业形势的变化将主要取决于国际金融危机的发展变化和我国宏观经济政策所产生的实际效应,如果不能及时有效应对,预计明年上半年对就业的影响会逐步显现出来。

  • 关于C语言的字符串几个小程序

    2008-10-31 14:33:50

    一、字符串处理类

    1、编程将输入的一个字符串逆序后输出;

    #include <stdio.h>

    void revers()

    {

       char c;

       if((c = getchar()) != '\n')

           revers();

       if(c != '\n')

           putchar(c);

    void main()

    {

       revers();

       printf("\n");

    }

    2、编写一个函数将字符串转换成整数,另一个函数将整数转换成字符串

    int myitoa(char *s,int n) 

      return *(short *)(s+(n=(n>9)?myitoa(s,n/10):0))=n%10+'0',n+1; 

    int main() 

      char s[10]; 

      myitoa(s,14235); 

      printf("%s\n",s); 

      return 0;

    } 

    3、实现将一个含间隔符的字符串翻转,任何不是字母的字符都看做分隔符

    #include <stdio.h> 

    void nz(char *a,char *b) 

    int i=0,j; 

    while (*(a+i)!='\0') 

    i++; 

    *(b+i)='\0'; 

    i--; 

    for (j=0; j<=i; j++) { 

    *(b+j)=*(a+i-j); 

    int main(void) 

    char a[]="i am a student",b[20]; 

    fz(a,b); 

    puts(b); 

    return 0; 

  • 选择了测试发展前景!!

    2008-09-19 11:08:08

        目前国内120万软件从业人员中,真正能担当软件测试职位的不超过5万人,人才缺口已达20万并有逐年扩大的趋势,成为国家要求大力培养的紧缺型人才,由于外包对软件质量要求很高,国内企业要想在国际市场上立足,就必须重视软件质量,而作为软件质量的把关者,软件测试工程师日渐“走俏”。但在我国软件测试起步较晚,最初只有用友、联想、华为等大企业才有专门的软件测试岗位和测试人才。国家信息产业部发布的最新报告显示,我国目前软件人才缺口高达40万。即使按照软件开发工程师与测试工程师1∶1的岗位比例计算,我国对于软件测试工程师的需求便有数十万之众,而目前,我国软件开发工程师与测试工程师岗位比例为6∶1,远远低于国际水平。预计在未来10年内,我国IT企业对软件测试人才的需求还将继续增大

    选择了测试,我的前景!!!!!

Open Toolbar