发布新日志

  • 功能测试

    Spark.lee 发布于 2006-12-08 11:44:50

    功能测试



          黑盒测试(Black-box Testing,又称为功能测试或数据驱动测试)是把测试对象看作一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。

          采用黑盒技术设计测试用例的方法有:等价类划分、边界值分析、错误推测、因果图和综合策略。

          黑盒测试注重于测试软件的功能性需求,也即黑盒测试使软件工程师派生出执行程序所有功能需求的输入条件。黑盒测试并不是白盒测试的替代品,而是用于辅助白盒测试发现其他类型的错误。

          黑盒测试试图发现以下类型的错误:

          1)功能错误或遗漏;
          2)界面错误;
          3)数据结构或外部数据库访问错误;
          4)性能错误;
          5)初始化和终止错误。

    一、黑盒测试的测试用例设计方法

    ·等价类划分方法
    ·边界值分析方法
    ·错误推测方法
    ·因果图方法
    ·判定表驱动分析方法
    ·正交实验设计方法
    ·功能图分析方法

    等价类划分:

          是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例.该方法是一种重要的,常用的黑盒测试用例设计方法.

          1) 划分等价类: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类.

          有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合.利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能.

          无效等价类:与有效等价类的定义恰巧相反.

          设计测试用例时,要同时考虑这两种等价类.因为,软件不仅要能接收合理的数据,也要能经受意外的考验.这样的测试才能确保软件具有更高的可靠性.

    2)划分等价类的方法:下面给出六条确定等价类的原则.

          ①在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类.

          ②在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类.

          ③在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类.

          ④在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类.

          ⑤在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则).

          ⑥在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类.

    3)设计测试用例:在确立了等价类后,可建立等价类表,列出所有划分出的等价类:

          输入条件 有效等价类 无效等价类

          ... ... ...

          ... ... ...

          然后从划分出的等价类中按以下三个原则设计测试用例:

          ①为每一个等价类规定一个唯一的编号.

          ②设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步.直到所有的有效等价类都被覆盖为止.

          ③设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步.直到所有的无效等价类都被覆盖为止.

    边界值分析法

          边界值分析方法是对等价类划分方法的补充.

    (1)边界值分析方法的考虑:

          长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误.

          使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据.

    (2)基于边界值分析方法选择测试用例的原则:

          1)如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据.

          2)如果输入条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据.

          3)根据规格说明的每个输出条件,使用前面的原则1).

          4)根据规格说明的每个输出条件,应用前面的原则2).

          5)如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例.

          6)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例.

          7)分析规格说明,找出其它可能的边界条件.

    错误推测法

          错误推测法: 基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法.

          错误推测方法的基本思想: 列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例. 例如, 在单元测试时曾列出的许多在模块中常见的错误. 以前产品测试中曾经发现的错误等, 这些就是经验的总结. 还有, 输入数据和输出数据为0的情况. 输入表格为空格或输入表格只有一行. 这些都是容易发生错误的情况. 可选择这些情况下的例子作为测试用例.

    因果图方法

          前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系, 相互组合等. 考虑输入条件之间的相互组合,可能会产生一些新的情况. 但要检查输入条件的组合不是一件容易的事情, 即使把所有输入条件划分成等价类,他们之间的组合情况也相当多. 因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例. 这就需要利用因果图(逻辑模型).

          因果图方法最终生成的就是判定表. 它适合于检查程序输入条件的各种组合情况.

          利用因果图生成测试用例的基本步骤:

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

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

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

          (4) 把因果图转换为判定表.

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

          从因果图生成的测试用例(局部,组合关系下的)包括了所有输入数据的取TRUE与取FALSE的情况,构成的测试用例数目达到最少,且测试用例数目随输入数据数目的增加而线性地增加.

          前面因果图方法中已经用到了判定表.判定表(Decision Table)是分析和表达多逻辑条件下执行不同操作的情况下的工具.在程序设计发展的初期,判定表就已被当作编写程序的辅助工具了.由于它可以把复杂的逻辑关系和多种条件组合的情况表达得既具体又明确.

          判定表通常由四个部分组成.

          条件桩(Condition Stub):列出了问题得所有条件.通常认为列出得条件的次序无关紧要.

          动作桩(Action Stub):列出了问题规定可能采取的操作.这些操作的排列顺序没有约束.

          条件项(Condition Entry):列出针对它左列条件的取值.在所有可能情况下的真假值.

          动作项(Action Entry):列出在条件项的各种取值情况下应该采取的动作.

          规则:任何一个条件组合的特定取值及其相应要执行的操作.在判定表中贯穿条件项和动作项的一列就是一条规则.显然,判定表中列出多少组条件取值,也就有多少条规则,既条件项和动作项有多少列.

          判定表的建立步骤:(根据软件规格说明)

          ①确定规则的个数.假如有n个条件.每个条件有两个取值(0,1),故有 种规则.

          ②列出所有的条件桩和动作桩.

          ③填入条件项.

          ④填入动作项.等到初始判定表.

          ⑤简化.合并相似规则(相同动作).

          B. Beizer 指出了适合使用判定表设计测试用例的条件:

          ①规格说明以判定表形式给出,或很容易转换成判定表.

          ②条件的排列顺序不会也不影响执行哪些操作.

          ③规则的排列顺序不会也不影响执行哪些操作.

          ④每当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则.

          ⑤如果某一规则得到满足要执行多个操作,这些操作的执行顺序无关紧要.

    黑盒测试的优点

          1. 基本上不用人管着,如果程序停止运行了一般就是被测试程序crash了
          2. 设计完测试例之后,下来的工作就是爽了,当然更苦闷的是确定crash原因

    黑盒测试的缺点

          1. 结果取决于测试例的设计,测试例的设计部分来势来源于经验,OUSPG的东西很值得借鉴
          2. 没有状态转换的概念,目前一些成功的例子基本上都是针对PDU来做的,还做不到针对被测试程序的状态转换来作
          3. 就没有状态概念的测试来说,寻找和确定造成程序crash的测试例是个麻烦事情,必须把周围可能的测试例单独确认一遍。而就有状态的测试来说,就更麻烦了,尤其不是一个单独的testcase造成的问题。这些在堆的问题中表现的更为突出。
  • 没有系统安装盘怎样安装IIS

    一米 发布于 2008-04-22 10:29:38

    安装IIS的时候,需要系统盘考一些文件,但是没有安装盘怎样处理呢/

    在网上找了一个办法:

    我首先在“开始”菜单的“运行”中输入“c:\Windows\inf\sysoc.inf”,系统会自动使用

    记事本打开sysoc.inf这个文件。在sysoc.inf中找到“[Components]”这一段,并继续找到类似

    “iis=iis.dll,OcEntry,iis.inf,hide,7”的一行字,把这一行替换为

    “iis=iis2.dll,OcEntry,iis2.inf,,7”。之后保存并关闭。 

    输入“CMD”然后回车,打开命令行模式,在命令行下输入下列的两条命令,在每一行命令结

    束后回车(假设光驱是D盘): 

    EXPand d:\i386\iis.dl_ c:\Windows\system32\setup\iis2.dll 

    EXPand d:\i386\iis.in_ c:\Windows\inf\iis2.inf 

    这时,打开你的控制面板,并点击“添加删除程序”图标,之后点击“添加删除Windows组件”

    由于我用的是简装版,用上述方法后,添加删除组件却打不开了。提示:安装程序无法打开文件IIS2.inf 特定的错误代码是2088999592行的0X2

    出现了这种问题,不知道怎么办,于是接着在网上找办法,一网友说:

    c:\Windows\system32\setup\iis2.dll 
    把这个.dll文件复制一个放到system32目录下一份,
    提示错误是因为他找不到那个.dll文件

    重做系统大可不必!!

    试一下,真的添加删除组件可以打开了。

     

    附上IIS5.1的下载地址:

    安装文件:IIS 5.1安装文件
    下载地址:http://www.webjx.com/software/200504091iis51.rar
    解压密码:www.webjx.com



     

  • [论坛] SQL操作全集

    小孩 发布于 2008-05-18 11:50:05

    下列语句部分是Mssql语句,不可以在access中使用。

    SQL分类:  
    DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)  
    DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)  
    DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)

    首先,简要介绍基础语句:
    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:  
    全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。

    其次,大家来看一些不错的sql语句
    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
      
    随机选择数据库记录的方法(使用Randomize函数,通过SQL语句实现)
      对存储在数据库中的数据来说,随机数特性能给出上面的效果,但它们可能太慢了些。你不能要求ASP“找个随机数”然后打印出来。实际上常见的解决方案是建立如下所示的循环:  
    Randomize  
    RNumber = Int(Rnd*499) +1  
     
    While Not objRec.EOF  
    If objRec("ID") = RNumber THEN  
    ... 这里是执行脚本 ...  
    end if  
    objRec.MoveNext  
    Wend  
     
      这很容易理解。首先,你取出1到500范围之内的一个随机数(假设500就是数据库内记录的总数)。然后,你遍历每一记录来测试ID 的值、检查其是否匹配RNumber。满足条件的话就执行由THEN 关键字开始的那一块代码。假如你的RNumber 等于495,那么要循环一遍数据库花的时间可就长了。虽然500这个数字看起来大了些,但相比更为稳固的企业解决方案这还是个小型数据库了,后者通常在一个数据库内就包含了成千上万条记录。这时候不就死定了?  
      采用SQL,你就可以很快地找出准确的记录并且打开一个只包含该记录的recordset,如下所示:  
    Randomize  
    RNumber = Int(Rnd*499) + 1  
     
    SQL = "SELECT * FROM Customers WHERE ID = " & RNumber  
     
    set ōbjRec = ObjConn.Execute(SQL)  
    Response.WriteRNumber & " = " & objRec("ID") & " " & objRec("c_email")  
     
      不必写出RNumber 和ID,你只需要检查匹配情况即可。只要你对以上代码的工作满意,你自可按需操作“随机”记录。Recordset没有包含其他内容,因此你很快就能找到你需要的记录这样就大大降低了处理时间。  
    再谈随机数  
      现在你下定决心要榨干Random 函数的最后一滴油,那么你可能会一次取出多条随机记录或者想采用一定随机范围内的记录。把上面的标准Random 示例扩展一下就可以用SQL应对上面两种情况了。  
      为了取出几条随机选择的记录并存放在同一recordset内,你可以存储三个随机数,然后查询数据库获得匹配这些数字的记录:  
    SQL = "SELECT * FROM Customers WHERE ID = " & RNumber & " OR ID = " & RNumber2 & " OR ID = " & RNumber3  
     
      假如你想选出10条记录(也许是每次页面装载时的10条链接的列表),你可以用BETWEEN 或者数学等式选出第一条记录和适当数量的递增记录。这一操作可以通过好几种方式来完成,但是 SELECT 语句只显示一种可能(这里的ID 是自动生成的号码):  
    SQL = "SELECT * FROM Customers WHERE ID BETWEEN " & RNumber & " AND " & RNumber & "+ 9"  

      注意:以上代码的执行目的不是检查数据库内是否有9条并发记录。

     
    随机读取若干条记录,测试过
    Access语法:SELECT top 10 * From 表名 ORDER BY Rnd(id)
    Sql server:select top n * from 表名 order by newid()
    mysqlelect * From 表名 Order By rand() Limit n
    Access左连接语法(最近开发要用左连接,Access帮助什么都没有,网上没有Access的SQL说明,只有自己测试, 现在记下以备后查)
    语法elect table1.fd1,table1,fd2,table2.fd2 From table1 left join table2 on table1.fd1,table2.fd1 where ...
    使用SQL语句 用...代替过长的字符串显示
    语法:
    SQL数据库:select case when len(field)>10 then left(field,10)+'...' else field end as news_name,news_id from tablename
    Access数据库:SELECT iif(len(field)>2,left(field,2)+'...',field) FROM tablename;  
     
    Conn.Execute说明
    Execute方法
      该方法用于执行SQL语句。根据SQL语句执行后是否返回记录集,该方法的使用格式分为以下两种:
        1.执行SQL查询语句时,将返回查询得到的记录集。用法为:
        Set 对象变量名=连接对象.Execute("SQL 查询语言")
       Execute方法调用后,会自动创建记录集对象,并将查询结果存储在该记录对象中,通过Set方法,将记录集赋给指定的对象保存,以后对象变量就代表了该记录集对象。

        2.执行SQL的操作性语言时,没有记录集的返回。此时用法为:
        连接对象.Execute "SQL 操作性语句" [, RecordAffected][, Option]
          ·RecordAffected 为可选项,此出可放置一个变量,SQL语句执行后,所生效的记录数会自动保存到该变量中。通过访问该变量,就可知道SQL语句队多少条记录进行了操作。
          ·Option 可选项,该参数的取值通常为adCMDText,它用于告诉ADO,应该将Execute方法之后的第一个字符解释为命令文本。通过指定该参数,可使执行更高效。
  • 怎样才算是一个合格的测试工程师(转)

    JerryYe 发布于 2008-01-29 10:30:25

     

     

    一个测试工程师应该具备的素质我想在很多介绍软件测试的书里已经都列举过了,这里就不在重复,而一个合格的测试工程师和一个测试工程师的最大区别在哪儿?不外乎就在与测试思想。合格就在于他接受到测试任务后所做的第一件事情是想而不是做。合格就在于他将他自己的想法始终贯穿于整个测试中,包括测试设计中,测试执行中,测试分析中。

    许多人都会说测试思想是一个空洞的东西,而我也曾经写过或说过太多的例子用以证明它,这里只建议想做合格测试工程师的人去看一本书吧,它的名字是<think in java>,在我眼里,它并不是一本讲技术的书,同时它也并不只适用于开发人员。

    接着说说怎样才可以成为一个合格的测试工程师。

    不是有一个玩笑说某某公司扫地的大妈都可以做软件测试,某某公司看门的大爷都可以做软件测试。由此可见人们对软件测试的误解和测试工程师的尴尬。其实并不是任何一个人都可以成为测试工程师的,其实并不是任何一个测试工程师都可以成为合格的测试工程师的,要想成为一个合格的测试工程师,你必须有血有肉还的有思想。技术没有可以学,思想是学不来的,思想是需要实践的。毛泽东思想也不是他老人家凭空想象出来的,你说是否?

    于是我建议大家:

    1. 每半年读一本测试书籍(现在的测试书籍也多起来了,尽管很多都是东抄西抄的,能力够的话去读英文原版,译本基本都不能完全领会作者的思想,人家老外的测试发展要比我门多几十年呢)

    2. 每半年学一门测试技术(IT行业变化很快,测试技术也同样,每年都有新的测试技术出现,不希望大家对每一个新出现的技术都掌握,只希望每一个测试人员对本人从事的这个行业要充分了解和熟悉,因为在你现在和将来测试的项目中,你要选择最合适和最有效于这个项目的测试技术,如果你连所选对象都不知,那谈何选择,又谈何合适呢?)

    3. 每半年学一门IT技术(这里的IT技术范围要更广一些,做测试人员要了解更多的知识,如你做性能测试,你需要了解操作系统,你需要了解软件架构,你需要了解低层实现,你需要了解中间件,你需要了解数据库,你需要了解他们的配置与实现方式,你还需要了解硬件,了解网络,了解内存管理机制,了解磁盘I/O原理等等)

    4. 要学会思考(测试人员要学会在测试前思考,测试中思考,测试后思考,思考的结果要记录下来,每有一个人敢说他自己是天才,可以记住所有的东西。想好后那就去做吧,去验证吧,如果不对,那返回重新思考,然后再去做,只有这样,你才会做的更好。)

    5. 要重视测试设计(某开发人员曾说过他精通JAVA,精通C,我于是和他说,那给你10年或20年,你用你精通的JAVA来写出一个可以替换WINDOWS的操作系统。他从此不在这样说,因为他知道即使给他一辈子,这对他也是一个梦。测试何尝不是,你测试技术再高,你也不可能测试的更好,重视测试设计吧,这才是测试之关键。)

    6. 多和测试同行交流(在一个封闭的圈子里,或在一个公司里,你觉得你是测试高手,当有一天你走出这个封闭圈子的时候,你才发现,天外有天,或许捆饶你一个月的难题某些测试同行轻描淡写的一句话就可以为你解决。测试是相通的,测试思想更是相通的,多去做一些比较,才可以看到自己的不足。)

    我是崇尚测试技术的,所以相信, 尊重源于实力!因此希望更多的测试人员能得到测试同行的尊重,能得到开发人员的尊重,能得到企业的尊重。

    同时我更崇尚测试思想,所以我更相信,在软件行业更加规范化后,企业对测试工程师的要求必定是测试思想第一,经验第二,而测试技术只能排第三了。


  • 安装httpd2.2.4+php5.2.1+mysql5.0.22+mantis1.0.8+TestLink1.6.2

    lizhm 发布于 2007-08-03 22:47:57

      在一年多以前的时候,我在公司里搭起了一套测试管理环境,那时比较顺利,没有遇到什么困难.可今天老板让去帮另一个经理搭建这套环境的时候,却让我郁闷了几个小时。

        1.工具下载:省略

       2. 安装步骤

        下面是我安装时设置的目录
       c:\qa
       c:\qa\mantis
       c:\qa\mysql
       c:\qa\php
       c:\qa\apache


      首先安装的是 httpd2.2.4
     
       Apache是著名的服务器,开始安装的时候总是遇到系统找不到指定的文件,没有安装名为apache2的服务器。在网上查找找到
       如果系统安有IIS服务,再安装Apache,就会出现上面错误。 解决的方法是 把IIS服务停掉,并在“添加删除windows组件”中去除IIS组件。
       根据这样的提示操作之后,我再次安装了Apache,前面几项只需点“NEXT”就行了,到了要求填写network domain、server domain、和email的时候
       如果没有域名,就随便写点,也没有什么影响。
       接下来 配置Apache
       在 c:\qa\apache\conf目录下,打开httpd.conf进行配置apache.查找"DirectoryIndex",这是设定主页的首页的文件名,为了支持PHP,我是这样更改:
       更改前为:DirectoryIndex index.html index.html.var,
       更改后为:DirectoryIndex index.html index.html.var index.php,也就是在其后面添加index.php。
       查找"DocumentRoot",这是指定主页放置的目录,默认为C:/qa/apache/apache2/htdocs,可以使用默认的,也可以自己指定,比如D:/test
     
      安装 php
      将php5.2.1-Win32.zip解压缩到c:\qa\php下,把
      fdftk.dll
      fribidi.dll
      gds32.dll
      libeay32.dll
      libmhash.dll
      libmysql.dll
      ntwdblib.dll
      php5isapi.dll
      php5nsapi.dll
      php5ts.dll
      ssleay32.dll
      yaz.dll
      这些文件copy到C:\windows\system32下,同时复制 c:\qa\php 目录下的 php.ini-dist 文件到 C:\windows\ 目录下,并改名为 php.ini。
      配置php.ini
      找到下面两行; Directory in which the loadable extensions (modules) reside. extension_dir = "./"
      将extension_dir 的路径修改为你自己安装的路径,
      我的是; Directory in which the loadable extensions (modules) reside. extension_dir = "C:\qa\php\ext\",
      寻找;default_charset,为了让其支持中文,可以修改默认的字符集,可使用"UTF-8"或者"GB2312"或者"GBK",都行,它默认的是;default_charset="iso-8859-1",修改就行了.
      修改httpd.conf
      添加下面代码。LoadModule php5_module C:/qa/php/php5apache2_2.dll
      AddType application/x-httpd-php . 到文件的尾部。
      php LoadModule是加载PHP模块,路径一定要准确。
      AddType 是让apache支持PHP类型。 保存httpd.conf。
      测试apache安装结果
      修改好配置文件后,重启apache
      随便编写一个PHP文件放到D:/test下,比如:写上下面几行
      <?
        echo "hello world";
      ?>
      并保存为1.php,打开浏览器,输入:http://localhost/1.php,就会出现hello world,现在Apache+PHP配置已经完全成功了,
      值得注意的一点就是每次修改httpd.conf后,都得重启一次apache才能生效。

      安装Mysql
       Mysql 的安装比较简单,就不一一说明了,因为我想让数据库支持中文 就在安装的时候 把编码该成UTF8。
       启动 Mysql的服务。
     
     设置php 加载mysql
      在php.ini 文件中,将;extension=php_mysql.dll 前的注释去掉
     
      部署mantis

       将mantis-1.0.8解压缩到php的发布目录中 c:\qa\mantis,由于1.0.8中取消了原来\sql\db_generate.sql 的数据库脚本而采用了通过系统来建立环境。
      通过浏览器访问http://localhost/mantis/admin/install.php可看到部署mantis数据库环境的界面。
      默认的数据库是bugtracker,注意要使用有管理员权限的用户来建立数据库(建立好bugtracker数据库),我用了root 。
      设定好了install/upgrade database之后正常情况下在输出反馈页面下一片绿色的good,那就是ok了,
      要是有红色的bad,那要调整好了再初始化到ok才行,这时候mysql新增的bugtracker库里建立起很多以mantis_开头的表,到此数据库初始化结束。

      设置Mantis
     将c:\qa\mantis中的config_inc.php.sample复制一份,改名为config_inc.php,修改其中的设置;
     在config_defaults_inc.php中保存这Mantis的默认设置:用户自己的设置信息保存在config_inc.php中,
     如果某个选项在config_inc.php中有设置,则系统使用config_inc.php中的设置,否则使用config_defaults_inc.php的系统默认设置;
     config_inc.php.sample则是Mantis给出的一个用户设置文件例子。
     根据情况修改config_inc.php文件中的设置,设置很简单,各个参数的在config_defaults_inc.php都有很详细的说明。
     下面是我的一些自定义参数,phpmailer的内容之后说明:
    $g_use_iis = ON;            # 使用IIS 
    $g_show_version = OFF;     # 不在页面下部显示 Mantis的版本号
    $g_default_language = 'chinese_simplified';  # 默认语言为简体中文
    $g_show_project_menu_bar = ON;   # 显示项目选择栏
    $g_show_queries_count = OFF;              # 在页脚不显示执行的查询次数 
    $g_default_new_account_access_level = DEVELOPER;                          # 默认用户级别
    $g_window_title = 'Mantis Bug 跟踪管理系统';            # 浏览器标题 
    $g_page_title = 'Rink的BUGs跟踪管理系统';          # 页面标题栏 
    $g_enable_email_notification = ON;                    # 开通邮件通知
    $g_smtp_host = 'smtp.***.com';                   # SMTP 服务器
    $g_smtp_username = '***';                        # 邮箱登录用户名 
    $g_smtp_password = '***';                         # 邮箱登录密码 
    $g_use_phpMailer = ON;                       # 使用 PHPMailer 发送邮件 
    $g_phpMailer_path = 'c:/qa/mantis/core/phpmailer/'; # PHPMailer 的存放路径 
    $g_phpMailer_method = 2;       # PHPMailer 以 SMTP 方式发送 Email 
    $g_short_date_format = 'Y-m-d';      # 短日期格式,Y 大写表示 4 位年 
    $g_normal_date_format = 'Y-m-d H:i';             # 普通日期格式 
    $g_complete_date_format = 'Y-m-d H:i:s';        # 完整日期格式 

    完成以上设置以后,你就可以使用Mantis了,打开浏览器,输入http://localhost/mantis
    应该就可以看到Mantis的登录页面了,你可以用默认用户名administrator和密码root登录进去,进行管理设置。

    Mantis的初步安全设置
    删除admin目录
    在Mantis目录下有一个admin目录,这是Mantis管理员进行管理Mantis的,比如之前我们构建数据库环境的install.php等。
    使用这个模块可以检查你的Mantis是否安装完全,对旧版本的Mantis进行升级,对Mantis的页面CSS文件进行修改;
    使用这个管理模块是不需要用户名和密码的,因此任何人都可以通过这个管理模块查看你的Mantis系统信息,
    而且由于有升级模块,在这里还可以直接对数据库进行修改。
    因此Mantis会建议在配置完成后将这个admin目录删除;注意一定是删除而不是改名!改名后仍然是可以访问的!

    删除administrator
    在添加一个具备管理员权限的用户后,删除系统默认的administrator用户。
     
    PHPMail的设置

    默认情况下,Mantis使用内置的Mailto()函数进行邮件的发送,包括新用户注册发送密码、Bug改变提醒、重设密码等邮件的发送都使用MailTo()来完成,
    不过实际使用中发现,MailTo函数好像不支持需要校验的邮件服务器。
    其自身携带的PHPMailer配置起来也有问题,所以我直接将下载的PHPMailer覆盖Mantis里附带的Mailer
    (c\qa\mantis\core\phpmailer)。来发送邮件。
    关于更多PHPMailer请到http://phpmailer.sourceforge.net
    修改PHP.ini,找到include_path,增加c:\qa\mantis\core\phpmailer目录;
    如上表所示,设置$g_use_phpMailer、$g_phpMailer_path和$g_phpMailer_method三个参数;
    现在应该就可以使用PHPMailer进行邮件发送了;
     
    图形报表(jpgraph)的设置
    默认情况下,Mantis的图形报表是关闭的,因此在Mantis的报表中看不到“图形报表”的入口,
    需要安装JPGraph模块并设置$g_use_jpgraph为ON才能打开图形报表;
    下载JPGraph:从http://www.aditus.nu/jpgraph/index.php下载JPGraph的安装文件,当前最新版本是jpgraph-2.1.1;
    将下载下来的jpgraph-2.1.1.tar.gz解压缩到c:\qa\mantis\core\jpgraph目录下;
    打开config_inc.php文件,修改$g_jpgraph_path为JPGraph的src目录,$g_use_jpgraph为ON;
    也就是 $g_use_jpgraph = ON;                         # 使用图形报表(jpgraph)
          $g_jpgraph_path = c:/qa/mantis/core/jpgraph/src/';    # JPGraph路径  ,注意最后的’/’要加

    修改PHP.ini文件,激活“extension=php_gd2.dll”和“extension=php_iconv.dll”;另外如果extension_dir项不正确,请把extension_dir改为正确的值。
    将PHP\dlls下面的iconv.dll复制到Windows\System32目录下,以上两个步骤使PHP自动载入php_gd2和php_iconv.dll模块,这两个模块是JPGraph在显示图表和进行汉字编码转换是所必须的;
    现在再打开Mantis的统计页面,可以看到多了图形报表,分别按状态等进行统计的图形报表,包括柱图、饼图和线图,但是图形中有很多乱码,那是因为Mantis中默认是通过UTF-8设置JPGraph,而我们界面语言是用简体中文,因此汉字显示出来都是乱码。
    解决方法很简单:
    在Mantis\config_inc.php中将$g_graph_font = ''改为$g_graph_font = 'simsum';
    由于Mantis中图形报表默认字体里不含有中文,因此我们要在Mantis\core\graph_api.php中相应增加对图形标题等设置字体代码;
    在function graph_get_font() {...}中font_map增加'simsum' => FF_SIMSUN ,以供Mantis调用。
    这样以来,在图形报表中就能看到简体中文了。
     
     安装testlink
     将TestLink安装包解压缩到Apache2的htdocs目录下,并重命名为testlink
     TestLink的安装有两种方式,一是自动安装,二是手工安装的方式。
    A        自动安装
    A.1      在浏览器输入访问地址http://yoursite/testlink/install/index.php
                如:http://localhost/testlink/install/index.php

    A.2     选择new install,在进入的页面中,输入登录MySQL的用户名和密码,
                如root,如果没有为TestLink新建一个专用的用户,也可以输入初始用户root。
                但是因为root权限过多,所以,建议为TestLink新建专用的用户,
                并为该用户赋予ALTER、SELECT、INSERT、UPDATE、INDEX、CREATE、DELETE和DROP权限。
    A.3    提示安装成功。系统为testlink创建一个默认管理员账号,用户名和密码为:admin/admin。
                你可以使用这个账号访问TestLink
    小结:    在自动安装过程中,安装程序主要做了以下事情:检查web server的参数、php配置、数据库版本、
               创建数据库和表,并导入初始数据、在完成安装后,系统会为testlink创建一个数据库配置文件config_db.inc.php。
    B       手工安装       
               你也可以通过手工的方式来完成TestLink的安装。安装步骤如下:         
    B.1.   我安装了MySQL Control Center ,点击进入控制台直接创建新的数据库 testlink;
    B.2.   在新创建的数据库中,打开 query 窗口,将testlink-1.6.2\install\sql 下的testlink_create_tables.sql、testlink_create_default_data.sql
               文件的内容先后拷贝到query 窗口执行,这样testlink数据库中的表就建好了。
    B.3.   为TestLink新建一个专用的用户,在 MySQL Control Center 的add user 窗口中 新建用户testlink,密码testlink,把它与testlink数据库关联起来。
    B.4.       创建TestLink数据库配置文件。参照下面的代码创建<testlinkdir>/config_db.inc.php文件
    <?php // Automatically Generated by TestLink Installer
       define('DB_TYPE', 'mysql');
       define('DB_USER', 'testlink');
       define('DB_PASS', 'testlink');
       define('DB_HOST', 'localhost');
       define('DB_NAME', 'testlink');
    ?>
    B.5.    打开浏览器,输入:http://localhost/testlink/index.php,可以打开TestLink登陆界面。
     
      安全配置
     
     无论是自动安装还是手工安装,安装成功后,要将安装目录下的install目录移走,并在系统中修改admin的初始密码。
     
      修改配置文件
                <testlink installation directory>/config.inc.php - 主要的配置文件,后面会做详细介绍
       a.数据库的编码
       define('DB_SUPPORTS_UTF8', TRUE) 修改为  define('DB_SUPPORTS_UTF8', FALSE)

       b.TestLink 中文显示  
       define('TL_TPL_CHARSET', DB_SUPPORTS_UTF8  ? 'UTF-8' : 'ISO-8859-1');
       //define('TL_TPL_CHARSET', 'gb2312'); // Chinese charset
       修改为:
       //define('TL_TPL_CHARSET', DB_SUPPORTS_UTF8  ? 'UTF-8' : 'ISO-8859-1');
          define('TL_TPL_CHARSET', 'gb2312'); // Chinese charset
        c.与缺陷管理工具的集成配置
              
        define('TL_INTERFACE_BUGS', 'NO') 修改为  define('TL_INTERFACE_BUGS', 'MANTIS')        
        
       修改 <testlink installation directory>/cfg/ 下的 mantis.cfg.php 文件
                  define('BUG_TRACK_DB_HOST', 'localhost');
                  define('BUG_TRACK_DB_NAME', 'bugtracker');  mantis 安装时配置的数据库名
                  define('BUG_TRACK_DB_USER', 'root');
                  define('BUG_TRACK_DB_PASS', 'root');
             
                  define('BUG_TRACK_HREF', "http://localhost/mantis/");
                  define('BUG_TRACK_ENTER_BUG_HREF',"http://localhost/mantis/");   所指向的mantis的链接
     
     
    期间我所遇到的问题:
    1:开始的时候,我将PHP 解压缩到了C:\Program Files\目录下,在安装mantis 的时候,老出现php 不支持数据库的问题,因为在C:\Program Files\目录下PHP,从php.ini配置中获取不到php_mysql.dll,
    它不认得Program Files目录.后来将PHP的安装路径修改到不带空格的目录下就好了.
     
    2:在testlink和mantis 中无法添加用户,原因是:在开始安装数据库的时候,我设置了字符编码:gbk,后来将字符集编码修改成UTF8,然后重新建testlink和mantis 中的数据库、初始化数据就OK了。
     
    3:图形报表(jpgraph)总是无法显示,原因是:我将$g_jpgraph_path = c:/qa/mantis/core/jpgraph/src/' 写成了$g_jpgraph_path = c:/qa/mantis/core/jpgraph/src',当进入图形统计的时候,老是给出找不到srcjpgraph.php 文件.
     

     

  • 未婚男子必读的31条感悟!

    belie 发布于 2007-10-30 09:30:21

    1、能不抽烟最好不抽,它或许可以帮助你吸引一些女生,但不抽绝不会招来厌烦,表现男子气概的途径有很多,没必要拿健康做赌注。

    2、给自己定目标,一年,两年,五年,也许你出生不如别人好,通过努力,往往可以改变70%的命运。破罐子破摔只能和懦弱做朋友。

    3、找女朋友外表是第一关,但要了解她的品行之后再做打算也不迟。

    4、不要在乎小钱,工作的人都后悔从前对自己的GF不够好。记住你们的重要日子,你们的谈话,女生要敏感得多,这样做,至少可以证明你对她的重视。

    5、爱她,但别怕她,你们是恋人,也是朋友,她要的不是宠物,这样的感情,走不长远。

    6、她要是病了,带她去医院,她害怕时,找个人少的地方抱着她,给她勇气,帮她排队,挂号,放下你那点可悲的面子,周围人只会向她投来羡慕的眼光,不会对你说三道四。

    7、别把两个人的生活绞在一起,空间才是爱情的长寿药。不要经常吃醋,谁都有异性朋友,该吃的时候才吃,并且让她知道。

    8、善待她的朋友,即使她讨厌的人,你也没资格说坏话,你要做的,就是静静的听她倾诉。适当给她安慰。有时候,她们更需要依靠,即使你们都还是学生。

    9、不要问她过去,时机到了,她会毫无保留的告诉你。她要是想见从前那位,让她去,原因是你不让她去,她也会去。为何不表现得大度点,但要让她知道你相当的郁闷。

    10、珍惜身边人,不要见异思迁,大家都需要安定。即使对方比你GF漂亮10倍,还主动靠近你,给你暗号,请严肃的告诉她,你有女朋友!

    11、她开始管你的生活,你的钱 ,对你唠叨,频繁发消息询问你的位置。别担心,她只是把自己交给了你,害怕失去你。

    12、带她去你从前常去的地方,她内心会无比快乐,你失意时,她会在第一时间找到你。

    13、发生口角后,别关机,也别在街上和其他异性闲逛,那只能使矛盾激化。

    14、过生日,送她草莓蛋糕,不要太大,但要足够精致,把你对她的腻称放在蛋糕上。再买一个大的,让她和朋友一起过。

    15、牵手时,即使你的手有多汗,也别放开。

    16、把她介绍给你最好的朋友,包括异性朋友。
     
    17、别总是让她打电话来,她也需要被重视的感觉。

    18、衣着尽量和她的品位搭调,即使你要提升品质,请带上她一起。

    19、别偷看她的隐私,不要去猜测,在一起是缘分,离开也是缘分。

    20、如果失恋,不要轻信江湖上传言的借酒消愁,吐的滋味不好受,即使喝了,也别急着喝茶,茶不但不能解酒,反而还会伤肾。

    21、不要整天想着如何重修旧好,除了爱情,前面还有许多问题需要你去解决。这是个现实的社会,感情不能当饭吃,贫穷夫妻百事哀。不要相信电影,那只是个供许多陌生人喧嚣情感的场所。

    22、分手之后,可以伤心难过,但过渡期不能太长,因为这期间是绝佳的学习和工作时间。

    23、如果你实在奈不住寂寞,至少等上大半年,否则你不仅否定了她,也否定了你自己。

    24、当她不再爱你的时候,无论你有多想她也别打电话告诉她,因为有些人会记住第一个,而有些人只会记住上一个。

    25、好朋友里面,一定要培养出一个知己,不要以为你有多么八面玲珑,到处是朋友,最后真心对你的,只有一个,相信我。

    26、她的离开如若是一个重大打击,找间手艺不错的发型设计理个发,这样可以让你涣然一新。

    27、不要去打扰她的生活,她只会觉得从前看错人,你也会鄙视自己。

    28、你们在街上相遇,请向她微笑,把微笑留给伤你最深的人。

    29、告诉周围人,你和她已经分手,避免他们给你打报告,哪天又看见谁谁谁了。

    30、不要相信星座命理,那是哄小朋友的,命运在自己手中。难道你想等出栋房子或是车子?
     
    31、你的朋友最好以你自己为中心发散,允许少数支点连接,千万不要把朋友圈变成密不透风的多边型,你要为自己留底牌。

     

     

  • 国外软件测试经典站点

    zeus 发布于 2007-10-07 01:05:28

    http://bdonline.sqe.com/   一个关于网站测试方面的网页,对这方面感兴趣的人可以参考
    http://citeseer.nj.nec.com/   一个丰富的电子书库,内容很多,而且提供著作的相关文档参考和下载,是作者非常推荐的一个资料参考网站
    http://groups.yahoo.com/group/LoadRunner   性能测试工具LoadRunner的一个论坛
    http://groups.yahoo.com/grorp/testing-paperannou-nce/messages   提供网站上当前发布的软件测试资料列表
    http://satc.gsfc.nasa.gov/homepage.html   软件保证中心是美国国家航天局(NASA)投资设立的一个软件可靠性和安全性研究中心,研究包括了度量、工具、风险等各个方面
    http://seg.iit.nrc.ca/English/index.html   加拿大的一个研究软件工程质量方面的组织,可以提供研究论文的下载
    http://sepo.nosc.mil   内容来自美国SAN DIEGO的软件工程机构(Sofrware Engineering Process Office)主页,包括软件工程知识方面的资料
    http://www.asq.org/   是世界上最大的一个质量团体组织之一,有着比较丰富的论文资源,不过是收费的
    http://www.automatED-testing.com/ 一个自动化软件测试和自然语言处理研究页面,属于个人网页,上面有些资源可供下载
    http://www.benchmarkresources.com/ 提供有关标杆方面的资料,也有一些其它软件测试方面的资料
    http://www.betasoft.com/ 包含一些流行测试工具的介绍、下载和讨论,还提供测试方面的资料
    http://www.brunel.ac.uk/~csstmmh2/vast/home.html VASTT研究组织,主要从事通过切片技术、测试技术和转换技术来验证和分析系统,对这方面技术感兴趣的人是可以在这里参考一些研究的项目及相关的一些主题信息
    http://www.cc.gatech.edu/aristotle/ Aristole研究组织,研究软件系统分析、测试和维护等方面的技术,在测试方面的研究包括了回归测试、测试套最小化、面向对象软件测试等内容,该网站有丰富的论文资源可供下载
    http://www.computer.org/ IEEE是世界上最悠久,也是在最大的计算机社会团体,它的电子图书馆拥有众多计算机方面的论文资料,是研究计算机方面的一个重要资源参考来源
    http://www.cs.colostate.edu/testing/ 可靠性研究网站,有一些可靠性方面的论文资料
    http://www.cs.york.ac.uk/testsig/ 约克大学的测试专业兴趣研究组网页,有比较丰富的资料下载,内容涵盖了测试的多个方面,包括测试自动化、测试数据生成、面向对象软件测试、验证确认过程等
    http://www.csr.ncl.ac.uk/index.html 学校里面的一个软件可靠性研究中心,提供有关软件可靠性研究方面的一些信息和资料,对这方面感兴趣的人可以参考
    http://www.dcs.shef.ac.uk/research/groups/vt/ 学校里的一个验证和测试研究机构,有一些相关项目和论文可供参考
    http://www.esi.es/en/main/ ESI(欧洲软件组织),提供包括CMM评估方面的各种服务
    http://www.europeindia.org/cd02/index.htm 一个可靠性研究网站,有可靠性方面的一些资料提供参考
    http://www.fortest.org.uk/ 一个测试研究网站,研究包括了静态测试技术(如模型检查、理论证明)和动态测试(如测试自动化、特定缺陷的检查、测试有效性分析等)
    http://www.grove.co.uk/ 一个有关软件测试和咨询机构的网站,有一些测试方面的课程和资料供下载
    http://www.hq.nasa.gov/office/codeq/relpract/prcls-23.htm NASA可靠性设计实践资料
    http://www.io.com/~wazmo/ Bret Pettichord的主页,他的一个热点测试页面连接非常有价值,从中可以获得相当大的测试资料,很有价值
    http://www.iso.ch/iso/en/ISOOnline.frontpage 国际标准化组织,提供包括ISO标准系统方面的各类参考资料
    http://www.isse.gmu.edu/faculty/ofut/classes/ 821-ootest/papers.html 提供面向对象和基于构架的测试方面著作下载,对这方面感兴趣的读者可以参考该网站,肯定有价值
    http://www.ivv.nasa.gov/ NASA设立的独立验证和确认机构,该机构提出了软件开发的全面验证和确认,在此可以获得这方面的研究资料
    http://www.kaner.com/ 著名的测试专家Cem Kanner的主页,里面有许多关于测试的专题文章,相信对大家都有用。Cem Kanner关于测试的最著名的书要算Testing Software,这本书已成为一个测试人员的标准参考书
    http://www.library.cmu.edu/Re-search/Engineer- ingAndSciences/CS+ECE/index.html 卡耐基梅陇大学网上图书馆,在这里你可以获得有关计算机方面各类论文资料,内容极其庞大,是研究软件测试不可获取的资料来源之一
    http://www.loadtester.com/ 一个性能测试方面的网站,提供有关性能测试、性能监控等方面的资源,包括论文、论坛以及一些相关链接
    http://www.mareinig.ch/mt/index.html 关于软件工程和应用开发领域的各种免费的实践知识、时事信息和资料文件下载,包括了测试方面的内容
    http://www.mtsu.ceu/-storm/ 软件测试在线资源,包括提供目前有哪些人在研究测试,测试工具列表连接,测试会议,测试新闻和讨论,软件测试文学(包括各种测试杂志,测试报告),各种测试研究组织等内容
    http://www.psqtcomference.com/ 实用软件质量技术和实用软件测试技术国际学术会议宣传网站,每年都会举行两次
    http://www.qacity.com/front.htm 测试工程师资源网站,包含各种测试技术及相关资料下载
    http://www.qaforums.com/ 关于软件质量保证方面的一个论坛,需要注册
    http://www.qaiusa.com/ QAI是一个提供质量保证方面咨询的国际著名机构,提供各种质量和测试方面证书认证
    http://www.qualitytree.com/ 一个测试咨询提供商,有一些测试可供下载,有几篇关于缺陷管理方面的文章值得参考
    http://www.rational.com/ IBM Rational的官方网站,可以在这里寻找测试方面的工具信息。IBM Rational提供测试方面一系列的工具,比较全面
    http://rexblackconsulting.com/Pages/publicat-ions.htm Rex Black的个人主页,有一些测试和测试管理方面的资料可供下载
    http://www.riceconsulting.com/ 一个测试咨询提供商,有一些测试资料可供下载,但不多
    http://www.satisfice.com/ 包含James Bach关于软件测试和过程方面的很多论文,尤其在启发式测试策略方面值得参考
    http://www.satisfice.com/seminars.shtml 一个黑盒软件测试方面的研讨会,主要由测试专家Cem Kanar和James Bach组织,有一些值得下载的资料
    http://www.sdmagazine.com/ 软件开发杂志,经常会有一些关于测试方面好的论文资料,同时还包括了项目和过程改进方面的课题,并且定期会有一些关于质量和测试方面的问题讨论
    http://www.sei.cmu.edu/ 著名的软件工程组织,承担美国国防部众多软件工程研究项目,在这里你可以获俄各类关于工程质量和测试方面的资料。该网站提供强有力的搜索功能,可以快速检索到你想要的论文资料,并且可以免费下载
    http://www.soft.com/Institute/HotList/ 提供了网上软件质量热点连接,包括:专业团体组织连接、教育机构连接、商业咨询公司连接、质量相关技术会议连接、各类测试技术专题连接等
    http://www.soft.com/News/QTN-Online/ 质量技术时事,提供有关测试质量方面的一些时事介绍信息,对于关心测试和质量发展的人士来说是很有价值的
    http://www.softwaredioxide.com/ 包括软件工程(CMM,CMMI,项目管理)软件测试等方面的资源
    http://www.softwareqatest.com/ 软件质量/测试资源中心。该中心提供了常见的有关测试方面的FAQ资料,各质量/测试网站介绍,各质量/测试工具介绍,各质量/策划书籍介绍以及与测试相关的工作网站介绍
    http://www.softwaretestinginstitute.com 一个软件测试机构,提供软件质量/测试方面的调查分析,测试计划模板,测试WWW的技术,如何获得测试证书的指导,测试方面书籍介绍,并且提供了一个测试论坛
    http://www.sqatester.com/index.htm 一个包含各种测试和质量保证方面的技术网站,提供咨询和培训服务,并有一些测试人员社团组织,特色内容是缺陷处理方面的技术
    http://www.sqe.com/ 一个软件质量工程服务性网站,组织软件测试自动化、STAR-EASE、STARWEST等方面的测试学术会议,并提供一些相关信息资料和课程服务
    http://www.stickyminds.com/ 提供关于软件测试和质量保证方面的当前发展信息资料,论文等资源
    http://www.stqemagazine.com/ 软件策划和质量工程杂志,经常有一些好的论文供下载,不过数量较少,更多地需要通过订购获得,内容还是很有价值的
    http://www.tantara.ab.ca/ 软件质量方面的一个咨询网站,有过程改进方面的一些资料提供
    http://www.tcse.org/ IEEE的一个软件工程技术委员会,提供技术论文下载,并有一个功能强大的分类下载搜索功能,可以搜索到测试类型、测试管理、测试分析等各方面资料
    http://www.testing.com/ 测试技术专家Brain Marick的主页,包含了Marick 研究的一些资料和论文,该网页提供了测试模式方面的资料,值得研究。总之,如果对测试实践感兴趣,该网站一定不能错过
    http://www.testingcenter.com/ 有一些测试方面的课程体系,有一些价值
    http://www.testingconferences.com/asiastar/home 著名的AsiaStar测试国际学术会议官方网站,感兴趣的人一定不能错过
    http://www.testingstuff.com/ Kerry Zallar的个人主页,提供一些有关培训、工具、会议、论文方面的参考信息
    http://www-sqi.cit.gu.edu.au/ 软件质量机构,有一些技术资料可以供下载,包括软件产品质量模型、再工程、软件质量改进等
Open Toolbar