眼镜行的孤度网络测试器怎么用该怎样使用

内容简介 ······

《软件测试》昰一本讲解软件测试的入门书借助WindoWS95/98和 Windows NT/2000附带的计算器、记事本和写字板等常用小应用程序方法介绍了软件测试的通用方法,可以用于測试任何计算机软件全部内容包括基本的和高级的软件测试技术、软件测试在软件开发过程的运用、利用自动化方法提高测试效率、计劃和编制测试目标、报告发现的问题、评估测试目标和产品进度、测试和质量认证的区别,以及软件测试员职业指导《软件测试》适合對软件测试感兴趣的学生和爱好者。同时对软件开发小组中希望增强知识并了解软件测试的程序员、软件工程管理员具有指导意义

作者簡介 ······

Ron Patton具有近20年软件测试和软件质量保证的工作经验,从事过各种产品的软件测试从关键任务到儿单绘图程序。普先后就职于德州仪器公司、西门子公司和微软公司担任过质量保证工程师、软件测试经理等职务。他现在是一个独立的软件项目管理和软件质量保证咨询师

第一部分 软件测试综述
第三部分 运用测试技术
第五部分 使用测试文档
第六部分 软件测试展望

第一部分 软件测试综述

第三部分 运用測试技术

第五部分 使用测试文档

第六部分 软件测试展望

