软件测试详解
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
为了保证软件的质量和可靠性,应力求在分析、设计等各个开发阶段结束前,对软件进行严格技术评审。但由于人们能力的局限性,审查不能发现所有的错误。而且在编码阶段还会引进大量的错误。这些错误和缺陷如果遗留到软件交付投入运行之时,终将会暴露出来。但到那时,不仅改正这些错误的代价更高,而且往往造成很恶劣的后果。 软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。如果给软件测试下定义,可以这样讲:软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计的一批测试用例(即输入一些数据而得到其预期的结果),并利用这些测试用例去运行程序,以发现程序错误的过程。 软件测试在软件生存期中横跨两个阶段:通常在编写出每一个模块之后就对它做必要的测试(称为单元测试)。编码与单元测试属于软件生存期中的同一个阶段。在结束这个阶段之后,对软件系统还要进行各种终合测试,这是软件生存期的另一个阶段,即测试阶段,通常由专门的测试人员承担这项工作。 大量统计资料表明,软件测试的工作量往往占软件开发总工作量的40%以上,在极端情况,测试那种关系人的生命安全的软件所花费的成本,可能相当于软件工程其他开发步骤总成本的三倍到五倍。因此,必须高度重视软件测试工作,绝不要以为写出程序之后软件开发工作就接近完成了,实际上,大约还有同样多的开发工作量需要完成。仅就测试而言,它的目标是发现软件中的错误,但是,发现错误并不是我们的最终目的。软件工程的根本目标是开发出高质量的完全符合用户需要的软件。 软件测试的目的 基于不同的立场,存在着两种完全不同的测试目的。从用户的角度出发,普遍希望通过软件测试暴露出软件中陷藏的错误和缺陷,以考虑是否可以接受该产品。而从软件开发者的角度出发,则希望测试成为表明软件产品中不存在错误的过程,验证该软件已正确地实现了用户的要求,确立用户对软件质量的信心。 1. 测试是为了发现程序中的错误而执行程序的过程; 2. 好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案; 3. 成功的测试是发现了至今为止尚未发现的错误的测试。 从上述规则可以看出,测试的正确定义是“为了发现程序中的错误而执行程序的过程”。这和某些人通常想象的“测试是为了表明程序是正确的”,“成功的测试是没有发现错误的测试”等等是完全相反的。正确认识测试的目标是十分重要的,测试目标决定了测试方案的设计。如果为了表明程序是正确的而进行测试,就会设计一些不易暴露错误的测试方案;相反,如果测试是为了发现程序中的错误,就会力求设计出最能暴露错误的测试方案。 由于测试的目标是暴露程序中的错误,从心理学角度看,由程序的编写者自己进行测试是不恰当的。因此,在综合测试阶段通常由其他人员组成测试小组来完成测试工作。此外,应该认识到测试决不能证明程序是正确的。即使经过了最严格的测试之后,仍然可能还有没被发现的错误潜藏在程序中。测试只能查找出程序中的错误,不能证明程序中没有错误。 术语、名词定义 1. 黑盒测试 2. 白盒测试 3. 灰盒测试 4. 文档测试 5. 命名规范测试 6. 需求完整性测试 7. 链接完整性测试 8. 页面完整性测试 9. UI合理性测试 o 提示、菜单、帮助的格式是否一致; o 提示、菜单、帮助中的术语是否一致; o 各个控件之间的对齐方式是否一致; o 输入界面和输出界面在外观、布局、交互方式上是否一致; o 功能类似的相关界面在外观、布局、交互方式上是否一致; o 同一层次的文字在同一种提示场合(一般情况、特殊字体、警告等)在文字大小、字体、颜色、对齐方式方面是否一致,字体大小是否与界面的大小比例协调; o 多个连续界面依次出现的情况下,界面的外观、操作方式是否一致; o 系统是否拒绝客户的错误输入并做出提示; o 系统是否在用户完成操作时给出操作成功的提示; o 用户界面是否存在空白空间,没有空白空间的界面是杂乱无章的,易用性差; o 各个控件的间隔是否一致,垂直和水平方向上是否对齐; o 是否允许动作的可逆性,返回原有操做; 10. 数据和数据库完整性测试 11. 功能测试 12. 压力测试 13. 安全性测试 o 执行添加、删除、修改等动作中是否做过登录检测。 o 退出系统之后的操作是否可以完成。 o 所有插入表单操作中输入特殊字符是否可以正常输正常存储,特殊字符为:!?#¥%……—*()~——-+=[]{}、|;:‘”?/《》<>,。 o 在带有参数的回显数据的动作中更改参数,把参数改为特殊字符并加入操作语句看是否出错。 o 测试表单中有没有做标签检测,标签检测是否完整。 o 在插入表单中加入特殊的HTML代码,例如:<marquee>表单中的字本是否移动?</marquee>。 14. 页面脚本测试 15. 提示文本测试 16. 浏览器测试 17. 安装测试 自定义测试 在常规测试时可能表中的测试项不能满足测试要求,如果有特殊测试项请测试人员自己定义修改测试的类型。 软件命名规范 1. 软件版本阶段说明 o Base版: 此版本表示该软件仅仅是一个假页面链接,通常包括所有的功能和页面布局,但是页面中的功能都没有做完整的实现,只是做为整体网站的一个基础架构。 o Alpha版: 此版本表示该软件在此阶段主要是以实现软件功能为主,通常只在软件开发者内部交流,一般而言,该版本软件的Bug较多,需要继续修改。 o Beta版: 该版本相对于α版已有了很大的改进,消除了严重的错误,但还是存在着一些缺陷,需要经过多次测试来进一步消除,此版本主要的修改对像是软件的UI。 o RC版: 该版本已经相当成熟了,基本上不存在导致错误的BUG,与即将发行的正式版相差无几。 o Release版: 该版本意味“最终版本”,在前面版本的一系列测试版之后,终归会有一个正式版本,是最终交付用户使用的一个版本。该版本有时也称为标准版。一般情况下,Release不会以单词形式出现在软件封面上,取而代之的是符号(R)。 2. 版本命名规范 版本号定修改规则: o 主版本号(1):当功能模块有较大的变动,比如增加多个模块或者整体架构发生变化。此版本号由项目决定是否修改。 o 子版本号(1):当功能有一定的增加或变化,比如增加了对权限控制、增加自定义视图等功能。此版本号由项目决定是否修改。 o 阶段版本号(1):一般是 Bug 修复或是一些小的变动,要经常发布修订版,时间间隔不限,修复一个严重的bug即可发布一个修订版。此版本号由项目经理决定是否修改。 o 日期版本号(051021):用于记录修改项目的当前日期,每天对项目的修改都需要更改日期版本号。此版本号由开发人员决定是否修改。 o 希腊字母版本号(beta):此版本号用于标注当前版本的软件处于哪个开发阶段,当软件进入到另一个阶段时需要修改此版本号。此版本号由项目决定是否修改。 3. 文件命名规范 如果是同一版本同一阶段的文件修改过两次以上,则在阶段标识后面加以数字标识,每次修改数字加1,项目外包平台测试报告 4. 版本号的阶段标识
测试任务描述 在软件的开发过程中每个版本都会经历四次测试任务,分别为:单元测试、集成测试、系统测试、验收测试,在这四次测试任务中,每次测试都有不同的测试方向和重点。 1. 单元测试 2. 集成测试 3. 系统测试 验收测试 验收测试属于黑盒测试范围,是对系统测试修改后的复审,这方面和集成测试有些类似,首先确认系统测试中的BUG已经按要求修改完成,然后检测一下功能是否符合用户的需求、文档是否完整、有没有前面测试中遗漏没有测试出来的BUG。要说明的一点是,此处的验收测试并非客户验收测试,这里没有客户参与测试,只有测试人员参与测试。验收测试是开发结束或进入下一版本的标志性测试。 验收测试的重点测试内容包括:链接完整性测试、UI合理性测试、功能测试、压力测试、页面完整性测试、提示文本测试、浏览器测试、安装测试。 测试工作流程图 软件在开发过程中共有五个版本,分别是Base版、Alpha版、Beta版、RC版、Release版,每个版本的开发中都需要经过上述四次测试,但是每个版本中各阶段的测试重点是不一样的,详细的测试流程和重点请看下面各版本流程图: 1. Base版各个测试阶段流程图 测试提交文档 测试文档使用方法 在测试的过程中测试人员会用到三张表,第一张表是“测试任务表”,这张表中记录的是软件在每个版本的每个阶段中需要做的具体测试任务,如果测试中不确定需要做哪些测试,在这张表中可以查询各个阶段中所要进行的测试项。 测试文档下载 · 测试任务表 · 白盒缺陷测试报告 黑盒缺陷测试报告 注: 在每次的测试中测试人员需要按表中的要求进行添写测试报告,然后由项目经理来分配给开发人员处理,开发人员修改完BUG之后再交由项目经理来分配给测试人进行修改后的复审,检查前面测试出来的BUG是否已经修改完成,在此要特别说明的一点是:为了让测试报告更方便查看,如果在复审过程中查出还有BUG没有修改完或是根本没有修改,则在复审描述中说明原因,然后把此处标注成新的BUG索引项指到新的BUG编号上,详细情况请看下面截图: 测试方法和方式 测试方式主要以手工测试为主,在条件允许的情况下使用自动化测试工具进行测试。
说明:黑盒测试是依据用户能看到的规格说明,即针对命令、信息、报表等用户界面及体现他们的输入数据与输出数据之间的对应关系,特别是针对功能进行测试。主要由客户或系统使用者完成执行黑盒测试。
· 测试用例覆盖:测试的每一个用例都被测试过。 · 输入覆盖:测试过程中所输入的数据或资料必须一再的试验,如在程序安装过程中输入用户名时,测试者必须反复输入不同长度的中文、英文或数字等来做测试。 输出覆盖:测试过程中程序所产生的行为、反映及数据必须都一再的试验,如不同情况的对话窗口的内容、运算结果数据等都必须反复地测试审核。 通过测试的标准 一般有“基于测试用例”和“基于缺陷密度”两种评比准则,在这里我们采用前者。
实施建议 对于系统的一些实施建议: o 对系统测试人员进行必要的培训,提高他们的测试效率。 项目经理和测试小组根据项目的资源、时间等限制因素,设法合理地减少测试的工作量,例如减少“冗余或无效”的测试。
附录一:缺陷分类
附录三:优先级
附录四:测试计划审批意见
该文章在 2010/12/14 14:49:26 编辑过 |
关键字查询
相关文章
正在查询... |