软件技术文档

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件测试文档

程序员(programmer)、设计师(designer)、单元测试工程师(unit test engineer)、维护者(maintainer)、需求分析师(requirements analyst)、编码标准专家(coding standards expert)开发设计包括“开发者”和“测试者”两种角色。

一个可靠的软件应该是“正确的、完整的、一致的和健壮的”。

软件缺陷的产生:

(1)需求解释有错误

(2)用户需求定义错误

(3)需求记录错误

(4)设计说明有误

(5)编码说明有误

(6)程序代码有误

(7)其它,如:数据输入有误,问题修改不正确。

软件测试是“使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是

否满足规定的需求或是弄清预期结果与实际结果之间的差别”。(最好定义:测试以发现故障为目的,是为了发现故障而执行程序的过程。这一定义强调寻找故障是测试的目的。)

1.静态确认,不在计算机上实际执行程序,通过人工或程序分析来证明软件的正确性;

2.动态确认,通过执行程序做分析,测试程序的动态行为,以证实软件是否存在问题。软件测试的定义

软件测试就是在软件投入运行前,“对软件需求分析、设计规格说明和编码实现的最终审查”,它是软件质量保证的关键步骤。

测试是采用测试用例执行软件的活动,它有连个显著目标:“找出失效或演示正确的执行。”软件的生命周期包括:制定计划、需求分析定义、软件设计、程序编码、软件测试、软件运行、软件维护、软件停用等8个阶段。

软件质量内涵包括:正确性、可靠性、可维护性、可读性(文档、注释)、结构化、可测试性、可移植性、可扩展性、用户界面友好性、易学、易用、健壮性。

软件测试的目的:证明、检测、预防

软件测试的原则

是站在用户的角度,对产品进行全面测试,尽早、尽可能多地发现缺陷,并负责跟踪和分析产品中的问题,对不足之处提出疑问和改进意见。零缺陷是一种理想,足够好是测试的原则。

(1)测试不是为了证明程序的正确性,而是为了证明程序不能工作。

(2)测试应当是重点。

(3)事先定义好产品的质量标准。

(4)软件项目一启动,软件测试也就开始,而不是等到程序写完才开始进行测试。

(5)穷举测试是不可能的。

(6)第三方进行测试会更客观、更有效。

(7)软件测试计划是做好软件测试工作的前提。

(8)测试用例是设计出来的,不是写出来的,所以要根据测试的目的,采用相应的

方法去设计测试用例,从而提高测试的效率,更多的发现错误,提高程序的可

靠性。

(9)对发现错误较多的程序段,应进行更深入的测试。

(10)重视文档,妥善保存一切测试过程文档。

回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误

软件测试策略

(1)单元测试(软件质量保证,系统或软件产品满足规定和隐的与需求能力有关的全部特征与物性)

a)单元测试主要任务

i.软件产品质量满足用户要求的过程

ii.软件各种属性的组合程度

iii.用户对软件产品的综合反映程度,要求程度

b)模块结构测试(单元测试的开始,应对通过被测模块的数据流进行测试)

c)局部数据结构测试

d)路径测试

e)错误处理测试

f)边界测试(注意数据流、控制流中刚好等于、大于或小于确定的边界值时出错的可

能性,对这些地方要仔细地选择测试用例,认真加以测试)

g)上级模块

i.驱动模块(Driver)模拟被测试模块的上级模块

ii.桩模块(Stub)也称为存根程序,用以模拟被测模块工作过程中所调用的子模块

(2)集成测试(也称为组装测试或联合测试)

a)集成模式

i.一次性集成测试模式(它是一种非增量式组装方式,也称为整体拼装)

1.适用范围

a)只需要修改或增加少数几个模块的前期产品的稳定的项目

b)功能少,模块数量不多

ii.增量式集成测试模式(自顶向下增量式测试)

b)集成方法

i.自顶向下集成(是从主控模块开始,按照软件的控制层次结构向下逐步把各个

模块集成在一起)

ii.自底向上集成(是从原子模块(即软件结构最底层的模块)开始组装测试)

c)混合集成(在实际测试中,应该将不同集成模式有机结合起来,采用并行的自顶向

下、自底向上混合集成方法,而更重要的是采取持续集成的策略)

d)回归测试(回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的

错误或导致其他代码产生错误)

(3)确认测试(又称为有效性测试)

a)进行有效性测试(功能测试)

b)软件配置复查

(4)系统测试(功能、性能,以及软件所运行的软硬件环境)(目的是主要检验软件是否满足功能,行为和性能方面的要求)

a)强度测试(是要检查在系统运行环境不正常乃至发生鼓掌的情况下,系统可以运行

到任何程度的测试)

b)性能测试(用来测试软件在系统集成中的运行性能,检查其是否满足说明书中规定

的性能,特别是对实时系统或嵌入式系统,仅提供符合功能需求但不符合性能需求

的软件是不能接受的)

c)恢复测试(是要证实在克服硬件环境(包括掉电、硬件或网络出错等)后,系统能

正常地继续进行工作,并不对系统造成任何损害)

d)安全测试(任何管理敏感信息或者能够对个人造成不正当伤害的计算机系统都是不

正当或非法侵入的目标)

e)可靠性测试(是软件系统在规定的时间内和规定的环境条件下,完成规定功能的能

力)

f)安装测试(理想情况下,一个软件的安装程序应当平滑地集成用户的新软件到已有

的系统中去,就像一个客人被介绍到一个聚会中去一样,彼此交换适当的问候)

g)容量测试(是根据预先分析出反映软件系统应用特征的某项指标极限值(如最大并

发用户数,最大数据库记录数等),测试系统在其极限值状态下是否能保持主要功

能正常运行)

h)文档测试(是检查用户文档(如用户手册)的清晰性和精确性。在用户文档中所使

用的例子必须在测试中测试过,确保叙述正确无误)

(5)验收测试(是软件产品完成系统测试后,在发布之前所进行的软件测试活动,它是技术测试的最后一个阶段)

a)α测试是软件开发公司组织内部人员模拟各类用户对即将面世的如那件产品(称为

α版本)进行测试。

b)β测试是由软件的多个用户在一个或多个用户的实际使用环境下进行的测试。(6)面向对象软件测试

a)面向对象软件的单元测试(传统的单元测试的对象是软件设计的最小单位——模块)

b)面向对象软件的集成测试(面向对象的集成测试即类簇测试)

i.基于类间协作关系的横向测试。

ii.基于类间继承关系的纵向测试。

c)面向对象软件的系统测试(通过单元测试和集成测试,仅能保证软件开发的功能得

意实现)

软件产品组成:客户需求、产品说明书、进度表、设计文档、测试文档、软件产品的其它组成部分

开发人员角色:项目经理、业务分析人员、架构师、数据设计人员、开发人员、测试人员

软件开发模式:

大棒模式(优点是简单)(从外界看)

边写边改模式(每次盘旋上升)

瀑布模式(分析、设计、开发和开发步骤)

快速原型模式(是一种以计算机为基础的系统开发方法)

螺旋模式

软件工程师模型(Software Engineering Institute):测试计划、测试需求分析、测试设计(包括测试用例设计和测试规程规格说明)、测试规程实现、测试执行、总结生成报告。

软件质量的管理

(1)质量管理从单纯的产品质量进行检验发展到对产品形成过程进行控制。

(2)控制方法从静态发展到动态的,持续的过程改进。

相关文档
最新文档