上学时的总结,现在看不论是考试还是工作都很有用
软件测试的定义
使用人工或自动化手段,来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。
根本目的:发现问题、 解决问题;提高用户满意度、优化软件品质
测试的对象:程序 文档 数据 (软件开发过程中所产生的需求规格说明、概要
设计规格说明、详细设计规格说明以及源程序、用户文档都是软件测试的对象。 )
测试的原则
1、尽早地和及时地进行测试(在需求阶段开始测试)
2、测试前应当准备好测试数据和与之对应的预期结果这两部分
3、测试输入数据应包括合理的输入条件和不合理输入条件
4、程序提交测试后,应当由专门的测试人员进行测试
5、严格执行测试计划,排除测试的随意性
6、测试用例的所有相关预期结果做全面的检查
7、充分注意测试当中的群集现象(二八原则)
8、注意保存测试计划、测试用例、出错统计和最终分析报告,为维护工作提供充分的资料
9、缺陷具有免疫性(每修复3~4个缺陷就会出现一个新的缺陷)
测试的误区(避免误区)
1、软件测试技术要求不高,至少比编程容易多了
2、若发布的软件有质量问题,那是软件测试人员的错
3、软件测试是测试人员的事,与开发人员无关
4、根据软件开发瀑布模型,软件测试是开发后期的一个阶段
5、有时间就多测试一些,来不及就少测试一些
6、软件测试是非建设性的工作,甚至是破坏性的
7、测试中发现错误是对责任人工作的一种否定
软件开发模型
优点:简单考虑到了软件的需求,产品周期短
缺点:没有计划和文档的编制,后续维护难度大
测试工作: 由于新的版本不断产生,测试工作长期循环
阶段:需求分析-系统设计-程序设计-编码-测试-运行及维护
特点:依线性顺序联接
优点:易理解 阶段性 强调需求分析 明确测试阶段 提供了一套模板
缺点:
线性严格——成果晚出——风险
阶段固定——反复&迭代——灵活性
单次需求——需求变更——适应性
测试滞后——缺陷晚查——代价
适用场合:功能性能明确完整 需求固定 无重大变动
步骤:评估可选方案--计划下一阶段--确定下一阶段方法--确定目标、可选方案和限制条件--明确并化解风险--当前阶段开发和测试
优点:严格的全过程风险管理;强调各开发阶段的质量;提供机会评估项目是否有价值继续下去。(发现问题早)
软件测试模型
优点:
测试级别清晰(底层:单元测试 高层:系统测试)
测试对应开发
缺点:
线性执行——测试滞后编码 关注程序——忽略需求、设计 需求变更——实用性差
优点:测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、 功能、设计同样要测试。
缺点:1、在小的项目里,W模型不适用 2、不支持迭代,应对需求变化方面不适用
软件测试流程
4、实施测试 5、测试评估 6、测试总结
测试用例相关
1、解决的问题:要测什么 怎么测 如何衡量
2、静态测试:不运行程序,只对程序进行检查和审核 动态测试:使用和运行程序进行检查
3、黑盒测试
等价类划分
边界值分析(通常作为等价类划分的补充)原则:刚刚等于 刚刚大于 刚刚小于
常用控件法:复选框 组合列表框 文本框 按钮 单选按钮 列表框 滚动条(重点参考2-5PPT)
错误推测法 借助经验开展测试,推测软件中可能存在或容易产生的缺陷的功能模块
(经验分享 在2-6PPT)
例题:测试一个对线性表(比如数组)进行排序的程序,可推测列出以下几项需要特别测试的情况:、
1. 输入的线性表为空表;
2. 表中只含有一个元素;
3. 输入表中所有元素已排好序;
4. 输入表已按逆序排好;
5. 输入表中部分或全部元素相同
4、白盒测试
·静态测试
a.桌面检查(程序员自己检查自己编的代码,目的是发现错误)
b.代码走查
C.代码审查(逐条讲解)
使用静态结构分析工具分析程序源代码的内部结构(如:系统结构、数据结构、数据接口、内部控制逻辑)
程序=运算符号+运算对象结构度量
N=N1+N2=n1log2(n1)+n2log2(n2)(n1=不同运算符的个数 也即– + - * / = if else for …… n2=不同运算对象的个数)
扇入:调用该模块的模块计数
扇出:该模块所调用的模块计数
具有大扇入和大扇出的模块可能是不良设计。程序复杂性与扇出的平方成正比
·动态测试(重点PPT2-9)
单元:一个最小的单元应有明确的功能、性能定义、接口定义而且可以清晰地与其他单元区
分开来。
单元测试:
路径测试:
软件缺陷相关
1、什么是缺陷
从产品内部看:软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;
从产品外部看:软件缺陷是系统所需要实现的某种功能的失效或违背。
2、如何编写缺陷报告(一个缺陷一个报告)
举例:使用“记事本”仅保存“联通”二字后再打开该文件,出现乱码。
•描述步骤:
–点击“开始” ->“程序” ->“附件” ->“记事本”打开记事本软件;
–仅输入“联通”二字后,点击“文件” ->“保存”;
–在打开的“另存为”对话框中保存文件, 退出(文件名、保存位置任意);
–打开保存的文件,出现乱码,不是“联通”二字。
一般情况下,严重程度高的缺陷优先级高,班没有必然联系,需结合实际综合思考
易用性测试:易用性是交互的适应性、功能性和有效性的集中体现
标准和规范
直观 正确 一致(如果软件或者平台有统一标准,遵循标准。如果没有,就注意软件的特性,确保相似操作以相似的方式进行) 灵活(状态终止和跳转、数据输入和输出) 舒适 实用
兼容性测试:指软件之间能否正确的交互和共享信息。
2、
安全性测试
回归测试
验收测试
软件质量相关(见)
2、软件质量标准
QA职责:(过程管理和过程改进) QC职责(发现软件问题)