1. 绪论
1.1.软件危机和软件生存期
软件开发项目矛盾主要表现在:
X n-TK-Du0Ø 缺乏大型软件开发的经验和软件开发数据的积累,盲目制订开发工作计划;51Testing软件测试网*T(}_6k3r
Ø 开发初期软件需求不够明确,开发开始未能和用户及时交流,问题隐藏;51Testing软件测试网kd?)?A#~Wd)iV{
Ø 开发过程中无开发规范,开发人员间配合、约定不严密明确,文档不完整;
y A!L+F*jh0Ø 缺乏严密有效的软件之路检测手段,交付软件质量差,不同程度严重后果。
[Dm ~A"[.i0典型事例:1963~1966 IBM开发的IBM360机OS。à《人月神话》F.P.Brooks51Testing软件测试网~\6s9lKr.dO
]+mY5?Ifm{0B0软件生生存期:
)p q gFt e9]0Ø 计划(Planning)51Testing软件测试网N)V,nl&y4Md
ú 主要任务:确定软件开发的总目标;
y
\L
Y:Q0 给出软件的功能、性能、可靠性以及接口方面的设想;51Testing软件测试网J`:U1O-T3S$T7{
ú 输出物:问题解决方案;
;hnu)Pk0 资源、成本、效益、开发进度的估计;51Testing软件测试网']#Cp$`#d
完成任务的实施计划。51Testing软件测试网'dV5^"kw*\)p
Ø 需求分析(Requirement Analysis)
OY:Q8B9ute3?]0ú 主要任务:详细定义开发软件可满足的需求并给予确切描述;
-@e(cf ?"Y0ú 输出物:软件需求说明书(Software Requirement Specification)或软件规格51Testing软件测试网'O5C#x5o'g
说明书;51Testing软件测试网8no3Ej$_Z [[
初步的用户手册(System User’s Manual)。
0d}3Z X&YwT0Ø 设计(Design)51Testing软件测试网VA6I [$x&j5~
ú 主要任务:将已确定的各项需求转换成相应的体系结构,由功能明确的模块
,H+{yR8A2y,Yh0组成;51Testing软件测试网|hzf;v.\em V
ú 输出物:概要设计(Preliminary Design)说明书;
f,HROEi0 详细设计(Detail Design)说明书。
IiK/_@~0Ø 编码(Coding)
iu]5URT/@0ú 主要任务:将软件设计转换成计算机可接受的程序;51Testing软件测试网^#H9[%wmH4m
ú 输出物:源程序清单。51Testing软件测试网%Xu2c
lZ6UZ@
Ø 测试(Testing)保证软件质量的重要手段51Testing软件测试网oI,wb R P(O,@O Z!B}
ú 主要任务:检验开发工作的成果是否符合要求;51Testing软件测试网 Kl B:z#s+? R
ú 三步:单元测试(Unit Testing);
I(~AfX ND4z0 集成测试(Integrated Testing);
MY\b%i~v0 确认测试(Validation Testing)。51Testing软件测试网 KQz#qU'L
m
Ø 运行和维护(Run and Maintenance)51Testing软件测试网[,O^ D(EiM4Uz
ú 主要任务:已交付用户的软件投入正式使用。51Testing软件测试网aT^-T r2p#ev{4AF/a
)c8G0Y:O&Sn0 51Testing软件测试网4C!D+B
M+a[
51Testing软件测试网M2wy,{Z'@L
广义的测试概念:确认、验证、测试活动51Testing软件测试网;~2LZ4[GxWS cU~F*q
(V,V&T-----Validation,Verification and Testing)51Testing软件测试网%c7s/_)I9yC7]_c
51Testing软件测试网\"I-e;z6D*qR
确认≠验证51Testing软件测试网.N[4g!m+n
确认:如何决定最后软件产品是否正确无误(开发正确无误的软件产品)51Testing软件测试网Z_'c!BXm
编写出的程序相对于软件需求和用户提出的要求是否符合;
cjm'k
SzY0 程序输出的信息是用户所要的信息吗?
+C!} }&Y"v~'G1_#R6l0 程序在整个系统的环境中能够正确稳定的运行吗?
+j7azTjZ0 开发初期,在软件需求规格说明书中明确规定确认的标准。51Testing软件测试网4D6ux fD
验证:如何决定软件开发的每个阶段、每个步骤的产品是否正确无误,并且与开发阶段和开发步骤的产品相一致(开发的软件产品是否正确无误)51Testing软件测试网-BP@1Z/~-]
确保软件能够正确无误地实现软件的需求51Testing软件测试网"\JTy0h ^7}C1}
开发过程中开展的一系列活动,确保软件能够正确无误地实现软件的需求。51Testing软件测试网i9[-Yub+c
R~7Nd(G2R
确认+与开发阶段、开发步骤的产品一致=验证51Testing软件测试网/]#T-_5RjB
&F(_$PL/s6GJK,P0软件生存期各阶段中确认、验证与测试活动包括:51Testing软件测试网*[?o7m3o
Ø 需求分析阶段51Testing软件测试网*nr-Scy{;})J%\
ú 任务:制定V,V&T计划;
K dMTy/M0 确定V,V&T目标;51Testing软件测试网7{-K5K3F4TISg
安排V,V&T活动;51Testing软件测试网D0S.\'Yyv
选择采用的方法和工具;
W6p#[/f@O
](w0 制定进度并做出预算。
%Ktu"GaZ&H!d6q0ú 产物:基础的测试用例
ytwPFaC2os_0ú 复审:需求的确保
S7]zL}.f+D0Ø 概要设计阶段
x-mNc1au@0ú 任务:复审修订V,V&T计划;
-Ji} g1g |(P2V,}0ú 产物:针对要执行的逻辑功能生成测试数据;51Testing软件测试网v9|hMH
补充软件需求。
Z/k'~_.u@,F
f0ú 复审:确保内部的一致性、完全性、正确性、清晰性;
v&x/XV5WR0 检验已进行的设计是否满足需求。
,\G/EAF'O2a0Ø 详细设计阶段
"P9E`R'Q)z0ú 任务:设计功能测试数据;51Testing软件测试网rg3HX(Ww-H
ú 复审:确保内部的一致性、完全性、正确性、清晰性;51Testing软件测试网(~8Q$F$N
w1n-F/`
检验详细设计是否对概要设计作出了正确无误的细化;51Testing软件测试网 Y{Q4s6CtQ^
确认所做的设计满足需求。51Testing软件测试网)_[2q5n3G,o
Ø 编码与测试阶段51Testing软件测试网N1i FiE7| y0\N
o
ú 任务:完成测试用例规格说明;
#r1AR \D0ú 复审:是否遵循编码标准;51Testing软件测试网#l]h2Vi/l4c
自动或手工分析程序;51Testing软件测试网8fY
`]VZ/v'H
运行测试用例,以保满足验收要求;51Testing软件测试网2e-v/g*rq sN
产品验收。
*d0fhTrE0Ø 运行与维护阶段
|9C-Tf"s
^9m#W+A!a0ú 任务:软件评估;
a3pFLV0 软件修改评估;
CTo?5LkW|D0 回归测试。
#W
PZ[%Sh2c01.3.什么是软件测试
1983 IEEE51Testing软件测试网$I ^$G `D1`
定义:使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。51Testing软件测试网+ie3Hu3Q-y
1.4.应该怎样认识软件测试
能够彻底测试程序 ×
`:y;q5S@#g0程序测试只能表明错误的存在,而不能表明错误的不存在 √51Testing软件测试网?"L`c(tE
证实程序的正确性是测试的目的吗? ×
j/Wvz:E^E&d0软件错误可以避免吗? ×51Testing软件测试网(@/k*o'F0yQ#a
开发过程出现的错误何必急于解决? ×51Testing软件测试网$b!cer!qA'QE/h
程序验证方法能否取代测试问题 ×
4I\%j v8fj~!p0 51Testing软件测试网c~Xw9cO/j"_@
MbWy `01.5.软件测试发展的历史回顾