此空间已闲置,个人主页已转到http://www.hixk.net

发布新日志

  • 电脑蓝屏死机代码大集合(转)

    2007-05-17 10:39:58

    使用windows出现蓝色屏幕是经常的事,而且每每因为不清楚错误的来源而频繁重新安装系统,劳神费时。下先将windows死机密码,供大家参考。获得更多信息复制代码到微软官方查询……
      数 值 叙 述
      0 0x0000 作业完成。
      1 0x0001 不正确的函数。
      2 0x0002 系统找不到指定的档案。
      3 0x0003 系统找不到指定的路径。
      4 0x0004 系统无法开启档案。
      5 0x0005 拒绝存取。
      6 0x0006 无效的代码。
      7 0x0007 储存体控制区块已毁。
      8 0x0008 储存体空间不足,无法处理这个指令。
      9 0x0009 储存体控制区块位址无效。
      10 0x000a 环境不正确。
      11 0x000b 尝试载入一个格式错误的程式。
      12 0x000c 存取码错误。
      13 0x000d 资料错误。
      14 0x000e 储存体空间不够,无法完成这项作业。
      15 0x000f 系统找不到指定的磁碟机。
      16 0x0010 无法移除目录。
      17 0x0011 系统无法将档案移到 其他的磁碟机。
      18 0x0012 没有任何档案。
      19 0x0013 储存媒体为防写状态。
      20 0x0014 系统找不到指定的装置。
      21 0x0015 装置尚未就绪。
      22 0x0016 装置无法识别指令。
      23 0x0017 资料错误 (cyclic redundancy check)
      24 0x0018 程式发出一个长 度错误的指令。
      25 0x0019 磁碟机在磁碟找不到 持定的磁区或磁轨。
      26 0x001a 指定的磁碟或磁片无法存取。
      27 0x001b 磁碟机找不到要求的磁区。
      28 0x001c 印表机没有纸。
      29 0x001d 系统无法将资料写入指定的磁碟机。
      30 0x001e 系统无法读取指定的装置。
      31 0x001f 连接到系统的某个装置没有作用。
      32 0x0020 the process cannot access the file because i
          t is being used by another process.
      33 0x0021 档案的一部份被锁定, 现在无法存取。
      34 0x0022 磁碟机的磁片不正确。 请将 %2 (volume serial number: %3) 插入磁碟机 %1。
      36 0x0024 开启的分享档案数量太多。
      38 0x0026 到达档案结尾。
      39 0x0027 磁碟已满。
      50 0x0032 不支援这种网路要求。
      51 0x0033 远端电脑无法使用。
      52 0x0034 网路名称重复。
          53 0x0035 网路路径找不到。
      54 0x0036 网路忙碌中。
      55 0x0037 the specified network resource or device is no longer available.
      56 0x0038 the network bios command limit has been reached.
      57 0x0039 网路配接卡发生问题。
      58 0x003a 指定的伺服器无法执行要求的作业。
      59 0x003b 网路发生意外错误。
      60 0x003c 远端配接卡不相容。
      61 0x003d 印表机伫列已满。
      62 0x003e 伺服器的空间无法储存等候列印的档案。
      63 0x003f 等候列印的档案已经删除。
          64 0x0040 指定的网路名称无法使用。
      65 0x0041 拒绝存取网路。
      66 0x0042 网路资源类型错误。
      67 0x0043 网路名称找不到。
      68 0x0044 超过区域电脑网路配接卡的名称限制。
      69 0x0045 超过网路 bios 作业阶段的限制。
      70 0x0046 远端伺服器已经暂停或者正在起始中。
      71 0x0047 由于连线数目已达上限,此时无法再连线到这台远端电脑。
      72 0x0048 指定的印表机或磁碟装置已经暂停作用。
      80 0x0050 档案已经存在。
      82 0x0052 无法建立目录或档案。
      83 0x0053 int 24 失败
          84 0x0054 处理这项要求的储存体无法使用。
      85 0x0055 近端装置名称已经在使用中。
      86 0x0056 指定的网路密码错误。
      87 0x0057 参数错误。
      88 0x0058 网路发生资料写入错误。
      89 0x0059 此时系统无法执行其他行程。
      100 0x0064 无法建立其他的系统 semaphore。
      101 0x0065 属于其他行程专用的 semaphore 。
      102 0x0066 semaphore 已经设定,而且无法关闭。
      103 0x0067 无法指定 semaphore 。
      104 0x0068 在岔断时间无法要求专用的 semaphore 。
      105 0x0069 此 semaphore 先前的拥有权已经结束。
      106 0x006a 请将磁片插入 %1。
      107 0x006b 因为代用的磁片尚未插入,所以程式已经停止。
      108 0x006c 磁碟正在使用中或被锁定。
      109 0x006d pipe 已经中止。
      110 0x006e 系统无法开启指定的 装置或档案。
      111 0x006f 档名太长。
      112 0x0070 磁碟空间不足。

      113 0x0071 没有可用的内部档案识别字。
      114 0x0072 目标内部档案识别字不正确。
      117 0x0075 由应用程式所执行的 ioctl 呼叫 不正确。
      118 0x0076 写入验证参数值不正确。
      119 0x0077 系统不支援所要求的指令。
      120 0x0078 此项功能仅在 win32 模式有效。
      121 0x0079 semaphore 超过逾时期间。
      122 0x007a 传到系统呼叫的资料区域 太小。
      123 0x007b 档名、目录名称或储存体标签语法错误。
      124 0x007c 系统呼叫层次不正确。
      125 0x007d 磁碟没有设定标签。
      126 0x007e 找不到指定的模组。
      127 0x007f 找不到指定的程序。
      128 0x0080 没有子行程可供等待。
      129 0x0081 %1 这个应用程式无法在 win32 模式下执行。
          130 0x0082 attempt to use a file handle to an open disk partition for an operation other than raw disk i/o.
      131 0x0083 尝试将档案指标移至档案开头之前。
      132 0x0084 无法在指定的装置或档案,设定档案指标。
      133 0x0085 join 或 subst 指令 无法用于 内含事先结合过的磁碟机。
      134 0x0086 尝试在已经结合的磁碟机,使用 join 或 subst 指令。
      135 0x0087 尝试在已经替换的磁碟机,使 用 join 或 subst 指令。
      136 0x0088 系统尝试删除 未连结过的磁碟机的连结关系。
      137 0x0089 系统尝试删除 未替换过的磁碟机的替换关系。
      138 0x008a 系统尝试将磁碟机结合到已经结合过之磁碟机的目录。
      139 0x008b 系统尝试将磁碟机替换成已经替换过之磁碟机的目录。
      140 0x008c 系统尝试将磁碟机替换成已经替换过之磁碟机的目录。
      141 0x008d 系统尝试将磁碟机 subst 成已结合的磁碟机 目录。
      142 0x008e 系统此刻无法执行 join 或 subst。
      143 0x008f 系统无法将磁碟机结合或替换同一磁碟机下目录。
      144 0x0090 这个目录不是根目录的子目录。
      145 0x0091 目录仍有资料。
      146 0x0092 指定的路径已经被替换过。
      147 0x0093 资源不足,无法处理这项 指令。
      148 0x0094 指定的路径这时候无法使用。
      149 0x0095 尝试要结合或替换的磁碟机目录,是已经替换过的的目标。
      150 0x0096 config.sys 档未指定系统追踪资讯,或是追踪功能被取消。
      151 0x0097 指定的 semaphore事件 dosmuxsemwait 数目不正确。
      152 0x0098 dosmuxsemwait 没有执行;设定太多的 semaphore。
      153 0x0099 dosmuxsemwait 清单不正确。
      154 0x009a 您所输入的储存媒体标 元长度限制。
       155 0x009b 无法建立其他的执行绪。
      156 0x009c 接收行程拒绝接受信号。
      157 0x009d 区段已经被舍弃,无法被锁定。
      158 0x009e 区段已经解除锁定。
      159 0x009f 执行绪识别码的位址不正确。
      160 0x00a0 传到 dosexecpgm 的引数字串不正确。
      161 0x00a1 指定的路径不正确。
      162 0x00a2 信号等候处理。
      164 0x00a4 系统无法建立执行绪。
      167 0x00a7 无法锁定档案的部份范围。
      170 0x00aa 所要求的资源正在使用中。
      173 0x00ad 取消范围的锁定要求不明显。
      174 0x00ae 档案系统不支援自动变更锁定类型。
      180 0x00b4 系统发现不正确的区段号码。
      182 0x00b6 作业系统无法执行 %1。
      183 0x00b7 档案已存在,无法建立同一档案。
      186 0x00ba 传送的旗号错误。
      187 0x00bb 指定的系统旗号找不到。
      188 0x00bc 作业系统无法执行 %1。
      189 0x00bd 作业系统无法执行 %1。
      190 0x00be 作业系统无法执行 %1。
      191 0x00bf 无法在 win32 模式下执行 %1。
      192 0x00c0 作业系统无法执行 %1。
      193 0x00c1 %1 不是正确的 win32 应用程式。
      194 0x00c2 作业系统无法执行 %1。
      195 0x00c3 作业系统无法执行 %1。
      196 0x00c4 作业系统无法执行 这个应用程式。
      197 0x00c5 作业系统目前无法执行 这个应用程式。
      198 0x00c6 作业系统无法执行 %1。
      199 0x00c7 作业系统无法执行 这个应用程式。
      200 0x00c8 程式码的区段不可以大于或等于 64kb。
      201 0x00c9 作业系统无法执行 %1。
      202 0x00ca 作业系统无法执行 %1。
      203 0x00cb 系统找不到输入的环境选项。
      205 0x00cd 在指令子目录下,没有任何行程有信号副处理程式。
      206 0x00ce 档案名称或副档名太长。
      207 0x00cf ring 2 堆叠使用中。
          208 0x00d0 输入的通用档名字元 * 或 ? 不正确, 或指定太多的通用档名字元。
      209 0x00d1 所传送的信号不正确。
      210 0x00d2 无法设定信号处理程式。
      212 0x00d4 区段被锁定,而且无法重新配置。
      214 0x00d6 附加到此程式或动态连结模组的动态连结模组太多。
      215 0x00d7 can’’’’’’’’t nest calls to loadmodule.
      230 0x00e6 the pipe state is invalid.
      231 0x00e7 所有的 pipe instances 都在忙碌中。
      232 0x00e8 the pipe is being closed.
      233 0x00e9 no process is on the other end of the pipe.
      234 0x00ea 有更多可用的资料。
      240 0x00f0 作业阶段被取消。
      254 0x00fe 指定的延伸属性名称无效。
      255 0x00ff 延伸的属性不一致。
      259 0x0103 没有可用的资料。
      266 0x010a 无法使用 copy api。
      267 0x010b 目录名称错误。
      275 0x0113 延伸属性不适用于缓冲区。
      276 0x0114 在外挂的档案系统上的延伸属性档案已经毁损。
      277 0x0115 延伸属性表格档满。
      278 0x0116 指定的延伸属性代码无效。
      282 0x011a 外挂的这个档案系统不支援延伸属性。
      288 0x0120 意图释放不属于叫用者的 mutex。
      298 0x012a semaphore 传送次数过多。
      299 0x012b 只完成 read/writeprocessmemory 的部份要求。
      317 0x013d 系统找不到位于讯息档 %2 中编号为 0x%1 的讯息。
      487 0x01e7 尝试存取无效的位址。
      534 0x0216 运算结果超过 32 位元。
      535 0x0217 通道的另一端有一个行程在接送资料。
      536 0x0218 等候行程来开启通道的另一端。
      994 0x03e2 存取延伸的属性被拒。
      995 0x03e3 由于执行绪结束或应用程式要求,而异常终止 i/o 作业。
      996 0x03e4 重叠的 i/o 事件不是设定成通知状态。
      997 0x03e5 正在处理重叠的 i/o 作业。
          998 0x03e6 对记忆体位置的无效存取。
      999 0x03e7 执行 inpage 作业发生错误。
      1001 0x03e9 递回太深,堆叠满溢。
      1002 0x03ea 视窗无法用来传送讯息。
      1003 0x03eb 无法完成这项功能。
      1004 0x03ec 旗号无效。
      1005 0x03ed 储存媒体未含任何可辨识的档案系统。 请确定以载入所需的系统驱动程式,而且该储存媒体并未毁损。
      1006 0x03ee 储存该档案的外部媒体发出警告, 表示该已开启档案已经无效。
      1007 0x03ef 所要求的作业无法在全萤幕模式下执行。
      1008 0x03f0 an attempt was made to reference a token that does not exist.
      1009 0x03f1 组态系统登录资料库毁损。
      1010 0x03f2 组态系统登录机码无效。
      1011 0x03f3 无法开启组态系统登录机码。
      1012 0x03f4 无法读取组态系统登录机码。
      1013 0x03f5 无法写入组态系统登录机码。
      1014 0x03f6 系统登录资料库中的一个档案必须使用记录或其他备份还原。 已经还原成功。
      1015 0x03f7 系统登录毁损。其中某个档案毁损、或者该档案的 系统映对记忆体 内容毁损、会是档案无法复原。
      1016 0x03f8 系统登录起始的 i/o 作业发生无法复原的错误。 系统登录无法读入、写出或更新,其中的一个档案 内含系统登录在记忆体中的内容。
      1017 0x03f9 系统尝试将档案载入系统登录或将档案还原到系统登录中, 但是,指定档案的格式不是系统登录档的格式。
      1018 0x03fa 尝试在标示为删除的系统登录机码,执行不合法的操作。
      1019 0x03fb 系统无法配置系统登录记录所需的空间。
      1020 0x03fc 无法在已经有子机码或数值的系统登录机码建立符号连结。
      1021 0x03fd 无法在临时机码下建立永久的子机码。
      1022 0x03fe 变更要求的通知完成,但资讯 并未透过呼叫者的缓冲区传回。呼叫者现在需要自行列举档案,找出变更的地方。
      1051 0x041b 停止控制已经传送给其他服务 所依峙的一个服务。
      1052 0x041c 要求的控制对此服务无效
      1053 0x041d the service did not respond to the start or control request in a timely fashion.
      1054 0x041e 无法建立服务的执行绪。
      1055 0x041f 服务资料库被锁定。
      1056 0x0420 这种服务已经在执行。
      1057 0x0421 帐户名称错误或者不存在。
      1058 0x0422 指定的服务暂停作用,无法启动。
      1059 0x0423 指定循环服务从属关系。
      1060 0x0424 指定的服务不是安装进来的服务。
      1061 0x0425 该服务项目此时无法接收控制讯息。
      1062 0x0426 服务尚未启动。     
        1063 0x0427 无法连线到服务控制程式
  • 面试归来要做什么?(转贴)

    2007-05-16 09:33:17

    感谢信是所有求职战略的必要工具。但是应该发送电子邮件还是传统信件?是手写信函还是打印信函?这个问题至今仍旧困扰着多数久经沙场的求职者。看看下面的建议是否可以对你有所帮助。  

    发送电子致谢函 应聘公司开始如果是通过电子邮件与你约见,那你面试回来后要立即用Email发送感谢信。并一定要在后面附上说明你并非不速之客。电子邮件感谢信较之传统的寄信方式有它鲜明的优势:你可以在面试的当天,有时是在几小时之内,把你的名字再次置于主考官面前。  

    传统信件 如果你面试的是一家正规的、传统的公司,请用传统寄信方式寄出感谢信。是手写还是打印呢?打出来的信比较标准。你不仅能表示喜欢的业务,也能证明你会正确使用称谓、格式和签名。也许为你老板书写信件是你工作的重要组成部分。  

    如果你想向办公室里那些帮助过你的人致谢,那最好是手写。例如,如果一个接待员、助理、办公室经理或其他与面试有关的人员对你有过帮助――就是说他们带你去吃午餐或在面试时为你引过路,那么,手写的感谢信是表达你谢意的最好方式。  

    写什么 一个标准的感谢信应包括如下一些内容:感谢某人为你提供了面试的机会;概括一下面试内容;说明你需要有关面试主考官的任何信息;最重要的是说明你的技能。在最后一段要写上,“这个工作因为什么而非常适合我,我过去有过哪些经验。”  

    面试主考官的记忆是短暂的。感谢信是你最后的机会,它能使你显得与其他想得到这个工作的人不一样。

  • 招聘经理眼中的好简历(转贴)

    2007-05-16 09:31:41

      动词列表是简历编写指南里保留的项目,调查还发现:简历里尽可能的堆满动词、形容词和副词的求职成功率更高。

      几乎所有的人事经理都喜欢选择有效的字句,而不是花样繁多的词藻的简历。


    人事经理心里的单子


      简历中的几个字也会惹恼人事经理,而拒绝继续读简历。有相当多的人事经理以及招聘人员都承认,他们心里有一个单子,上面列着让他们厌恶的字句。

      尽管他们都说自己不太可能因为这些字句而完全拒绝应聘人员,但是他们相信,利用这些字句来吹嘘的简历给人留下印象还不如没有这些字句的。我在本期专栏里总结了一些例子。

      例如,有一个IT公司的人事经理曾经说过,她从来都不喜欢在简历上看到协助(Assist或者Assisted)这样的字眼。“我想知道的是应聘人员(具体)做了什么,而不是他们如何帮助做了什么。如果他们对某项任务足够熟悉,而且想放到简历里,他们就应该使用比‘协助’更好的字,”她解释说。

      一篇关于就业的评论建议将任何“协助”这样的表述改为十分具体的内容,说明应聘者在“协助”的时候做了什么。例如,如果你帮助市场部主任研究哪些个人数字助理(PDA)能够满足部门的需要,那么你就可以在简历中这么写:“为市场部研究PDA。”这样修改之后就说明了具体的内容。

      出于和“协助”相同的理由,人事经理不会喜欢“试验(experimental)”这个字。没有人想听你尝试做过什么——只想听你完成了什么。你不应该写“试用了新的局域网(LAN)管理软件”,而应该说“评估了LAN管理软件。”

      大多数人事经理不喜欢听到任何描述某人怎么好地完成了某项任务的字眼。他们说自己希望了解这个人相关的技能,而且希望自己才是这个人工作效果的评判者。因此,像巧妙地(Skillfully)、有效地(Effectively)、仔细地(Carefully)、迅速地(Quickly)、专业的(Expert)、高明的(Mastered),以及类似的字都会弄巧成拙。

      在上面所提到的所有字中间,任何由技能(Skill)衍生出来的词——尤其是巧妙地(Skillfully)——只会引起更多的嘲笑而不是(会心的)的大笑。雇主和招聘人员更希望在应聘者简历里看到的是谦虚而不是吹嘘。

      “如果你对它并不很在行,那么你为什么要把它放进简历里呢?”一位招聘人员如是说。


    最佳的技能放在最前面的简历是好简历


      明确地表示出在某些方面比别人更好,而且正在使用前面提到过的字眼来说明自己的最佳技能,会引得人事经理更多的注目。只把能够用来相当好地完成任务的技能,以及适合于职位要求的技能列出来。

      一旦你删掉了所有自我评价的字眼,就要重新浏览一遍简历,去掉令人乏味的商业用语,例如:尖端的(cutting-edge)、联络人(liaison)、协调(coordinate)、推动(facilitate)、被证明了的能力(proven ability)、配合(synergy)和改造(transformed)等等。

      人们看到和听到这些字眼太多了,以至于他们再次听到的时候没有一点兴趣。人事经理们说这些字只会占地方,而不会传达有用信息。而且,要知道的是:大多数技术单位的人事经理都会意识到,好的经理人都是注重细节的,所以你可以放心地从你的简历里删掉这些令人乏味的字。


    灵光一现的简历


      简历里加入更多激情,并且尽可能地具体说明你当前和过去的职责——尤其在这些职责是你现在想要申请的职位内容里一部分的时候。没有什么比看到“负责(responsible for)”这个字之后接有一堆寻常的管理任务更扫兴了。

      你是个经理,所以你当然会负责什么东西。准确地告诉人事经理自己的职责是什么,并列出一些来,以帮助他们了解你的工作内容。诸如“管理着X个员工”、“监督Y的资产投资预算”,或者“为Z个雇员建议培训计划”等都是有效的方式,它们能够简明扼要地说明你做的以及取得的成果。尽你所能的具体和详细,但是要记住,你不能够泄漏你当前雇主的机密信息。

      简历应该总是在说明事实,但是它也是一个市场推销的工具,你正在用它将你最珍贵的产品推向市场——求职者自己。  



    出处:HR管理世界

  • 我们常见软件测试的技巧 :

    2007-05-16 08:55:32

    软件测试虽然辛苦,但是掌握了一定的技巧之后将使你事半功倍。
      (1) 边界测试,测试用户输入框中的数值的最大数和最小数,以及为空时的情况。
      (2) 非法测试,例如在输入数字的地方输入字母。
      (3) 跟踪测试,跟踪一条数据的流程,保证数据的正确性。
      (4) 在开始测试时应保证数据的正确性,然后在从系统中找出各种BUG。
      (5) 接口测试,程序往往在接口的地方很容易发生错误,要在此模块测试勿掉以轻心
      (6) 代码重用测试,在开发过程中有些模块功能几乎相同,程序员在重用代码时可能忘记在原有代码上修改或修改不全面,而造成的错误。
      (7) 突发事件测试,服务器上可能发生意外情况的测试。
      (8) 外界环境测试,有些系统在开发时依赖于另外一个系统,当另外一个系统发生错误时, 这个系统所受到的影响的情况。
      (9) 在程序员刚修复Bug之后的地方,再找一找,往往程序员只修复报告出来的缺陷而不去考虑别的功能在修改时可能会重新造成错误。
      (10) 认真做好测试记录在做完一天的测试记录之后,第二天再根据第一天的测试记录重复测试你会发现有未修正的错误。
      (11) 文字测试,如果在系统中有用词不当的地方,我想这是不应该的。
      (12) 系统兼容测试,例如有些程序在IE6能运行正常,到IE5下不能运行。有些程序在WIN2000下能运行,而到WIN98却不能运行。像一些很特别的用户去使用系统,你很有可能发现BUG。
      (13) 用户的易用性测试,往往用户的需求是不断的变化的,而其中的一部份变化的原因,是有用户操作上不方便引起的。

  • 白盒测试中的六种覆盖方法

    2007-05-15 11:08:39


    摘要:白盒测试作为测试人员常用的一种测试方法,越来越受到测试工程师的重视。白盒测试并不是简单的按照代码设计用例,而是需要根据不同的测试需求,结合不同的测试对象,使用适合的方法进行测试。因为对于不同复杂度的代码逻辑,可以衍生出许多种执行路径,只有适当的测试方法,才能帮助我们从代码的迷雾森林中找到正确的方向。本文介绍六种白盒子测试方法:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。

    白盒测试的概述

    由于逻辑错误和不正确假设与一条程序路径被运行的可能性成反比。由于我们经常相信某逻辑路径不可能被执行, 而事实上,它可能在正常的情况下被执行。由于代码中的笔误是随机且无法杜绝的,因此我们要进行白盒测试。

    白盒测试又称结构测试,透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。

    白盒的测试用例需要做到:

    ·保证一个模块中的所有独立路径至少 被使用一次
    ·对所有逻辑值均需测试 true 和 false
    ·在上下边界及可操作范围内运行所有循环
    ·检查内部数据结构以确保其有效性

    白盒测试的目的:通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试;在程序不同地方设立检查点,检查程序的状态,以确定实际运行状态与预期状态是否一致。

    白盒测试的特点:依据软件设计说明书进行测试、对程序内部细节的严密检验、针对特定条件设计测试用例、对软件的逻辑路径进行覆盖测试。

    白盒测试的实施步骤:

    1.测试计划阶段:根据需求说明书,制定测试进度。
    2.测试设计阶段:依据程序设计说明书,按照一定规范化的方法进行软件结构划分和设计测试用例。
    3.测试执行阶段:输入测试用例,得到测试结果。
    4.测试总结阶段:对比测试的结果和代码的预期结果,分析错误原因,找到并解决错误。

    白盒测试的方法:总体上分为静态方法和动态方法两大类。

    静态分析是一种不通过执行程序而进行测试的技术。静态分析的关键功能是检查软件的表示和描述是否一致,没有冲突或者没有歧义。

    动态分析的主要特点是当软件系统在模拟的或真实的环境中执行之前、之中和之后 , 对软件系统行为的分析。动态分析包含了程序在受控的环境下使用特定的期望结果进行正式的运行。它显示了一个系统在检查状态下是正确还是不正确。在动态分析技术中,最重要的技术是路径和分支测试。下面要介绍的六种覆盖测试方法属于动态分析方法。

    白盒测试的优缺点

    1. 优点

    ·迫使测试人员去仔细思考软件的实现
    ·可以检测代码中的每条分支和路径
    ·揭示隐藏在代码中的错误
    ·对代码的测试比较彻底
    ·最优化

    2. 缺点

    ·昂贵
    ·无法检测代码中遗漏的路径和数据敏感性错误
    ·不验证规格的正确性

    六种覆盖方法

    首先为了下文的举例描述方便,这里先给出一张程序流程图。(本文以1995年软件设计师考试的一道考试题目为例,图中红色字母代表程序执行路径)。

    1、语句覆盖

    1)主要特点:语句覆盖是最起码的结构覆盖要求,语句覆盖要求设计足够多的测试用例,使得程序中每条语句至少被执行一次。

    2)用例设计:(如果此时将A路径上的语句1—〉T去掉,那么用例如下)

    X
    Y
    路径
    1
    50
    50
    OBDE
    2
    90
    70
    OBCE

    3)优点:可以很直观地从源代码得到测试用例,无须细分每条判定表达式。

    4)缺点:由于这种测试方法仅仅针对程序逻辑中显式存在的语句,但对于隐藏的条件和可能到达的隐式逻辑分支,是无法测试的。在本例中去掉了语句1—〉T去掉,那么就少了一条测试路径。在if结构中若源代码没有给出else后面的执行分支,那么语句覆盖测试就不会考虑这种情况。但是我们不能排除这种以外的分支不会被执行,而往往这种错误会经常出现。再如,在Do-While结构中,语句覆盖执行其中某一个条件分支。那么显然,语句覆盖对于多分支的逻辑运算是无法全面反映的,它只在乎运行一次,而不考虑其他情况。

    2、判定覆盖

    1)主要特点:判定覆盖又称为分支覆盖,它要求设计足够多的测试用例,使得程序中每个判定至少有一次为真值,有一次为假值,即:程序中的每个分支至少执行一次。每个判断的取真、取假至少执行一次。

    2)用例设计:

    X
    Y
    路径
    1
    90
    90
    OAE
    2
    50
    50
    OBDE
    3
    90
    70
    OBCE

    3)优点:判定覆盖比语句覆盖要多几乎一倍的测试路径,当然也就具有比语句覆盖更强的测试能力。同样判定覆盖也具有和语句覆盖一样的简单性,无须细分每个判定就可以得到测试用例。

    4)缺点:往往大部分的判定语句是由多个逻辑条件组合而成(如,判定语句中包含AND、OR、CASE),若仅仅判断其整个最终结果,而忽略每个条件的取值情况,必然会遗漏部分测试路径。

    3、条件覆盖

    1)主要特点:条件覆盖要求设计足够多的测试用例,使得判定中的每个条件获得各种可能的结果,即每个条件至少有一次为真值,有一次为假值。

    2)用例设计:

    X
    Y
    路径
    1
    90
    70
    OBC
    2
    40
    OBD

    3)优点:显然条件覆盖比判定覆盖,增加了对符合判定情况的测试,增加了测试路径。

    4)缺点:要达到条件覆盖,需要足够多的测试用例,但条件覆盖并不能保证判定覆盖。条件覆盖只能保证每个条件至少有一次为真,而不考虑所有的判定结果。

    4、判定/条件覆盖

    1)主要特点:设计足够多的测试用例,使得判定中每个条件的所有可能结果至少出现一次,每个判定本身所有可能结果也至少出现一次。

    2)用例设计:

    X
    Y
    路径
    1
    90
    90
    OAE
    2
    50
    50
    OBDE
    3
    90
    70
    OBCE
    4
    70
    90
    OBCE

    3)优点:判定/条件覆盖满足判定覆盖准则和条件覆盖准则,弥补了二者的不足。

    4)缺点:判定/条件覆盖准则的缺点是未考虑条件的组合情况。

    5、组合覆盖

    1)主要特点:要求设计足够多的测试用例,使得每个判定中条件结果的所有可能组合至少出现一次。

    2)用例设计:

    X
    Y
    路径
    1
    90
    90
    OAE
    2
    90
    70
    OBCE
    3
    90
    30
    OBDE
    4
    70
    90
    OBCE
    5
    30
    90
    OBDE
    6
    70
    70
    OBDE
    7
    50
    50
    OBDE

    3)优点:多重条件覆盖准则满足判定覆盖、条件覆盖和判定/条件覆盖准则。更改的判定/条件覆盖要求设计足够多的测试用例,使得判定中每个条件的所有可能结果至少出现一次,每个判定本身的所有可能结果也至少出现一次。并且每个条件都显示能单独影响判定结果。

    4)缺点:线性地增加了测试用例的数量。

    6、路径覆盖

    1)主要特点:设计足够的测试用例,覆盖程序中所有可能的路径。

    2)用例设计:

    X
    Y
    路径
    1
    90
    90
    OAE
    2
    50
    50
    OBDE
    3
    90
    70
    OBCE
    4
    70
    90
    OBCE

    3)优点:这种测试方法可以对程序进行彻底的测试,比前面五种的覆盖面都广。

    4)缺点:由于路径覆盖需要对所有可能的路径进行测试(包括循环、条件组合、分支选择等),那么需要设计大量、复杂的测试用例,使得工作量呈指数级增长。而在有些情况下,一些执行路径是不可能被执行的,如:
    If (!A)B++;
    If (!A)D--;

    这两个语句实际只包括了2条执行路径,即A为真或假时候对B和D的处理,真或假不可能都存在,而路径覆盖测试则认为是包含了真与假的4条执行路径。这样不仅降低了测试效率,而且大量的测试结果的累积,也为排错带来麻烦。

    总结

    白盒测试是一种被广泛使用的逻辑测试方法,是由程序内部逻辑驱动的一种单元测试方法。只有对程序内部十分了解才能进行适度有效的白盒测试。但是贯穿在程序内部的逻辑存在着不确定性和无穷性,尤其对于大规模复杂软件。因此我们不能穷举所有的逻辑路径,即使穷举也未必会带来好运(穷举不能查出程序逻辑规则错误,不能查出数据相关错误,不能查出程序遗漏的路径)。

    那么正确使用白盒测试,就要先从代码分析入手,根据不同的代码逻辑规则、语句执行情况,选用适合的覆盖方法。任何一个高效的测试用例,都是针对具体测试场景的。逻辑测试不是片面的测试正确的结果或是测试错误的结果,而是尽可能全面地覆盖每一个逻辑路径。

  • 怎么样提高软件测试员自身素质培养?(转帖)

    2007-05-15 10:44:39

    怎么样提高软件测试员自身素质培养?

      (1) 首先,应对软件测试感兴趣和对自己有自信,如果具备了这两点,那么在开发过程中不管遇到什么样的困难,我相信你一定能克服。

      (2) 善于怀疑,世界上没有绝对正确的,总有错误的地方,具有叛逆心理,别人认为不可能发生的事,我却认为可能发生。别人认为是对的,我却认为不是对的。

      (3) 打破砂锅问到底的精神,对于只出现过一次的bug,一定找出原因,不解决誓不罢休。

      (4) 保持一个良好的心情,否则可能无法把测试作好。不要把生活中的不愉快的情绪带到工作中来

      (5) 做测试时要细心,不是所有的bug都能很容易的找出,一定要细心才能找出这些bug。

      (6) 灵活一些,聪明一点,多制造一些容易产生bug的例子。

      (7) 在有条件的情况下,多和客户沟通,他们身上有你所需要的。

      (8) 设身处地为客户着想,从他们的角度去测试系统。

      (9) 不要让程序员,以“这种情况不可能发生”这句话说服你,相反,你应该去说服他,告诉他在客户心里,并不是这样的。

      (10) 考虑问题要全面,结合客户的需求、业务的流程、和系统的构架,等多方面考虑问题。

      (11) 提出问题不要复杂化,这一点和前面的有点矛盾,如果你是一新手,暂时不要管这一点,因为最终将有你的小组成员讨论解决。

      (12) 追求完美,对于新测试员来说,努力的追求完美,这对你很好,尽管有些事无法做到,但你应该去尝试。

      (13) 幽默感,能和开发小组很好的沟通是关键,试着给你的开发小组找一个“BUG杀手”,或对他们说“我简直不敢相信,你写的程序居然到现在没有找到BUG”。

      (14) 到此是不是对测试很有兴趣呢?不过我要告诉你,测试过程中有酸甜苦辣,其中的滋味只有你知道,也许你会感到枯燥,要学会放松自己,去溜冰或做你喜欢做的事,不过,别放弃,因为你的自信告诉过你“你会是很优秀的测试员”不是吗?

    我们常见软件测试的技巧 :

      软件测试虽然辛苦,但是掌握了一定的技巧之后将使你事半功倍。

      (1) 边界测试,测试用户输入框中的数值的最大数和最小数,以及为空时的情况。

      (2) 非法测试,例如在输入数字的地方输入字母。

      (3) 跟踪测试,跟踪一条数据的流程,保证数据的正确性。

      (4) 在开始测试时应保证数据的正确性,然后在从系统中找出各种BUG。

      (5) 接口测试,程序往往在接口的地方很容易发生错误,要在此模块测试勿掉以轻心。

      (6) 代码重用测试,在开发过程中有些模块功能几乎相同,程序员在重用代码时可能忘记在原有代码上修改或修改不全面,而造成的错误。

      (7) 突发事件测试,服务器上可能发生意外情况的测试。

      (8) 外界环境测试,有些系统在开发时依赖于另外一个系统,当另外一个系统发生错误时, 这个系统所受到的影响的情况。

      (9) 在程序员刚修复Bug之后的地方,再找一找,往往程序员只修复报告出来的缺陷而不去考虑别的功能在修改时可能会重新造成错误。

      (10) 认真做好测试记录在做完一天的测试记录之后,第二天再根据第一天的测试记录重复测试你会发现有未修正的错误。

      (11) 文字测试,如果在系统中有用词不当的地方,我想这是不应该的。

      (12) 系统兼容测试,例如有些程序在IE6能运行正常,到IE5下不能运行。有些程序在WIN2000下能运行,而到WIN98却不能运行。像一些很特别的用户去使用系统,你很有可能发现BUG。

      (13) 用户的易用性测试,往往用户的需求是不断的变化的,而其中的一部份变化的原因,是有用户操作上不方便引起的。
  • 简历

    2007-05-15 10:20:28

    此空间已闲置,个人主页已转到http://www.hixk.net

272/2<12
Open Toolbar