用户登录
用户注册

分享至

广义的软件测试确认 广义的软件测试分为什么

  • 作者: 温馨绅士
  • 来源: 51数据库
  • 2020-04-21

软件测试的狭义论和广义论

  G.J.Myers所给出了测试定义——“程序测试是为了发现错误而执行程序的过程”,实际是一个狭义的概念,因为他认为测试是执行程序的过程,也就是传统意义上的测试——在代码完成后,通过运行程序来发现程序代码或软件系统中错误。但是,这种意义上的测试是不能在代码完成之前发现软件系统需求、发现设计上的问题,把需求、发现设计上的问题遗留到后期,这样就会可能造成设计、编程的部分返工。增加软件开发的成本、延长开发的周期等。需求阶段和设计阶段的缺陷产生的放大效应会加大。这非常不利于保证软件质量。这种狭义论是受软件开发瀑布模型影响。

  正是为了更早地发现问题,所以将测试延伸到需求评审、设计审查活动中去,也就是将“软件质量保证”的部分活动归为测试活动。实际上,在软件开发实际操作中,常常将软件测试和质量保证——这两种努力(efforts)合并起来。

  延伸后的软件测试,被认为是一种软件测试的广义概念。这就引出软件测试的两个概念“静态测试”和“动态测试”,如 测试方法的辩证统一 (1)所述,这样就由静态测试和动态测试构成一个全过程的、完整的软件测试,而且静态测试显得更为重要。

软件测试与质量保证的区别与联系

“软件测试”从广义上讲是“利用测试工具按照测试方案和流程对新产品进行功能和性能测试”,其本质即设计开发阶段对产品实施的“设计验证”和“设计确认”。明确了“软件测试”的本质就可以比较清晰的知道其与质量保证的关联了。

就你的问题回复。

区别:通过上面的分析,可以知道并不是一类,无从谈起区别。

联系:“质量”简单讲就是“满足顾客要求的能力”,“质量好”即满足顾客要求的能力强,“质量保证”可以理解为稳定这种能力并不断提高能力。加上从ISO的角度看的话,讲可以知道“软件测试”其实属于“质量保证”的一种方式。

软件开发各阶段测试主要针对查找什么类型的缺陷?

这个还是可以谈一谈的,不要一棍子打死嘛。不过作者明显没有全过程的测试经验,而要写一些理论性的文章。

一般软件开发的生命周期遵循以下几个阶段:需求,设计,开发和测试。

那么,测试在各个阶段的具体实现是不同的。

需求阶段,测试侧重于考察需求对业务的支持。体现在对需求规格说明书中的,业务流程,子系统划分,用户用例,状态图,数据流图等的测试,主要是业务分析测试;当然,目前很多公司由于测试团队能力不足,只能执行文档测试,找点儿文档编写方面的缺陷,以及可测性方面的缺陷。系统功能测试计划,用例在需求阶段可以同时编写。

设计阶段,测试侧重于考察设计对需求的支持。体现在对设计文档中的数据结构,内部外部接口定义等内容的同行评审。另外,测试驱动开发,则要求在接口文档产生后,编写接口测试的计划和用例。

开发阶段,测试人员可以编写单元测试用例,单元测试脚本等。这时候也应当进行代码走查和结对开发。这个阶段测试侧重于考察代码对设计的准确实现,因此基本都是对代码本身的测试。另外在开发阶段的中后期,开始集成测试,前面写的接口测试用例和脚本在这里都会使用。该测试主要是用来验证系统正确集成,功能可用。

测试阶段,系统已经集成完毕或者基本稳定,系统被放到模拟生产环境中进行系统测试,在需求阶段编写的系统测试用例可以实施。这个阶段主要是确认业务流程可以完整实施。一般情况下,国内只有在这个阶段才开始性能/稳定性/兼容性/可用性/安全性测试。而事实上,在前面描述的各个阶段,这些内容都应当在评审或者测试的范围内。

在这之后,就是交付甲方的UAT,之后是商业BETA等等阶段。这些阶段是各种测试的混合,但是最核心的是系统的业务完整性,系统安全性和系统可用性这三个方面。

在需求阶段前,是立项-投标阶段,实际上,呵呵,这个阶段同样有测试存在,主要是同行评审,技术委员会实施的。

