软件生命周期:
问题定义--需求分析--软件设计--软件开发--软件测试--软件维护--淘汰
软件质量
概念:指软件产品满足基本需求即隐式需求的程度
通用评价标准:ISO/IEC 9126:1991国际标准
软件测试
目的:保证软件质量
Bill Hetzel定义:就是一系列活动,活动的目的是为了评估一个程序或软件系统的的特性或能力,并确定其是否达到了预期效果
分类:
1.按测试阶段分类:
单元测试:验证软件单元是否符合测试
冒烟测试
集成测试
系统测试
验收测试:对软件产品的说明进行验证
2.按测试技术分类:
黑盒测试:把程序当作黑盒子,只要输出对就行
白盒测试:把程序当作透明盒,了解输入到输出的每一过程
3.按软件质量特性分类:
功能测试:测试软件功能是否满足客户需求(准确性、易用性、适合性、互操作性 等)
性能测试:测试软件性能是否满足客户需求(负载测试、压力测试、兼容性测试、 可移植性测试和健壮性测试等)
4.按照自动化程度:
手工测试
自动化测试:借助脚本、自动化测试工具等完成相应测试
5.按照测试类型:
界面类测试、安全性测试、文档测试等
6.其他分类:
测试(对软件最初版本进行测试),测试(对上线后的软件进行测试),回归测 试、随机测试等
软件测试与软件开发的关系:
项目规划阶段---负责从单元测试到系统测试整个阶段的监控
需求分析阶段---确定测试需求分析
概要设计和详细设计阶段---制定单元测试计划和集成测试计划
编码阶段----开发相应的测试代码和测试脚本
测试阶段--实施测试并提交相应的测试报告
典型软件测试模型
1)V模型(应用瀑布模型的思想):
局限性:只有编码之后才能开始测试,不能发现需求分析等早期错误
2)W模型(V模型演变而来,是双V模型,强调测试应伴随整个软件周期)
局限性:无法支持迭代、自发性等需要变更调整的项目
3)H模型(将测试活动完全独立出来)
4)X模型(将程序分成多个片段反复迭代测试,然后将多个片段集成再进行迭代测试)
软件测试原则:
测试应基于客户需求
测试要尽早进行
穷尽测试是不可能的
遵循GoodEnough原则
测试缺陷要符合二八定理
避免缺陷免疫
软件测试的基本流程:
分析测试需求--制定测试计划--设计测试用例--执行测试--编写测试报告
一份完整的测试报告需要:引言、测试概要、测试内容及执行情况、缺陷统计与分析、测试结论与建议