《软件测试》阅读笔记
软件失败的用语:
缺点(defect)
故障(fault)
问题(problem)
错误(error)
事件(incident)
异常(anomaly)
偏差(variance)
失败(failure)
矛盾(inconsistency)
特殊(feature)
缺陷(bug)
产品说明书
产品说明书(product specification)/说明(spec)/产品说明(product spec):是软件开发小组的一个协定。它对开发的产品进行定义,给出产品的细节、如何做、做什么、不能做什么。
软件缺陷的官方定义:
1)软件未实现产品说明书要求的功能。
2)软件出现了产品说明书指明不应该出现的错误。
3) 软件实现了产品说明书未提到的功能。
4)软件未实现产品说明书虽未明确提及但应该实现的目标。
5)软件难以理解、不易使用、运行缓慢或者--从测试员的角度看--最终用户会认为不好。
软件测试员的目标:
软件测试员的目标是尽可能早的找出软件缺陷,并确保其得以修复。
软件设计文档:
1)结构文档。面试软件整体设计的文档,包括软件所有主要部分的描述以及相互之间的交互方式。
2)数据流图。标识数据在程序中如何流动的正规示意图。有时被称为泡泡图(bubble chart)。
3)状态转换图。把软件分解为基本状态或者条件的另一种正规示意图,表示不同状态间转换的方式。
4)流程图。用图形描述程序逻辑的传统方式。
5)代码注释。
软件测试文档:
1)测试计划(test plan)。
描述用于验证软件是否符合产品说明书和客户需求的整体方案。包括质量目标、资源需求、进度表、任务分配、方法等。
2)测试用例(test cases)。
列举测试的项目,描述验证软件的详细步骤。
3)缺陷报告(bug reposts)
描述执行测试用例找出的问题。
4)测试工具和自动测试(test tools and automation)。
5)度量、统计和总结(metrics ,statistics,summaries)。
测试过程的汇总。
软件项目成员:
项目经理、程序经理、监制人员
至始至终驱动整个项目。他们通常负责编写产品说明书、管理进度、进行重大决策。
体系架构师、系统管理师
产品小组中的技术专家。他们一般经验丰富,可以胜任设计整个系统的体系架构或软件。
程序员、开发人员、代码制作者
编写软件并修复软件中的缺陷。
测试员、质量保证员(Quality Assurance,QA)
负责找出并报告软件产品的问题。
配置管理员、构建员
负责把程序员编写的代码及技术作者写的全部文档资料组合在一起,合成为一个软件包。
软件测试的原则:
1)完全测试程序时不可能的。
2)软件测试是有风险的行为
3)测试无法显示潜伏的软件缺陷
4)找到的软件缺陷越多,就说明软件缺陷越多。
5)软件测试越多,软件对测试的免疫力越强。---需要不断修改、编写新的测试程序。
6)并非所有的软件缺陷都要修复。
7)产品说明书从没有最终版本。
黑盒测试和白盒测试
黑盒测试:
软件测试员只需知道软件要做什么,而无法看到盒子里的软件是如何运行的。只要进行一些输入,就能得到某种输出结果。他不知道软件如何运行、为什么会这样,只知道程序做了什么。
黑盒测试有时也称为功能性测试(functional testing)或行为测试(behavioral testing)或行为测试(behavioral
白盒测试:
软件测试员可以访问程序员的代码,并通过检查代码的线索来协助测试,可以看到盒子里面。测试员根据代码检查结果判断或多或少可能出错的数目,并据此定制测试。
白盒测试又称为透明盒测试(clear-box testing)。
静态测试和动态测试
静态测试(static testing):
指测试不运行的部分--只是检查和审核。
动态测试(dynamic testing):
使用和运行软件