总而言之,软件测试这个东西,只是产品质量保证体系中的一部分,在CMMI中属于验证和确认实践。验证和确认实践中除了软件测试,就是同行评审。越是前期工作,同行评审的比重越大,测试的比重越小;越是后期,前者越小,后者越大。我前文是混淆了测试和评审,用广义的验证和确认更加准确。

广义和狭义的区别

1 广义就是指所有的意思,包括整个自然界。狭义就是指某些的意思,只包括特定范围。

2 信息的广义含义是指对各种事物的存在方式,运动状态和相互联系特征的一种表达和陈述。 信息的狭义含义是指具有新内容或新知识的信息,即对接受者来说是预先不知道的东西。

3 广义是大范围的,狭义是小范围的!

扩展资料:

广义,拼音guǎngyì,释义是由本义而推广原意。就是不渉及具体概念,只是一个框架,其有确定的抽象概念,但没有确定的形象概念。由于不渉及具体概念,因此可以和任意具体概念组合形成狭义概念。

例如:说到‘‘技术’’这个词,我们可能会想到科学技术、劳动技术等很多概念,但如果只说‘‘技术’’而不说具体什么技术,那么就没有意义。在这里技术这个概念就是广义概念,而具体的科学技术等,就是狭义概念。

狭义,就是在系统中设定或区分某一相对狭窄的、片面的、局部的点、面、区域、系统,主要指某一物质系统中具有特殊的、有别于一般的、非普遍的部分。相对广义而言。

参考资料:百度百科-广义百度百科-狭义

何为软件测试?

不要听媒体跟培训机构瞎吹,现在软件测试没那么火了,缺的是中高级的,初级的已经严重饱和了,如果你想进入这个行业,建议你先去几个软件测试论坛(比如51testing)了解一下到底软件测试是干什么工作的,了解了以后再确定自己是否有兴趣和毅力坚持学下去,如果能再进入这个行业,否则就算了,现在初级的找工作很难

软件测试

软件测试知识点

一.软件测试基本概念

1.软件质量的概念

功能性:软件提供明确与隐含功能的能力

可靠性:维持规定性能的能力

易用性:被理解学习使用和吸引用户的能力

效率:相对于所用资源的数量,软件产品可提供适应性能的能力

可维护性:纠正错误,改进功能,适应环境的能力

可移植性:迁移到另一种环境的能力

2.软件测试目标和原则

目标:以最少的时间和人力,系统地找出软件潜在的各种错误和缺陷

原则:1.尽早和不断地进行软件测试;

2.测试用例应该由测试输入数据和预期输出结果构成;

3.程序员尽量避免测试自己的程序(最好是独立于开发组和客户的第三方测试组和机构)

4.测试应包括合理的和不合理的输出条件,

5。注意测试中的集群现象(测试后的程序残存的错误数目与已经发现的成正比)

6.严格执行测试计划,排除随意性7.对每一个结果做全面检查

8.妥善保管测试计划用例出错统计和分析报告

3.软件测试心理学

1)程序测试过程具有破坏性:测试是为了发现错误而执行程序的过程

2)程序员尽量避免测试自己的程序

3)程序设计组织不应测试自己的程序

4.软件测试的经济学:不能发现”所有”的缺陷和错误

1.黑盒测试(数据驱动测试/输入输出驱动测试):测试人员完全不考虑程序内部的特性,和逻辑结构,只根据程序的需求规格说明书,检查程序是否符合他的功能说明

2.白盒测试(逻辑驱动测试):对程序的逻辑结构进行检查

5.软件质量保证’

二.软件测试类型以其地位

1.软件开发阶段:

1.生存周期:制定规划(功能需求可靠性接口可行性资源,可行性报告)——系统与软件需求定义——软件设计(技术核心)——编程和单元测试——系统与集成测试——运行和维护

2.测试信息流:软件配置,测试配置,测试工具

2.规划阶段的测试:目标阐述(不太详细也不具体),需求分析,功能定义,规划阶段的测试

3.设计阶段的测试:外部设计(用户界面),内部设计(结构设计,数据设计,逻辑设计),伪代码分析

4.编程阶段的测试:白盒测试与黑盒测试,结构测试与功能测试,路径测试:覆盖准则,增量测试与大突击测试

三.代码检查、走查和评审

1.桌面检查:程序员检查自己编写的程序,是在进行单元测试之前对代码进行分析

2.代码检查:以小组为单位阅读代码,

1.协调人:主持、引导代码检查的过程

2.开发人员:检查项目的生产者

