发布新日志

  • 解决win2003里iis service unavailable

    2009-10-14 16:18:10

    这几天公司网站经常报service unavailable错误,但刷新几次又可以访问了,把解决此问题的方法整理如下。

    (一)网站显示Service Unavailable分析

    问:为什么我们的网站经常会出现“Service Unavailable”(停止服务)的提示,刷新几下又可以访问甚至不能访问?

    答:出现这种情况是由于您的网站超过了系统资源限制造成的,主要是程序占用资源太多。比如同样是100人在线的论坛,雷傲论坛所占的资源就是动网论坛所占资源的10倍以上;另外,一些死循环程序,或者不优化的程序都会占用太多的系统资源,而系统资源明显是有限的。由于我们的新虚拟主机是采用WINDOWS2003的操作系统,各网站之间是以独立进程运行的,不会相互影响。

    如果一个网站的程序占资源太多或者发生太多的错误,系统日志就会提示:“应用程序池 'zccnpool11' 被自动禁用,原因是为此应用程序池提供服务的进程中出现一系列错误, 或者提示:应用程序池 'zccn028' 超过了其作业限制设置。有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。这时,访问这个网站就会提示:Service Unavailable。一般系统会在30秒左右恢复正常,多刷新几次就能正常访问了。但是这个时间恢复后因为访问量太大在极短的时间网站又不能上了。

    另外,如果网站当前访问人数过多,超过了系统的iis连接数限制(我们空间的iis连接数为100),也会出现Service Unavailable的提示(win2k主机下出现连接过多就会提示:连接过多,请稍后再试;而win2003的主机刚直接提示:Service Unavailable)如果经常出现类似的错误,请及时优化网站程序,或者升级你的虚拟主机至更高的款型,以获得更多的系统资源。

    (二)解决方案

    使用 windows 2003 IIS 6的用户会有 以下的问题:

    一直正常的系统,突然有一天有一个网站打不开了
    访问时提示如下:
    Service Unavailable
    但这个网站并没有限制IIS连接数。

    然后是也影响到了别的网站,不到一会,其他的网站也全变成了
    Service Unavailable

    这是什么原因呢?
    我们分析后可以知道,还是MS的老问题。ACCESS引擎当了。用服务器医生的文件医生修复,查看修复结果时会发现一些文件引起ACCESS引擎“灾难性故障”及“未将对象引用设置到对象的实例”的错误。通过文件医生修复后,系统才会恢复正常。


    (三)根治该问题:

    通过检测,发现我的windows2003的应用程序池被改成DefaultAppPool了!改成原来的MsSharePointAppPool就可以了。

    转载一篇详细的文章:

    浏览 Windows SharePoint Services Web 站点时收到“Service Unavailable”(服务不可用)错误信息

    症状
    当您浏览一个 Windows SharePoint Services Web 站点时,您可能会收到下面的错误信息:
    Service Unavailable
    原因
    如果 Microsoft Internet 信息服务 (IIS) 6.0 中没有正确地配置用于虚拟服务器的应用程序池,就可能会发生此问题。此问题可能会在存在下列一种或多种情况时发生: •应用程序池没有运行。
    •应用程序池帐户使用的密码不正确。
    •应用程序池帐户不是服务器上的 IIS_WPG 和 STS_WPG 这两个组的公共成员。

    解决方案
    要解决此问题,请按照下列步骤操作: 1.验证是否已为虚拟服务器配置了应用程序池。默认的应用程序池是 MSSharePointPortalAppPool。

    请按照下列步骤来确定虚拟服务器正在使用的应用程序池。 a. 单击“开始”,指向“管理工具”,然后单击“Internet 信息服务 (IIS) 管理器”。
    b. 展开“ServerName”,展开“Web 站点”,右键单击虚拟服务器,然后单击“属性”。
    c. 单击“主目录”选项卡。

    为虚拟服务器配置的应用程序池列在“应用程序池”框中。
    d. 单击“确定”。

    2.验证应用程序池帐户使用的密码是否正确。IIS 不会自动轮询 Active Directory 目录服务中的密码更改。如果应用程序池帐户是一个域帐户,其密码已过期,则在为此帐户重新指定一个新密码后,您可能会收到本文“症状”部分所描述的错误信息。

    请按照下列步骤来验证应用程序池帐户所用的密码是否正确: a. 在 Internet 信息服务 (IIS) 管理器中,展开“应用程序池”。
    b. 右键单击为虚拟服务器配置的应用程序池(例如,右键单击“MSSharePointPortalAppPool”),然后单击“属性”。
    c. 单击“标识”选项卡。
    d. 在“密码”框中,键入列在“用户名”框中的应用程序池帐户所用的密码,然后单击“确定”。
    e. 在“确认密码”对话框中,再次键入密码,然后单击“确定”。

    3.验证应用程序池帐户是服务器上的 IIS_WPG 组和 STS_WPG 组的成员。

    根据您的具体情况选用下列方法之一。 a. 在成员服务器上安装了 SharePoint Portal Server 的情况下: 1.单击“开始”,指向“管理工具”,然后单击“计算机管理”。
    2.展开“本地用户和组”,然后展开“用户”。
    3.右键单击虚拟服务器的应用程序池使用的帐户,然后单击“属性”。
    4.单击“成员属于”选项卡。

    验证 IIS_WPG 和 STS_WPG 是否都出现在“成员属于”列表中。如果其中之一没有列出或者两者均未列出,请根据具体情况将 IIS_WPG 组、STS_WPG 组或者这两个组添加到列表中。

    b. 在域控制器上安装了 SharePoint Portal Server 的情况下: 1.启动“Active Directory 用户和计算机”。
    2.展开“用户”。
    3.右键单击虚拟服务器的应用程序池使用的帐户,然后单击“属性”。
    4.单击“成员属于”选项卡。

    验证 IIS_WPG 和 STS_WPG 都出现在“成员属于”列表中。如果其中之一没有列出或者两者均未列出,请根据具体情况将 IIS_WPG 组、STS_WPG 组或者这两个组添加到列表中。

    4.重新启动 IIS 以回收应用程序池: a. 在 Internet 信息服务 (IIS) 管理器中,右键单击“ServerName”,指向“所有任务”,然后单击“重新启动 IIS”。
    b. 单击“在 ServerName 上重新启动 Internet 信息服务”,然后单击“确定”。

  • 软件测试管理的基本要素

    2009-05-31 14:58:32

      高效的软件测试管理是一个项目成功必不可少的人文因素。测试是以技术为导向的专业工作,但是因为其在软件开发过程中的特殊位置,所以工作过程中需要有效的沟通,协调来作为保障。我们通常把这些沟通,协调各计划工作统一称为软件测试管理。本文将就软件测试管理中的基本要素做逐一介绍:

      1.符合软件开发计划时间框架的软件测试计划

      软件测试计划是一个老生常谈的问题了,不同的人对计划的理解往往是大相径庭的。这里让我们回顾一下何为计划,一般来说计划的目的是用来识别任务,分析风险,规划资源和确定进度。从计划的定义上业看,计划美工不是一张时间进度表,而是一个动态的过程,最终以系列文档的形式确定下来。拟定软件测试计划需要测试项目管理人员的积极参与,这是因为主项目计划已经确定了整体项目的一个时间框架,软件测试作为阶段工作必须服从时间和资源上的约定。

      2.一个完整的测试计划应该包含以下几个方面:

      (1)对测试范围的界定,简单的说就是测试活动需要覆盖的范围。在有时间约束,工作产品质量约束的情况下,唯一能够调整就是范围。在实际的工作中,我们总是不自觉的在调整软件测试范围,比如在时间紧张的情况下,通常优先完成重要功能的测试。这就是一种测试范围上调整。所以作为测试管理者在接收到一项任务的时候,需要根据主项目计划的时间来确定测试范围。如果在确定范围上出现偏差,会给测试执行工作带来消极的影响,例如加班。确定范围前需要管理人员来进行任务的划分,简单的说就是分解测试任务。分解任务有两个方面的目的,一个是识别子任务,二是方便估算资源的需求。完成了上述的任务之后,管理者便需要根据项目的历史数据估算出完成这些子任务一共需要消耗的时间和资源。通常意义上说,执行一次完整的全面测试几乎是不可能的事情,我们总是要在测试的范围上面做出有策略的妥协。 

      (2) 风险的确定,项目中总是有不确定的因素。这些因素一旦发生之后记录对项目的顺利执行产生相当大的消极影响。所以在项目中,首先需要识别出存在的风险。风险识别的原则可以有很多,常见的一种就是如果一件事情发生后,会对项目的进度产生较大影响,那么就可以把该事件做为一个风险。风险识别出之后,管理者需要按照这些风险制定出规避风险的方法。在小的项目中,识别风险和制定规避方法可以省略。 

      (3) 资源的规划,确定完成任务需要消耗的人力资源,物资资源。这些是保证项目执行的物资要素。物资资源是管理者容易忽略的问题,实际上物资资源是人得以开展工作的工具,细致的规划可以让人更有效的去执行项目。常见的物资资源有计算机硬件,软件,测试环境的搭建等等。 

      (4) 时间表的制定,在识别出子任务和资源之后,我们便可以将任务,资源和时间关联起来形成时间进度表。本质上说,时间表是对前3项任务的一个概括。没有前三步的工作,时间进度表是没有意义的。 

      3. 沟通 

      沟通的测试管理人员的必须的技能。虽然我们制定出详细的项目计划,当这不意味着有了这个契约之后,项目中的各种角色就不需要沟通了。做为测试的管理者,需要将测试发现的问题及时的反馈给开发人员,同时也要积极的去了解外界产生的变更。项目中存在变化是普遍现象,而作为管理者就是要去管理这里变化,及时的修订计划。严格的说,如果没有这些变化,做为测试管理者的你就没有多少存在的价值。有些人认为一旦有了计划这个契约之后,只要按照要求去执行就可以,但是项目本身是一个动态的过程,计划是项目在某一个时刻、段的静态体现,所以要按照发展的眼光来对待计划。沟通是了解外界变化的积极手段,所以就测试管理者而言。其计划沟通能力的要求要高于测试技能的要求。

        4. 执行 

      去年国内流行一本书,名称为执行力。书中的作者认为大多数项目没有成功的原因在于执行。软件测试也存在一个执行的能力问题,有人会说我把要求的事情按照要求做完了不就可以了吗? 的确,按照期望去执行任务是正解,但是这里有一个问题就是如何保证执行者对期望的理解同要求者的期望是完全一致的呢?所以执行的背后还是一个沟通的问题,这里的沟通是测试管理者和执行者之间的沟通。所以作为一名测试管理人员一定要在测试工程师开始工作之前明确任务的意图,前提和结果。 

      5. 版本控制 

      前面说道的几点都是过程,个人技能方面的要求。这里我们要讨论的是纯粹的工程活动——版本控制。对于版本控制这个概念大家都不陌生,它是软件配置管理的初期表现形式,来于于测试对稳定环境的要求。测试版本控制简单的说就是测试版本有明确的标识,说明。并且测试版本的交付是在项目管理人员的控制之下的。 

      测试版本的标识用来识别所用的版本。版本号码的用处很多,例如在填写错误报告的时候往往需要提供发现错误的那个版本。在做缺陷分析时,我们可以利用版本号来区别缺陷和判断缺陷的发展趋势。 

      测试版本的说明,它是开发人员和测试人员之间交流的有效形式。测试人员可以通过这份文档了解到当前的测试版本中就上一版本而言有那些显著的变化,明确了这些之后,测试人员可以更加高效,有针对性的执行测试。 

      测试版本交付,测试版本的控制必须纳于测试管理人员的控制之下。常见的形式就是测试管理者控制测试版本的更新和发布。开发人员在看到错误报告之后,总是倾向于马上修正这些错误并且发布给测试工程师做验证。 

      考虑到大多数的开发人员是典型的完美主义者,这样的做法无可厚非,但是过于频繁的版本更新会较低测试的效率。试想,如果你是一名测试工程师,当测试用例刚刚执行到一半的时候突然发布出一个新的测试版本,在这样的情况下,已经执行完毕的测试用例是否还需要再次执行一遍呢? 为了规避修改代码带来的副作用,我们有必要执行回归测试。质量是有保证了,但是效率较低了。测试在进度上被迫延迟了。所以测试版本的控制有助于保证进度和测试的效率。 

      以上是测试管理中需要注意的几个要点,构成一个成功的软件测试项目还有其他很多重要的因素,例如测试人员的个人能力,管理者的综合素质,公司的开发过程等等. 

  • 集线器、交换机、网关、路由器、网桥之间有什么关系?各个的作用是什么?

    2009-05-12 17:09:16

    集线器、交换机、网关、路由器、网桥之间有什么关系?各个的作用是什么?

    集线器:集线器的基本功能是信息分发,它把一个端口接收的所有信号向所有端口分发出去,工作在物理层(最底层)。实际就是一种多端口的中继器(将已经衰减得不完整的信号经过整理,重新产生出完整的信号再继续传送)。

    网桥(Bridge):是连接两个局域网的存储转发设备,用它可以完成具有相同或相似体系结构网络系统的连接。

      在集线器组成的局域网里面,大量主机之间的通信都是通过arp广播来分发数据,为了减小在共享环境中的介质争用(也就是冲突),网桥产生了,它的作用是将广播域划分为一个一个小的冲突域,通过寻址和路径选择转发信息,一个网段上的各工作站之间的通信量局限在本网段的范围内,而不会经过网桥流到其他的网段去。可以取得减少通信量的作用,这样便增大了可用的带宽,但是广播域还是没有变。

      网桥工作在第二层数据链路层,将两个LAN连起来,根据MAC地址来转发帧,可以看作一个“低层的路由器”(路由器工作在网络层,根据网络地址如IP地址进行转发),并且端口很少(注意与后面的交换机区别)。

      网桥分为本地网桥和远程网桥两大类,本地网桥主要是用来提供同一地理区域内的多个局域网段之间的直接连接。远程网桥则是用于连接不同区域内的局域网段。

    网关:网关的功能就是把信息重新进行包装以适应目标网络环境的要求。网关实现了不同的体系结构和环境之间的通信,数据被网关重新转换后,可以从一个网络环境进入另一个不同的网络环境,使各种网络环境能够相互理解、交流对方的数据,在OSI网络层之上的具有协议转换功能设施。

    交换机:实际上是一种多端口网桥,所以说网桥和交换机都有交换功能。交换机具备自动寻址能力和交换作用,根据所传递信息包的目的地址,将每一信息包通过其拥有的一条高带宽的背部总线和内部交换矩阵,独立地从源端口送至目的端口,避免了和其他端口发生碰撞。目的MAC若不存在,交换机才广播到所有的端口,接收端口回应后交换机会“学习”新的地址,并把它添加入内部地址表中。

      看到了网桥的作用,于是人们将其发展为多端口设备,并且整合了集线器的功能,发明了交换机,交换机也是工作在第二层。交换机除了具有桥接(也就是隔绝冲突)和转发数据报之外,还具有其他高级特性:比如说vlan(虚拟局域网),port trunking(连路聚合),spanning tree(生成树),等等特性,高端的交换机还具有路由功能,具体的路由功能将在后面介绍。交换机是一种专用的网络设备,它是基于硬件的,所以具有比基于软件的网桥更高的数据转发能力。

      交换机允许连接在交换机上的设备并行通讯,设备间通讯不会再发生冲突,因此交换机打破了冲突域,交换机每个接口是一个冲突域,不会与其他接口发生通讯冲突。但是交换机和集线器一样不能判断广播数据包,会把广播发送到全部接口,所以交换机和集线器一样连接了一个广播域网络。

      并且有系统的交换机可以记录MAC地址表,发送的数据不会再以广播方式发送到每个接口,而是直接到达目的接口,节省了接口带宽。高端一点的交换机不仅可以记录MAC地址表,还可以划分VLAN(虚拟局域网)来隔离广播,但是VLAN间也同样不能通讯。要使VLAN间能够通讯,必须有三层设备介入。

    路由器:进行路由的设备
      随着网络的进一步发展,在广泛分布的网络之间,选择路径便是一件麻烦的事情,于是一种专门的网络硬件产生了---路由器。路由器工作在第三层(网络层)之上,其实也涉及第二层以及第一层,但是它的主要用途是选路。路由器的存储器里面存放着路由表,这些表是易失的并且容易改变的。路由表的内容包括到达目的地址的下一跳(next hop)路由地址,不同地址的管理距离,等等。

      路由表内容都是路由器启动之后经过学习得到的。路由器启动之后便根据设定的路由协议与其他路由器交换信息,在交换信息的过程中,学习路由。所以一台路由器虽然是基于硬件的专用网络设备,但是路由器支持的路由算法才是最核心的东西。路由算法有两大类:距离矢量算法(如rip , igrp)以及连路状态算法(如ospf),还有一种平衡混合的算法(如eigrp),是前面两种算法的综合。路由器使用距离矢量算法,判断到达目的地址的优先路径的标准只有一个,那就是跳数,认为具有最小跳数的路径是最有路径,而不理会其带宽,可靠性,时延等因素。并且认为跳数大于15跳的目的地址是不可到达的,这边限制了可路断最优路径,这样可路由的区域便增大了,并且能平衡各条链路之间的流量。

      路由器不仅能像交换机一样隔离冲突域,另外,路由还有一个二层设备不具有的功能,那就是隔绝广播,它可以将广播限制在一个网络之内,进而增大网络之间的带宽。路由器的介入可以使交换机划分的VLAN实现互相通讯。

    总结:

    集线器:纯硬件、用于连接网络终端、不能打破冲突域和广播域。

    网 桥:是一个二层设备,用于隔绝冲突,但是不能隔绝广播。常常是基于软件的,现在使用得很少了。

    交换机:拥有软件系统、用于连接网络终端、能够打破冲突域,但是不能分割广播域。是一个多端口的二层设备,功能除了网桥所具有的功能之外,还有其特定的高级功能。

    路由器:拥有软件系统、用于路径选择,可以打破冲突域也可以分割广播域,是连接大型网络的比备设备。

    一般来说网桥不能代替交换机(因为它是单端口的),而网桥和交换机都不能代替网关,它们不能连接两个不同的网络。而网关则可以起网桥的作用。

    交换机是利用物理地址或者说MAC地址来确定转发数据的目的地址。
    而路由器则是利用不同网络的ID号(即IP地址)来确定数据转发的地址。

  • SQL查询语句精华使用简要

    2009-04-23 15:52:58

    一、 简单查询

      简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。
      例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。

      SELECT nickname,email
      FROM testtable
      WHERE name='张三'

      (一) 选择列表

      选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。

      1、选择所有列

      例如,下面语句显示testtable表中所有列的数据:

      SELECT *
      FROM testtable

      2、选择部分列并指定它们的显示次序

      查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。
      例如:

      SELECT nickname,email
      FROM testtable

      3、更改列标题

      在选择列表中,可重新指定列标题。定义格式为:
      列标题=列名
      列名 列标题
      如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题:

      SELECT 昵称=nickname,电子邮件=email
      FROM testtable

      4、删除重复行

      SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。

      5、限制返回的行数

      使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。
      例如:

      SELECT TOP 2 *
      FROM testtable
      SELECT TOP 20 PERCENT *
      FROM testtable

      (二)FROM子句

      FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。
      在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定:

      SELECT username,citytable.cityid
      FROM usertable,citytable
      WHERE usertable.cityid=citytable.cityid

      在FROM子句中可用以下两种格式为表或视图指定别名:
      表名 as 别名
      表名 别名

      (二) FROM子句

      FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。
      在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定:

      SELECT username,citytable.cityid
      FROM usertable,citytable
      WHERE usertable.cityid=citytable.cityid

      在FROM子句中可用以下两种格式为表或视图指定别名:
      表名 as 别名
      表名 别名
      例如上面语句可用表的别名格式表示为:

      SELECT username,b.cityid
      FROM usertable a,citytable b
      WHERE a.cityid=b.cityid

      SELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。

      例如:

      SELECT a.au_fname+a.au_lname
      FROM authors a,titleauthor ta
      (SELECT title_id,title
      FROM titles
      WHERE ytd_sales>10000
      ) AS t
      WHERE a.au_id=ta.au_id
      AND ta.title_id=t.title_id

      此例中,将SELECT返回的结果集合给予一别名t,然后再从中检索数据。

      (三) 使用WHERE子句设置查询条件

      WHERE子句设置查询条件,过滤掉不需要的数据行。例如下面语句查询年龄大于20的数据:

      SELECT *
      FROM usertable
      WHERE age>20

      WHERE子句可包括各种条件运算符:
      比较运算符(大小比较):>、>=、=、<、<=、<>、!>、!<
      范围运算符(表达式值是否在指定的范围):BETWEEN…AND…
      NOT BETWEEN…AND…
      列表运算符(判断表达式是否为列表中的指定项):IN (项1,项2……)
      NOT IN (项1,项2……)
      模式匹配符(判断值是否与指定的字符通配格式相符):LIKE、NOT LIKE
      空值判断符(判断表达式是否为空):IS NULL、NOT IS NULL
      逻辑运算符(用于多条件的逻辑连接):NOT、AND、OR

      1、范围运算符例:age BETWEEN 10 AND 30相当于age>=10 AND age<=30
      2、列表运算符例:country IN ('Germany','China')
      3、模式匹配符例:常用于模糊查找,它判断列值是否与指定的字符串格式相匹配。可用于char、varchar、text、ntext、datetime和smalldatetime等类型查询。
      可使用以下通配字符:
      百分号%:可匹配任意类型和长度的字符,如果是中文,请使用两个百分号即%%。
      下划线_:匹配单个任意字符,它常用来限制表达式的字符长度。
      方括号[]:指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。[^]:其取值也[] 相同,但它要求所匹配对象为指定字符以外的任一个字符。
      例如:
      限制以Publishing结尾,使用LIKE '%Publishing'
      限制以A开头:LIKE '[A]%'
      限制以A开头外:LIKE '[^A]%'

      4、空值判断符例WHERE age IS NULL

      5、逻辑运算符:优先级为NOT、AND、OR

      (四)查询结果排序

      使用ORDER BY子句对查询返回的结果按一列或多列排序。ORDER BY子句的语法格式为:
      ORDER BY {column_name [ASC|DESC]} [,…n]
      其中ASC表示升序,为默认值,DESC为降序。ORDER BY不能按ntext、text和image数据类型进行排
      序。
      例如:

      SELECT *
      FROM usertable
      ORDER BY age desc,userid ASC

      另外,可以根据表达式进行排序。

      二、 联合查询

      UNION运算符可以将两个或两个以上上SELECT语句的查询结果集合合并成一个结果集合显示,即执行联合查询。UNION的语法格式为:

      select_statement
      UNION [ALL] selectstatement
      [UNION [ALL] selectstatement][…n]

      其中selectstatement为待联合的SELECT查询语句。

      ALL选项表示将所有行合并到结果集合中。不指定该项时,被联合查询结果集合中的重复行将只保留一行。

      联合查询时,查询结果的列标题为第一个查询语句的列标题。因此,要定义列标题必须在第一个查询语句中定义。要对联合查询结果排序时,也必须使用第一查询语句中的列名、列标题或者列序号。

      在使用UNION 运算符时,应保证每个联合查询语句的选择列表中有相同数量的表达式,并且每个查询选择表达式应具有相同的数据类型,或是可以自动将它们转换为相同的数据类型。在自动转换时,对于数值类型,系统将低精度的数据类型转换为高精度的数据类型。

      在包括多个查询的UNION语句中,其执行顺序是自左至右,使用括号可以改变这一执行顺序。例如:

      查询1 UNION (查询2 UNION 查询3)

      三、连接查询

      通过连接运算符可以实现多个表查询。连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志。

      在关系数据库管理系统中,表建立时各数据之间的关系不必确定,常把一个实体的所有信息存放在一个表中。当检索数据时,通过连接操作查询出存放在多个表中的不同实体的信息。连接操作给用户带来很大的灵活性,他们可以在任何时候增加新的数据类型。为不同实体创建新的表,尔后通过连接进行查询。

      连接可以在SELECT 语句的FROM子句或WHERE子句中建立,似是而非在FROM子句中指出连接时有助于将连接操作与WHERE子句中的搜索条件区分开来。所以,在Transact-SQL中推荐使用这种方法。

      SQL-92标准所定义的FROM子句的连接语法格式为:

      FROM join_table join_type join_table
      [ON (join_condition)]

      其中join_table指出参与连接操作的表名,连接可以对同一个表操作,也可以对多表操作,对同一个表操作的连接又称做自连接。

      join_type 指出连接类型,可分为三种:内连接、外连接和交叉连接。内连接(INNER JOIN)使用比较运算符进行表间某(些)列数据的比较操作,并列出这些表中与连接条件相匹配的数据行。根据所使用的比较方式不同,内连接又分为等值连接、自然连接和不等连接三种。外连接分为左外连接(LEFT OUTER JOIN或LEFT JOIN)、右外连接(RIGHT OUTER JOIN或RIGHT JOIN)和全外连接(FULL OUTER JOIN或FULL JOIN)三种。与内连接不同的是,外连接不只列出与连接条件相匹配的行,而是列出左表(左外连接时)、右表(右外连接时)或两个表(全外连接时)中所有符合搜索条件的数据行。

      交叉连接(CROSS JOIN)没有WHERE 子句,它返回连接表中所有数据行的笛卡尔积,其结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。

      连接操作中的ON (join_condition) 子句指出连接条件,它由被连接表中的列和比较运算符、逻辑运算符等构成。

      无论哪种连接都不能对text、ntext和image数据类型列进行直接连接,但可以对这三种列进行间接连接。例如:

      SELECT p1.pub_id,p2.pub_id,p1.pr_info
      FROM pub_info AS p1 INNER JOIN pub_info AS p2
      ON DATALENGTH(p1.pr_info)=DATALENGTH(p2.pr_info)

      (一)内连接
      内连接查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的列值。内连接分三种:
      1、等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接表中的所有列,包括其中的重复列。
      2、不等连接: 在连接条件使用除等于运算符以外的其它比较运算符比较被连接的列的列值。这些运算符包括>、>=、<=、<、!>、!<和<>。
      3、自然连接:在连接条件中使用等于(=)运算符比较被连接列的列值,但它使用选择列表指出查询结果集合中所包括的列,并删除连接表中的重复列。
      例,下面使用等值连接列出authors和publishers表中位于同一城市的作者和出版社:

      SELECT *
      FROM authors AS a INNER JOIN publishers AS p
      ON a.city=p.city
      又如使用自然连接,在选择列表中删除authors 和publishers 表中重复列(city和state):
      SELECT a.*,p.pub_id,p.pub_name,p.country
      FROM authors AS a INNER JOIN publishers AS p
      ON a.city=p.city

      (二)外连接
      内连接时,返回查询结果集合中的仅是符合查询条件( WHERE 搜索条件或 HAVING 条件)和连接条件的行。而采用外连接时,它返回到查询结果集合中的不仅包含符合连接条件的行,而且还包括左表(左外连接时)、右表(右外连接时)或两个边接表(全外连接)中的所有数据行。如下面使用左外连接将论坛内容和作者信息连接起来:

      SELECT a.*,b.* FROM luntan LEFT JOIN usertable as b
      ON a.username=b.username

      下面使用全外连接将city表中的所有作者以及user表中的所有作者,以及他们所在的城市:

      SELECT a.*,b.*
      FROM city as a FULL OUTER JOIN user as b
      ON a.username=b.username

      (三)交叉连接
      交叉连接不带WHERE 子句,它返回被连接的两个表所有数据行的笛卡尔积,返回到结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。例,titles表中有6类图书,而publishers表中有8家出版社,则下列交叉连接检索到的记录数将等于6*8=48行。

      SELECT type,pub_name
      FROM titles CROSS JOIN publishers
      ORDER BY type
      [Post=0][/Post]
  • 安装TestDirector8.0 问题汇总

    2008-11-25 11:23:38

    在虚拟机上安装TestDirector8.0 遇到的问题
    --ganlan 2008-7-26
    http://www.51testing.com/?83501/ ... e_itemid_88918.html

    由于未申请到测试资源,只能在本机的虚拟机上安装TD进行试用,以下是安装使用过程遇到的问题及解决办法。

    一、安装环境

    机器:虚拟机6.0, Vmware6.0 有绿色版 ,支持双CPU;

    系统:Windows2003 / Windows2000 ,两个系统均可以,网上有人说TD8 装在Win2003会不稳定,易出问题,都可以;

    数据库:SQL Server 2000。

    二、TD 安装遇到的问题

    安装大概的步骤:先装IIS,然后装SQLServer,在装TD,TD和SQLServer哪个先装应该没多大关系。

    1、首先要装IIS,Windows2003 增加删除Windows组件中没有直接看到IIS,在‘应用程序服务器’里面有IIS,似乎好像装UDDI也可以。

    2、在Windows2003系统下,按照下一步进行装TD8.0,但是到了填写系统管理员用户时过不去,总是提示: unknown user name or bad password,不管用什么用户名和密码都不行。

    解决办法:

    出现这样的提示,是因为数据保护引起的,
    数据保护的解除:
        在控制面板里打开“系统”属性,在【高级】选项卡下的“性能:视觉效果、处理器计划、内存使用和虚拟内存”里面点击  【设置】,接着在“性能选项”中选择【数据执行保护】选项卡
        我们只要设置为:只为关键的windows程序和服务启动数据保护,
      或者选择:对所有的程序和服务启动数据保护,除了。。把checku.exe钩选在排除之外。
    --上网介绍以上办法,可以解决问题。

    3、刚刚安装好TD8.0,点击testdirector时显示空白页面呢?

    解决办法:

    到 开始-管理工具-Internet信息服务(IIS)管理器 中,本地计算机-网站-默认网站-TDBIN,右键菜单 属性-HTTP头-MIME类型...,点‘新建...’按钮,填扩展名为ini,MIME类型为text/*,诸如此类,继续新建扩展名分别为:lld、dll、ocx、xco、exe、adt、adm、xxx,MIME类型都填为text/*

    4、问题:登录时出现另一个问题,输入密码点[Login]按钮时提示“The RPC server is Unvailable.”,不知道哪里有问题。

    解决办法:出现这类问题有很多原因,下面摘取网上两种介绍;

    网上介绍1:

    好经验,解决了白板问题,关于那个后来出现的问题,“The RPC server is Unvailable“,也出现了,我装的是TD8.0 ,后来重装了SP2 就解决了。

    网上介绍2:

      使用很久的TD进行测试管理,对于其总是出现一些RPC错误,处理起来觉得有些麻烦.现在总结一些我使用过程中的现象和解决方法:
    1.数据log日志满了,清空数据库log日志或加大其空间
    2.修改了机器登陆密码:把登陆密码修改回来或执行td安装程序一次或执行td checker,并输入现在的密码;
    3.IIS虚拟目录错误:重新制定iis虚拟目录到defalut
    4.........

    ---以上这些很难做到,看网上有人说要打sp2的补丁,网上找了半天没找到,要么就下不了,要么就说学员密码,后来发现安装文件竟然自带有。

    装完以后重启 就可以了。

    网上在找这个TD sp2 网上找了很久竟然没找到,有些下载竟然还要购买,后来发现安装文件里面就自带有sp2,所以下载TD的时候就要下载有这个sp2补丁的。

    5、Invalid License Key 无效,在安装没有填写License,在登录时会出现License无效的限制。

    解决办法:进行重新添加License,

    重新添加License:

    (1)登录 Site Administrator ,使用空密码登录(没修改之前默认是空的);

    (2)选则Licenses / Modife License Key 进行重新添加。

    6、登录Site Administrator 报下面:Authentication Failure错误;

    解决办法:

    使用空密码登录。

    好像8.0装好之后默认就是空的,登录时如果没有填写就可以登录,填写了密码就报上面错误,
    这时可以通过那个change pwssword 进行修改密码,修改完在登录就正常了。

    三、使用TD时遇到的问题

    使用时必须先做的3步骤:

    A.建立数据库连接;

    B.创建项目;

    C.创建项目的用户

    遇到问题:

    1、在Site Administrator建立项目时遇到的问题

    登录Site Administrator以后,建立链接数据库时 遇到以下错误:SQL Server 不存在或者决绝访问。|未制定错误。

    解决办法:

    ======================================================

    网上提供的处理办法:

    TestDirector连接SQL SERVER 数据库:

    TD如何在sqlserver2000下建库
    步骤一:安装sqlserver2000的客户端

    步骤二:进入sqlserver2000的“客户端网络实用工具”,选择“别名”标签页, 在服务器的别名种输入“TDSQLSERVER”,“网络库”选择“named pipes”, 然后保“管道名称”改为你的机器名。点击确定按钮。

    7.2版本的可以能需做第三步,8.0或以上版本的用户可以省去第三步
    步骤三:进入TD的BDE ADMINISTRATOR的管理界面,选择“configurantion”标签页, 选择选择“congiguration-drivers-native”树下的“mssql”,将“server name”项改为你的机器名称。

    步骤四:进入TD的PROJECT ADMINISTRATIONS(Site Administrator)的界面,new一个TD的project库即可。

    这是7.2的,7.6或以上版本的直接连就可以
    来源:http://topic.csdn.net/t/20040611/15/3083849.html

    ======================================================

    需要做第一第二步,做完以后在直接在Site Administrator中建立接连即可,也可以在Site Administrator / DB Server中建立链接进行ping测试,看是否ping成功。

    2、查询TD在SQLServer中各个表的数据

    解决办法:在SQLServer 的查询分析器中无法查询TD的表信息,提示[SQLServer]对象名 ‘xxx’ 无效”错误,可以直接在TD里面进行查询库表数据;


    3、遇到问题:怎么增加用户呢?

    解决办法:

    2个地方:
    (1).直接为指定工程设置用户
       在登陆窗口,点击[CUSTOMIZE]链接,进入“工程自定义窗口”(Project Customiation),点左侧的[Setup Users]可以设置用户,点[Setup Groups]可以设置用户组。
    (2).在后台管理用户
       在登陆窗口进入“Site Administrator”,选择“Users”页,不过只能设置用户,用户的权限设置还得参照1的说明去做。
       在这里可以管理TD中所有的用户。

    4、采用IP(http://IP/TDBIN/start_a.htm)登录时,提示:

    提示:Error : The RPC server is unavailable.

    把IP换成主机名以后则可以正常访问,是什么原因呢??


    提示:OTA server is not connected


    解决办法:

    原因未找到,发现可以用一下办法解决:
    在C:\WINDOWS\system32\drivers\etc\hosts 文件中添加:
    192.168.1.10      Tdserver
    然后通过:http://Tdserver/TDBIN/start_a.htm
    则访问正常,局域网中均可这样处理。

    --安装完成,并可以进行使用。
  • 用户名密码的测试方法

    2008-10-29 15:24:22

    一.用户注册

      只从用户名和密码角度写了几个要考虑的测试点,如果需求中明确规定了安全问题,Email,出生日期,地址,性别等等一系列的格式和字符要求,那就都要写用例测了~

      以等价类划分和边界值法来分析

      1.填写符合要求的数据注册: 用户名字和密码都为最大长度(边界值分析,取上点)

      2.填写符合要求的数据注册 :用户名字和密码都为最小长度(边界值分析,取上点)

      3.填写符合要求的数据注册:用户名字和密码都是非最大和最小长度的数据(边界值分析,取内点)

      4.必填项分别为空注册

      5.用户名长度大于要求注册1位(边界值分析,取离点)

      6.用户名长度小于要求注册1位(边界值分析,取离点)

      7.密码长度大于要求注册1位(边界值分析,取离点)

      8.密码长度小于要求注册1位(边界值分析,取离点)

      9.用户名是不符合要求的字符注册(这个可以划分几个无效的等价类,一般写一两个就行了,如含有空格,#等,看需求是否允许吧~)

      10.密码是不符合要求的字符注册(这个可以划分几个无效的等价类,一般写一两个就行了)

      11.两次输入密码不一致(如果注册时候要输入两次密码,那么这个是必须的)

      12.重新注册存在的用户

      13.改变存在的用户的用户名和密码的大小写,来注册。(有的需求是区分大小写,有的不区分)

      14.看是否支持tap和enter键等;密码是否可以复制粘贴;密码是否以* 之类的加秘符号显示

      备注:边界值测试选取的点是边界上的点(上点)、离边界最近的点(离点)和边界内的点(内点)。主要选取上点和离点。
    例如用户名长度取值范围为[4,10],要选取的上点为4、10,离点为3、11  

    二.修改密码

      当然具体情况具体分析哈~不能一概而论~

      实际测试中可能只用到其中几条而已,比如银行卡密码的修改,就不用考虑英文和非法字符,更不用考虑那些TAP之类的快捷键.而有的需要根据需求具体分析了,比如连续出错多少次出现的提示,和一些软件修改密码要求一定时间内有一定的修改次数限制等等。

      1.不输入旧密码,直接改密码

      2.输入错误旧密码

      3.不输入确认新密码

      4.不输入新密码

      5.新密码和确认新密码不一致

      6.新密码中有空格

      7.新密码为空

      8.新密码为符合要求的最多字符

      9.新密码为符合要求的最少字符

      10.新密码为符合要求的非最多和最少字符

      11.新密码为最多字符-1

      12.新密码为最少字符+1

      13.新密码为最多字符+1

      14.新密码为最少字符-1

      15.新密码为非允许字符(如有的密码要求必须是英文和数字组成,那么要试汉字和符号等)

      16.看是否支持tap和enter键等;密码是否可以复制粘贴;密码是否以* 之类的加秘符号

      17.看密码是否区分大小写,新密码中英文小写,确认密码中英文大写

      18.新密码与旧密码一样能否修改成功

      另外一些其他的想法如下:

      1 要测试所有规约中约定可以输入的特殊字符,字母,和数字,要求都可以正常输入、显示正常和添加成功

      2 关注规约中的各种限制,比如长度,大否支持大小写。

      3 考虑各种特殊情况,比如添加同名用户,系统是否正确校验给出提示信息,管理员帐户是否可以删除,因为有些系统管理员拥有最大权限,一旦删除管理员帐户,就不能在前台添加,这给最终用户会带来很多麻烦。比较特殊的是,当用户名中包括了特殊字符,那么对这类用户名的添加同名,修改,删除,系统是否能够正确实现,我就遇到了一个系统,添加同名用户时,如果以前的用户名没有特殊字符,系统可以给出提示信息,如果以前的用户名包含特殊字符,就不校验在插入数据库的时候报错。后来查到原因了,原来是在java中拼SQL语句的时候,因为有"_",所以就调用了一个方法在“_“,前面加了一个转义字符,后来发现不该调用这个方法。所以去掉就好了。所以对待输入框中的特殊字符要多关注。

      4 数值上的长度 之类的,包括出错信息是否合理

      5 特殊字符:比如. / ' " \ </html>  这些是否会造成系统崩溃

      6 注入式bug:比如密码输入个or 1=1

      7 登录后是否会用明文传递参数

      8 访问控制(不知道这个算不算):登录后保存里面的链接,关了浏览器直接复制链接看能不能访问

  • 输入框的测试

    2008-10-29 15:06:04

    1.验证输入与输出的是否信息一致;
    2.输入框之前的标题是否正确;
    3.对特殊字符的处理,尤其是输入信息需要发送到数据库的.特殊字符包括:特殊字符包括:'(单引号)、"(双引号)、[](中括号)、()(小括号)、{}(大括号)、;(分号)、<>(大于小于号)……
    4.对输入框输入超过限制的字符的处理,一般非特殊的没有作出限制的在255byte左右;
    5.输入框本身的大小,长度;
    6.不同内码的字符的输入;
    7.对空格,TAB字符的处理机制;
    8.字符本身显示的颜色;
    9.密码输入窗口转换成星号或其它符号;
    10.密码输入框对其中的信息进行加密,防止采用破解星号的方法破解;
    11.按下CTRL和ALT键对输入框的影响;
    12.对于新增,修改,注册时用的输入框,有限制的,应该输入时作出提示,指出不允许的或者标出允许的;
    13.对于有约束条件要求的输入框应当在条件满足时输入框的状态发生相应的改变,比如选了江西就应该列出江西下面的市,或者选了某些条件之后,一些输入框会关闭或转为只读状态;
    14.输入类型:根据前面的栏位标题判断该输入框应该输入哪些内容算是合理的.例如:是否允许输入数字或字母,不允许输入其它字符等.
    15.输入长度:数据库字段有长度定义,当输入过长时,提交数据是事会出错;
    16.输入状态:当处于某种状态下,输入框是否处于可写或非可写状态.例:系统自动给予的编号等栏位作为唯一标识,当再次处于编辑状态下,输入框栏位应处于不可写状态,如果可写对其编辑的话,可能会造成数据重复引起冲突等;
    17.如果是会进行数据库操作的输入框,还可以考虑输入SQL中的一些特殊符号如单引号等,有时会有意想不到的错误出现;
    18.关键字有大小写混合的情况;
    19.输入html的标签会出现哪些问题?输入&lt;html&gt; 会出现什么问题呢?(

  • 软件测试技术总结(一)

    2008-10-15 15:27:11

    软件测试是指使用人工或者自动的手段来运行或测定某个软件产品系统的过程,其目的是在于检验是否满足规定的需求或者弄清预期的结果与实际结果的区别。本文主要描述软件测试的类型。
    1 数据和数据库完整性测试
    数据与数据库完整测试是指测试关系型数据库完整性原则以及数据合理性测试。
    数据库完整性原即:
    主码完整性:主码不能为空;
    外码完整性:外码必须等于对应的主码或者为空。
    数据合理性指数据在数据库中的类型,长度,索引等是否建的比较合理。
    在项目名称中,数据库和数据库进程应作为一个子系统来进行测试。在测试这些子系统时,不应将测试对象的用户界面用作数据的接口。对于数据库管理系统 (DBMS),还需要进行深入的研究,以确定可以支1持测试的工具和技术。
    比如,有两张表:部门和员工。部门中有部门编号,部门名称,部门经理等字段,主码为部门编号;员工表中有员工编号,员工所属部门编号,员工名称,员工类型等字段,主码为员工编号,外码为员工所属部门编号,对应部门表。如果在某条部门记录中部门编号或员工记录员工编号为空,他就违反主码完整性原则。如果某个员工所属部门的编号为##,但是##在部门编号中确找不到,这就违反外码完整性原则。
    员工类型如下定义:0:职工,1:职员,2:实习生。但数据类型为Int,我们都知道Int占有4个字节,如果定义成char(1).就比原来节约空间。
    2 白盒测试
    白盒测试是基于代码的测试,测试人员通过阅读程序代码或者通过使用开发工具中的单步调试来判断软件的质量,一般黑盒测试由项目经理在程序员开发中来实现。白盒测试分为动态白盒测试和静态白盒测试
    2.1 静态白盒测试
    利用眼睛,浏览代码,凭借经验,找出代码中的错误或者代码中不符合书写规范的地方。比如,代码规范中规定,函数必须为动宾结构。而黑盒测试发现一个函数定义如下:
    Function NameGet(){
    ….
    }
    这是属于不符合开发规范的错误。
    有这样一段代码:
    if (i<0) & (i>=0)

    这段代码交集为整个数轴,IF语句没有必要
    I=0;
    while(I>100){
    J=J+100;
    T=J*PI;
    }
    在循环体内没有I的增加,bug产生。
    2.2 动态白盒测试
    利用开发工具中的调式工具进行测试。比如一段代码有4个分支,输入4组不同的测试数据使4组分支都可以走通而且结果必须正确。
    看一段代码
    if(I<0){
    P1
    }else{
    P2
    }
    在调试中输入I=-1,P1程序段通过, P2程序段未通过,属于动态黑盒测试的缺陷

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

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

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


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

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

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

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

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

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

    12.分辨率测试
    测试在不同分辨率下,界面的美观程度,分为800*600,1024*768,1152*864,1280*768,1280*1024,1200*1600大小字体下测试。一个好的软件要有一个极佳的分辨率,而在其他分辨率下也都能可以运行。

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


    14 文档审核测试
    文档审核测试目前越来越引起人们的重视,软件质量不是检查出来的,而是融进软件开发中来。前置软件测试发越来越受到重视。请看一个资料:
    文档审核测试主要包括需求文档测试,设计文档测试,为前置软件测试测试中的一部分。
    14.1需求文档测试
    主要测试需求中是否存在逻辑矛盾以及需求在技术上是否可以实现;
    14.2设计文档测试
    测试设计是否符合全部需求以及设计是否合理。

  • 31个用来测试你网站各项性能的免费在线工具

    2008-10-13 14:06:13

      你是否肯定你的网站完全兼容各大浏览器?是否知道多少秒可以打开你的网站? 是否可以自信地说你的网站根本就没有打不开的时候? 是否……

      虽然它看似不重要,但这些在一定程度上也对你的网站的访问量产生了影响 ( 其它一部分影响浏览量的原因及解决办法 )。这里列出了一份31个我最喜爱的免费在线测试工具,你可以通过这些工具来测试你的网站,并根据结果对你的网站进行修改。

      网站代码验证没人可以细致到保证自己的网站代码都是正确的,你可以通过以下测试来验证网站代码是否正确。

      1 . WDG HTML Validator

      一个很好的工具,能找出网站语法错误的地方,并标注出来,也可选择对网站上单独的每一页进行单页分析。(强烈推荐)

      2 . W3C Markup Validation Service

      对 HTML 和 XHTML 都能进行代码测试,自称是互联网络上第一个(也是使用者最多的)的 HTML 验证工具。

      3 . W3C CSS Validation Service

      用于验证 css 源代码,能够标注出不好的 css 代码设计。例如:“Same colors for color and background-color in two contexts”。

      4 . RUWF XML Syntax Checker

      用于查找 XML 文件的错误。

      5 . W3C Feed Validation Service

      用于查找 Atom 和 RSS feed 中的错误语法。(这个我经常用到)

      6 . W3C Link Checker

      用于搜寻查明你网站内的所有链接里是否有断链。(强烈推荐)

      7 . Juicy Studio Link Analyser

      测试网站内的链接的 URL 是否存在死链,与 W3C Link Checker 很类似。网站的使用性我们常常看到网站设计者把重点放在怎网站的吸引力上,而完全不考虑会不会影响来访者的使用,一个浏览难度很大的网页是注定要失败,要让你的来访者方便的得到他要的信息(从而成为重复访客),你的网站应当遵循 WCAG section 508 易用性规则。

      8 . Watchfire WebXACT

      所有严谨的设计师和开发者都必须使用的工具,它会生成一个非常详尽的报告书,包括:网站质量,易用性和隐私等。(强烈推荐)

      9 . ATRC Web Accessibility Checker

      测试网站的 WCAG 2.0 Level2 兼容性,它会生成一份报告,提出一系列建议,如:如何提升页头,链接,数据,图表和文字的访问速度。

      10 . WAVE 3.0 Web Accessibility Tool

      高度可定制的工具,它采用了图形化模型展示网站兼容性问题( WCAG 1.0 and section 508 )。(强烈推荐)

      11 . TAW Web Accessibility

      Test测试网页是否存在冲突( WCAG 1.0 兼容性 ),通过图形模式生成一份依据 wcag 优先模式为基础的网站修改建议。

      12 . HiSoftware CynthiaSays portal

      采用了非常严格的规则来测试网页( 根据 section 508 和 WCAG 1.0 规则 ),生成的报告也极为详细( 详细到很难看懂 )。

      13 . HERA Accessibility testing with Style

      使用一种极为复杂但容易理解方式指出网页的 wcag1.0 兼容性问题。

      14 . Juicy Studio CSS Analyser

      进行了色彩对比测试,以确保你的网站的色调会符合 WCAG 1.0 的要求。

      15 . Juiciy Studio Readability Test

      分析你网站上的文字是否有语法错误或拼写错误等问题,容易让人理解不( 根据 the Flesch Reading Ease 和 Flesch-Kincaid grade level algorithms 规则 )。( 适合英文网站使用)网站的速度打开你的网站的速度快慢,是来访者会不会再次访问网站的关键因素,在一般情况下,一个网络不是很快的来访者是不愿意访问一个充满着图片、 flash 动画、多媒体文件的网站。为了使你的网站覆盖人群的范围最大化,你必须优化你的网站,使它的打开速度尽可能的快。

  • 做好性能测试,该掌握些什么?

    2008-10-13 13:47:35

      1. 精通性能测试的基本概念,过程,方法论,了解性能工程;

      2. 精通1个商业性能测试工具+1个开源性能测试工具,知道工具可以做什么,不可以做什么,以及工具使用中常见的问题和解决思路;

      3. 扎实的计算机专业基础知识,包括计算机组成原理、操作系统、数据库原理、计算机网络原理;

      4. 熟悉至少1个常用的数据库产品,例如SQL Server或者 Oracle,能进行一般的数据库管理操作,熟悉SQL脚本的使用,熟悉常用的数据调优工具和常用的counter;

      5. 熟悉至少一个操作系统的原理,Windows或者Linux都可以,熟悉操作系统的体系架构、操作系统的重要基础概念,以及内存管理、存储/文件系统、驱动/硬件的管理、网络协议的实现及构成、性能的监控方法和原理,熟悉常用的counter;

      6. 熟悉至少一个web server 产品,例如apache,了解一般的配置和常用的counter;

      7. 熟悉至少一个应用服务器产品,例如tomcat,了解一般的配置,熟悉常用的服务器性能监控方法和原理,熟悉常用的counter;

      8. 至少熟悉TCP/IP协议,熟悉HTTP协议,至少见过并了解三层、四层交换或者路由器的使用和配置。了解常用的与网络性能相关的counter;9. 了解一般的大型企业应用的部署架构和应用架构;

      10. 了解知名大型web应用、高并发量、高流量、实时响应要求高的超大规模网站的架构和优化历程;

      11. 熟悉统计学的基础知识、常用分析方法以及实验设计方法,了解数学建模相关的知识;

      12. 熟悉专属行业的业务知识和用户场景,例如电信行业的OSS系统所涉及的业务知识和用户场景,证券交易系统所涉及的业务知识和用户场景;

      13. 大量的实际性能测试及优化经验;

      14. 积极的参与到各类圈子、社团的讨论和交流、分享中

  • 成功测试管理的九大原则

    2008-10-08 11:21:04

     简介

       许多测试管理者是从技术部门进到管理阶层的。尽管他们有可能受过很多测试或软件工程的培训和指导,但他们还是很难经常从失败和错误中学到管理技巧。作为一个管理者,你有两项基本工作:找出为你工作的最好 的员工并且建立一个能够使员工完成工作的环境(使他们最好地完成工作)。这篇文章讲述了一些我学过的关于这些管理工作的经验。

      总是那些人――帮助人们最好地完成工作

      1.为工作雇佣最好的员工

      我遇到许多管理者,他们要雇佣的员工仅仅是他们上一个雇佣的翻版。作为一个测试管理者,你必须对你需要什么人做出评估。假设现在你的部门满是极好的探索型的测试员。如果你还要雇另一个探索型的测试员,也许比你现在的要好,但是他对你的空白领域有作用吗?也许有,也许没有。

      工作的最佳人选也许就是你现在这个小组里所没有的类型。最佳人选或许并不“适合”你通常的工作方式。作为一个测试管理者,雇佣一个最佳的员工要用发展的雇佣策略,面试时要检验他是否符合这个策略。这可以让你找到最适合这份工作的人员,他能够完成必要的工作。

      2. 安排每周与你的每个小组成员在不被打扰的环境进行谈话

      最为一个测试经理,主要工作之一就是定期评定你的组织做了些什么并且是怎样做的。你还要为你的员工做一个报告,关于充分了解他们正在做什么和他们是怎样做的,以此来给做他们正式的和非正式的工作成绩考核。如果你没有了解到每个人的动态你就不应该对你的报告满意。

      我定期地给我的小组成员每周在不被打扰的条件下做一对一的谈话。(当我管理12个员工的时候,我安排在另外一周会见另一些人)。我每周用30分钟来和每个员工谈谈他们的工作:他们工作中的问题或是意见;他们是否需要帮助,他们的表现和他们达到目标的兴奋。我一般安排一周的某天来进行一对一谈话。我事先安排出和每个人的特定时间,接下来我亲自会见他们每个人。如果我们不能把所有需要谈到的细节都包括,我们会安排另外一个时间来继续。

      许多管理者说他们没有时间在一周会见每一个员工来谈他们的工作。据我的经验,如果我不能安排时间和我的员工进行每周的谈话,他们会来打扰我的工作,因为他们无论如何还是必须要来找我。

      如果你安排和你员工的谈话,你必须减少计划外的打扰(既有他们的也有你自己的),并且更多的了解他们在做什么。当你清楚你的小组正在做的,你才能更有效率地帮助他们明确优先应该做的工作,重聚资源,重新计划工程的部分,排除障碍等等。

      3. 假定员工知道如何完成他们的工作的人员

      因为很多管理者起初做的是技术工作,他们知道他们的员工现在从事的工作。他们认为他们现在知道。如果你已经管理了两三年,你也许还没有你的技术员工知道的多,尤其是怎么样完成日常工作。

      你或者你的前任者雇佣你小组的员工。假设你雇佣这些人因为你认为他们能够完成工作,如果你设想每个人都知道如何完成他们的工作,你将得到比假设他们都不知道怎么完成的更好的效果。即使有些员工在无论你设想是否都能成功完成工作,但是有些员工将会被你对他们的想法所影响工作。

      因为我知道我的员工都知道怎样做他们的工作,我给他们分派任务。问他们是否需要帮助,然后留他们独自完成(除非他们寻求帮助)。我的意思并不是你不应该在他们工作的时候和他们说话,你只是不该打扰他。打扰可以分为几种不同的形式:

      · 如果你在不知不觉的情况下来到他身后,来到他的肩膀旁边,问他:“进行的如何了?”,尤其是在他们绞尽脑汁仍不得其解时, 这将仍然不能使你对他们的要求达到。

      · 如果你每天都问,更糟的是每个钟头都问,他们是如何做的。这看起来就像对你员工进行微机管理,很惹人烦。毕竟,你没有工作要做吗?另外, 他们会以为你认为他们不知道该如何完成工作。

      · 如果当他们没有问你意见,你说“我会用这种方法”。这种予以打击的帮助不会有用。

      · 如果你不确定怎样能知道你的员工是否胜任,和每一个小组成员商讨寻求帮助的时机。每个人,包括你自己,应该选择一个规则来知道他或她什么时候成为了一个令人讨厌的家伙了。我的一个客户有一个15分钟法规。如果有人在某方面令人讨厌持续15分钟以上,他就必须停止并且和别人谈谈他的工作。

      当你分配工作时,问问你的员工是否明白该做什么,他或她是否有方法完成。确定工作进程,如果员工遇到麻烦,他应该主动找你寻求帮助,但是如果你坚决干涉,你的员工将会把找你寻求帮助作为最后的解决方法。

      4. 对待你的员工要用他们能接受的方式,而不是你可以自己可以接受的方式“对待别人要用你愿意接受的方式”(己之不予,勿施于人)――这条黄金法则可能会对许多生活中的纯的社交因素有效,但是并不是总对工作有用。

      有效率的管理者知道他的每一个员工需要怎样的对待方式。当其他的人更乐意接受更多的信息。一些人去需要特定的任务和指示。一些因为解决新的,很棒的,复杂的问题而更有冲劲,但是还有一些只是对他们已经知道如何去处理的问题而感到舒服。

      另外,针对于不同的工作,我们都喜欢不同的认同方式。金钱不是表示认同的唯一方式,你可以用其他的方式来酬劳你的员工。有些人喜欢对他个人的感谢,有人乐意在公众面前的认可,一些喜欢以M﹠M方式,或者是奖励电影票,还有人希望有团队的排队来庆祝。记住无论什么的激励你的方式都不一定能激励你小组的每一个其他成员。和你的小组成员们通过讨论来了解他们每个人对奖励比较喜欢的给予方式。创造一个好的工作环境。

      5.重视结果而非时间

      许多认可建立在员工完成工作的时间上,而不是他们最后的成绩上。但是,花费在工作上的时间不一定和创造性有必然的联系。如果你真的想改善对创作性和工作效率的认可的话,不妨考虑保证你员工每周只工作40个小时。 我常常听到一种表示对员工的异议就是“你整整一天什么都做不出来。”假设你自己处在一个巨大的障碍前,考虑你可以做什么来解决的时候,你是不是取消了会议?你的小组成员能否井然有序地安排他们的工作以至于能够最大限度发挥创造性?

  • 男人真命苦

    2008-10-08 11:07:06

    关于讲理
    老公:你不讲理。
    老婆:和你我从来就没讲过理,家就不是讲理的地方。再说你是男的,还比我大8个月呢,你就得让着我。
    关于钱
    老公:以后我挣的钱,按比例给你吧,我挣的多时留得也多一点,这样我较会有积极性。
    老婆:好。
    老公:那我给你百分之多少?
    老婆:百分之一百二。
    关于主意
    老婆:咱们出去玩吧。
    老公:好,你说去哪就去哪。
    老婆:我要有主意还和你说!
    老公:我出的主意你从来都不同意呀。
    老婆:我不同意的那叫什么主意啊,那叫敷衍!你得不停的有主意,直到我满意为止。
    关于中心
    老婆:我在我们家一直是中心,在你们家也得以我为中心。
    老公:那我在我们家也一直是中心。
    老婆:可我这中心比你那中心重要。
    老公:为什么?
    老婆:因为我是千金,你只是个小子。
    关于心情
    老婆:我一干活心情就不好了,会降低咱们的婚姻质量的。
    老公:我干活心情也会不好啊。
    老婆:不行,你得心里承受能力比我强。因为你个子比我大,心脏也比我大!
    关于买衣服
    老婆:这衣服好看吗?
    老公:好看。
    老婆:你就敷衍我,想让我赶快买完了赶快回家……
    老婆:那衣服好看吗?
    老公:不好看。
    老婆:你就舍不得给我买!
    关于拿东西
    老婆:这个袋子你也拿着吧。
    老公:我都拿着四个袋子了,你什么都不拿,好意思吗?
    老婆:那我还挽着你呢!你有100多斤呢,我拿的东西比你拿的东西重多了。
    关于吃东西
    老婆:这个话梅我吃了一半,挺好吃的,剩下的给你吃吧。
    老公:我不爱吃话梅。
    老婆:不行,你就爱吃!你是不是嫌弃我吃过的!
    老公:这鱼挺好吃的,来。
    老婆:你得脏筷子碰过,谁吃!
    老公:那你吃过一半我还吃呢,我不嫌弃你,你怎么嫌弃我?
    老婆:那就对了。我嫌弃你说明我比你干净。我比你干净你凭什么嫌弃我?!
    关于喝水
    老婆:老公,我要喝水!
    老公:我给你倒去。哎,这水杯不就在你手边嘛,没看见?
    老婆:看见了,我就是想让你递给我。
    关于打电话
    老婆:你为什么不给我打电话?!
    老公:倒打一耙!今天不是说好你给我打电话的嘛。结果我等了一天,还是我打给你的。
    老婆:我是说过,可我又改主意了。张爱玲说:女人有改主意的权利。
    老公:那你改主意没跟我说呀!
    老婆:我说了,我心里说的,谁让你和我的心灵不相通的。
    关于洗碗
    老公:一会你洗碗?
    老婆:好。
    老公:那怎么还不动啊?
    老婆:我头疼。
    老公:懒死了,不让你洗碗你也不头疼。
    老婆:真的!一想到洗碗我就头疼。
    关于散步
    老婆:咱们一直散步到那条马路吧。
    老公:到那儿太远了,一会儿该走不回来了。
    老婆:没事,你背我回来。
    关于干家务
    老公:咱们把家务分分工吧。
    老婆:好。首先,脏活累活得男人干吧。如擦地/刷马桶/擦桌子……
    老公:这对。
    老婆:男主外,女主内。和外人打交道的得你干吧,买菜,交水费,取报纸和牛奶。
    老公:这。。。行!
    老婆:你是学理工的,我是学文科的,带电的东西得你干吧,像洗衣机,电冰箱,电饭锅,电熨斗……
    老公:行,行,那你干什么?
    老婆:别着急啊,厨房里油烟那么大,可毁皮肤了,做饭也得你干吧。
    老公:你就告诉我你干什么吧。
    老婆:我也有很多要干的呀。我可以陪着你,监督你,赞美你,安慰你……
    关于异性朋友
    老婆:我可以有男朋友,你不能干涉我。
    老公:行,我也交个女朋友。
    老婆:不行!
    老公:凭什么你行我不行呀。
    老婆:我交男朋友,你做不到的人家能做到,我就不会老挑你的毛病了,有利于家庭幸福。你交女朋友,我心眼儿小,吃醋和你吵叫,不利于家庭安定。
    老公:那我也心眼儿小。
    老婆:一个男人,和女人一样心眼儿小,亏你好意思说!
    关于婚外恋
    老婆:现在电视里老演婚外恋,你说,你会有婚外恋吗?
    老公:不会。
    老婆:为什么?
    老公:有你一个我就够后悔的了,决不能再要第二个!!
    然后---
    关于睡觉(一)
    老公:你那么小人,怎么占那么大地儿!
    老婆:那当然,我得翻身,还得伸懒腰呢!
    关于睡觉(二)
    老婆:咱们盖那个双人被吧。
    老公:别!那到第二天早上就全裹你身上了。我什么也盖不着。还是自己盖自己的吧,心里踏实。
    老婆:哼,你就是自己盖,到明天早上照样也得被我裹走!
    关于起床
    老公:起床了,起床了,你不说今天要早起开会嘛.
    老婆:别吵我,我再睡一会。
    老公:快起来吧,会迟到了。
    老婆:你别碰我!我还要睡啦!!
    老婆:呀!都迟到了!你怎么不叫我呢?!
    关于吃饭
    老婆:老公,咱们到那里吃饭啊,吃什么?
    老公:你想吃什么?
    老婆:什么都让我决定啊,那我还要你干什么?随便,你说吃什么就吃什么
    老公:那我们去XXX吃XXX吧
    老婆:大怒,又吃这个啊,你能不能有点创意
    每次这样我生气的都想发火
    关于真话
    老婆:你看,那女孩多好看。
    老公:好看什么啊。
    老婆:你什么意思!你为什么不和我保持一致!
    老公:好看好看。
    老公:哎,你别走啊,怎么不理我了?
    关于孩子
    老婆:咱们要个孩子吧。
    老公:行。
    老婆:那你喜欢咱们的孩子吗?
    老公:喜欢。
    老婆:那不行!你就得喜欢我一个人!
    老公:好,好,我就喜欢你一个人。
    老婆:那我的孩子你凭什么不喜欢阿!
    老公:咱还是别要孩子了。
    关于离婚
    老婆:咱们要是离了婚,房子归我,我的钱我也得拿走。
    老公:那我的钱呢?
    老婆:你的钱都是我的钱,你有什么钱!
    老婆:还有,离婚后你每月的收入也得给我80%。嗯,如果你再结婚了,那就给我60%就成了。
    老公:老婆,我决不跟你离婚!
    关于那女平等
    老公:都说男女平等,咱们家是不是也得平等平等?
    老婆:行啊。你们男的欺负女的欺负了好几千年。等我们也欺负了你们欺负几千年,才是真正的平等呢。别急,再过几千年,咱们家就平等了。
    关于幸福
    老婆:你娶了我是不是特别幸福啊?
    老公:没觉得。你又不讲理,又不干活,还老折腾人,我怎么幸福啊。
    老婆:这就是你的幸福啊。我不讲理,才能反衬出你的宽容大度;我不干活,就培养出了你,所谓艺多不压身,让你能力强还不好吗;我折腾人,你的生活才充满了多彩多姿,你看,你的婚姻生活就不像别人家难么单调吧。

  • Web性能测试术语

    2008-10-08 10:48:01

    WEB性能测试主要通过自动化的测试工具模拟多种正常,峰值以及异常负载条件来对系统的各项性能指标进行测试.WEB性能测试中出现频繁的术语主要有并发用户,并发用户数量,请求响应时间,事务响应时间,吞吐量,吞吐率,TPS,点击率,资源利用率等。

      并发用户:并发一般分为2种情况。一种是严格意义上的并发,即所有的用户在同一时刻做

    同一件事情或者操作,这种操作一般指做同一类型的业务。比如在信用卡审批业务中,一定数

    目的用户在同一时刻对已经完成的审批业务进行提交;还有一种特例,即所有用户进行完全一

    样的操作,例如在信用卡审批业务中,所有的用户可以一起申请业务,或者修改同一条记录。

      另外一种并发是广义范围的并发。这种并发与前一种并发的区别是,尽管多个用户对系统

    发出了请求或者进行了操作,但是这些请求或者操作可以是相同的,也可以是不同的。对整个

    系统而言,仍然是有很多用户同时对系统进行操作,因此也属于并发的范畴。

      可以看出,后一种并发是包含前一种并发的。而且后一种并发更接近用户的实际使用情况

    ,因此对于大多数的系统,只有数量很少的用户进行“严格意义上的并发 ”。对于WEB性能测

    试而言,这2种并发情况一般都需要进行测试,通常做法是先进行严格意义上的并发测试。严格

    意义上的用户并发一般发生在使用比较频繁的模块中,尽管发生的概率不是很大,但是一旦发

    生性能问题,后果很可能是致命的。严格意义上的并发测试往往和功能测试关联起来,因为并

    发功能遇到异常通常都是程序问题,这种测试也是健壮性和稳定性测试的一部分。

      用户并发数量:关于用户并发的数量,有2种常见的错误观点。一种错误观点是把并发用户

    数量理解为使用系统的全部用户的数量,理由是这些用户可能同时使用系统;还有一种比较接

    近正确的观点是把在线用户数量理解为并发用户数量。实际上在线用户也不一定会和其他用户

    发生并发,例如正在浏览网页的用户,对服务器没有任何影响,但是,在线用户数量是计算并

    发用户数量的主要依据之一。

      请求响应时间:指的是客户端发出请求到得到响应的整个过程的时间。在某些工具中,请

    求响应时间通常会被成为"TLLB",即"Time to last byte",意思是从发起一个请求开始,到客

    户端接收到最后一个字节的响应时间所耗费的时间。请求响应时间过程的单位一般为"秒"或者"

    毫秒"。

      事务响应时间:事务可能由一系列请求组成,事务的响应时间主要是针对用户而言,属于

    宏观上的概念,是为了向用户说明业务响应时间而提出的。例如:跨行取款事务的响应时间就

    是由一系列的请求组成的。事务响应时间和后面的业务吞吐率都是直接衡量系统性能的参数。

      吞吐量:指的是在一次性能测试过程中网络上传输的数据量的总和。吞吐量/传输时间,就

    是吞吐率。

      TPS:每秒钟系统能够处理的交易或者事务的数量。它是衡量系统处理能力的重要指标。

      点击率:每秒钟用户向WEB服务器提交的HTTP请求数。这个指标是WEB应用特有的一个指标

    :WEB应用是"请求-响应"模式, 用户发出一次申请,服务器就要处理一次,所以点击是WEB应

    用能够处理的交易的最小单位。如果把每次点击定义为一个交易,点击率和TPS就是一个概念。

    容易看出,点击率越大,对服务器的压力越大。点击率只是一个性能参考指标,重要的是分析

    点击时产生的影响。需要注意的是,这里的点击并非指鼠标的一次单击操作,因为在一次单击

    操作中,客户端可能向服务器发出多个HTTP请求。

      资源利用率:指的是对不同的系统资源的使用程度,例如服务器的CPU利用率,磁盘利用率

    等。资源利用率是分析系统性能指标进而改善性能的主要依据,因此是WEB性能测试工作的重点

      资源利用率主要针对WEB服务器,操作系统,数据库服务器,网络等,是测试和分析瓶颈的

    主要参考。在WEB性能测试中,更根据需要采集相应的参数进行分析。

Open Toolbar