Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4115198
  • 博文数量: 626
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 11080
  • 用 户 组: 普通用户
  • 注册时间: 2012-08-23 13:08
文章分类

全部博文(626)

文章存档

2015年(72)

2014年(48)

2013年(506)

分类: Web开发

2013-09-13 09:20:35

章一 软件测试的背景


一、软件失败的术语
缺点defect,偏差variance,故障fault,失败failure,问题problem,矛盾inconsistency,错误error,特殊feature,事件incident,缺陷bug,异常anomaly。
二、软件缺陷的定义
1、产品说明书(product specification):是软件开发小组的一个协定。它对开发的产品进行定义,给出产品的细节、如何做、做什么、不能做什么。
满足下列5个规则之一才能称发生了一个软件缺陷(software bug):
1)软件未出现产品说明书要求的功能;
2)软件出现了产品说明书指明不应该出现的错误;
3)软件实现了产品说明书未提到的功能;
4)软件未实现产品说明书虽未明确提及但应该实现的目标;
5)软件难以理解、不易使用、运行缓慢。
注意:在运用这五条测试规则时应记住下面这几点:要全面,最重要的是要客观评价,并非所有测试发现的缺陷都要修改。
2、导致软件缺陷的最大原因是产品说明书。
在许多情况下,说明书没有写。其它原因是说明书不够全面、经常修改,或者整个开发小组没有很好的沟通。
为软件做计划是极其重要的,如果没做好,软件缺陷就会出现。
软件缺陷的第二大来源是设计。
三、软件测试员的工作:
软件测试员的目标是发现软件缺陷,尽可能早地找出软件缺陷,并确保其得以修复。
大多数成熟的公司都把软件测试视为高级技术工程职位。
四、软件测试员应具备的素质:
1)他们是群探索者;
2)他们是故障排除员;
3)不放过任何蛛丝马迹;
4)具有创造性;
5)追求完美者;
6)判断准确;
7)注重策略喝外交;
8)善于说服。


章二  软件开发的过程


要想成为好的软件测试员,至少要对软件开发的全过程有个总体了解。
一、软件设计文档
1)结构文档:描述软件整体设计的文档,包括软件所有主要部分的描述以及相互之间的交互方式。
2)数据流图:表示数据在程序中如何流动的正规示意图。有时称为泡泡图(bubble chart),因为它是用圆圈和线画的。
3)状态转换图:把软件分解为基本状态或者条件的另一种正规示意图,表示不同状态间转换的方式。
4)流程图:用图形描述程序逻辑的传统方式。
5)代码注释:便于维护代码的程序员轻松掌握代码的内容和执行方式。
二、测试文档
它是完整的软件产品的一部分。
1)测试计划(test plan):描述用于验证软件是否符合产品说明书和客户需求的整体方案。包括质量目标、资源需求、进度表、任务分配、方法等。
2)测试用例(test cases):列举测试的项目,描述验证软件的详细步骤。
3)缺陷报告(bug reports):描述执行测试用例找出的问题,通常记录在数据库中。
4)测试工具和自动测试(test tools and automation):必须有文档记录。
5)度量、统计和总结(metrics,statistics,summaries):测试过程的汇总。采用图形、表格和报告等形式。
三、软件产品的组成部分:
帮助文件、用户手册、样本和示例、标签和不干胶、产品支持信息、图标和标志、错误信息、广告和宣传材料、安装、说明文件。
错误提示信息是软件产品最容易忽视的部分,通常有程序员而不是训练有素的高手来写。
四、软件项目成员
1)项目经理、程序经理、监制人员:自始至终驱动整个项目。通常负责编写产品说明书、管理进度、进行重大决策。
2)体系架构师、系统工程师:产品小组中的技术专家。
3)程序员、开发人员或者代码制作者:设计、编写软件并修复软件中的缺陷。
4)测试员、质量保证员(Quality Asssurance,QA):负责找出并报告软件产品中的缺陷。
5)技术作者、用户协助专员、用户培训专员、手册编写员、文案专员:编制软件产品附带的文件和联机文档。
6)配置管理员、构建员:负责把程序员编写的代码及技术作者些的全部文档资料组合在一起,合成为一个软件包。
五、软件开发生命周期模式
1)大爆炸模式:优点是简单,计划、进度安排和正规开发过程几乎没有,所有精力都花在开发软件和编写代码上。
2)边写边改模式:适合意在快速制作而且用完就扔的小项目。
3)瀑布模式:强调产品的定义,各步骤分立无交叉,无法回溯。开发过程有完整细致的说明。缺点是测试仅在最后执行。
4)螺旋模式:总体思想是一开始不必详细定义所有细节。从小开始,定义重要功能,努力实现这些功能,接受客户反馈,然后进入下一阶段,重复上述过程,直至得到最终产品。
螺旋模式每一次循环包括6个步骤:
1)确定目标、可选方案和限制条件;
2)明确并化解风险;
3)评估可选方案;
4)当前阶段开发和测试;
5)计划下一阶段;
6)确定进入下一阶段的方法。
螺旋模式中包含了一点瀑布模式(分析、设计、开发和测试的步骤)、一点边写边改模式(螺旋模式的每一次)和一点大爆炸模式(从外界观察)。
六、敏捷软件开发(Agile Software Development)
敏捷软件开发也叫快速原型开发、极限编程开发 或者 进化开发等。
敏捷软件开发的目的,是:
1)通过过程和工具理解个人和交流的作用;
2)通过全面的文档理解运行的软件;
3)通过合同和谈判得到客户的协作;
4)在计划的执行中做出对变更的响应。
也即,在一方面有价值的时候,更应评价它在另外一方面的价值。

阅读(972) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~