3.检查人员:检查小组每一个人都可以认为是一个检查人员,可以兼任不同的角色。

4.解说员5.记录员

项目:变量是否喂赋值或者初始化?上下标是否在界限之内?是不是整数?是否分配了数值的内存单元?变量的数据类型是否与编译器所预期的一致?

3.走查:与代码检查类似,以小组为单位进行,进行一些列规程的错误检查技术的集合

4.同行评审:通过作者的同行来确认缺陷和需要变更区域检查的方法

评审的方法和技术:

1. 临时评审:一位程序员临时请另一位花几分钟时间查找一个缺陷

2. 桌上检查或轮查:多人进行的并行桌上检查

3. 结对评审:作者请另一位同行进行桌上检查

4. 走查:5.小组评审。6.正式审查

四.覆盖率测试

1.概念:度量测试完整性的手段

覆盖率=被执行的项目数/项总数 ×100%

2.逻辑结构的覆盖测试

◇判定,□语句,○程序的开始或者结束,

1.语句覆盖率=被评价用到的语句数/可执行的语句总数 ×100%

2.指令块:不存在(会引起分支)的控制语句,IB

IB覆盖率=被执行的语句块数量/程序中的指令块总数 ×100%

3.判定覆盖率=被执行的分支数量/程序中的分支总数 ×100%

DDP覆盖率=被评价到的判定路径数量/程序中的判定路径总数 ×100%

5. 条件覆盖=被评价到的条件取值数量/条件取值总数 ×100%

3.路径测试覆盖:

1.分支结构的路径测试:①对于嵌套型分支结构,若有n个判定语句,则存在n+1条不同的路径

②对于串联型分支结构,若有n个判定语句,则有2n个路径 →减少测试用例,构造正交表P71

2.循环结构的路径测试:简单循环,嵌套循环,连锁循环,非结构循环

4.数据流测试:关注在一条路径上变量在何处赋值,在何处引用

佣金问题伪代码描述:P79

5.基于覆盖测试的数据选择

如何使用覆盖率①覆盖率不是目的,只是一种手段②不能针对所有的覆盖率指标进行测试③不能追求100%的覆盖率

五.黑盒测试

1.等价类测试:降数目极多的数据化成等价类,然后测试某类的代表值

原则:①如果确定了取值范围或者取值的个数,则可以确立一个有效等价类和两个无效等价类

②如果输入条件规定了输入值的集合,则可以有一个有效和一个无效等价类

2.边界值测试:用例:刚达到这个范围的值,比最大范围多1或者少1,如果输入输出域是有序集合,则采用边界

3.基于因果图的测试:E互斥,I包含(至少一个成立)O唯一 R要求(a→b)M屏蔽(a1则b0)

4.基于状态图的测试:P105

六.单元测试和集成测试

1.单元测试的目标和模型:

1.单元:可以编译和执行的最小软件构件、不会指派给多个设计人员开发

2.目标:验证代码是与设计相合的,跟踪需求和设计的实现和缺陷,发现编码过程中引入的错误

3.模型:(与集成,系统测试区别:P120)

2.单元测试的策略

1.自顶向下:逐层打桩 2.自底向上:自下向上打桩 3.孤立测试:为每个模块单独打桩

4.综合测试

3.单元测试分析:

1.模块接口

2.局部数据结构:保证临时存储在模块内的数据的完整正确

3.独立路径:保证每个模块的每条语句至少执行一次

4.出错处理:预见各种出错条件,进行适当的处理

5.边界条件.

4.集成测试的基本概念

1.定义:对系统接口和集成后的功能的正确性进行检验

2.与系统测试区别:

①测试对象 集成:各个模块的构件 系统:软硬件以及相关的外围设备,数据采集传输等

②测试时间 集成介于单元和系统测试之间

③ 测试方法:单元白盒,集成灰盒,系统黑盒

5.集成测试策略:

1.基于分解

①一次性集成测试②自顶向下增量式测试③自底向上的增量式集成测试④三明治集成

2.基于功能的集成:采用增量式集成测试方法

3.基于调用图的集成:成对测试,相邻测试

4.基于路径的集成 5.基于进度的集成

6集成测试分析

1.体系结构分析:

①根据需求分析,划分结构层次图

②对各个结构之间的依赖关系进行分析,确定测试模块的大小

2.模块分析 3.接口分析 4.可测试性分析

七.系统测试

