最终软件测试
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.软件测试:是由“验证”和“有效性确认”活动构成的整体。
①“验证”是检验软件是否正确地实现了产品规格书所定义的系统功能和特性。
②“有效性确认”是确认所开发的软件是否满足用户真正需求的活动。
2.软件测试被认为是对软件系统中潜在的各种风险进行评估的活动。从风险的角度看,软件测试就是对风险的不断评估,引导软件开发工作,进而将最终发布的软件所存在的风险降到最低。
3.测试的风险观点:在尽力做好测试工作的前提下,工作有所侧重,在风险和开发周期限制上获得平衡。
4.测试的经济观点就是以最小的代价获得最高的软件产品质量,正是风险观点在软件开发成本上的体现,通过风险的控制来降低软件开发成本。经济观点也要求软件测试尽早开展工作,发现缺陷越早,返回的工作量就越小,所造成的损失就越小。
5.软件测试和软件开发构成一个全过程的交互、协作之关系,两者自始至终一起工作,共同致力于同一个目标——按时、高质量的完成项目。
(瀑布模型所带来的误区——软件测试是在代码完成之后进行的。)
第二章
1.软件缺陷就是软件产品中所存在的问题,最终表现为用户所需要的功能没有完全实现,没有满足用户的需求。
2.软件缺陷的产生:①技术问题;②软件本身;③团队工作。
3.在软件缺陷构成的示意图中:规格说明书(54%),系统设计结果(25%),编程的代码(15%),其他(6%)。
4.修复软件缺陷的代价:缺陷发现或解决得越迟,成本就越高。
5.评审是对软件元素或者项目状态的一种评估手段,以确认其是否与计划的结果保持一致,并使其得到改进。
6.SQA(软件质量管理)与软件测试之间相辅相成,存在包含和交叉的关系。
7.软件测试的分类:
⑪按测试的对象或范围(单元/组件、文档、子系统、系统等)分类:
①单元测试;②程序测试;③系统测试;④文档测试;⑤Web应用测试、客户端测试;
⑥数据库测试、服务器测试;
⑫按测试目的分类:
①集成测试;②功能测试;③压力测试;④性能测试;⑤可靠性测试;
⑥灾难恢复性测试;⑦安全性测试;⑧兼容性测试;⑨回归测试;⑩验收测试;○11安装测试。⑬其他分类:①静态测试;②动态测试;③白盒测试;④黑盒测试。
8.测试阶段:整个测试过程包括规格说明书审查、系统和程序设计审查、单元测试、集成测试(组装测试)、功能测试、系统测试、安装测试和验收测试8个阶段
9.软件测试工作范畴,可以分为2个层次:
①软件测试工作的组织与管理:制定测试策略、测试计划,确认所采用的测试方法与规范,控制测试进度,管理测试资源;
②测试工作的实施:编制符合标准的测试文档,搭建测试环境,开发测试脚本、与开发组织协作实现各阶段的测试活动。
10.测试工作流程:①测试组织和管理;②测试计划;③测试用例设计;④测试实施;⑤测试结果分析;⑥测试评审与报告。
1.白盒测试,也称结构测试或逻辑驱动测试,也就是已知产品的内部工作过程,清楚最终生成软件产品的计算机程序结构及其语句,按照程序内部的结构测试程序,测试程序内部的变量状态、逻辑结构、运行路径等,检验程序中的每条通路是否都能按预定要求正确工作,检查程序内部动作或运行是否符合设计规格要求,所有内部成分是否按规定正常进行。
其具体方法有逻辑覆盖、循环覆盖、基本路径覆盖等。
逻辑覆盖又可进一步分为语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖。白盒测试主要用于单元测试。
2.黑盒测试方法:也称功能测试或数据驱动测试方法,在测试时,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部和内部特性的情况下,测试人员针对软件直接进行测试,检查系统功能是否按照需求规格说明书的规定正常使用、是否能适当地接收输入数据而输出正确的结果,检查相应的文档是否采用了正确的模板、是否满足规范要求等。
⑪等价类划分法:是指某个输入域的一个特定的子集合,在该子集合中各个输入数据对于揭露程序中的错误都是等效的。
⑫边界值分析法:是在某个输入输出变量范围的边界上,验证系统功能是否正常运行的测试方法。
⑬判定表方法;
⑭因果图法:借助图形,着重分析输入条件的各种组合,每种组合条件就是“因”,它必然有一个输出的结果,这就是“果”;
⑮正交试验法;⑯功能图法;⑰错误推测法;
3.①静态测试:就是静态分析,对模块的源代码进行研读,查找错误或收集一些度量数据,并不需要对代码进行编译和仿真运行。
②动态测试:就是通过真正运行程序发现错误,通过观察代码运行过程,来获取系统行为、变量实时结果、内存、堆栈、线程以及测试覆盖度等各方面的信息,来判断系统是否存在问题,或者通过有效地测试用例,对应的输入输出关系来分析被测程序的运行情况,来发现缺陷。
4.①主动测试方法:就是测试人员主动向被测试对象发生请求,或借助数据、事件驱动被测试对象的行为,从而验证被测试对象的反应或输出结果。
②在被动测试方法中,软件产品运行在实际环境中,测试人员不干预产品的运行,而是被动地监控产品的运行,通过一定的被动机制来获得系统运行的数据,包括输入、输出数据。被动测试适合性能测试和在线监控。
5.基于风险的测试是指评估测试的优先级,先做高优先级的测试,如果时间或精力不够,低优先级的测试可以暂时先不做。
6.模糊测试(Fuzz testing)方法:就是构造大量的随机数据作为系统的输入,从而检验系统在各种数据情况下是否会出现问题。
模糊测试方法可以模拟黑客来对系统发动攻击测试,在安全性测试上发挥作用之外,还可以用于对服务器的容错性测试。
7.⑪ALAC (act-like-a-customer),像客户那样做,ALAC测试方法是一种基于客户使用产品的知识开发出来的测试方法。它的出发点是著名的Pareto80/20规律。
第五章
1.单元测试:是对软件基本组成单元进行的测试,而且软件单元是在与程序的其他部分相隔离的情况下进行独立的测试。
单元测试的对象可以是软件设计的最小单位——一个具体函数或一个类的方法,也可以是一