软件检验测试质量分析结果汇报方案计划.docx
《软件检验测试质量分析结果汇报方案计划.docx》由会员分享,可在线阅读,更多相关《软件检验测试质量分析结果汇报方案计划.docx(12页珍藏版)》请在冰豆网上搜索。
软件检验测试质量分析结果汇报方案计划
软件测试质量分析报告
1编写目的
为了发现程序的错误和缺陷,通过测试,检查该程序是否达到了预期的结果,发现其中的缺陷,确保程序可以正确执行。
质量控制是为了保证每一件工作产品都满足对它的需求而应用于整个开发周期中的一系列审查、评审和测试,质量控制在创建工作产品的过程中包含一个反馈循环,通过对质量的反馈,使得我们能够在得到的工作产品不能满足其规约时调整开发过程。
所有工作产品都应该具有定义好的和可度量的规约,这样就可以将每个过程的产品与这一规约进行比较。
质量保证由管理层的审计和报告构成,目标是为管理层提供获知产品质量信息所需的数据,从而获得产品质量是否符合预定目标的认识和信心。
2测试项目及说明
测试对象为一段计算基本运算加减乘除的代码,通过单元测试、集成测试、系统测试等方法来检测该程序的缺陷。
软件质量保证是为了保证软件系统或软件产品满足用户要求的质量而进行的有计划、有组织的活动,其目的是生产高质量的软件。
在软件质量方面必须强调三个要点:
软件必须满足用户规定的要求,与用户需求不一致的软件,就无质量可言。
软件应遵循软件标准所定义的一系列开发标准,不遵循这些标准的软件,其质量难以得到保证。
软件还应满足某些隐含的要求,例如希望有良好的可理解性、可维护性等,而这些隐含的要求可能未被写在用户规定的需求中,满足它的显性需求而不满足其隐含需求,那么该软件的质量是令人怀疑的。
4:
测试工具及方法
(1)单元测试
测试工具:
Eclipse
Eclipse简介:
Eclipse是一个开放源代码的、基于Java的可扩展开发平台。
就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentKit,JDK)。
虽然大多数用户很乐于将Eclipse当作Java集成开发环境(IDE)来使用,但Eclipse的目标却不仅限于此。
Eclipse还包括插件开发环境(Plug-inDevelopmentEnvironment,PDE),这个组件主要针对希望扩展Eclipse的软件开发人员,因为它允许他们构建与Eclipse环境无缝集成的工具。
由于Eclipse中的每样东西都是插件,对于给Eclipse提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。
这种平等和一致性并不仅限于Java开发工具。
尽管Eclipse是使用Java语言开发的,但它的用途并不限于Java语言;例如,支持诸如C/C++和COBOL等编程语言的插件已经可用,或预计将会推出。
Eclipse框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。
测试方法:
白盒测试
白盒测试简介:
白盒测试(white-boxtesting)又称透明盒测试(glassboxtesting)、结构测试(structuraltesting)等,软件测试的主要方法之一,也称结构测试、逻辑驱动测试或基于程序本身的测试。
白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。
其中逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。
优点和缺点
1.优点
·昂贵
·迫使测试人员去仔细思考软件的实现
·可以检测代码中的每条分支和路径
·揭示隐藏在代码中的错误
·对代码的测试比较彻底
·最优化
2.缺点
·无法检测代码中遗漏的路径和数据敏感性错误
·不验证规格的正确性
(2):
系统测试
测试工具:
Eclipse
测试方法:
黑盒测试
黑盒测试简介:
等价类划分(EquivalencePartitioning)
1.严格控制测试用例的增加,减少为达到“合理测试”的某些既定目标而必须设计的其他测试用例的数量
2.它覆盖了大部分其他可能的测试用例。
划分了等价类后,就可以说,如果对该集合中某个元素所进行的测试没有发现错误的话,那么对该集合中其他元素所进行的测试也不大可能会发现错误。
使用等价类划分方法设计测试用例主要有两个步骤:
(1)确定等价类;
(2)生成测试用例
黑盒测试的优缺点
优点:
1.对于较大的代码单元来说,黑盒测试比白盒测试效率较高。
2.测试人员不需要了解细节,包括特定的编程语言。
3.测试人员和开发人员是彼此独立的。
4.从用户的角度测试,很容易被理解和接受。
5.有助于暴露与任务规格不一致或者有歧义的地方。
6.测试用例可以在需求规格完成之后马上执行。
缺点:
1.测试的只有一小部分,不可能测试全部输入。
2.没有清洁和简明的需求规格说明书,测试用例很难设计。
3.如果测试人员,不被告知开发人员已经执行过的用例,在测试数据上会存在不必要的重复。
4.很多测试路径没有测试到。
5.不能直接对特定程序段进行测试,改程序段可能隐藏更多错误。
5:
测试策略及流程
(1)单元测试
测试用例:
测试前说明:
(2)条件“a>=0”取真(TURE)时为T1,取假(FALSE)时F1
(3)条件“b>=0”取真(TURE)时为T2,取假(FALSE)时F2
(4)条件“c>=0”取真(TURE)时为T3,取假(FALSE)时F3
(5)条件“d>0”取真(TURE)时为T4,取假(FALSE)时F4
1.判定覆盖法的基本思想是设计若干用例,运行程序被测,使得程序中每个判断的取真分支和取假分支至少经历一次,即判定真假值均曾被满足。
测试用例
具体取值条件
判定条件
通过路径
In:
a=1,b=1,c=1,d=1
Out:
r=2
a>=0,b>=0,
c>=0,d>0
N=T,F=T,
O=T,P=T
P(1,2,4,6,8)
In:
a=-1,b=-1,c=-1,d=0
Out:
r=F
a<0,b<0,
c<0,d<=0
N=F,F=F,
O=F,P=F
P(1,3,5,7,9)
2.条件组合覆盖的基本思想是设计足够的测试用例,使得判断中每个条件的所有可能至少出现一次,并且每个判定本身的判定结果也至少出现一次。
测试用例
覆盖条件
覆盖路径
覆盖组合
In:
a=1,b=1,c=1,d=1
Out:
r=2
T1,T2,T3,T4
P(1,2,4,6,8)
(1,3,5,7)
In:
a=1,b=-1,c=1,d=1
Out:
r=1/F
T1,F2,T3,T4
P(1,2,5,7,9)
(1,4,5,7)
In:
a=1,b=1,c=-1,d=1
Out:
r=1/F
T1,T2,F3,T4
P(1,2,4,7,8)
(1,3,6,7)
In:
a=1,b=1,c=-1,d=-1
Out:
r=1/F
T1,T2,F3,F4
P(1,2,4,7,9)
(1,3,6,8)
In:
a=1,b=-1,c=-1,d=-1
Out:
r=1/F
T1,F2,F3,F4
P(1,2,5,7,9)
(1,4,6,8)
In:
a=1,b=-1,c=-1,d=1
Out:
r=1/F
T1,F2,F3,T4
P(1,2,5,7,8)
(1,4,6,7)
In:
a=1,b=1,c=1,d=-1
Out:
r=1/F
T1,T2,T3,F4
P(1,2,4,7,9)
(1,3,5,8)
In:
a=1,b=-1,c=1,d=-1
Out:
r=1/F
T1,F2,T3,F4
P(1,2,5,6,9)
(1,4,5,8)
In:
a=-1,b=1,c=1,d=1
Out:
r=1/F
F1,T2,T3,T4
P(1,3,4,6,8)
(2,3,5,7)
In:
a=-1,b=-1,c=1,d=1
Out:
r=1/F
F1,F2,T3,T4
P(1,3,5,7,9)
(2,4,5,7)
In:
a=-1,b=1,c=-1,d=1
Out:
r=1/F
F1,T2,F3,T4
P(1,3,4,7,8)
(2,3,6,7)
In:
a=-1,b=1,c=-1,d=-1
Out:
r=1/F
F1,T2,F3,F4
P(1,3,4,7,9)
(2,3,6,8)
In:
a=-1,b=-1,c=-1,d=-1
Out:
r=1/F
F1,F2,F3,F4
P(1,3,5,7,9)
(2,4,6,8)
In:
a=-1,b=-1,c=-1,d=1
Out:
r=1/F
F1,F2,F3,T4
P(1,3,5,7,8)
(2,4,6,7)
In:
a=-1,b=1,c=1,d=-1
Out:
r=1/F
F1,T2,T3,F4
P(1,3,4,7,9)
(2,3,5,8)
In:
a=-1,b=-1,c=1,d=-1
Out:
r=1/F
F1,F2,T3,F4
P(1,3,5,6,9)
(2,4,5,8)
In:
a=-1,b=-1,c=1,d=1
Out:
r=1/F
F1,F2,T3,T4
P(1,3,5,7,9)
(2,4,5,7)
In:
a=-1,b=1,c=-1,d=1
Out:
r=1/F
F1,T2,F3,T4
P(1,3,4,7,8)
(2,3,6,7)
In:
a=-1,b=1,c=-1,d=-1
Out:
r=1/F
F1,T2,F3,F4
P(1,3,4,7,9)
(2,3,6,8)
In:
a=-1,b=-1,c=-1,d=-1
Out:
r=1/F
F1,F2,F3,F4
P(1,3,5,7,9)
(2,4,6,8)
In:
a=-1,b=-1,c=-1,d=1
Out:
r=1/F
F1,F2,F3,T4
P(1,3,5,7,8)
(2,4,6,7)
In:
a=-1,b=1,c=1,d=-1
Out:
r=1/F
F1,T2,T3,F4
P(1,3,4,7,9)
(2,3,5,8)
In:
a=-1,b=-1,c=1,d=-1
Out:
r=1/F
F1,F2,T3,F4
P(1,3,5,6,9)
(2,4,5,8)
组合编号:
组合编号
覆盖条件取值
判定条件取值
1
T1,T2
M=T
2
T1,F2
M=F
3
F1,T2
N=T
4
F1,F2
N=F
5
T3,T4
O=T
6
T3,F4
O=F
7
F3,T4
P=T
8
F3,F4
P=F
3.路径覆盖就是设计所有的测试用例,来覆盖程序中的所有可能的执行路径。
测试用例
覆盖条件
覆盖路径
覆盖组合
In:
a=1,b=1,c=1,d=1
Out:
r=2
T1,T2,T3,T4
P(1,2,4,6,8)
(1,5)
In:
a=1,b=-1,c=1,d=1
Out:
r=1/F
T1,F2,T3,T4
T1,T2,F3,T4
T1,T2,T3,F4
P(1,3,4,6,8)
P(1,2,5,6,8)P(1,2,4,7,8)
(2,5)
(1,7)
(1,6)
In:
a=-1,b=1,c=1,d=1
Out:
r=1/F
F1,T2,T3,T4
P(1,3,4,6,8)
(3,5)
In:
a=-1,b=-1,c=1,d=1
Out:
r=F
F1,F2,T3,T4
P(1,3,5,6,8)
(4,5)
In:
a=-1,b=-1,c=-1,d=1
Out:
r=F
F1,F2,F3,T4
P(1,2,4,6,8)
(4,7)
In:
a=-1,b=-1,c=-1,d=-1
Out:
r=F
F1,F2,F3,F4
P(1,3,5,7,9)
(4,8)
流程图1
MT2
F3
d=a+b*c/d
NT4
F5
OT6
F7
T8
P
F9
(2)系统测试
可使用性测试:
(针对软件质量中)“功能性”
目的:
根据产品的需求规格说明书和测试列表,验证产品的功能实现是否符合需求规格;
测试工具:
java
关注点:
功能是否遗漏
功能实现是否满足用户需求和系统设计的隐性需求
输入能否正确接受,输出结果是否正确
基本功能测试:
测试内容
序号
操作
输入
期望结果
测试结果
是否通过
正常输入
2
加法
5+2
7
7.0
是
3
减法
5-2
3
3.0
是
4
乘法
5*2
10
10.0
是
5
除法
5/2
2.5
2.50
是
6
清除
backspace
update
result
否
非法输入
7
除0
5/0
fault
infinity
否
8
连乘/除
4**2
update
fault
否
9
连加/减
4++2
update
fault
否
10
输入字母
4y+3
update
fault
否
11
溢出
12.......3+4......3
update
fault
否
12
精度测试
1/3
1/3
0.3333333..
是
负载测试:
软件测试是保证软件质量的重要手段,对软件系统进行有效的负载压力测试,有助于精确的评估出软件性能的瓶颈,从而对其进行调优.利用自动化性能测试工具LoadRunner,对计算器进行实例负载压力测试,初步评估出该Web网页的性能瓶颈,针对此性能瓶颈,提出改善并发用户数及用户访问速度的方法.
测试工具:
HP—LoadRunner
关注点:
增加用户的数量对系统响应时间的影响
结论:
通过对数据的分析我们可以得出以下两点:
1..随用户的数量的增加,软件对数据的响应时间不断增大。
2.通过对用户数量的增大,我们可以得出软件的最大用户数量在3700左右。
6:
缺陷统计及分析
(1)单元测试
测试分析:
1分析测试结果于预期结果是否一致,测试覆盖率达到多少。
测试类型
测试结果与预期果
测试覆盖率
判定覆盖
一致
100%
条件组合覆盖
一致
100%
路径覆盖
一致
100%
软件缺陷:
1输入负值,输出结果显示出错。
2只能计算一组数据,不能循环计算。
3减法测试模糊不清。
7:
测试质量分析
代码导入及运行过程:
首先安装java开发工具箱jdk,它是java程序能够运行的条件,也是用来调试java程序的工具,之后安装可视化的java编译环境eclipse直接进行java程序的编码工作,并提供可视化的运行环境,我们说jdk同样可以做出java项目,毕竟eclipse本身就是用jdk编写的,所以用eclipse运行的java程序也可以用jdk运行。
(1)代码导入:
安装好jdk与eclipse后,打开eclipse,左击文件新建一个java项目
(2)命名为MyProject后点击完成,右击项目名称新建一个class文件
命名为size后点击完成,将代码复制在size.java中运行结果如下
代码运行后开始软件测试。
8.评价软件的角度
(1)正确性
正确性是指软件按照需求正确执行任务的能力。
正确性也涵盖了“精确性方面。
无庸质疑,这是对一款软件最基本的要求,比如我们通过ATM自动取款机取款时,在输入1,000时,结果只输出了800或者输出了1,200,可想而知这会对银行和客户会产生多大的影响。
一款软件满足不了正确性的要求,再谈其他任何方面都没意义。
(2)健壮性
健壮性是指在异常或者不利情况下,软件能够正常运行的能力。
我们可以用生活中的一个例来说明,当流感出现的时候,在同样环境下,有些人很容易就生病,而有些人却任你东南西北风,就是安然无恙。
(3)性能
性能也就是一个软件效率问题。
(4)易用性
顾名思义,易用性是软件能否满足客户容易操作使用程度。
易用性也是衡量一款软件质量好坏的一个重要方面。
(5)人员素质
软件是人做出来的,软件质量的好坏和开发、测试以及有关管理人员都息息相关。
在软件开发方面,我们在此不谈,只从测试的角度来谈软件质量保证。
说质量保证,先问下自己,从事质量保证的人员真的有能力去做好质量保证吗?
质量保证的人员能力问题是个重要方面,如果连软件中潜在问题都发现不了,想解决问题,做高质量的软件,谈何容易?
测试人员能力是一方面,其他如从事软件测试人员的职业素养也是个重要方面。
如果一款软件未有充分去测,甚至对有些概率性的问题一笑而过,耐不住性子深入去测,或者在发行版本时只简单测试一下,这些都无法真正保证软件的质量。
而这种情况下的出现,测试人员根据简单的测试,下了个软件没问题的结论,这样对顾客而言影响是很大的,最终对公司而言无论形象还是未来产品销售等方面的都是不利的。