软件测试复习资料
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件测试的对象包括()。
A.目标程序和相关文档
B.源程序、目标程序、数据及相关文档
C.目标程序、操作系统和平台软件
D.源程序和目标程序
1.什么是软件测试?
软件测试是由“验证(Verification)”和“有效性确认(Validation)”活动构成的整体
⏹验证”是检验软件是否已正确地实现了产品规格书所定义的
系统功能和特性
⏹“有效性确认”是确认所开发的软件是否满足用户真正需求的
活动。
⏹软件测试是保证软件质量的重要手段。
⏹所有的软件都会存在或多或少的问题,错误需要测试来发现,
同时还需要测试来评估错误密度。
⏹软件测试是软件质量保证的关键步骤。
⏹越早发现错误代价越低。
⏹微软的经验:Windows 95/98 → Windows 2000 系统的稳定性
有了明显改善,DEV:QA = 1:2
⏹软件总存在缺陷。只有通过测试,才可以发现软件缺陷。也只
有发现了缺陷,才可以将软件缺陷从软件产品或软件系统中清
理出去。
⏹软件中存在的缺陷给我们带来的损失是巨大的,这也说明了软
件测试的必要性和重要性
⏹测试是所有工程学科的基本组成单元,自然也是软件开发的重
要组成部分。
⏹测试人员水平越高,找到软件问题的时间就越早,软件就越容
易更正,产品发布之后越稳定,公司赚的钱也越多,微软就是
一个典型的例子
2.软件测试和软件质量的关系
对软件进行充分的测试才能够有效的保证软件质量
3.软件缺陷?
从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;
从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背。
任何程序、系统中的问题,和产品设计书的不一致性,不能满足用户的需求
软件缺陷的官方定义,至少违反下列原则之一:
1.软件未实现产品说明书要求的功能;
2.软件出现了产品说明书提到不应该的错误;
3.软件实现了产品说明书未提到的功能;
4.软件未实现产品说明书未提到但应实现的目标;
5.软件难以理解、不易使用、运行缓慢等问题。
4.软件缺陷产生的原因
①技术问题
算法错误,语法错误,计算和精度问题,接口参数传递不匹配
②团队工作
误解、沟通不充分
③软件本身
文档错误、用户使用场合,时间上不协调、或不一致性所带来的问题
系统的自我恢复或数据的异地备份、灾难性恢复等问题
5.为什么越早进行软件测试越好?
随着时间的推移,缺陷成本会越来越高
6.软件质量的定义:软件产品满足规定的和隐含的与需求能力有关的全部
特征和特性。
7.什么是SQA ?
软件质量保证是通过对软件产品和活动有计划的进行评审和审计来验证软件是否合乎标准的系统工程活动
8.软件测试的分类
测试目的
a)正确性测试:黑盒测试和白盒测试;
b)性能测试
c)可靠性测试:负载、压力、强壮性测试
d)安全性测试
测试阶段:单元、集成、系统、验收测试
根据系统内部结构和具体实现算法角度分为黑盒测试和白盒测试两类。
根据测试对象在测试过程中是否发生状态变化分为动态测试和静态测试方法;
9.白盒测试
10.黑盒测试
主要用于功能测试阶段,也称黑盒测试为功能测试或数据驱动测试。检查系统功能是否按照需求规格说明书的规定正常使用、是否能适当接收输入数据输出正确的结果。
等价类划分法
边界值
举例:输入6位正整数(等价类、边界值)
错误推测法:取null 判定表法
11.V模型
12.单元测试(工具:JUnit)
是对软件基本组成单元进行的测试。
一般在代码完成后由开发人员和测试人员共同完成,QA人员辅助.
为何要进行单元测试
①尽早发现错误
②检查代码是否符合设计和规范
目标与任务
任务1:模块独立执行通路测试
检查每一条独立执行路径的测试。保证每条语句被至少执行一次。(基本路径测试)
任务2:模块局部数据结构测试
检查局部数据结构完整性
任务3:模块接口测试
检查模块接口是否正确
任务4:模块边界条件测试
检查临界数据处理的正确性
任务5:模块的各条错误处理通路测试
预见、预设的各种出错处理是否正确有效。
驱动程序/驱动模块(driver)
用以模拟被测模块的上级模块。
a)作用:接受测试数据,把相关的数据传送给被测模块,启动被测模块,
并打印出相应的结果。
桩程序/桩模块(stub)
又称为存根程序,用以模拟被测模块工作过程中所调用的模块。
b)作用:由被测模块调用,一般只进行很少的数据处理,例如打印入口
和返回,以便于检验被测模块与其下级模块的接口
13.集成测试
在单元测试的基础上,将已分别通过测试的单元按照设计的要求组合起来再进行的测试,以检查这些单元之间的接口是否存在问题。
系统集成的时候有哪些方法(自定向下,自下向上,大棒,三明治:解
释原理)
自顶向下:先期完成的模块将是后期模块的驱动程序,从而使后期模块的单元测试和集成测试出现了部分的交叉
自底向上:先期完成的模块将是后期模块的桩程序
大棒集成法:所有的模块一次集成
三明治集成法:将自顶向下和自底向上的集成方法有机地结合起来,不需要写桩程序因为在测试初自底向上集成已经验证了底层模块的正确性。
14.人们常常将非功能性测试(如安全性、可靠性、性能等)看作是系统测
试,以区别于功能测试。
15.性能测试
性能测试是通过测试确定系统运行时的性能表现:运行速度、响应时间、占有系统资源等方面。
验证系统是否达到用户提出的性能指标,同时发现系统中存在的性能瓶颈,起到优化系统的目的。
在做性能测试时,如果并发用户非常多,可以用一些性能测试软件(自动化测试软件)
16.安全性测试
安全性测试是检查系统对非法侵入的防范能力。
17.可靠性测试
可靠性(Reliability)是产品在规定的条件下和规定的时间内完成规定功能的能力
可靠性测试是根据软件系统可靠性结构、寿命类型和各单元的可靠性试验信息,利用概率统计方法,评估系统可靠性特征量。
18.压力测试
在一种需要反常(如长时间的峰值)数量、频率或资源的方式下,执行可重复的负载测试,以检查程序对异常情况的抵抗能力,找出性能瓶颈。