喜欢读"软件测试"的人也喜欢的电子书 ······

  • 0

    看完对软件测试有了大概的印象,介紹的比较浅显另外版本有点老了,关于自动化测试介绍的比较少

  • 0

    看完对软件测试有了大概的印象介绍的比较浅显,另外版本有点老了关于自动化测试介绍的比较少

  • 无论是一部作品、一个人,还是一件事都往往可以衍生出许多不同的话题。将这些话题细分出来分别進行讨论,会有更多收获

    前一段时间和公司的一些同事聊软件测试,推荐我阅读两本书这本是其中之一。看起来这本书似乎已经成為软件测试入门的经典。 刚刚看完我认为作者似乎是想涉及到软件测试的每一个领域,但是却并不想执着于细节目的是给读者一个全局观,像飞鸟一样翱翔在软件测试的天空...  (

    这篇书评可能有关键情节透露

    今天匆匆看完了软件测试的后半部分,之前已经陆陆续续的看了湔半部分总的感觉还是不错的,算是对软件测试的入门介绍吧 我认为本书前两个部分——软件测试综述和软件测试基础——是全书的精华。第一部分对软件测试和软件开发做了提纲挈领的介绍很多东西我觉得总结的很好...  (

    想从事软件测试行业的,入门相必都读过此书簡单,通俗易懂。等你读过那些所谓的大部头经过实际的项目,回过头来看看还是这些东西,怎么都逃不出这本书的范围也在网仩看过不少的教材,稍微好点的基本都是脱胎于此书所谓的另立独行,自以为高明的全是些剑走偏峰的...  (

    什么是缺陷 1没有达到设计标准嘚 2在设计书中没有标识的异常和错误 3超出设计的功能实现 4设计书的缺陷 5用户体验的问题 Fu****k  (

    之前给新人推荐入门的软件测试书籍,我一般会推薦京东上排名靠前的《软件测试(第二版)》但是之前我也只是简单的翻了一下,所以没有给更详细的建议 这次抽时间把全书看了一遍,总体感觉在基础知识普及上国内写的书会更接地气一些,特别是一些实用方法和基础概念国内会...  (

    读英文版的学学英语还勉强吧。 峩当时读就是为了过一下测试人员的常用英语后来看了几章。 发现内容太浅显了英语也太通顺了。 难怪我看的比较懂又感觉什么都沒学到。 适合借阅不值得购买,没有保存价值  (

    这篇书评可能有关键情节透露

    致软件: 软件测试工程师不负责软件的质量! 医生测量体溫不能退烧、气象专家测量风速不能阻止阻止风暴,同样软件测试工程师寻找缺陷并不能使质量低劣的产品变好! 软件测试工程师只能报告事实、提供数据即便测试工程师竭尽全力使发现的bug都得以修复,也不能使质量本身低劣...  (

    2015年股市很火爆互联网金融揭竿而起,软件测試与开发也受到众多想跨行业工作者的喜爱众所周知,软件行业工资高于平均薪资水平最近有朋友和网友向我咨询软件测试的事情,夶意是:小白如何入门软件测试行业且听我说。 我从事软件测试行业整整5年先说点我的测试经历,...  (

    可能看软件测试视频更好一点 大家鈳以加群 更容易理解 有软件测试视频还有公开课 看书的话容易犯困 哈哈哈 书的内容比较简单适合入门的人对软件测试有个理论的认识。語言也不太枯燥是难得一本让我看完整的书,可能是因为书也不厚的关系  (

    • 第一部分 软件测试综述 第1章 软件测试背景 软件缺陷: 软件未达箌产品说明书标明的功能; 软件出现了产品说明书指明不会出现的错误; 软件功能超出产品说明书指明范围; 软件未达到产品说明书虽未指出但应达到的目标; 软件测试员认为软件难以理解、不易使用、运行速度缓慢或者最终用户认为不好。 导致软件缺陷最大的原因是产品说明书 软件缺陷的第二大来源是设计方案。
      第一部分 软件测试综述 第1章 软件测试背景 软件缺陷: 软件未达到产品说明书标明的功能; 軟件出现了产品说明书指明不会出现的错误; 软件功能超出产品说明书指明范围; 软件未达到产品说明书虽未指出但应达到的目标; 软件測试员认为软件难以理解、不易使用、运行速度缓慢或者最终用户认为不好。 导致软件缺陷最大的原因是产品说明书 软件缺陷的第二夶来源是设计方案。 第2章 软件开发过程 产品说明书、进度表、软件设计文档(构架、数据流图、状态图、流程图、注释代码)、测试文档(测试计划、测试案例、软件缺陷报告、归纳统计和总结) 软件产品的组成:帮助文件、用户手册、样本和示例、标签和帖子、产品支歭信息、图标和标志、错误信息、广告和宣传材料、安装、说明文件。 最常用的软件开发模式:大棒式、边写边改式、流水式(创意;分析;设计;开发;测试;最终产品)、螺旋式(确定目标、可选方案和限制条件;指出并解决风险;评估方案;本阶段开发和测试;计划丅一阶段;确定进入下一阶段的方法) 第3章 软件测试的实质 完全测试程序是不可能的: 输入量太大; 输出结果太多; 软件实现途径太多; 软件说明书没有客观标准。 第二部分 测试基础 第4章 检查产品说明书 产品说明书通常是利用文字和图形描述产品的书面问道 静态测试是指测试不运行的部分——只是检查和审阅。 动态测试是指通常意义上的测试——运行和使用软件 测试产品说明书属于静态黑盒测试。 对產品说明书进行高级审查: 设身处地为客户着想; 研究现有的标准和规范(公司惯用语和约定、行业要求、国家标准、图形用户界面、硬件和网络标准); 审查和测试同类软件(规模、复杂性、测试性、质量/可靠性); 产品说明书属性检查清单:完整准确。精确、不含糊、清晰一致。贴切合理。代码无关可测试。 第5章 闭着眼睛测试软件 选择测试案例是软件测试人员最重要的一项任务不正确的选择鈳能导致测试量过大或过小,甚至测试目标不对准确评估风险,把不可穷尽的可能性减少到可以控制的范围是成功的诀窍 软件测试有兩个基本方法,通过测试和失败测试 在设计和执行测试案例时,总是首先进行通过测试在破坏性试验之前看看软件基本功能是否实现昰很重要的,否则在正常使用软件时就会奇怪为什么有那么多软件缺陷 选择测试用例的方法是等价分配,优势成为等价划分等价分配僦是指分步骤的把过多的测试案例减小到同样有效地小范围的过程。 等价类别或者等价区间是指测试相同目标或者暴露相同软件缺陷的一組测试案例在寻找等价区间时,想办法把软件的相似输入、输出、操作分成组这些组就是等价区间。 如果为了减少测试案例的数量过喥进行等价分配测试漏掉软件缺陷的风险就会增加。 软件由两个最基本的要素组成:数据和程序数据包括键盘输入、鼠标单击、磁盘攵件、打印输出等等。程序是指可执行的流程、转换、逻辑和运算软件测试常用的一个方法是把测试工作按同样的形式划分。 对数据进荇软件测试就是在检查用户输入的信息、返回结果以及中间计算结果知否正确。 等价分配的主要原则:边界条件、次边界条件、空值和無效数据 边界条件是指软件计划的操作界限所在的边缘条件。边界的数据类型:数值、速度、字符、地址、位置、尺寸、数量如果建竝两个等价区间就可以找出更多软件缺陷:认为应该正确的数据,认为可能出现错误的数据 一定要考虑建立处理默认值、空白、空值、零值或者无输入等条件的等价区间。 软件测试的另一半是通过不同的状态验证程序的逻辑流程软件状态是指软件当前所处的情况或者模式。解决方法是运用等价分配技术选择状态和分支因为选择不做完全测试,所以要承担一定的风险但是通过合理选择减少危险。 状态測试—— 第一步是建立软件的状态转换图包括软件可能进入的每一种独立状态、从一种状态转入另一种状态所需的输入和条件、进入或退出某种状态时的设置条件及输出结果。 第二步是减少要测试的状态及转换的数量每种状态至少访问一次、测试看起来最常见最普遍的狀态转换、测试状态之间最不常用的分支、测试所有错误状态及其返回值、测试随机状态转换。 测试状态及其转换包括检查所有的状态变量——与进入和退出状态相关的静态条件、信息、值、功能等等 状态测试的通过测试包括审查软件、描绘状态、尝试各种合法可能性、確认状态及其转换正常。失败测试包括竞争条件、重复、压迫和重负 竞争条件测试难以设计,最好是首先仔细查看状态转换图中的每一個状态以找出哪些外部影响会中断该状态。考虑要使用数据如果没有准备好或者在用到时发生了变化,状态会怎样 重复测试是不断執行同样的操作。这样做的主要原因是看内存是否不足 压迫测试是使软件在不够理想的条件下运行——内存小、磁盘空间少、CPU速度慢、網速慢。观察软件对外部资源的要求和依赖的程度压迫测试就是将支持降到最低限度,目的在于尽可能地现值软件的必要条件 重负测試与压迫测试相反,它是尽量提供条件任其发挥让软件处理尽可能大的数据文件。最大限度的发掘软件的能力让它不堪重负。时间也昰一种重负测试 重复、压迫和重负测试应该联合使用,同时进行 在设计测试案例或者初次查看软件时,要设法像愚笨的用户那样想问題抛开关于软件应该如何工作的先入之见。 在一家找到软件的地方再找的原因:找到的软件缺陷越多就说明那里的软件缺陷越多。许哆程序员倾向于只修复报告出来的软件缺陷不多也不少。 第6章 检查代码 静态测试是指测试非运行部分——检查和审查白盒测试是指访問代码,能够查看和审查 静态白盒测试是在不执行的条件下有条理的仔细审查软件设计、体系结构和代码,从而找出软件缺陷的过程囿时称为结构分析。 进行静态白盒测试的首要原因是尽早发现软件缺陷以找出动态黑盒测试难以揭示或遇到的软件缺陷。另外一个好处昰为接受软件测试的黑盒测试人员能够应用的测试用例提供思路。 对于静态白盒测试最不幸的是常常不能善终 正是审查就是进行静态皛盒测试的过程。有四个基本要素:确定问题(针对代码的出错项目和遗漏项目)、遵守规则、准备、编写报告 除了发现问题,坚持正式审查还有一些间接效果:交流、质量、小组同志化、解决方案 召集小组成员进行初次正式审查最简单的方法是通过同事审查的方式。瑺常仅在编写代码的程序员和充当审查者的其他一两个程序员和测试员之间进行 公开陈述是使同事审查正规化的下一步。 检验是最正式嘚审查类型具有高度组织化,要求每一个参与者都接受训练它被证实是所有软件交付内容中,特别是设计文档和代码中发现软件缺陷朂有效的方法 坚持标准或规范的原因:可靠性、可读性/维护性、移植性。 标准由4个主要部分组成:标题、标准、解释说明、示例 《Sams Teach Yourself Begining Programming in 24 Hours》 通用代码审查清单: 数据引用错误。是指使用未经正确初始化用法和引用方式的变量、常量、数组、字符串或记录而导致的软件缺陷 是否引用了未初始化的变量? 数组和字符串的下标是整数值吗下标总是在数组和字符串大小范围之内吗? 在检索操作或应用数组下标时是否包含“丢掉一个”这样的潜在错误 是否在应该使用常量的地方使用了变量? 变量是否被赋予不同类型的值 为引用的指针分配内存了嗎? 一个数据结构是否在多个函数或者子程序中引用在每一个引用中明确定义结构了吗? 数据声明错误原因是不正确的声明或使用变量和常量。 所有的变量都赋予正确的长度、类型和存储类了吗 变量是否在声明的同时进行了初始化? 变量有相似的名称吗 存在声明过、但从未引用或者只引用过一次的变量吗? 在特定模块中所有变量都显式声明了吗 计算错误。 计算中是否使用了不同数据类型的变量 計算中是否使用了不同数据类型相同但不同长度的变量? 计算时是否了解和考虑到编译器对类型或长度不一致的变量的转转换规则 赋值嘚目的的变量是否小于赋值表达式的值? 在数值计算过程中是否可能出现溢出 除数/模是否可能为零? 对于整数算术运算某些计算,特別是除法的代码处理是否会丢失精度 变量的值是否超过有意义的范围? 对于包含多个操作数的表达式求值的次序是否混乱,运算优先級对吗 比较错误。小于、大于、等于、不等于、真、假 比较的正确吗? 存在分数或者浮点值之间的比较吗 每一个逻辑表达时都正确表达了吗? 逻辑表达式的操作数是逻辑值吗 控制流程错误。 如果程序包含begin...end和do...while等语句组end是否对应? 程序、模块、子程序和循环能否中止如果不能,可以接受吗 可能存在永远不停的循环吗? 循环可能从不执行吗如果是这样,可以接受吗 如果程序包含像switch...case语句这样的多個分支,索引变量能超出可能的分支数目吗如果超出,该情况能正确处理吗 是否存在“丢掉一个”错误,导致意外进入循环 子程序參数错误。来源是软件子程序不正确的传递数据 子程序接受的参数类型和大小与调用代码发送的匹配吗?次序正确吗 如果子程序有多個入口点,引用的参数是否与当前入口点没有关联 常量是否当做形参传递,意外在子程序中改动 子程序是更改了仅作为输入值的参数? 每一个参数的单位是否与相应的形参匹配 如果存在全局变量,在所有引用子程序中是否有相似的定义和属性 输入/输出错误。包括文件读取、接受键盘或者鼠标输入以及向打印机或者屏幕等输入设备写入错误 软件是否严格遵守外部设备读写数据的专用格式? 文件或者外设不存在或者为准备好的错误情况有处理吗 软件是否处理外部设备未连接、不可用,或者读写过程中存储空间占满等情况 软件以预期方式处理预计的错误吗? 检查错误提示信息的准确性、正确性、语法和拼写了吗 其他检查。 软件是否使用其他外语是否处理扩展ASCII字苻?是否需要用统一编码取代ASCII 软件是否要移植到其他编译器和CPU,具有这样做的许可吗 是否考虑了兼容性,以使软件能够运行于不同数量的可用内存不同的内部硬件? 程序编译是否产生“警告”或者“提示”信息 执行途径:自动执行大量工作的商业软件、可以阅读程序源文件的软件,并根据公开标准和自定义规范进行检查 第7章 带上X光眼镜检查软件 动态白盒测试是指利用查看代码功能和实现方式得到嘚信息来确定哪些要测试,哪些不要测试如何开展测试。也称为结构测试 动态白盒测试不仅仅是查看代码,还包括直接测试和控制测試动态白盒测试包括以下4个部分: 直接测试底层功能、过程、子程序和库。称为应用程序编程接口(API) 以完整程序的方式从顶层测试軟件,但是根据对软件运行的了解调整测试案例 从软件获得读取变量和状态信息的访问权,以便确定测试与预期结果是否相符同时,強制软件以正常测试难以实现的方式运行 估算执行测试时“命中”的代码量和具体代码,然后调整测试去掉多余的,补充遗漏的 动態白盒测试的目标是寻找软件缺陷,调试的目标是修复它们程序员编写代码,测试员寻找软件缺陷可能还要编写一些代码来驱动测试,然后程序员修复软件缺陷 软件测试员可能要使用代码级调试器单步执行程序,观察变量设置断点条件等。对于要求合法性检查的独竝代码模块还要编写测试程序进行测试。 在底层进行的测试称为单元测试或者模块测试等到单元经过测试,底层软件缺陷被找出并修複之后就集成在一起,对模块组进行集成测试之后加入越来越多的软件片段,直至整个产品——至少是产品的主要部分——在称为系統测试的过程中一起测试 这种递增测试有两条途径:自底向上和自顶向下。 在自底向上测试中要编写称为测试驱动的模块,测验正在測试的模块测试驱动模块以将来真正模块同样的方式挂接,向处于测试的模块发送测试案例数据接受返回结果,验证结果是否正确從而可以对整个软件进行测试,为它提供全部类型和数量的数据甚至高层难以发送的数据。 自顶向下的测试有点像小规模的大棒模式 單元测试: 首先可以确定该模块属于程序中的底层模块,可以由高层模块调用但是自己不能调用其他模块。合理的做法是编写一个测试驅动以独立于程序其他部分的形式测验该模块 测试驱动将发送测试字符串,读取这些字符串的返回值与预期结果比较。测试驱动完全鈳以用与函数相同的语言编写 测试驱动有多种形式,可以使简单对话框用于输入测试字符串并查看结果,也可以是从文件读取测试字苻串和预期结果的独立程序由于用户驱动的对话框交互性和灵活性强,可以用于黑盒测试而独立驱动可以极其快速的直接从文件读写測试案例。 下一步要分析说明书确定应该采用的黑盒测试案例,然后运用等价分配技术减少测试案例集合 最后,研究代码看函数是如哬实现的利用模块的白盒知识增减测试案例。 在进行白盒测试之前一定要根据说明书建立黑盒测试案例。用这种方式可以真正测试模塊的用意如果先从模块的白盒角度建立测试案例,检查代码就会偏向模块工作方式建立测试案例。程序员或许错误的解释说明于是測试案例就会不对。他们虽然仔细精确地测试了模块但是可能不准确,因为没有测试预期的操作 根据白盒知识增加测试案例其实是对內部信息等价分配的进一步提炼。 像黑盒测试那样把软件分成数据和状态从同样的角度看待软件,可以轻松地把得到的白盒信息映射到巳经写完的黑盒案例中 首先考虑数据。数据包括所有的变量、常量、数组、数据结构、键盘和鼠标输入、文件、屏幕输入/输出以及调淛解调器、网络等其他设备的输入/输出。 还必须测试程序的状态以及其中的程序流程必须设法进入和退出每一个模块,执行每一行代码追踪每一条逻辑和决策分支。 数据范围—— 数据流范围主要是指在整个软件中跟踪一批数据。在单元测试中数据仅仅通过了一个模塊或者函数。同样的跟踪方式可以用于多个集成模块甚至整个软件产品。如果在底层测试函数就会使用调试器和观察变量在在程序运荇的同时查看代码。通过黑盒测试只能知道变量开始和结束的值。通过动态白盒测试还可以在程序运行期间检查立即值。根据观察结果就可以决定更改某些测试用例 次边界。特别注意内部数据表这里汇集了大量次边界条件。 公式和等式还要查看它们使用的变量,茬程序正常输入和输出之外为其建立测试案例和等价区间。 错误强制如果执行在调试器测试程序,不仅能够变量的值还可以强制为其赋值。小心不要设立现实中不可能出现的情况使用错误强制的好方法是迫使软件中的所有错误提示信息显示出来。 代码范围—— 代码范围分析属于一种动态白盒测试最简单的形式是利用编译环境的调试器通过单步执行程序产科代码。代码范围分析器获得的统计结果可知:测试用例没有覆盖软件的哪些部分;哪些测试用例是多余的;为了使范围更准确需要建立什么样的新测试案例;还可以得到软件质量的大致印象。 程序语句和代码行范围 分支范围。试图覆盖软件中的所有路径成为路径测试最简单的形式称为分值范围测试。 条件范圍将分置于句的附加条件考虑在内。 【静态黑盒】检查产品说明书并在投入软件编写之前找出问题。 【动态黑盒】在不了解软件如何笁作的前提下进行测试 【静态白盒】通过正式审查和检验检查代码的细节。 【动态白盒】在看到软件的工作方式时根据获得的信息对軟件进行测试。 第三部分 运用测试技术 第8章 配置测试 配置测试是指使用各种硬件来测试软件操作的过程 基于标准Windows的PC机在家用和商用领域囿哪些配置:主机。组件外设。接口可选项和内存。设备驱动程序 判断缺陷是配置问题而不仅是普通缺陷最可靠的方法是:在另外┅台有完全不同配置的计算机上一步步执行导致问题的相同操作。如果缺陷没有产生就极有可能是配置问题。如果缺陷在多种配置中出現就可能只有普通缺陷。 找出问题所在: 软件可能包含在多种配置中都会出现的缺陷 软件可能包含只在某一个特殊配置中出现的缺陷。 硬件设备或者其设备驱动程序可能包含仅由软件揭示的缺陷 硬件设备或者其设备驱动程序可能包含借助许多其他软件才能看出的缺陷。 前两种情况下 直接可以看出要由开发小组负责修复缺陷;后两种情况下,责任不那么清晰 计算工作量:需要找出一个方法把巨大无仳的配置可能性减少到尽可能控制的范围。 确定测试哪些设备和如何测试的决定过程是相当直观的等价分配工作什么重要,怎样才会成功是决定的内容。 计划配置测试时应该采用的一般过程: 确定所需的硬件n.b.联机注册。 确定哪些硬件商标、型号和驱动程序可用研究┅下看是否有某些设备是相互翻版、大同小异,属于同一个等价区间确定要测试的设备驱动程序。 确定可能的硬件特性、模式和选项烸一种设备都有选项,软件没必要全部支持 将明确后的硬件配置缩减为可控制范围。用于把众多配置等价分配为较小范围的决定过程最終取决于软件测试员和开发小组(生产厂商、型号、驱动程序版本、可选项、流行程度、类型和年头) 明确使用硬件配置的软件的唯一特性。只需测试那些与硬件交互方式互不相同(不同等价区间)的特性即可 设计在每一种配置中执行的测试案例。 在每种配置中执行测試 反复测试直到小组对结果满意为止。 获得硬件:只买可以活着将会经常使用的配置;与硬件生产厂商联系看他们是否能够租借甚至贈送某些硬件;向全公司的人发送演示版或者电子邮件。 第9章 兼容性测试 兼容性测试是指检查软件之间是否正确的交互和共享信息交互鈳以在同时运行于同一台计算机上,甚至在通过网络连接的不同的计算机上的两个程序之间进行交互还可以简化为在软盘上保存数据,嘫后拿到其他房间的计算机上 兼容性测试需要解答的问题: 软件设计要求与何种其他平台(操作系统、浏览器或者操作环境)和应用软件保持兼容。 应该遵守何种定义软件之间交互的标准或者规范 软件使用何种数据与其他平台和软件交互交互和共享信息。 这些都是基本嘚静态测试既有黑盒也有白盒。包括整体分析产品说明书和所有支持说明书。 选择目标平台或者兼容的应用程序实际上是程序管理或市场定位的任务软件设计用于某个操作系统、浏览器或者其他平台要由熟悉客户基本情况的人来决定,还要明确软件需要兼容的版本 姠后兼容是指可以使用软件的以前版本。向前兼容是指可以使用软件的未来版本 测试平台和软件应用程序多个版本相互之间能否正常工莋可能是一个艰巨的任务。 在开始兼容性测试任务之前需要对所有可能的软件组合等价分配,使其成为验证软件之间正确交互的最小有效集合 决定选择程序的原则是:流行程度、念头、类型、生产厂商。 如何进行实际测试: 研究可能适用于软件或者平台的标准和规范汾为高级和低级。高级标准是产品普遍遵守的规章例如外观和感觉、支持特性等等。低级标准是本质细节例如文件格式、编程语言语法、用于共享信息的任何形式、网络通信协议等等。 数据共享兼容性文件保存和文件读取。文件导出和文件导入剪切、复制和粘贴。 對所有可能的兼容软件进行等价分配使其成为可以控制的范围。 研究适用于测试软件的高级/低级标准和规范把它们当做产品说明书的補充内容。 测试软件程序之间不同的数据流动方式其中的数据交换就是程序之间保持兼容的因素。 第10章 外国语言测试 除了语言还需要栲虑地域——用户的国家和地理位置。使软件适应特定地域特征照顾到语言、方言、地区习俗和文化的过程成为本地化。 可能出现的翻譯问题中最直接的例子是成为文本扩展的现象 当英语被翻译为其他语言时,往往需要加一些字符 一个好的大拇指规则是预计每个单词長度增加100%。 必须仔细测试可能受到变长文本影响的软件部分要找出没有正确换行、截断的和连字符位置不对的文本。它们可能出现在任哬地方——屏幕、窗口、矿体和按钮等还要找到文本没有扩展空间的情况,文本的部分内容会丢失 变长文本还可能导致主程序失败,甚至系统崩溃 ASCII只能表示256种不同的字符。 Unicode为每一个字符提供唯一编号无论何种平台,无论何种程序无论何种语言。 在软件的本地化版夲中需要测试所有热键和快捷键工作是否正在,而且易用同时,不要忘记检查英文热键和快捷键是否被禁用 本地化软件,甚至非本哋化软件中存在的一个常见问题是扩展字符的处理扩展字符是指普通英文字母A~Z和a~z之外的字符。 测试扩展字符的方法是找到软件中所有接受字符输入和输出之处在每一处都尝试使用扩展字符,看能否与常规字符一样处理对话框、登陆画面和所有文本域都是合适的对象。 確保测试扩展字符是否正确处理最简单的方法是把他们加入测试的标准字符所在的等价区间。 与扩展字符有关的问题是软件对其进行计算时如何解释两个例子是文字排序和大小写转换。 要弄清楚测试的语言采用什么样的排序规则并开发测试案例专门检查排序次序。 翻譯中有一个大难题是某些语言从右向左读而不是从左向右读。 另一个翻译问题是处理图形中的文字当软件本地化时,每一个图标都要妀变以反映新的语言。 使文字与代码脱离所有文本字符串、错误提示信息和其他真正可以翻译的内容都应该存放在与源代码独立的文件中。 大多数本地化人员要修改的是成为资源文件的简单文本文件该文件包含软件可以显示的全部内容。当软件运行时通过查找该文件来引用信息,不管信息的内容是什么 在代码动态生成文本信息时,不要让代码分断字符串也不要用代码连接字符串。 如果测试将要夲地化的产品就需要仔细检查内容,以确保其适应使用该软件的地区这里指的是产品中除了代码之外的所有东西,比如范例文档图標,图片声音,视频剪辑帮助文件,有边界争端的地图市场宣传材料,包装Web连接等。 不同的地区使用不同的数据单位格式比如,度量单位、数字、货币、日期、时间、日历、地址、电话号码、纸张大小为了正确测试软件,需要从软件原版的测试数据中建立不同嘚等价区间 关于配置和兼容性测试的信息对于软件本地化版本测试相当重要。 国外平台配置软件可能会用到的任何外设都要在平台配置和兼容性测试的等价区间中考虑。在设计等价区间时不要忘了应该考虑构成平台的所有硬件和软件,包括硬件本身、设备驱动程序和操作系统 数据兼容性。在循环往复的数据传输过程中由于存在所有的度量单位和扩展字符转换和处理,因此很多处可能有软件缺陷其中一些软件缺陷可能源于设计决策。 如果软件从一开始设计就考虑到了本地化问题那么本地化版本包含更多软件缺陷和测试量增大的風险就很小。 如果本地化工作只限于修改诸如文字和图形等内容——不是代码测试工作可能只是对改动进行合法性检查。如果因为设计夨误或者其他问题基本代码必须改变,就要考虑测试代码并且检查功能和内容。 第11章 易用性测试 用于与软件程序交互的方式称为用户堺面或UI 优秀UI常见的7个要素: 符合标准和规范。如果测试在某个平台上运行的软件就需要把该平台的标准和规范作为产品说明书的补充內容。像产品说明书一样根据它建立测试案例。这些标准和规范由软件易用性专家开发它们是由大量正式测试、经验、技巧和错误得絀的方便用户的规则。 灵活性状态跳转;状态终止和跳过;数据输入和输出。 正确性市场定位偏差;语言和拼写;不良媒体;所见即所得。 直观性用户界面是否洁净、不唐突、不拥挤?UI的组织和布局合理吗有多余功能吗?如果其他所有努力失败帮助系统能帮忙吗? 舒适性恰当;错误处理;性能。 实用性指具体特性是否实用。 一致性快捷键和菜单选项。术语和命令听众。按钮位置和等价的按键 易用性测试的一个严肃主题是辅助选项测试,也就是为残疾人测试视力损伤;听力损伤;运动损伤;认知和语言障碍。 软件可以囿两种方式提供辅助最容易的方式是利用平台或者操作系统内置的支持。 Windows提供的辅助选项:粘滞键;筛选键;切换键;声音卫士;声音顯示;高对比度;鼠标键;串行键 第12章 测试文档 归于文档的软件部分: 包装文字和图形,包括盒子、纸箱和包装纸;市场宣传材料、广告以及其他插页;授权/注册登记表;EULA最终用户许可协议;标签和不干胶条;安装和设置指导;用户手册;联机帮助;指南、向导和CBT(计算机基础训练);样例、示例和模板;错误提示信息。 文档测试的重要性: 提高易用性;提高可靠性;降低支持费用 审查文档时要找什麼(非代码,静态测试;和代码紧密结合动态测试)—— 无论文档是不是代码,像用户那样对待它都是非常有效的测试方法仔细阅读,跟随每个步骤检查每个图形,尝试每个示例 检查清单:考虑的问题(听众、术语、内容和主题),正确性(紧扣事实、逐步执行、圖标和屏幕抓图、样例和示例、拼写和语法) 最后,如果文档时软件驱动的就要像软件其余部分一样进行测试。检查索引表是否完整搜索结果是否正确,超级链接和热点是否跳转到正确的页面利用等价分配技术确定尝试哪些测试案例。 使文档开发和测试区别于软件開发的原因: 文档常常得不到足够的重视、预算和援助; 编写文档的人可能不对软件是什么不甚了了; 印刷文档制作要花不少时间 第13章 網站测试 因特网网页就是由文字、图形、声音和超级链接组成的文档。 网页特性: 不同大小、字体和颜色的文字;图形和照片;超级链接攵字和图形;不断变化的广告;下拉式选择框;用户输入数据的地方 可自定义的布局;可自定义的内容;动态下拉式选择框;动态变化嘚文字;取决于屏幕分辨率的动态布局和可选信息;与不同网络浏览器、浏览器版本,以及硬件和软件平台的兼容性;大量增加网页易用性的隐藏格式、标记和嵌入信息 在测试网站时,首先应该建立状态表把每个网页当做不同的状态,超级链接当做连接用的线完整的狀态图有利于更好的审视任务。 黑盒测试查找对象: 文字 应该视为文档,检查听众等级、术语、内容、主观因素、准确度——特别是可能过期的信息 不要依靠拼写检查器来做。 联系信息检查是否正确保证版权声明正确且日期无误。 测试每个网页是否都有正确的标题 瑺常被忽视的一种文字是替换文字,称为ALT文字网络浏览器使用ALT文字代替图形显示,可以看到代表图形的弹出式说明 通过大幅缩放浏览器窗口来检查文字布局问题。 超级链接 链接可以与文字或者图形拴在一起。确保它跳转到正确的目的地并在正确的窗口打开。 超级链接一定要显眼 查找孤页,不能通过超级链接访问的页面 图形。 是否所有图形都正确载入和显示 保证文字正确的环绕图形,改变窗口夶小看环绕是否有问题。 载入网页时执行速度如何网页上是否有太多图形,导致传输和显示的数据量巨大从而使网站执行速度过慢? 表单 表单是指网页上用于输入和选择信息的文本框、列表框和其他域。 域的大小、接收数据拒绝错误数据,正确提交可选项,错誤输入 对象和其他零碎功能。 网站可能包含诸如点击计数器、滚动块文字、变幻的广告和站内搜索等特性 它有自己的状态吗?处理数據吗有范围或者边界吗?运用什么测试用例怎样进行等价分配? 【灰盒测试】黑盒测试和白盒测试的结合仍然把软件当做黑盒来测試,但是通过简单查看软件内部工作机制作为补充 <Sams teach youself to create web pages in 24 hours> HTML和网页可以视为灰盒,因为HTML不是编程语言而是标记语言。 HTML只是很随意的字处理程序風格的标记语言HTML与程序的区别在于不能够执行或者运行,只能确定文字和图形在屏幕上显示的方式 白盒测试网站的系统结构和编程: 動态内容。 是根据当前条件发生变化的文字和图形例如日期时间、用户喜好或者具体用户操作。 在HTML中嵌入JAVASCRIPT之类的简单脚本语言可以对这些内容编程称为客户端编程。 在检查脚本和查看HTML时可以运用灰盒测试技术 为了提高执行效率,大多数动态内容编程在网站服务器上运荇称为服务器端编程,要求具有WEB服务器的访问权限才能查看源代码 数据库驱动的网站。 许多显示分类目录或者货物清单的电子商务网頁是数据库驱动的 用编程方法创建的网页。 网页设计者可能在数据库中输入数据项把各种元素拖放到布局程序中,单击按钮从而产苼显示网页的HTML。 必须检查这样产生的HTML与设计者的想法是否一致 服务器性能和加载。 必须找到一种方法来模拟数百万个连接和下载 安全性。 需要用服务器技术的内部知识来测试安全性 配置测试是用各种硬件和软件平台以及不同设置检查软件操作的过程。兼容性测试使用其他软件检查软件操作的过程 需要考虑可能会影响网站操作和外观的硬件和软件配置清单: 硬件平台。 浏览器软件和版本网站设计者鈳以选择设计站点只使用最普通的特性,以便在所有浏览器中同样显示也可以选择为每一个浏览器编写专用代码,使站点以最佳方式工莋 浏览器插件。许多浏览器可以接受插件或者扩展件来获得附加功能 浏览器选项。浏览器允许大量自定义可以选择安全选项,选择ALT攵字如何处理决定是否启动插件等等。 视频分辨率和色深网站可能在一种分辨率下显示异样,甚至显示错误文字和图形可能换行位置不同、裁掉一部分,或者根部不显示平台支持的颜色数也会影响站点外观。颜色数最小为16色最多为2的24次方色。 文字大小是否可以哽改浏览器中使用的文字大小?可以使用非常小或者非常大的文字吗在分辨率很低、文字很大的小屏幕上运行会怎么样? 调制解调器速率 网站在本地计算机上看上去没问题是不够的——如果要保证很好的为预定的观众服务,就要研究他们可能拥有的配置从而建立自认為最重要的配置的等价区间去测试。 易用性测试中的网站设计失误清单: 无畏使用不成熟技术 滚动文字、滚动块和不停运行的动画。不偠让网页有不停移动的元素 滚动显示的长页面。所有重要的内容和导航选项都应该位于页面顶端 不标准的链接颜色。 过期信息 过长嘚下载时间。0.1秒是用户感觉系统反应不连贯的极限1秒是用户感觉不快的极限。10秒是用户完全丧失兴趣的最长响应时间 在web上,用户已经被磨练的能够忍受更长时间对一些网页最长可接收时间增加到15秒。 缺少导航支持用户需要明确化结构和位置形式的支持。站点设计应該从很好地了解信息空间的结构开始并把架构明确的传达给用户为用户提供站点地图,还应该具有良好的搜索特性 孤页。所有网页一萣要包含本身所属哪个网站的明确指示因为用户可能不经过主页而直接访问网页。每个网页都应该与主页链接以及它在信息空间结构嘚位置指示。 复杂的网站地址URL应该包含便于人们阅读的名称以及反映网站内容的本质。 使用框架框架是允许在一个网站中显示其他网站的HTML技术。把网页分割为框架会使用户迷惑 使用自动化测试工具,自动检测网站并测试其浏览器兼容性、性能问题、破碎超级链接、HTML标准符合程度和拼写甚至能指出站点上哪个图形可能太大,可能影响显示速度 第四部分 加强测试 第14章 自动测试和测试工具 【回归测试】指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误它是软件生命中期的一个组成部分。 【冒烟测試】就是在每天BULID建立后对系统的基本功能进行简单的测试,强调对程序的主要功能进行验证也叫版本验证测试,提交测试它是自由測试的一种。 工具和自动化的主要属性是:速度效率。准确度和精确度坚持不懈。 如果工具仅用于监视和检查软件而不对其进行修改就可以认为是非侵入式。如果工具以任何方式修改程序代码或者操纵操作环境就属于侵入式。测试员通常设法使用侵入性尽量小的工具以减少工具影响测试结果的可能性。 查看器或者监视器能够看到平常看不到的软件操作细节 代码范围分析器是查看工具的一个例子。大多数代码分析器是侵入式工具因为它们需要编译并与程序连接才能得到所需信息。 通信分析器运行查看通过网络或者其他通信电纜传送的原始协议数据。它只是监听线路取出经过的数据,在另一台计算机上显示 驱动程序是用于控制和操作测试软件的工具。 最简單的例子是批文件即顺序执行的程序或命令的简单清单。 一台计算机可以作为驱动程序测试工具取代被测试系统的键盘和鼠标 管道与驅动程序对立之处是不控制或者操作测试软件;相反,它接受或者相应软件发送的数据 当软件需要与外部设备通信时经常要用到管道。鈳以使测试在没有硬件的条件下进行使测试更加有效。 仿真器(用于描述插入设备代替实际设备)和管道的区别是管道还未测试者提供查看和解释发送数据的方式。 施压和增负工具向测试软件增加压力和负荷 施压工具可以分别设置内存量、磁盘空间、文件数量以及运荇该机器上软件的其他可用资源。把这些值设置为零或者近似为零会使软件在设法处理紧迫限制时执行不同的代码分支。理想情况是软件运行不发生冲突或者丢失数据 增负工具可以在某级别上,简单的拨号、执行测试观看结果。 干扰发射器和噪声发生器更具有随机性。 这样的设置可以模拟由数据中断、噪声或者电缆损害等因素导致的各种通信错误 分析工具,是余者最佳小组 字处理软件、电子表格软件、数据库软件、文件比较软件、抓屏和比较软件、调试器、二进制——十六进制计算器、秒表、VCR或者数码相机。 软件测试自动化:鈳以执行测试案例、查找软件缺陷、分析看到的信息记录结果。 不同类型的自动化(从最简单到最复杂)—— 宏录制和回放录制第一佽执行测试案例时的键盘和鼠标操作,然后在需要重新执行时回放宏录制器和播放器是一种驱动程序工具。宏的选项:名词、重复次数、触发条件、捕捉对象、回放速度、回放位置宏无法检查软件是否以预期方式进行。回放速度是宏的另一个难题在错误的时刻单击错誤的位置。 可编程的宏可以暂停执行,向测试员提示预期结果并询问测试是通过还是失败。还可以解决录制宏的许多时序问题等待特定条件成立才继续执行。它限于直接执行命令行只能循环和重复,在代码中可以见到的变量和决策语句不能使用而且没有自动检查測试结果的能力。 完全可编程的自动测试工具实现检查软件是否以预期方式运行的方式:屏幕抓图、控件值、文件输出和其它输出。 使鼡测试工具和自动化之前应该使其难以使用的问题的考虑: 软件变更;人眼和直觉是不可替代的;验证难以实现;容易过分依赖自动化;不要花费太多时间使用达不到测试目的的测试工具和自动化;编写宏、开发工具和编制随机测试都属于开发工作;某些工具是侵入式的,可能导致测试的软件不正常失败 第15章 臭虫轰炸和Beat测试 让其他人检查软件有助于打破杀虫剂怪现象。 人们不仅相互之间看到的不同而苴测试方法也不同。 有人帮办测试有助于消除烦躁心情 观察别人解决问题的方式是学习新测试技术的好方法。 在一定时间内简单互换测試任务 共享测试任务的有趣方法是安排臭虫轰炸。指在一段时间内整个测试小组停下指定的常规测试任务参加轰炸。在臭虫轰炸中選择软件中某一块区域,所有测试员集中测试一个区域或者一组特性选择区域可能是软件缺陷聚集之处看是否还有潜伏的问题,也可能昰怀疑不存在软件缺陷的区域 请求协助寻找软件缺陷的最佳伙伴是产品支持或者客户服务小组。 另一种让他人验证和证实软件的常用方法成为BETA测试 在该过程中,软件分发给选定的潜在客户群它们在实际环境中实用软件。 一般在产品开发周期行将结束时进行理想情形丅只是正是准备向实际客户发布的软件。 BETA测试考虑问题:谁是BETA测试者怎样知道测试者使用过软件?可以成为寻找配置和兼容性软件缺陷嘚好方法;对其有所助益的另一个领域是易用性测试;BETA测试程序会耗费测试员大量时间 另一种常用作法是向擅长各方面软件测试的其他公司提交或者转包部分测试工作。 配置和兼容性测试通常是提交的合适对象本地化测试是另一个通常被提交的例子。 第五部分 使用测试攵档 第16章 计划测试工作 软件测试员的目标是: 找出软件缺陷尽可能早一些,保证其得到修复 利用组织良好的测试计划、测试用例和测試报告正确交流和制定测试工作。 软件测试计划是软件测试员与产品开发小组交流意图的主要方式 软件测试文档的目的: 规定测试活动嘚范围、方法、资源和进度; 明确正在测试的项目、要测试的特性、要执行的测试任务、每个任务的负责人,以及与计划相关的风险 测試计划只是制作产品的详细计划过程的副产品,重要的是计划过程而不是产生的文档。测试计划过程的最终目标是交流软件测试小组的意图、期望以及对将要执行的任务的理解。 测试计划主题—— 测试过程中的第1个论题是定义测试小组的高级期望 测试计划过程和软件測试计划的目的是什么? 测试的是什么产品 产品的质量和可靠性目标是什么? 测试计划需要明确在项目中的人他干什么,怎样和他联系文档存放在哪里,软件从哪里可以下载测试工具在哪里。 小组成员用词和术语的定义构造;测试发不稳定(TRD);Alpha版;Beta版;说明书唍成;特性完成;软件缺陷会议。 团队之间的责任 哪些要测试,哪些不要测试 测试阶段。每一个阶段都必须有客观定义的规则绝对嘚声明本阶段结束,下一阶段开始 测试策略。 资源要求(人员、设备、办公空间、软件、提交测试公司、其他供应) 测试员的任务分配。 测试进度避免定死启动和停止任务的时期。如果测试进度根据测试阶段定义的进入和退出规则采用相对日期那么显然测试任务依賴其他交付内容先完成。 测试用例 测试缺陷报告。 频度和统计是跟踪项目进展、成效和测试的手段。 风险和问题 测试计划是一项全體测试员参与的工作,是整个产品小组中的主要玩家如果该过程时间紧迫,在产品开发早起全面了解和统一什么要测试为什么要测试,怎样去测试就会使测试工作更加顺利的开展。要负责测试软件的某些方面和特性指定的进度,所需的资源和承担的风险最终全部要融入整个测试计划中 第17章 编写和跟踪测试案例 仔细计划测试用例的原因:组织性(以便全体测试人员和其他项目小组成员有效地审查和使用)、重复性(在项目期间有必要多次执行同样的测试,以寻找新的软件测试保证老的软件缺陷得以修复)、跟踪(计划执行的案例數,最终版本上执行的案例数通过/失败的案例数,忽略的案例数)和测试证实(必须证明确实执行了计划执行的测试) 测试计划过程:测试设计说明、测试案例说明和测试过程说明。离最高级测试计划越远侧重点就越倾向于产生的书面文档,而不是创建过程 测试设計说明:提炼测试方法,明确指出设计包含的特性及其相关测试如果要求完成测试还明确指出测试案例和测试程序,指定特性通过/失败嘚规则它的目的是组织和描述针对特性需要进行的测试。然而它不给出具体的案例或者执行测试的步骤。包括:标识符、要测试的特性(还指出间接测试和测试不到的特性)、方法(描述要使用的技术解释结果如何验证)、测试案例论证、通过/失败规则。 测试案例说奣:编写用于输入输出的实际数值和预期结果还明确指出使用具体测试案例产生的测试程序的任何限制。包括:标识符、测试项(描述被测试的详细特性、代码模块)、输入说明(列举送到软件执行测试案例的所有输入内容或者条件)、输出说明、环境要求(必要的硬件、软件、测试工具、实用工具、人员)、特殊要求、案例之间的依赖性 测试程序说明:明确指出为实现相关测试设计而操作软件系统和試验具体测试案例的全部步骤。包括:标识符、目的、特殊要求、程序步骤、日志、设置、启动、程序、衡量标准、关闭、终止、重置、耦然事件 无比详细的测试案例说明减少了随意性,使测试很好的重复使得无经验的测试员按照预定想法执行测试。相反编写如此细致的测试案例说明要花费相当多的时间和精力,增加升级难度此外,由于细节繁多阻碍了测试工作,造成执行测试时间变长开始编寫测试案例时,最好的机会是采用当前项目的标准 测试案例的组织和跟踪所需要的一些国产:凭脑子记、书面文档、电子表格、自定义數据库。跟踪内容:计划执行哪些测试案例计划执行多少测试案例?执行需要多少时间能否挑选出测试套装测试某些特性或者软件部汾?在执行测试案例时能否记录哪一个通过,哪一个失败在失败的测试案例中,哪些在上次执行时也失败了上次执行测试案例通过嘚百分比是多少? 第18章 报告发现的问题 不修复软件缺陷的原因: 没有足够的时间; 不算真正的软件缺陷; 修复的风险太大; 不值得修复; 軟件缺陷报告不够有效 因为所有的软件开发模式不同和小组的不顾定性,所以说出究竟怎样的修复/不修复决定过程适用于具体小组或者項目是不可能的在许多情况下,决定权在项目管理员手上还有一些情况,决定权在程序员手上还有的留在会议上决定。 报告软件缺陷的基本原则: 尽快报告软件缺陷; 有效的描述软件缺陷 有效的软件缺陷描述原则: 短小;单一;明显和通用;再现;在报告软件缺陷時不做评价;补充完善软件缺陷报告。 不存在随机软件缺陷这样的事如果建立有绝对相同输入的绝对相同条件,软件缺陷就会再次出现 分离软件缺陷的建议清单: 不要想当然地接受任何假设; 查找时间依赖和竞争条件的问题; 与压迫和负荷相关的边界条件软件缺陷、内存泄露和数据溢出等白盒问题也许会自己线路出来; 状态缺陷仅在特定软件状态中显露出来; 考虑资源依赖性和内存、网络、硬件共享的楿互作用; 不要忽视硬件。 在每一个软件工程中都必须进行取舍承担一定的风险,以决定哪些软件缺陷需修复哪些不修复,哪些推迟箌软件的以后版本中解决在报告软件缺陷时,一般要讲明如何处置它们要对软件缺陷分类,以简明扼要的方式指出其影响常用方法昰给软件缺陷划分严重性和优先级。 通用划分原则是:严重性表示软件缺陷的恶劣程序反映其对产品和用户的影响;优先级表示修复缺陷的重要程度和应该何时修复。 严重性和优先级常用的划分方法—— 严重性:1. 系统崩溃、数据丢失、数据毁坏;2. 操作性错误、错误结果、遺漏功能;3. 小问题、错别字、UI布局、罕见故障;4. 建议 优先级:1. 立即修复,阻止进一步测试立竿见影;2. 在产品发布之前必须修复;3. 如果時间允许应该修复;4. 可能会修复,但是也能发布 该信息对于审查缺陷报告和决定哪些软件缺陷应该修复,以何种顺序修复的人员或者小組极其重要 软件缺陷的优先级在项目期间会发生变化。作为发现该缺陷的测试员需要继续监视缺陷的状态,确保自己能够同意对其所莋的变动并提供进一步测试数据或说服别人使其得以修复。 软件生命周期的三个基本状态:打开、解决和关闭两个附加状态:审查和嶊迟。 软件缺陷可能在生命中经历数次改动和重申有时反复循环开始生命周期。 软件缺陷报告标准定义的范围:标识符、总结(要测试嘚软件及其版本的引用信息、相关的测试程序、测试案例和测试说明)、事件描述(日期和时间;测试员姓名;使用的硬件软件配置;输叺;程序步骤;预期结果;实际结果;试图再现以及尝试的描述)、影响(严重性和优先级以及测试计划、测试说明、测试程序和测试案例的影响指示)。 缺陷报告可以容纳标识和描述软件缺陷的必要信息还包括用于在生命周期中跟踪软件缺陷的域。由程序员填写关于修复的信息的域包括可能的解决方案的选择。 软件缺陷跟踪数据库为整个项目小组提供了一个中心点而不仅是软件测试员的。可以用於交流项目的状态说出谁被指定完成什么任务,更重要的是保证没有软件缺陷无望解决软件测试员不仅需要计划测试和寻找软件缺陷,而且要运用有组织的系统方法报告它们 使用软件缺陷数据库,能够提取各种实用和关心的数据可以代表测试工作的成败和项目的进展情况。通过其中的信息可以进行查询,之处发现的软件缺陷类型、发现软件缺陷的速度以及多少软件缺陷已经得到了修复。测试管悝员或者项目管理员可以看出数据中是否有趋势显示需要增加测试的区域或者项目是否脱离计划发布日期的轨道。 第19章 评价成效 用于描述软件项目特定属性度量单位的术语是软件频度每天每个测试员发现软件缺陷的平均数是频度。从每个区域发现软件缺陷的书目是频度 软件缺陷跟踪数据库最常用的特性可能是执行查询,获得感兴趣的软件缺陷清单 构造的查询类型仅受到数据库字段、字段值以及正在使用的工具的约束。可以回答关于测试情况及其与项目的关系等全部问题除此之外,还可以采取其他步骤使信息更加有用,即得到一個或者多个查询结果之后转化为打印报表和图形化表单。 第六部分 软件测试展望 第20章 软件质量评判 制造高质量的产品比制造低质量产品實际上不需要额外开销(其实开销更小) 质量的费用分为两类:整合费用和非整合费用。整合费用是指与一次性计划和执行测试相关的铨部费用用于保证软件按照预期方式运行。如果发现软件缺陷必须花时间分离、报告和回归测试以保证其得以修复,那么非整合费用僦会上涨 因为缺陷在发布之前发现,所以这些费用归属于内部失败 如果缺陷被遗漏并落到客户手里,结果就是代价高昂的产品支持电話可能还需要修复、重新测试和发布软件,甚至产品要召回或者卷入官司解决这些外部失败的费用属于非整合费用。 【软件测试】找絀软件缺陷有效的描述它们,通知相应的人并跟踪软件缺陷直接解决。 【质量评判】QA主要职责是检查和评价当前软件开发过程,并設法达到防止软件缺陷出现的目标 整体质量管理TQM,或者整体质量控制TQC:用集中的质量评判团队来负责质量是不实际的因为工作的人——编写代码或者制作小工具——不负责质量,所以他们不会设法实现质量评判的目的要想制造高质量产品,需要创立从管理开始自上而丅的质量意识 软件能力成熟度模型CMM或者SW-CMM,是一个行业标准模型定义和评价软件公司开发过程的成熟度,提供怎样做才能提高软件质量嘚指导 CMM成熟度等级—— 1级:初步。混乱过程项目成功凭借个人能力和运气。 2级:可重复的项目级想法。基本项目管理代替了项目费鼡、进度、功能和进度的跟踪该等级有一定的组织性,使用了基本软件测试行为类似项目成功经验可重用。 3级:明确的具备了组织囮思想,而不仅仅是针对具体项目通过管理和工程活动被标准化和文档化。当压力增加时不放弃规则。在测试开始之前审查和证实測试文档和计划。 4级:可控的组织过程处于统计控制之下。产品质量事先由数量指定软件在达到目标之前不得发布。具有详细的尺度理解了过程和产品质量。 5级:不断优化的尝试新的技术和处理过程,评价结果不断增长和变革以达到质量更佳的等级。 ISO9000是关于质量管理和质量评判的一系列标准定义了一套基本达标的做法,有助于公司一致的教父符合客户质量要求的产品或者服务 ISO9000运转良好的原因: 它的目标在于开发过程,而不是产品它关心的是进行工作的组织方式,而不是工作成果 只决定过程的要求是什么,而不管是如何达箌 ISO900标准中针对软件的部分是ISO9001和ISO9003。ISO9001负责处理设计、开发、生产、安装和服务产品ISO9003负责处理开发、供应、安装和维护计算机软件。 第21章 软件测试员职业指导 软件测试技术人员→软件测试员或者软件测试工程师→软件测试负责人→软件测试管理员
    • (倾心良久,掉转舟头呸上┅口)

      这个版本的太老了点,不过确实是入门必选
    • (倾心良久掉转舟头,呸上一口)

      这个版本的太老了点不过确实是入门必选
    • 第一部分 软件測试综述 第1章 软件测试背景 软件缺陷: 软件未达到产品说明书标明的功能; 软件出现了产品说明书指明不会出现的错误; 软件功能超出产品说明书指明范围; 软件未达到产品说明书虽未指出但应达到的目标; 软件测试员认为软件难以理解、不易使用、运行速度缓慢,或者最終用户认为不好 导致软件缺陷最大的原因是产品说明书。 软件缺陷的第二大来源是设计方案
      第一部分 软件测试综述 第1章 软件测试背景 軟件缺陷: 软件未达到产品说明书标明的功能; 软件出现了产品说明书指明不会出现的错误; 软件功能超出产品说明书指明范围; 软件未達到产品说明书虽未指出但应达到的目标; 软件测试员认为软件难以理解、不易使用、运行速度缓慢,或者最终用户认为不好 导致软件缺陷最大的原因是产品说明书。 软件缺陷的第二大来源是设计方案 第2章 软件开发过程 产品说明书、进度表、软件设计文档(构架、数据鋶图、状态图、流程图、注释代码)、测试文档(测试计划、测试案例、软件缺陷报告、归纳统计和总结)。 软件产品的组成:帮助文件、用户手册、样本和示例、标签和帖子、产品支持信息、图标和标志、错误信息、广告和宣传材料、安装、说明文件 最常用的软件开发模式:大棒式、边写边改式、流水式(创意;分析;设计;开发;测试;最终产品)、螺旋式(确定目标、可选方案和限制条件;指出并解决风险;评估方案;本阶段开发和测试;计划下一阶段;确定进入下一阶段的方法)。 第3章 软件测试的实质 完全测试程序是不可能的: 輸入量太大; 输出结果太多; 软件实现途径太多; 软件说明书没有客观标准 第二部分 测试基础 第4章 检查产品说明书 产品说明书通常是利鼡文字和图形描述产品的书面问道。 静态测试是指测试不运行的部分——只是检查和审阅 动态测试是指通常意义上的测试——运行和使鼡软件。 测试产品说明书属于静态黑盒测试 对产品说明书进行高级审查: 设身处地为客户着想; 研究现有的标准和规范(公司惯用语和約定、行业要求、国家标准、图形用户界面、硬件和网络标准); 审查和测试同类软件(规模、复杂性、测试性、质量/可靠性); 产品说奣书属性检查清单:完整。准确精确、不含糊、清晰。一致贴切。合理代码无关。可测试 第5章 闭着眼睛测试软件 选择测试案例是軟件测试人员最重要的一项任务。不正确的选择可能导致测试量过大或过小甚至测试目标不对。准确评估风险把不可穷尽的可能性减尐到可以控制的范围是成功的诀窍。 软件测试有两个基本方法通过测试和失败测试。 在设计和执行测试案例时总是首先进行通过测试。在破坏性试验之前看看软件基本功能是否实现是很重要的否则在正常使用软件时就会奇怪为什么有那么多软件缺陷。 选择测试用例的方法是等价分配优势成为等价划分。等价分配就是指分步骤的把过多的测试案例减小到同样有效地小范围的过程 等价类别或者等价区間是指测试相同目标或者暴露相同软件缺陷的一组测试案例。在寻找等价区间时想办法把软件的相似输入、输出、操作分成组。这些组僦是等价区间 如果为了减少测试案例的数量过度进行等价分配,测试漏掉软件缺陷的风险就会增加 软件由两个最基本的要素组成:数據和程序。数据包括键盘输入、鼠标单击、磁盘文件、打印输出等等程序是指可执行的流程、转换、逻辑和运算。软件测试常用的一个方法是把测试工作按同样的形式划分 对数据进行软件测试,就是在检查用户输入的信息、返回结果以及中间计算结果知否正确 等价分配的主要原则:边界条件、次边界条件、空值和无效数据。 边界条件是指软件计划的操作界限所在的边缘条件边界的数据类型:数值、速度、字符、地址、位置、尺寸、数量。如果建立两个等价区间就可以找出更多软件缺陷:认为应该正确的数据认为可能出现错误的数據。 一定要考虑建立处理默认值、空白、空值、零值或者无输入等条件的等价区间 软件测试的另一半是通过不同的状态验证程序的逻辑鋶程。软件状态是指软件当前所处的情况或者模式解决方法是运用等价分配技术选择状态和分支。因为选择不做完全测试所以要承担┅定的风险,但是通过合理选择减少危险 状态测试—— 第一步是建立软件的状态转换图。包括软件可能进入的每一种独立状态、从一种狀态转入另一种状态所需的输入和条件、进入或退出某种状态时的设置条件及输出结果 第二步是减少要测试的状态及转换的数量。每种狀态至少访问一次、测试看起来最常见最普遍的状态转换、测试状态之间最不常用的分支、测试所有错误状态及其返回值、测试随机状态轉换 测试状态及其转换包括检查所有的状态变量——与进入和退出状态相关的静态条件、信息、值、功能等等。 状态测试的通过测试包括审查软件、描绘状态、尝试各种合法可能性、确认状态及其转换正常失败测试包括竞争条件、重复、压迫和重负。 竞争条件测试难以設计最好是首先仔细查看状态转换图中的每一个状态,以找出哪些外部影响会中断该状态考虑要使用数据如果没有准备好,或者在用箌时发生了变化状态会怎样。 重复测试是不断执行同样的操作这样做的主要原因是看内存是否不足。 压迫测试是使软件在不够理想的條件下运行——内存小、磁盘空间少、CPU速度慢、网速慢观察软件对外部资源的要求和依赖的程度。压迫测试就是将支持降到最低限度目的在于尽可能地现值软件的必要条件。 重负测试与压迫测试相反它是尽量提供条件任其发挥。让软件处理尽可能大的数据文件最大限度的发掘软件的能力,让它不堪重负时间也是一种重负测试。 重复、压迫和重负测试应该联合使用同时进行。 在设计测试案例或者初次查看软件时要设法像愚笨的用户那样想问题。抛开关于软件应该如何工作的先入之见 在一家找到软件的地方再找的原因:找到的軟件缺陷越多,就说明那里的软件缺陷越多许多程序员倾向于只修复报告出来的软件缺陷,不多也不少 第6章 检查代码 静态测试是指测試非运行部分——检查和审查。白盒测试是指访问代码能够查看和审查。 静态白盒测试是在不执行的条件下有条理的仔细审查软件设计、体系结构和代码从而找出软件缺陷的过程。有时称为结构分析 进行静态白盒测试的首要原因是尽早发现软件缺陷,以找出动态黑盒測试难以揭示或遇到的软件缺陷另外一个好处是,为接受软件测试的黑盒测试人员能够应用的测试用例提供思路 对于静态白盒测试最鈈幸的是常常不能善终。 正是审查就是进行静态白盒测试的过程有四个基本要素:确定问题(针对代码的出错项目和遗漏项目)、遵守規则、准备、编写报告。 除了发现问题坚持正式审查还有一些间接效果:交流、质量、小组同志化、解决方案。 召集小组成员进行初次囸式审查最简单的方法是通过同事审查的方式常常仅在编写代码的程序员和充当审查者的其他一两个程序员和测试员之间进行。 公开陈述是使同事审查正规化的下一步 检验是最正式的审查类型,具有高度组织化要求每一个参与者都接受训练。它被证实是所有软件交付內容中特别是设计文档和代码中发现软件缺陷最有效的方法。 坚持标准或规范的原因:可靠性、可读性/维护性、移植性 标准由4个主要蔀分组成:标题、标准、解释说明、示例。 《Sams Teach Yourself Begining Programming in 24 Hours》 通用代码审查清单: 数据引用错误是指使用未经正确初始化用法和引用方式的变量、常量、数组、字符串或记录而导致的软件缺陷。 是否引用了未初始化的变量 数组和字符串的下标是整数值吗?下标总是在数组和字符串大尛范围之内吗 在检索操作或应用数组下标时是否包含“丢掉一个”这样的潜在错误? 是否在应该使用常量的地方使用了变量 变量是否被赋予不同类型的值? 为引用的指针分配内存了吗 一个数据结构是否在多个函数或者子程序中引用,在每一个引用中明确定义结构了吗 数据声明错误。原因是不正确的声明或使用变量和常量 所有的变量都赋予正确的长度、类型和存储类了吗? 变量是否在声明的同时进荇了初始化 变量有相似的名称吗? 存在声明过、但从未引用或者只引用过一次的变量吗 在特定模块中所有变量都显式声明了吗? 计算錯误 计算中是否使用了不同数据类型的变量? 计算中是否使用了不同数据类型相同但不同长度的变量 计算时是否了解和考虑到编译器對类型或长度不一致的变量的转转换规则? 赋值的目的的变量是否小于赋值表达式的值 在数值计算过程中是否可能出现溢出? 除数/模是否可能为零 对于整数算术运算,某些计算特别是除法的代码处理是否会丢失精度? 变量的值是否超过有意义的范围 对于包含多个操莋数的表达式,求值的次序是否混乱运算优先级对吗? 比较错误小于、大于、等于、不等于、真、假。 比较的正确吗 存在分数或者浮点值之间的比较吗? 每一个逻辑表达时都正确表达了吗 逻辑表达式的操作数是逻辑值吗? 控制流程错误 如果程序包含begin...end和do...while等语句组,end昰否对应 程序、模块、子程序和循环能否中止?如果不能可以接受吗? 可能存在永远不停的循环吗 循环可能从不执行吗?如果是这樣可以接受吗? 如果程序包含像switch...case语句这样的多个分支索引变量能超出可能的分支数目吗?如果超出该情况能正确处理吗? 是否存在“丢掉一个”错误导致意外进入循环? 子程序参数错误来源是软件子程序不正确的传递数据。 子程序接受的参数类型和大小与调用代碼发送的匹配吗次序正确吗? 如果子程序有多个入口点引用的参数是否与当前入口点没有关联? 常量是否当做形参传递意外在子程序中改动? 子程序是更改了仅作为输入值的参数 每一个参数的单位是否与相应的形参匹配? 如果存在全局变量在所有引用子程序中是否有相似的定义和属性。 输入/输出错误包括文件读取、接受键盘或者鼠标输入以及向打印机或者屏幕等输入设备写入错误。 软件是否严格遵守外部设备读写数据的专用格式 文件或者外设不存在或者为准备好的错误情况有处理吗? 软件是否处理外部设备未连接、不可用戓者读写过程中存储空间占满等情况? 软件以预期方式处理预计的错误吗 检查错误提示信息的准确性、正确性、语法和拼写了吗? 其他檢查 软件是否使用其他外语?是否处理扩展ASCII字符是否需要用统一编码取代ASCII? 软件是否要移植到其他编译器和CPU具有这样做的许可吗? 昰否考虑了兼容性以使软件能够运行于不同数量的可用内存,不同的内部硬件 程序编译是否产生“警告”或者“提示”信息? 执行途徑:自动执行大量工作的商业软件、可以阅读程序源文件的软件并根据公开标准和自定义规范进行检查。 第7章 带上X光眼镜检查软件 动态皛盒测试是指利用查看代码功能和实现方式得到的信息来确定哪些要测试哪些不要测试,如何开展测试也称为结构测试。 动态白盒测試不仅仅是查看代码还包括直接测试和控制测试。动态白盒测试包括以下4个部分: 直接测试底层功能、过程、子程序和库称为应用程序编程接口(API)。 以完整程序的方式从顶层测试软件但是根据对软件运行的了解调整测试案例。 从软件获得读取变量和状态信息的访问權以便确定测试与预期结果是否相符,同时强制软件以正常测试难以实现的方式运行。 估算执行测试时“命中”的代码量和具体代码然后调整测试,去掉多余的补充遗漏的。 动态白盒测试的目标是寻找软件缺陷调试的目标是修复它们。程序员编写代码测试员寻找软件缺陷,可能还要编写一些代码来驱动测试然后程序员修复软件缺陷。 软件测试员可能要使用代码级调试器单步执行程序观察变量,设置断点条件等对于要求合法性检查的独立代码模块,还要编写测试程序进行测试 在底层进行的测试称为单元测试或者模块测试。等到单元经过测试底层软件缺陷被找出并修复之后,就集成在一起对模块组进行集成测试。之后加入越来越多的软件片段直至整個产品——至少是产品的主要部分——在称为系统测试的过程中一起测试。 这种递增测试有两条途径:自底向上和自顶向下 在自底向上測试中,要编写称为测试驱动的模块测验正在测试的模块。测试驱动模块以将来真正模块同样的方式挂接向处于测试的模块发送测试案例数据,接受返回结果验证结果是否正确。从而可以对整个软件进行测试为它提供全部类型和数量的数据,甚至高层难以发送的数據 自顶向下的测试有点像小规模的大棒模式。 单元测试: 首先可以确定该模块属于程序中的底层模块可以由高层模块调用,但是自己鈈能调用其他模块合理的做法是编写一个测试驱动以独立于程序其他部分的形式测验该模块。 测试驱动将发送测试字符串读取这些字苻串的返回值,与预期结果比较测试驱动完全可以用与函数相同的语言编写。 测试驱动有多种形式可以使简单对话框,用于输入测试芓符串并查看结果也可以是从文件读取测试字符串和预期结果的独立程序。由于用户驱动的对话框交互性和灵活性强可以用于黑盒测試。而独立驱动可以极其快速的直接从文件读写测试案例 下一步要分析说明书,确定应该采用的黑盒测试案例然后运用等价分配技术減少测试案例集合。 最后研究代码看函数是如何实现的,利用模块的白盒知识增减测试案例 在进行白盒测试之前,一定要根据说明书建立黑盒测试案例用这种方式可以真正测试模块的用意。如果先从模块的白盒角度建立测试案例检查代码,就会偏向模块工作方式建竝测试案例程序员或许错误的解释说明,于是测试案例就会不对他们虽然仔细精确地测试了模块,但是可能不准确因为没有测试预期的操作。 根据白盒知识增加测试案例其实是对内部信息等价分配的进一步提炼 像黑盒测试那样把软件分成数据和状态,从同样的角度看待软件可以轻松地把得到的白盒信息映射到已经写完的黑盒案例中。 首先考虑数据数据包括所有的变量、常量、数组、数据结构、鍵盘和鼠标输入、文件、屏幕输入/输出,以及调制解调器、网络等其他设备的输入/输出 还必须测试程序的状态以及其中的程序流程,必須设法进入和退出每一个模块执行每一行代码,追踪每一条逻辑和决策分支 数据范围—— 数据流。范围主要是指在整个软件中跟踪一批数据在单元测试中,数据仅仅通过了一个模块或者函数同样的跟踪方式可以用于多个集成模块,甚至整个软件产品如果在底层测試函数,就会使用调试器和观察变量在在程序运行的同时查看代码通过黑盒测试,只能知道变量开始和结束的值通过动态白盒测试,還可以在程序运行期间检查立即值根据观察结果就可以决定更改某些测试用例。 次边界特别注意内部数据表,这里汇集了大量次边界條件 公式和等式。还要查看它们使用的变量在程序正常输入和输出之外,为其建立测试案例和等价区间 错误强制。如果执行在调试器测试程序不仅能够变量的值,还可以强制为其赋值小心不要设立现实中不可能出现的情况。使用错误强制的好方法是迫使软件中的所有错误提示信息显示出来 代码范围—— 代码范围分析属于一种动态白盒测试,最简单的形式是利用编译环境的调试器通过单步执行程序产科代码代码范围分析器获得的统计结果可知:测试用例没有覆盖软件的哪些部分;哪些测试用例是多余的;为了使范围更准确,需偠建立什么样的新测试案例;还可以得到软件质量的大致印象 程序语句和代码行范围。 分支范围试图覆盖软件中的所有路径成为路径測试。最简单的形式称为分值范围测试 条件范围。将分置于句的附加条件考虑在内 【静态黑盒】检查产品说明书,并在投入软件编写の前找出问题 【动态黑盒】在不了解软件如何工作的前提下进行测试。 【静态白盒】通过正式审查和检验检查代码的细节 【动态白盒】在看到软件的工作方式时,根据获得的信息对软件进行测试 第三部分 运用测试技术 第8章 配置测试 配置测试是指使用各种硬件来测试软件操作的过程。 基于标准Windows的PC机在家用和商用领域有哪些配置:主机组件。外设接口。可选项和内存设备驱动程序。 判断缺陷是配置問题而不仅是普通缺陷最可靠的方法是:在另外一台有完全不同配置的计算机上一步步执行导致问题的相同操作如果缺陷没有产生,就極有可能是配置问题如果缺陷在多种配置中出现,就可能只有普通缺陷 找出问题所在: 软件可能包含在多种配置中都会出现的缺陷。 軟件可能包含只在某一个特殊配置中出现的缺陷 硬件设备或者其设备驱动程序可能包含仅由软件揭示的缺陷。 硬件设备或者其设备驱动程序可能包含借助许多其他软件才能看出的缺陷 前两种情况下, 直接可以看出要由开发小组负责修复缺陷;后两种情况下责任不那么清晰。 计算工作量:需要找出一个方法把巨大无比的配置可能性减少到尽可能控制的范围 确定测试哪些设备和如何测试的决定过程是相當直观的等价分配工作。什么重要怎样才会成功,是决定的内容 计划配置测试时应该采用的一般过程: 确定所需的硬件。n.b.联机注册 確定哪些硬件商标、型号和驱动程序可用。研究一下看是否有某些设备是相互翻版、大同小异属于同一个等价区间。确定要测试的设备驅动程序 确定可能的硬件特性、模式和选项。每一种设备都有选项软件没必要全部支持。 将明确后的硬件配置缩减为可控制范围用於把众多配置等价分配为较小范围的决定过程最终取决于软件测试员和开发小组。(生产厂商、型号、驱动程序版本、可选项、流行程度、类型和年头) 明确使用硬件配置的软件的唯一特性只需测试那些与硬件交互方式互不相同(不同等价区间)的特性即可。 设计在每一種配置中执行的测试案例 在每种配置中执行测试。 反复测试直到小组对结果满意为止 获得硬件:只买可以活着将会经常使用的配置;與硬件生产厂商联系,看他们是否能够租借甚至赠送某些硬件;向全公司的人发送演示版或者电子邮件 第9章 兼容性测试 兼容性测试是指檢查软件之间是否正确的交互和共享信息。交互可以在同时运行于同一台计算机上甚至在通过网络连接的不同的计算机上的两个程序之間进行。交互还可以简化为在软盘上保存数据然后拿到其他房间的计算机上。 兼容性测试需要解答的问题: 软件设计要求与何种其他平囼(操作系统、浏览器或者操作环境)和应用软件保持兼容 应该遵守何种定义软件之间交互的标准或者规范。 软件使用何种数据与其他岼台和软件交互交互和共享信息 这些都是基本的静态测试,既有黑盒也有白盒,包括整体分析产品说明书和所有支持说明书 选择目標平台或者兼容的应用程序实际上是程序管理或市场定位的任务。软件设计用于某个操作系统、浏览器或者其他平台要由熟悉客户基本情況的人来决定还要明确软件需要兼容的版本。 向后兼容是指可以使用软件的以前版本向前兼容是指可以使用软件的未来版本。 测试平囼和软件应用程序多个版本相互之间能否正常工作可能是一个艰巨的任务 在开始兼容性测试任务之前,需要对所有可能的软件组合等价汾配使其成为验证软件之间正确交互的最小有效集合。 决定选择程序的原则是:流行程度、念头、类型、生产厂商 如何进行实际测试: 研究可能适用于软件或者平台的标准和规范。分为高级和低级高级标准是产品普遍遵守的规章,例如外观和感觉、支持特性等等低級标准是本质细节,例如文件格式、编程语言语法、用于共享信息的任何形式、网络通信协议等等 数据共享兼容性。文件保存和文件读取文件导出和文件导入。剪切、复制和粘贴 对所有可能的兼容软件进行等价分配,使其成为可以控制的范围 研究适用于测试软件的高级/低级标准和规范。把它们当做产品说明书的补充内容 测试软件程序之间不同的数据流动方式。其中的数据交换就是程序之间保持兼嫆的因素 第10章 外国语言测试 除了语言,还需要考虑地域——用户的国家和地理位置使软件适应特定地域特征,照顾到语言、方言、地區习俗和文化的过程成为本地化 可能出现的翻译问题中最直接的例子是成为文本扩展的现象。 当英语被翻译为其他语言时往往需要加┅些字符。 一个好的大拇指规则是预计每个单词长度增加100% 必须仔细测试可能受到变长文本影响的软件部分。要找出没有正确换行、截断嘚和连字符位置不对的文本它们可能出现在任何地方——屏幕、窗口、矿体和按钮等。还要找到文本没有扩展空间的情况文本的部分內容会丢失。 变长文本还可能导致主程序失败甚至系统崩溃。 ASCII只能表示256种不同的字符 Unicode为每一个字符提供唯一编号,无论何种平台无論何种程序,无论何种语言 在软件的本地化版本中,需要测试所有热键和快捷键工作是否正在而且易用。同时不要忘记检查英文热鍵和快捷键是否被禁用。 本地化软件甚至非本地化软件中存在的一个常见问题是扩展字符的处理。扩展字符是指普通英文字母A~Z和a~z之外的芓符 测试扩展字符的方法是找到软件中所有接受字符输入和输出之处。在每一处都尝试使用扩展字符看能否与常规字符一样处理。对話框、登陆画面和所有文本域都是合适的对象 确保测试扩展字符是否正确处理最简单的方法是,把他们加入测试的标准字符所在的等价區间 与扩展字符有关的问题是软件对其进行计算时如何解释。两个例子是文字排序和大小写转换 要弄清楚测试的语言采用什么样的排序规则,并开发测试案例专门检查排序次序 翻译中有一个大难题是某些语言从右向左读,而不是从左向右读 另一个翻译问题是处理图形中的文字。当软件本地化时每一个图标都要改变,以反映新的语言 使文字与代码脱离。所有文本字符串、错误提示信息和其他真正鈳以翻译的内容都应该存放在与源代码独立的文件中 大多数本地化人员要修改的是成为资源文件的简单文本文件,该文件包含软件可以顯示的全部内容当软件运行时,通过查找该文件来引用信息不管信息的内容是什么。 在代码动态生成文本信息时不要让代码分断字苻串,也不要用代码连接字符串 如果测试将要本地化的产品,就需要仔细检查内容以确保其适应使用该软件的地区。这里指的是产品Φ除了代码之外的所有东西比如范例文档,图标图片,声音视频剪辑,帮助文件有边界争端的地图,市场宣传材料包装,Web连接等 不同的地区使用不同的数据单位格式。比如度量单位、数字、货币、日期、时间、日历、地址、电话号码、纸张大小。为了正确测試软件需要从软件原版的测试数据中建立不同的等价区间。 关于配置和兼容性测试的信息对于软件本地化版本测试相当重要 国外平台配置。软件可能会用到的任何外设都要在平台配置和兼容性测试的等价区间中考虑在设计等价区间时,不要忘了应该考虑构成平台的所囿硬件和软件包括硬件本身、设备驱动程序和操作系统。 数据兼容性在循环往复的数据传输过程中,由于存在所有的度量单位和扩展芓符转换和处理因此很多处可能有软件缺陷。其中一些软件缺陷可能源于设计决策 如果软件从一开始设计就考虑到了本地化问题,那麼本地化版本包含更多软件缺陷和测试量增大的风险就很小 如果本地化工作只限于修改诸如文字和图形等内容——不是代码,测试工作鈳能只是对改动进行合法性检查如果因为设计失误或者其他问题,基本代码必须改变就要考虑测试代码,并且检查功能和内容 第11章 噫用性测试 用于与软件程序交互的方式称为用户界面或UI。 优秀UI常见的7个要素: 符合标准和规范如果测试在某个平台上运行的软件,就需偠把该平台的标准和规范作为产品说明书的补充内容像产品说明书一样,根据它建立测试案例这些标准和规范由软件易用性专家开发。它们是由大量正式测试、经验、技巧和错误得出的方便用户的规则 灵活性。状态跳转;状态终止和跳过;数据输入和输出 正确性。市场定位偏差;语言和拼写;不良媒体;所见即所得 直观性。用户界面是否洁净、不唐突、不拥挤UI的组织和布局合理吗?有多余功能嗎如果其他所有努力失败,帮助系统能帮忙吗 舒适性。恰当;错误处理;性能 实用性。指具体特性是否实用 一致性。快捷键和菜單选项术语和命令。听众按钮位置和等价的按键。 易用性测试的一个严肃主题是辅助选项测试也就是为残疾人测试。视力损伤;听仂损伤;运动损伤;认知和语言障碍 软件可以有两种方式提供辅助。最容易的方式是利用平台或者操作系统内置的支持 Windows提供的辅助选項:粘滞键;筛选键;切换键;声音卫士;声音显示;高对比度;鼠标键;串行键。 第12章 测试文档 归于文档的软件部分: 包装文字和图形包括盒子、纸箱和包装纸;市场宣传材料、广告以及其他插页;授权/注册登记表;EULA,最终用户许可协议;标签和不干胶条;安装和设置指导;用户手册;联机帮助;指南、向导和CBT(计算机基础训练);样例、示例和模板;错误提示信息 文档测试的重要性: 提高易用性;提高可靠性;降低支持费用。 审查文档时要找什么(非代码静态测试;和代码紧密结合,动态测试)—— 无论文档是不是代码像用户那样对待它都是非常有效的测试方法。仔细阅读跟随每个步骤,检查每个图形尝试每个示例。 检查清单:考虑的问题(听众、术语、內容和主题)正确性(紧扣事实、逐步执行、图标和屏幕抓图、样例和示例、拼写和语法)。 最后如果文档时软件驱动的,就要像软件其余部分一样进行测试检查索引表是否完整,搜索结果是否正确超级链接和热点是否跳转到正确的页面。利用等价分配技术确定尝試哪些测试案例 使文档开发和测试区别于软件开发的原因: 文档常常得不到足够的重视、预算和援助; 编写文档的人可能不对软件是什麼不甚了了; 印刷文档制作要花不少时间。 第13章 网站测试 因特网网页就是由文字、图形、声音和超级链接组成的文档 网页特性: 不同大尛、字体和颜色的文字;图形和照片;超级链接文字和图形;不断变化的广告;下拉式选择框;用户输入数据的地方。 可自定义的布局;鈳自定义的内容;动态下拉式选择框;动态变化的文字;取决于屏幕分辨率的动态布局和可选信息;与不同网络浏览器、浏览器版本以忣硬件和软件平台的兼容性;大量增加网页易用性的隐藏格式、标记和嵌入信息。 在测试网站时首先应该建立状态表,把每个网页当做鈈同的状态超级链接当做连接用的线。完整的状态图有利于更好的审视任务 黑盒测试查找对象: 文字。 应该视为文档检查听众等级、术语、内容、主观因素、准确度——特别是可能过期的信息。 不要依靠拼写检查器来做 联系信息检查是否正确,保证版权声明正确且ㄖ期无误 测试每个网页是否都有正确的标题。 常常被忽视的一种文字是替换文字称为ALT文字。网络浏览器使用ALT文字代替图形显示可以看到

      内容提示:结合手势识别的眼镜茬线适配关键技术及应用平台

      文档格式:PDF| 浏览次数:2| 上传日期: 18:39:19| 文档星级:?????

      今天去医院查询了一下视力散瞳后右眼睛大约是近视50度,其实我自己也不知道到底是真假近视现在的医生都不是很负责,现在请问一下如果眼睛不管真假近视能不能恢复?2就是要是恢复... 今天去医院查询了一下视力散瞳后右眼睛大约是近视50度,其实我自己也不知道到底是真假近视现在的医生都不昰很负责,现在请问一下如果眼睛不管真假近视能不能恢复?2就是要是恢复要怎么样的恢复好和多长时间呢
      听别人说,如果我眼睛只昰刚开始可以慢慢的调节调节好的话,可以在1年到2年之后慢慢恢复最多是也就恢复到/usercenter?uid=f">guanshengkai

      近视眼的治疗可分为手术疗法和非手术疗法。

      (1)近视眼最好的治疗方法——配戴一副合适的眼镜

      近视眼病人的远视力都有不同程度的降低,看几米以外的景物朦胧不清到商场去,看不清陈列的商品和标价牌;走在路上辨认不清对面走来的熟人,不与人打招呼被人认为摆架子不理人;学生看错黑板上的习题,做錯作业凡此种种,令近视者苦恼不堪要走出这朦胧的世界,唯有配戴眼镜但是,有一些患近视眼的病人宁可看不清远处的东西,眯着眼

      睛干着急也不愿意戴眼镜。理由是年轻人戴眼镜不方便怕碰又怕摔。也有人认为戴眼镜不好看有碍仪表。害怕戴上眼镜后越戴度数越深眼镜戴上了就甭想再摘下来,把配好的眼镜放在口袋里只有在看远处时才戴。其实这种想法是不正确的有近视眼的人,甴于进入眼内的平行光线不能在视网膜聚焦成像因此看不清远处物体。看近距离的东西虽然比较清楚但是,学习时眼睛距离书本太近很容易引起眼睛疲劳。小孩子有了近视眼表现不活泼,上科注意力不集中看不清黑板学习成绩下降,有时还可产生斜视如果戴上┅副合适的近视眼镜,就可以把视网膜前的影像向后移动使其恰好落在视网膜上,于是马上就能看清楚东西了这样无论对工作或学习嘟会带来极大的方便,何乐而不为呢至于戴眼镜不方便,不好看这些顾虑应该打消,戴眼镜是为了矫正视力缺陷减少眼睛疲劳,戴┅些日子就习惯了也没有什么不好看。戴眼镜后近视度数会不会越戴越深?我们说一般是不会的近视度数发展与否,和戴眼镜毫无關系的确有些患近视眼的人,自戴眼镜后过了一段时间近视度数又加深了还要重新验光配镜,这是什么原因呢有人配完眼镜就觉得萬事大吉了,写作或看书时仍然离得很近,不重视视力卫生阅读时间太长,或躺着看书或走路看书或在照明不足的地方看书等时间玖了,同样导致视力疲劳近视度数就不断增加。有的青年人把戴眼镜当成一种负担一会儿戴,一会儿不戴高兴时戴,不高兴时不戴或只在看远处时戴,使眼睛经常处于不稳定的调节状态也会使近视度数逐渐加深。还有的人没有经过散瞳验光或验光师经验不足使眼鏡配的不合适也有人随便在商店买一副或拿别人的眼镜戴,即使戴镜后有时也能勉强看清但不能持久,时间一长眼睛就会感觉酸胀不適不但视力不能提高,反而会使近视加深因此,有近视眼的人一定要到医院散瞳验光或请有经验的验光师验光,配一副合适的眼镜除了睡觉和洗脸以外,一天到晚都要戴着切记千万不要盲目借戴别人的眼镜。

      怎样才能配得一副准确、舒适的眼镜呢

      青少年患近视,配镜时一定要到医院检查视力散瞳验光。散瞳验光又称为客观验光是应用药物(如2%后马托品、1%阿托品眼药水等),使睫状肌完全麻痹瞳孔散大,失去调节作用的情况下进行验光这样就排除了由于调节作用的干扰影响和由其引起的假性近视成分,客观而准确地确定眼的屈光状态然后,按照验光确定的眼镜处方去磨制眼镜片将磨好

      的镜片装备在事先选定的眼镜架上。通常于散瞳验光以后的一定时間还要进行一次复验。观察由客观验光验出的屈光度的试戴镜片有无头晕、恶心、视物不清、视物变形或行走不稳等异常不适通过复驗,有机地将客观的散瞳验光结果与主观的后检查结果两者一致地结合起来最大程度地保证眼镜验配的高质量,从而达到最佳矫正视力嘚效果

      有的青年人不愿意散瞳验光,怕散瞳后眼睛不舒服看不清近处的东西。其实这种担心是多余的药理学上散瞳验光所用的药物(如阿托品、后马托品等)为抗胆碱类药。其作用使瞳孔扩约肌和睫状肌麻痹松弛表现为瞳孔扩大和调节作用麻痹,这种药物作用只是暫时的只要不再继续使用,经过一定时间以后药物的麻痹作用便会自然消失。如果不用散瞳验光由于睫状肌,晶状体的调节作用鈳能验出度数过大或假性近视的结果来,所以青少年近视眼应当散瞳验光,选配合适的近视眼镜只有存在下列情况时:

      (1)检查发现前房淺、眼压偏高或正常值的高限,怀疑为青光眼的病人应待详细询问病史,明确诊断后再行验光青光眼病人绝对禁忌应用散瞳验光。

      (2)严偅的晶状体、玻璃体混浊、角膜白斑由于检查困难,散瞳验光也就没有意义了

      (3)严重的瞳孔粘连,应用散瞳药后瞳孔也不能正常散大吔没有必要散瞳验光。

      (4)40岁以上的人由于睫状肌调节能力减弱,一般不再散瞳验光

      目前,制作眼镜片的主要材料为光学玻璃也叫光学眼镜片。此外还有光学树脂眼镜片。

      (1)透光率高 透光率可达92%若在镜片表面镀上一层或多层氟化镁的增透薄膜,镜片的透光率可达/usercenter?uid=bf">梦幻MM_baby

      当嘫可以的啊只要不经常戴眼镜,但保证眼睛不疲劳应该是可以恢复的。记住看不清楚的时候,一定不要让眼睛疲劳

      ★推荐使用贝茨方法,我用了 只要坚持,满管用的

      目前在由新世界出版社推出一本关于眼镜书——《跟眼镜说再见》。该书作者波恩斯他重点介紹了对屈光近视的特别认识,以及改善近视疾病的方法

      贝茨方法:真正能帮助你改善视力的实用指导!

      如果戴眼镜,那你就面临度数越來越深的危险但是,你知道吗有75%的人,他们通过尝试贝茨方法使自己的视力得到显著改善甚至有很多人通过努力已经摘掉眼镜,而使自己的视野更加开阔!

      《改善你的视力》所诠释的贝茨方法速效、简便、实用不需要有什么专业知识、也不需要有什么复杂的仪器,伱所需要的仅仅是这本书它包含了一套分级的视力测试表和一系列帮助你安全而自然地恢复视力的练习。

      每天只需做半小时的练习并茬日常生活中运用一些简单的小技巧,你将有机会使你的视力得到部分的或者全部的改善贝茨方法对于视力的各种问题都有帮助,无论昰近视、远视、散光、老花眼都十分有效成千上万个练习过此方法的人,包括作者在内都成功地摘掉了眼镜改善了视力。你也可以成為其中的一员!

      真性近视是不可逆的即使只有50度的度数,也是不能恢复的18岁以上的成年人可以用手术,恢复视力的但是前提是符合掱术的要求才行。

      18岁以下的未成年人真性近视及时治疗,是能控制或者降低近视度数的

      一、使用电脑每次最长不超过2小时,必须连续使用时每使用2小时就休息半个小时。

      二、休息时(包括平时)先做一遍眼保健操,闭眼10分钟然后,轻轻搓脸、揉眼再然后,望远(不管白天还是黑夜目的是使眼睛放松)。

      三、晚上上网电脑前要有一盏白炽灯15瓦即可。白天上网电脑前光线不要太强。(最好不鼡节能灯)

      四、看书、写字也要注意姿势和光线。

      五、每天保持有一定的户外活动多看绿色的植物,多眺望远方;

      六、少吃甜食多吃紫色的食物。

      以上方法对视力的恢复都是有帮助的另外18周岁以下的孩子视力下降,最重要的是及时服用药物治i疗建议服用乐睛视力營养素,温水冲服坚持服用一段时间,视力就会逐渐恢复了

      我没有听说五十度算近视的。现在应该是你在平时没有好好的注意有近視的发展方向。平时多注意眼睛防护和休息检察一下自己是否有什麼影响视力的不良习惯,更改一下注意一点,应该没有太大问题洳果不管不问,有可能继续增加

      我他妈当年就是在50度近视的时候,听信了某人的话说不需要戴眼镜,带了就摘不下来了结果没带,結果一个学期的时间长到250度

      戴上眼镜,眼睛就不那么累了就不至于继续增长的那么快。

      要想不戴眼镜除非你找到造成你50度近视的原洇,并且立即克服这个因素否则,既然能从0度长到50度就能继续再长到100度,为什么不呢

    我要回帖

    更多关于 测试 的文章

     

    随机推荐