1.概念:软件开发完成后,还要与系统的其他部分结合起来才能运行,系统测试的目的就是对各部分进行集成和确认测试

2.系统测试的方法:

①功能测试:是否有不正确或者遗漏的功能,能否满足系统和用户的隐式需求,能否正确接受输入

②协调一致测试

③性能测试:度量系统的性能与预先定义的目标有多大差距:压力测试:

④压力测试:测试者想要破坏程序,边界测试

⑤容量测试⑥安全性测试⑦失效恢复测试⑧备份测试GUI图形化用户接口测试⑩健壮性测试

易用性测试、安装测试、文档测试、在线帮助测试

3.系统测试的实施

①确认测试:有效性测试

②α测试和β测试:内部用户/内测

③验收测试:

④回归测试:软件变更后对其进行重新测试

八.软件性能测试和可靠性测试

1.软件性能的概念:完成某项功能时展现出来的及时性

指标:响应时间(平均,最大),吞吐量,并发用户数,资源利用率

2.性能测试的执行:

3.软件可靠性的概念:在规定时间条件内,软件不引起失效的概率

软硬件可靠性区别:

① 唯一性:软件每份拷贝都相同,硬件不能相同

② 物理退化:硬件可靠性下降

③ 逻辑复杂性:软件是纯逻辑产品,其失效也主要是逻辑错误

④ 版本更新:硬件较慢,软件较快

4.软件可靠性预计:

①软件的运行剖面与可靠性剖面一致②一旦发生故障,立即修复,不引入新的故障③故障和失效是相互独立的④每个故障发生的概率相等

九.面向对象的软件测试

1. 面向对象的软件测试的问题

1.封装:信息隐蔽,一组相关变量和方法被封装在同一个类中

2.继承:子类直接获得父类的属性和方法 充分性,误用

3.多态

2. 面向对象的软件测试模型:分析测试(OOA),设计测试(OOD)编程测试(OOP)

3. 面向对象的软件测试策略:检查分析结果是否附和相应的面向对象分析方法要求,分析检查结果是否满足软件需求

十:WEB应用测试

1. 应用服务器的分类:

① 面向的领域:通用应用服务器(提供多方面服务),专用应用服务器

② 循环的规范:

2. WEB应用的测试策略

1. 表示层的测试:拍板结构,链接结构,客户端程序,浏览器兼容性

2. 业务层的测试:单个程序(尽可能白盒测试),对一组程序

3. 数据层的测试:

3.WEB软件的测试技术:

1.功能测试:链接测试,表单测试,Cookies测试

2.性能测试:并发测试,负载测试和性能调优

3.安全性测试:服务器,客户端,Cookies,日志功能

4.接口测试:使用接口,提供接口

4.系统安全检测与防护

1.入侵检测 狭义:黑客进入一个系统 广义:窃取数据,滥用服务器,发送垃圾邮件

2.漏洞扫描 操作系统漏洞,网络漏洞,数据库漏洞

3.安全策略 ①物理破坏防护:远离火灾,人为破坏

②信息窃取防护:入网访问控制,权限控制(用户权限,操作权限),服务器和节点安全控制,网络监测控制,防火墙控制

③信息加密:保护策略,加密算法

十一.其他测试

1. 兼容性测试①不同的硬件配置影响软件性能②软件使用了硬件的特定功能

1. 软件兼容性测试:与操作系统,数据库,浏览器,中间件,其他软件 兼容性

2. 数据兼容性:不同版本数据,不同软件间兼容性

2.易用性测试

1.易安装性测试:安装手册自动化程度,灵活性,中断处理,安装和卸载,多环境安装支持

2.功能易用性测试:业务符合度,功能定制性,功能关联度,数据共享度,用户约束的合理性

3.用户界面测试:界面整体(合理一致规范),界面元素,输入测试

3.构件测试:

4.极限测试:

1.极限编程:①特性:简单的分析设计,频繁的客户交流,增量式开发,连续的测试

②优点:随时应对新增或改变的需求

2.极限测试①单元测试:最重要的发现错误的手段,由编码人员完成,在编程之前测试

②极限测试的实施:单元测试用例的生成

5.文档测试:只能以文档审查的方式进行

内容:宣传和包装材料,用户许可说明书,手册,在线帮助,示例和模板

文档的测试

转载请注明出处51数据库 » 广义的软件测试确认 广义的软件测试分为什么

软件
前端设计
程序设计
Java相关