理论篇

来源:互联网 发布:身体发肤受之父母 知乎 编辑:程序博客网 时间:2024/04/29 21:34

软件测试概论

一.软件测试与软件项目的关系

 软件测试是为了软件项目服务的,其根本目的是为了提高软件质量,降低软件项目的风险二.软件的质量风险表现:

1.       内部风险:在即将销售的时候发现有重大的错误,从而延迟发布日期,失去市场机会

2.       外部风险:用户发现了不能容忍的错误,引起索赔、法律纠纷、以及用户客户支持的费用甚至失去客户的风险。

. 第三方测试

 第三方测试是指独立于软件公司自身的测试,所谓第三方是指在软件公司和软件用户之间的一方。第三方测试机构也是一个中介的服务机构。

 

软件测试基础

一.软件是由文档、数据以及程序组成的。

二.软件测试的概念:

 软件测试是对软件形成过程的文档、数据以及程序进行的测试。

三.软件测试与质量保证的区别

 质量保证(QA:质量保证的重要工作通过预防、检查与改进来保证软件质量。Qa采用“全面质量管理”和“过程改进”的原理开展质量保证工作,所关注的是软件质量的检查与测量。

 软件测试:软件测试关心的不是过程的活动,而是对过程的产物以及开发出的软件进行剖析。执行软件,对过程中的产物——开发文档和源代码进行走查,运行软件,以找出问题,报告质量。测试是为了找出更多的问题。软件测试是保证软件质量的重要环节。

四.软件测试原则

1.       所有的软件测试都应追溯到用户需求

2.       应把“尽早地和不断地进行软件测试”作为软件测试者的座右铭。

3.       完全测试是不可能,测试需要终止。

4.       充分注意测试中的群集现象

测试后程序中残存的错误数目与该程序中已发现的错误数目或检错率成正比。

5.       程序员应避免检查自己的程序

6.       尽量避免测试的随意性

测试是有组织,有计划,有步骤的活动。

五.验证与确认的概念

验证(verification)是保证软件争取实现特定功能的一系列活动和过程,目的是保证软件生命周期中的每一个阶段的成果满足上一个阶段所设定的目标。

确认(validation)是保证软件满足用户需求的一系列活动和过程,目的是在软件开发完成后保证软件与用户需求相符合。

六.软件测试分类

1.       按开发阶段划分:单元测试,集成测试,系统测试,确认测试和验收测试。

2.       按测试实施组织划分:开发测试(或α测试),用户测试(β测试),第三方测试。

3.       按测试技术划分:白盒测试,黑盒测试,灰盒测试。(或静态测试和动态测试)

七.基本概念

1.       单元测试:单元测试又称模块测试,是针对软件设计的最小单位——程序模块进行正确性检验的测试工作。其目的在于检查每个程序单元能否争取实现详细设计说明中的模块功能、性能、接口和设计约束等要求,发现各模块内部都可能存在的各种错误。

2.       集成测试:也叫组装测试,在单元测试的基础上,将所有的程序模块进行有序的递增的测试。集成测试是检验程序单元或部件的接口关系。集成测试的过程是一个持续的过程,形成很多临时版本,在每个版本提交时,都需要进行冒烟测试,即对程序主要功能进行验证。冒烟测试也叫版本验证测试、提交测试。

3.       确认测试:是通过检验和提供客观证据,证实软件是否满足特定预期用途的需求,确认测试是检测与证实软件是否满足软件需求说明书中规定的要求。

4.       系统测试:是验证和确认系统是否达到其原始目标,而对集成的硬件和软件系统进行的测试,系统测试是在真是或模拟系统运行的环境下,检查完整的程序系统能否和系统(包括硬件,外设,网络和系统软件,支持平台等)正确配置、连接,并满足用户需求。

5.       验收测试:按照项目任务书或合同、供需双方约定的验收依据文档进行的对整个系统的测试与评审,决定是否接收或拒绝系统。

6.       开发测试:也叫“验证测试”或“α测试”,开发方通过检测和提供客观证据,证实软件的实现是否满足规定的需求。开发方对要提交的软件进行全面的自我检查与验证,可以和软件的“系统测试”一并进行。

7.       用户测试:在用户的应用环境下,用户通过运行和使用软件,检测与核实软件实现是否符合自己预期的要求。通常用户测试不是指用户的“验收测试”,而是指用户的使用性测试,由用户找出软件的应用过程中发现的软件缺陷与问题,并对使用质量进行评价。

   β测试通常被看成是一种“用户测试”,β测试主要是把软件产品有计划地免费发布到目标市场,让用户大量使用,并评价、检查软件,通过用户各种方式的大量使用,来发现软件存在的问题与错误,把信息反馈给开发者修改。

8.     第三方测试:介于软件开发方和用户方之间的测试组织的测试,也称为独立测试。

9.     白盒测试:通过对程序内部结构的分析、检测来寻找问题,白盒测试可以把程序看成装在一个透明的白盒子里,清楚了解程序结构和处理过程,检查是否所有的结构及路径都是正确的,检查软件内部动作是否按照设计说明的规定正常进行。

10.  黑盒测试:通过软件的外部表现来发现其缺陷和错误,黑盒测试把测试对象看成一个黑盒子,完全不考虑程序内部结构和处理过程,在程序界面处进行测试,它只是检查程序是否按照需求规格说明书的规定正常实现。

11.  灰盒测试:介于白盒与黑盒之间,关注输出对于输入的正确性,同时也关注内部表现,但不像白盒测试那么详细,完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态。

八.软件开发及测试模型

开发模型:瀑布模型,原型模型,螺旋模型,增量模型,渐进模型,快速软件开发(rad),rational统一过程(rup

测试模型:V模型,W模型,H模型

九.软件开发过程:软件计划阶段——需求分析——软件设计——代码

软件测试过程: 单元测试——集成测试———确认测试——系统测试——验收测试

十.软件失效分类:软件错误——软件缺陷——软件故障——软件失效

软件错误是一种认为错误,一个软件错误必定产生一个或多个软件缺陷,当一个软件缺陷被激活时,便产生一个软件故障,同一个软件缺陷在不同条件下被激活,可能产生不同的软件故障,故障不及时的容错实施加以处理,便导致软件失效。

十一. 缺陷与错误严重行和优先级

1.     严重级

严重:系统崩溃,数据丢失,数据毁坏

较严重:操作行错误,错误结果,遗漏功能

一般:错别字,UI布局,罕见故障

建议:不影响使用的瑕疵或更好的实现。

2.     优先级

最高优先级:立即修复,停止进一步测试

次高优先级:在产品发布之前必须修复

中等优先级:如果时间允许应该修复

最低等优先级:可能会修复,但是也能发布。

十二. Bug记录信息包括的内容:测试软件名称,测试版本号,测试人名称,测试事件,测试软件和硬件配置环境,发现软件错误的类型,错我ude严重等级,详细步骤,必要的附图,测试注释。

      Bug处理信息:处理者姓名,处理时间,处理步骤,错误记录的当前状态。

      软件错误的状态:新信息(new),打开(open),修正(fixed),拒绝(declined),延期(deferred),关闭(close)。

十三. 错误管理流程

1.     测试人员提交新的错误入库,状态为“new

2.     高级测试人员验证错误,确认为错误,分配给相应的开发人员,设置状态为“open

不是错误,则拒绝,设置为“delined

3.     开发人员查询状态为open的错误,如果不是错误,则置为declined。是错误,则修复并置为fixed,不能解决的错误,留下文字说明并保持错误为open

4.     测试人员查询状态为fixed的错误,验证错误是否已解决。问题解决,置为closed

没有解决,则置为reopen

测试技术

一.              黑盒测试用例设计方法:等价类划分法,边界值分析法,错误推测法,因果图法,   判定表驱动法,正交试验设计法,功能图法

二.              白盒测试用例设计方法:代码检查法,静态结构分析,逻辑覆盖法(语句覆盖,判定覆盖,条件覆盖,条件判定组合覆盖,多条件覆盖,修正条件判定覆盖),基本路径测试法

三.              负载压力测试:是指在一定约束条件下测试系统所能承受的并发用户量、运行时间、数据量,以确定系统所能承受的最大负载压力。负载压力测试包括并发性能测试,疲劳强度测试,大数据量测试等。

四.              Web应用开发测试:代码测试,组件测试

       Web应用运行测试:功能测试,易用性测试,负载压力测试,客户端配置与兼容性测试,安全性测试 

 

 

 

原创粉丝点击