快乐的狗狗
来源: BlogBus 原始链接: http://herobird.blogbus.com:80/logs/2005/06/ 存档链接: https://web.archive.org/web/20060115110250id_/http://herobird.blogbus.com:80/logs/2005/06/
快乐的狗狗 和仔仔、酒酒分享快乐 向全能型选手进军 - [ 程序人生 ] 随着测试工作的深入,我将对整个软件开发过程有全面的认识,并可以做其中任何工作,为了这目标继续努力! Posted by herobird at 09:00 | Read more | Comments (0) | Trackback (0) | Edit | WinRunner 和QuickTest 差別 - [ 程序人生 ] Environment Coverage Comparison: Common environments shared by both WinRunner and QuickTest Pro: Web-Related Environments IE, Netscape, AOL JDK, Java Foundation Classes, AWT Symantec Visual Café ActiveX Controls ERP/CRM Oracle: Jinitiator, 11i, NCA Custom Client Server Windows C++/C Visual Basic Operating Systems Windows 98, 2000, NT, ME, XP Legacy 3270, 5250 Emulators VT100 WinRunner Only Environments: Custom Client/Server PowerBuilder Forte Delphi Centura Stingray SmallTalk ERP/CRM Baan PeopleSoft Windows Siebel 5, 6 GUI Clients Oracle GUI Forms QuickTest Pro Only Environments: ERP/CRM SAP Siebel 7.x PeopleSoft 8.x .Net WinForms WebForms .Net controls Web Services XML, HTTP WSDL, SOAP J2EE, .Net Multimedia RealAudio/Video Flash Feature Comparison: Common features found in both WinRunner and QuickTest Pro: Record/Replay ODBC & Excel Connectivity Code Editor & Debugger Recovery Manager Shared Object Repository Rapid Object Import Numerous Checkpoints Analog Script & Function Libraries WinRunner Only Environments: Function Generator Database Integration Run Wizard TSL MDI QuickTest Pro Only Environments: ActiveScreen TestGuard Tree View ScriptFusion Data Table VBScript Function Generator* (coming in v7.0) Run Wizard* (coming in v7.0) Posted by herobird at 13:12 | Read more | Comments (0) | Trackback (0) | Edit | 重新安排工作 - [ 随笔 ] 经过讨论,我的工作内容进行了调整,不再研究jabber,而主要精力放在测试准备上,IM交由设计组去完成 Posted by herobird at 17:33 | Read more | Comments (0) | Trackback (0) | Edit | 齐头并进 - [ 程序人生 ] 用jabber开发自己的IM程序已经提上议事日程,只能和测试的准备工作齐头并进了,忙得连上blog的时间都得一点点地挤了。。。 Posted by herobird at 13:55 | Read more | Comments (0) | Trackback (0) | Edit | 忙碌 - [ 随笔 ] 这两天一直忙着修改程序,又把测试工作放下了,得抓紧时间了。 Posted by herobird at 08:40 | Read more | Comments (0) | Trackback (0) | Edit | 软件测试的14种类型 - [ 程序人生 ] 软件测试是指使用人工或者自动的手段来运行或测定某个软件产品系统的过程,其目的是在于检验是否满足规定的需求或者弄清预期的结果与实际结果的区别。本文主要描述软件测试的类型。 1 数据和数据库完整性测试 数据与数据库完整测试是指测试关系型数据库完整性原则以及数据合理性测试。 数据库完整性原即: 主码完整性:主码不能为空; 外码完整性:外码必须等于对应的主码或者为空。 数据合理性指数据在数据库中的类型,长度,索引等是否建的比较合理。 在项目名称中,数据库和数据库进程应作为一个子系统来进行测试。在测试这些子系统时,不应将测试对象的用户界面用作数据的接口。对于数据库管理系统 (DBMS),还需要进行深入的研究,以确定可以支1持测试的工具和技术。 比如,有两张表:部门和员工。部门中有部门编号,部门名称,部门经理等字段,主码为部门编号;员工表中有员工编号,员工所属部门编号,员工名称,员工类型等字段,主码为员工编号,外码为员工所属部门编号,对应部门表。如果在某条部门记录中部门编号或员工记录员工编号为空,他就违反主码完整性原则。如果某个员工所属部门的编号为##,但是##在部门编号中确找不到,这就违反外码完整性原则。 员工类型如下定义:0:职工,1:职员,2:实习生。但数据类型为Int,我们都知道Int占有4个字节,如果定义成char(1).就比原来节约空间。 2 白盒测试 白盒测试是基于代码的测试,测试人员通过阅读程序代码或者通过使用开发工具中的单步调试来判断软件的质量,一般黑盒测试由项目经理在程序员开发中来实现。白盒测试分为动态白盒测试和静态白盒测试 2.1 静态白盒测试 利用眼睛,浏览代码,凭借经验,找出代码中的错误或者代码中不符合书写规范的地方。比如,代码规范中规定,函数必须为动宾结构。而黑盒测试发现一个函数定义如下: Function NameGet(){ …. } 这是属于不符合开发规范的错误。 有这样一段代码: if (i<0) & (i>=0) … 这段代码交集为整个数轴,IF语句没有必要 I=0; while(I>100){ J=J+100; T=JPI; } 在循环体内没有I的增加,bug产生。 2.2 动态白盒测试 利用开发工具中的调式工具进行测试。比如一段代码有4个分支,输入4组不同的测试数据使4组分支都可以走通而且结果必须正确。 看一段代码 if(I<0){ P1 }else{ P2 } 在调试中输入I=-1,P1程序段通过, P2程序段未通过,属于动态黑盒测试的缺陷 3.功能测试 功能测试指测试软件各个功能模块是否正确,逻辑是否正确。 对测试对象的功能测试应侧重于所有可直接追踪到用例或业务功能和业务规则的测试需求。这种测试的目标是核实数据的接受、处理和检索是否正确,以及业务规则的实施是否恰当。此类测试基于黑盒技术,该技术通过图形用户界面 (GUI) 与应用程序进行交互,并对交互的输出或结果进行分析,以此来核实应用程序及其内部进程。功能测试的主要参考为类似于功能说明书之类的文档。 比如一个对电子商务系统,前台用户浏览商品-放入购物车-进入结账台,后台处理订单,配货,付款,发货,这一系列流程必须正确无误的走通,不能存在任何的错误。 4.UI测试 UI测试指测试用户界面的风格是否满足客户要求,文字是否正确,页面美工是否好看,文字,图片组合是否完美,背景是否美观,操作是否友好等等 用户界面 (UI) 测试用于核实用户与软件之间的交互。UI 测试的目标是确保用户界面会通过测试对象的功能来为用户提供相应的访问或浏览功能。另外,UI 测试还可确保 UI 中的对象按照预期的方式运行,并符合公司或行业的标准。包括用户友好性,人性化,易操作性测试。UI测试比较主观,与测试人员的喜好有关 比如:页面基调颜色刺眼;用户登入页面比较难于找到,文字中出现错别字,页面图片范围太广等都属于UI测试中的缺陷,但是这些缺陷都不太严重。 5.性能测试 性能测试主要测试软件测试的性能,包括负载测试,强度测试,数据库容量测试,基准测试以及基准测试 5.1负载测试 负载测试是一种性能测试指数据在超负荷环境中运行,程序是否能够承担。 在这种测试中,将使测试对象承担不同的工作量,以评测和评估测试对象在不同工作量条件下的性能行为,以及持续正常运行的能力。负载测试的目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行。此外,负载测试还要评估性能特征,例如,响应时间、事务处理速率和其他与时间相关的方面。 比如,在B/S结构中用户并发量测试就是属于负载测试的用户,可以使用webload工具,模拟上百人客户同时访问网站,看系统响应时间,处理速度如何? 5.2强度测试 强度测试是一种性能测试,他在系统资源特别低的情况下软件系统运行情况。这类测试往往可以书写系统要求的软硬件水平要求。 实施和执行此类测试的目的是找出因资源不足或资源争用而导致的错误。如果内存或磁盘空间不足,测试对象就可能会表现出一些在正常条件下并不明显的缺陷。而其他缺陷则可能由于争用共享资源(如数据库锁或网络带宽)而造成的。强度测试还可用于确定测试对象能够处理的最大工作量。 比如:一个系统在内存366M下可以正常运行,但是降低到258M下不可以运行,告诉内存不足,这个系统对内存的要求就是366M。 5.3数据库容量测试 数据库容量测试指通过存储过程往数据库表中插入一定数量的数据,看看相关页面是否能够及时显示数据。 数据库容量测试使测试对象处理大量的数据,以确定是否达到了将使软件发生故障的极限。容量测试还将确定测试对象在给定时间内能够持续处理的最大负载或工作量。例如,如果测试对象正在为生成一份报表而处理一组数据库记录,那么容量测试就会使用一个大型的测试数据库,检验该软件是否正常运行并生成了正确的报表。做这种测试通常通过书写存储过程向数据库某个表中插入一定数量的记录,计算相关页面的调用时间。 比如,在电子商务系统中,通过insert customer 往user表中插入10 000数据,看其是否可以正常显示顾客信息列表页面,如果要求达到最多可以处理100 000个客户,但是顾客信息列表页面不能够在规定的时间内显示出来,就需要调整程序中的SQL查询语句;如果在规定的时间内显示出来,可以将用户数分别提高到20 000 , 50 000, 100 000进行测试。 5.4基准测试 基准测试与已知现有的系统进行比较,主要检验是否与类似的产品具有竞争性的一种测试。 如果你要开发一套财务系统软件并且你已经获得用友财务系统的性能等数据,你可以测试你这套系统,看看哪些地方比用友财务系统好,哪些地方差?以便改进自己的系统,也可为产品广告提供数据。 5.5竞争测试 软件竞争使用各种资源(数据纪录,内存等),看他与其他相关系统对资源的争夺能力。比如:一台机器上即安装您的财务系统,又安装用友财务系统。当CPU占有率下降后,看看是否能够强过用友财务系统,而是自己的系统能够正常运行? 6. 安全性和访问控制测试 安全性和访问控制测试侧重于安全性的两个关键方面: 应用程序级别的安全性,包括对数据或业务功能的访问 系统级别的安全性,包括对系统的登录或远程访问。 6.1应用程序级别的安全性 可确保:在预期的安全性情况下,主角只能访问特定的功能或用例,或者只能访问有限的数据。例如,可能会允许所有人输入数据,创建新账户,但只有管理员才能删除这些数据或账户。如果具有数据级别的安全性,测试就可确保“用户类型一”能够看到所有客户消息(包括财务数据),而“用户二”只能看见同一客户的统计数据。 比如B/S系统,不通过登入页面,直接输入URL,看其是否能够进入系统? 6.2系统级别的安全性 可确保只有具备系统访问权限的用户才能访问应用程序,而且只能通过相应的网关来访问。 比如输入管理员账户,检查其密码是否容易猜取,或者可以从数据库中获得? 7.故障转移和恢复测试 故障转移和恢复测试指当主机软硬件发生灾难时候,备份机器是否能够正常启动,使系统是否可以正常运行,这对于电信,银行等领域的软件是十分重要的。 故障转移和恢复测试可确保测试对象能成功完成故障转移,并能从导致意外数据损失或数据完整性破坏的各种硬件、软件或网络故障中恢复。 故障转移测试可确保:对于必须持续运行的系统,一旦发生故障,备用系统就将不失时机地“顶替”发生故障的系统,以避免丢失任何数据或事务。 恢复测试是一种对抗性的测试过程。在这种测试中,将把应用程序或系统置于极端的条件下(或者是模拟的极端条件下),以产生故障(例如设备输入/输出 (I/O) 故障或无效的数据库指针和关健字)。然后调用恢复进程并监测和检查应用程序和系统,核实应用程序或系统和数据已得到了正确的恢复。一定要注意主备定时备份 比如电信系统,突然主机程序发生死机,备份机器是否能够启动,使系统能够正常运行,从而不影响用户打电话? 8.配置测试 又叫兼容性测试。配置测试核实测试对象在不同的软件和硬件配置中的运行情况。在大多数生产环境中,客户机工作站、网络连接和数据库服务器的具体硬件规格会有所不同。客户机工作站可能会安装不同的软件例如,应用程序、驱动程序等而且在任何时候,都可能运行许多不同的软件组合,从而占用不同的资源。(如浏览器版本,操作系统版本等) 下面列出主要配置测试 8.1浏览器兼容性 测试软件在不同产商的浏览器下是否能够正确显示与运行; 比如测试IE,Natscape浏览器下是否可以运行这套软件? 8.2操作系统兼容性 测试软件在不同操作系统下是否能够正确显示与运行; 比如测试WINDOWS98,WINDOWS 2000,WINDOWS XP,LINU, UNIX下是否可以运行这套软件? 8.3硬件兼容性 测试与硬件密切相关的软件产品与其他硬件产品的兼容性,比如该软件是少在并口设备中的,测试同时使用其他并口设备,系统是否可以正确使用. 比如在INTER,舒龙CPU芯片下系统是否能够正常运行? 这样的测试必须建立测试实验室,在各种环境下进行测试。 9.安装测试 安装测试有两个目的。第一个目的是确保该软件在正常情况和异常情况的不同条件下: 例如,进行首次安装、升级、完整的或自定义的安装_都能进行安装。异常情况包括磁盘空间不足、缺少目录创建权限等。第二个目的是核实软件在安装后可立即正常运行。这通常是指运行大量为功能测试制定的测试。 安装测试包括测试安装代码以及安装手册。安装手册提供如何进行安装,安装代码提供安装一些程序能够运行的基础数据。 10.多语种测试 又称本地化测试,是指为各个地方开发产品的测试,如英文版,中文版等等,包括程序是否能够正常运行,界面是否符合当地习俗,快捷键是否正常起作用等等,特别测试在A语言环境下运行B语言软件(比如在英文win98下试图运行中文版的程序),出现现象是否正常。I’m not very sure about this. ( commented by Sherry) 本地化测试还要考虑: 当语言从A翻译到B,字符长度变化是否影响页面效果。比如中文软件中有个按键叫“看广告”,翻译到英文版本中为 “View advertisement”可能影响页面的美观程度。 要考虑同一单词在各个国家的不同意思,比如football在英文中为足球,而美国人使用中可能理解为美式橄榄球。 要考虑各个国家的民族习惯,比如龙在美国中被理解邪恶的象征,但翻译到中国,中国人认为是吉祥的象征。 11.文字测试 文字测试测试软件中是否拼写正确,是否易懂,不存在二义性,没有语法错误;文字与内容是否有出入等等,包括图片文字。 比如:“比如,请输入正确的证件号码!”何谓正确的证件号码,证件可以为身份证,驾驶证,也可为军官证,如果改为“请输入正确的身份证号码!”用户就比较容易理解了。 12.分辨率测试 测试在不同分辨率下,界面的美观程度,分为800600,1024768,1152864,1280768,12801024,1200*1600大小字体下测试。一个好的软件要有一个极佳的分辨率,而在其他分辨率下也都能可以运行。 13发布测试 主要在产品发布前对一些附带产品,比如说明书,广告稿等进行测试 13.1说明书测试 主要为语言检查,功能检查,图片检查 语言检查:检查说明书语言是否正确,用词是否易于理解; 功能检查:功能是否描述完全,或者描述了并没有的功能等; 图片检查::检查图片是否正确 13.2宣传材料测试 主要测试产品中的附带的宣传材料中的语言,描述功能,图片 13.3帮助文件测试 帮助文件是否正确,易懂,是否人性化。最好能够提供检索功能。 13.4广告用语 产品出公司前的广告材料文字,功能,图片,人性化的检查 14 文档审核测试 文档审核测试目前越来越引起人们的重视,软件质量不是检查出来的,而是融进软件开发中来。前置软件测试发越来越受到重视。请看一个资料: 文档审核测试主要包括需求文档测试,设计文档测试,为前置软件测试测试中的一部分。 14.1需求文档测试 主要测试需求中是否存在逻辑矛盾以及需求在技术上是否可以实现; 14.2设计文档测试 测试设计是否符合全部需求以及设计是否合理。 Posted by herobird at 12:57 | Read more | Comments (0) | Trackback (0) | Edit | sniffer的另一个选择(总结他人经验) - [ 系统管理 ] http://www.ethereal.com/ Ethereal是最重要的开放源代码项目之一,可以运行在所有的主流操作系统之上(Windows,Linux,Solaris)。Ethereal支持的网络通信协议是所有的抓包工具中最全的,也就是说只要你听说过的协议,Ethereal都有相应的解码器;详细的协议列表请参考 http://www.ethereal.com/faq.html#q1.5 。不仅如此,Ethereal还支持几乎所有的抓包工具的保存格式,详细的清单请参考 http://www.ethereal.com/faq.html#q1.7 如同Tcpdump一样,Ethereal支持非常丰富的过滤器。过滤器分为两类,一类是抓包过滤器(capture filter),当网络流量很大时,可以非常有效地过滤噪音数据;另外一类是显示过滤器(display filter), 可以从你抓到的所有数据包中过滤噪音数据。事实上,由于好的过滤器需要非常好的网络知识,所以除非非常需要,一半可以不作过滤。建议初学者避免使用过滤器。顺便说一句,ethereal的capture filter和display filter语法不相同,capture filter的语法可以参照tcpdump的语法。 事实上,Ethereal本身并不能抓包,它只能用来解析数据包;要抓取数据包,它需要借助于Pcap。Pcap在windows下面的实现称作Winpcap,在下载Ethereal时可同时下载WinPcap。在Linux下面,Pcap一般都已经被默认安装; 需要说明的是,Ethereal是基于图形界面的,所以如果你是通过SSH或者Telnet使用Unix工作站,你可能会感觉麻烦。而如果你打算使用Tcpdump,只要你打开一下tcpdump的手册页,你肯定就会望而却步了;更糟糕的是,Tcpdump的手册页只是提供了最基本的帮助。常用的一个方法是,在远程终端运行tcpdump,加以最少的参数。比如: tcpdump -i eth0 -s 1500 -w a.dmp 这个语句机会可以在任何情况下使用。简单解释一下,-i eth0是在eth0接口上监听, -s 1500是一个很重要的参数,它指抓取的数据包的前1500个字节,否则你可能只能看到数据包的前68个字节,因为tcpdump的默认抓取长度是68, -w a.dmp是表示把抓取的数据写入a.dmp中。抓取介绍后,Ctl+C,你可以看到a.dmp已经生成。然后用sftp传到本机使用Ethereal解析。 当前最新版本:0.10.11 Posted by herobird at 10:28 | Read more | Comments (0) | Trackback (0) | Edit | 安装缺陷管理工具Mantis - [ 系统管理 ] 1、系统要求
- MySQL 3.23.2 and higher
- PHP 4.0.6 and higher
- a webserver 2、从 http://www.mantisbt.org/ 下载当前最新版本mantis-1.0.0a3.tar.gz 3、在安装目录解压 tar zxvf mantis-1.0.0a3.tar.gz 4、把目录改名放到web服务器的目录下(此步视实际情况决定) mv mantis-1.0.0a3 /data/www/mantis 5、建库 a. cd /data/www/mantis/sql b. 在mysql中创建名为mantis的数据库 [test@test sql]$mysql -u root -p mysql> CREATE DATABASE mantis; c. 建表 mysql -u root -p mantis < db_generate.sql 注:此时默认为mantis安装了一个管理员帐号administrator,密码是root,建议登录进mantis后建立一个自己的管理员帐号,删除系统默认安装的administrator,以加强安全性 6、配置参数 cd /data/www/mantis cp config_inc.php.sample config_inc.php 修改config_inc.php中mysql相关设置 7、这时可以用浏览器访问mantis了 8、使用需注意:新建项目要至少有一个分类,否则不能增加bug报告 Posted by herobird at 11:39 | Read more | Comments (0) | Trackback (0) | Edit | SQL Server恢复(收藏) - [ 系统管理 ]
- 首先确认已经备份了.mdf和.ldf文件。
- 在SQL Server中新建一个同名的数据库,然后停止SQL Server服务。
- 用原有的.mdf和.ldf文件覆盖新建数据库对应的.mdf和.ldf文件。
- 重新启动SQL Server服务,这是应该会看到这个数据库处于置疑(Suspect)状态。
- 在SQL查询分析器中执行以下命令,以允许更新系统表: use master go sp_configure ‘allow updates’,1 reconfigure with override go
- 将这个数据库置为紧急模式: update sysdatabases set status = 32768 where name = 'db_name' go
- 使用DBCC CHECKDB命令检查数据库中的错误: DBCC CHECKDB(‘db_name’) GO
- 如果DBCC CHECKDB命令失败,请转至第10步,否则先将数据库置为单用户模式,再尝试对其进行修复: sp_dboption 'db_name',’single user’,’true’ DBCC CHECKDB(‘db_name’, REPAIR_ALLOW_DATA_LOSS) GO 如果在执行DBCC CHECKDB(‘db_name’, REPAIR_ALLOW_DATA_LOSS)命令时提示说数据库未处于单用户模式状态的话,则重新启动SQL Server服务,然后继续尝试。
- 如果DBCC CHECKDB(‘db_name’, REPAIR_ALLOW_DATA_LOSS)命令失败,请转至第10步,否则若成功修复了数据库中的错误: 重新执行DBCC CHECKDB(‘db_name’)命令,确认数据库中已没有错误存在。 清除数据库的置疑状态:sp_resetstatus 'db_name' 清除数据库的单用户模式状态:sp_dboption 'db_name',’single user’,’false’ 重新启动SQL Server服务,如果一切正常的话,则数据库已经成功恢复。
- 如果以上步骤都不能解决问题的话,请参考附件中的文档尝试通过重建事务日志来恢复数据库中的数据。 如果您只有MDF文件,问题就更加复杂一些,我们需要直接重建事务日志了:
- 在SQL Server中新建一个同名的数据库,然后停止SQL Server服务。
- 用原有的ldf文件覆盖新建数据库对应的.mdf文件,将其日志文件(.ldf)删除。
- 启动SQL Server服务,并将数据库置为紧急模式(同上: 步骤5和步骤6)。
- 停止并重新启动SQL Server服务。
- 执行以下命令重建数据库日志文件:(下面是个示例,您要用您实际的数据库名) DBCC REBUILD_LOG(’db’, 'D:\db\db_Log.LDF')
- 重新将该数据库置为单用户模式。
- 再次尝试使用DBCC CHECKTABLE或DBCC CHECKDB命令检查并修复数据库中的错误。 Posted by herobird at 14:39 | Read more | Comments (0) | Trackback (0) | Edit | Page Calendar Tags Recent Entries Last Comments Archives Links Hit Counter Total: Powered by www.blogbus.com 2002-2005