测试理论基础

1.软件的组成:程序,数据,文档

2.软件测试:使用人工或者自动化手段运行程序,为了发现软件的错误而执行检验的过程

3.软件测试的目的:以最少的人力物力时间找到软件中的缺陷并修改,从而规避风险

4.软件测试作用:发现并修改软件中存在的缺陷,提高用户对产品的使用信心;记录软件运行过程中产生的一些数据,从而为决策提供数据支持;可以降低同类型产品开发遇到的问题风险

5.软件测试的七原则:a.测试显示软件存在缺陷b.穷尽测试是不可能的c.测试尽早介入d.缺陷集群性(2/8原则)e.杀虫剂悖论f.测试活动依赖于测试内容g.没有错误是好事谬论

6.测试对象:需求分析阶段:各种需求规格说明—>软件架构设计:API接口文档接口测试—>编码实现阶段:源代码(白盒测试,单元测试)—>系统功能使用:软件功能主题(当前行业做的最多的一种测试)

7.测试级别(测试阶段):单元测试(最小的软件设计单元)—>集成测试—>系统测试—>回归测试—>验收测试(分2种:α[用户在开发者的场所进行,在受控环境]  和β[用户记录测试中遇到的问题并报告给开发者,开发者对系统进行最后的修改,并开始准备发布最终的软件])

8.系统测试分类:功能测试,兼容性测试,性能测试,安全测试

9.常用系统测试方法:

A.按测试对象分类:白盒测试(程序底层代码),黑盒测试(软件外在功能是否可用),灰盒测试(介于两者之间);

B.按测试对象是否执行分类:静态测试(不运行,只看界面),动态测试(运行程序输入输出)

C.按测试手段分类:手工测试,自动化测试

思考:黑盒是静态测试还是动态测试?白盒呢?

黑盒有可能是动态(运行程序,输入输出),也可能是静态(不运行,只看界面);

白盒有可能是动态(运行程序并分析代码结构),也可能是静态(不运行,只静态查看代码);

动态测试有可能是黑盒(运行,只看输入输出),也有可能是白盒(运行并分析代码结构);

静态测试有可能是黑盒(不运行,只查看界面),也可能是白盒(不运行,只查看代码)

10.软件质量特性:a.功能性b.易用性c.效率性d.可靠性e.可维护性f.可移植性

11.软件测试流程:需求分析评审—>制定测试计划—>测试用例设计—>测试用例评审—>执行测试用例—>缺陷管理—>输出测试报告(测试范围,进度,缺陷管理,结论)—>产品发布—>结束测试

12.常见面试题

(1)你对软件测试的认识?

——软件测试是在软件投入使用前,对软件需求分析设计规格说明和编码的最终复审,是软件质量保证的关键步骤。

软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明 和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试 用例去运行程序,以发现程序错误的过程。

(2)简述CS、B\S的优缺点

——B/S最大优势为客户端免维护,适用于用户群庞大,或客户需求经常发生变化的情况

——C/S功能强大,可以减轻服务器压力,如果用户的需求特别复杂,用C/S

(3)测试的目的是什么?测试的流程是什么?

——以最少的人力物力时间找出软件中潜在的各种错误和缺陷,通过修正各种错误和缺陷提高软件质量,回避软件发布后由于潜在的软件缺陷和错误造成隐患所带来的商业风险。

——需求分析评审-制定测试计划-编写测试用例-测试用例评审-测试用例执行-输出测试报告

(4)什么叫QA?什么叫QC?什么叫TEST?他们分别关注产品的哪些阶段?

——QA:质量保证。流程的监督者,职责是创建和执行改进软件开发过程,并防止软件缺陷发生的标准和方法

——QC:质量控制。也是测试人员,职责是尽可能早地发现软件的缺陷,并确保缺陷得到修复

——TEST:执行测试。执行软件以验证其满足指定的需求并检测错误的过程

(5)你认为软件工程师必备的素质和技能是什么?

——素质:态度、责任、沟通能力。

——技能:1、规范、标准化的编码能力 2、认识和运用数据库的能力 3、较强的动手能力和解决实际问题的能力 4、持续的学习能力、掌握最新的IT技术 5、较强的英文阅读和写作能力

(6)单元测试、集成测试、系统测试的侧重点的什么?

——单元:模块,方法 ;(单元目的是检验软件基本组成单位的正确性)

集成:接口;(集成目的是检测软件单位之间的接口是否正确)

系统:整个系统整体把握.(其在系统集成完后测试,对功能性能及软件运行的软硬件环境中兼容测试,包括回归和冒烟测试.三者间有严格的执行顺序:冒烟—>系统—>回归)

(7)黑盒,白盒,回归,压力测试的定义?

——黑盒测试:把被测物体看成是一个黑盒子,不需了解内部结构,注重输入输出,所以又成为功能测 试

——白盒测试:又称为结构测试,因为注重的是软件的结构、逻辑和算法

—— 回归测试:是指在发生修改之后重新测试先前的测试以保证修改的正确性。

压力测试:是对系统不断施加压力的测试,是通过确定一个系统的瓶颈或者不能接收的性能点,来 获得系统能提供的最大服务级别的测试

(8)软件的生命周期从软件的计划到废弃不用为止,划分为若干阶段,并赋予任务和活动,他们分别 是:

——系统调查、系统分析、系统设计、程序设计、系统测试和运行维护。

二 测试模型

1.V模型/软件生命周期:需求分析—>概要设计—>详细设计—>编码—>单元测试—>集成测试—>系统测试—验收测试

优点:包含底层测试(单元测试)和高层测试(系统测试),清楚的标识了开发和测试的各个阶段,自下而上逐步求精,每个阶段分工明确,便于整体项目的把控

缺点:自下而上的顺序导致测试工作在编码之后,有错误不能及时修改;在工作中用户需求经常变化,导致v模型步骤,反复执行,返工量大,灵活度低

2.W模型:

开发v:需求分析—>概要设计—>详细设计—>编码—>集成—>实施—>交付

测试v:验收/系统测试设计—>集成测试设计—>单元测试设计—>单元测试—>集成测试—>系统测试—>验收测试

优点:强调测试伴随整个软件开发周期,并且测试对象不仅仅是程序,需求和概要设计同样要测试;更早地接入测试,可以发现开发初期的缺陷,且用更低的成本进行缺陷修复,分阶段的工作,便于把控项目

缺点:依赖于软件开发和软件测试依然保持一前一后的线性关系,依然无法支持迭代、自发性和需求等变更调整,在当前很多项目中,在执行过程中根本不产生文档,W模型无法适用;使用起来对技术复杂度很高,对需求和设计的测试要求很高,实践困难。

三 软件测试分类

1.按开发阶段分类:单元测试—>集成测试—>系统测试—>验收测试

2.按是否查看代码分类:

a.黑盒测试:(1).功能测试:逻辑功能测试—>界面测试—>易用性测试—>安装测试—>兼容性测试

(2).性能测试:一般性能测试—>稳定性测试—>负载测试—>压力测试

b.白盒测试

c.灰盒测试

3.按测试对象划分:性能测试—>安全测试—>兼容性测试—>文档测试—>易用性测试(用户体验)—>业务测试—>界面测试—>安装测试

4.按测试执行方式:静态测试—>动态测试

5.按测试实施组织分类:α测试—>β测试—>第三方

四测试用例

1.测试用例:是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策 略。其内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,最终形成文档;如何以最少的人力、资源投入,在最短的时间内完成测试,发现软 件系统的缺陷,保证软件的优良品质,则是软件公司探索和追求的目标,每个软件产品或软件开发项目 都需要有一套优秀的测试方案和测试方法。

2.测试用例作用:1知道测试实施,2规划测试数据的准备,3编写测试脚本的“设计规格说明书”,4评估测试结果的度量基准,5分析缺陷的标准

3.测试用例特点(要素):用例编号—>测试项—>测试标题—>用例属性—>重要级别—>预置条件—>测试输入—>操作步骤—>预期结果—>实际结果—>

4.编写测试用例方法:等价划分法—>边界值分析法—>因果图法—>判定表法—>场景设计法(流程分析发)—>正交试验法—>错误推断法

5.测试用例的设计本质:是在设计的过程中理解需求,检验需求,并把对软件系统的测试方法的思路记 录下来,以便指导将来的测试。

五软件缺陷

1.缺陷类型:系统缺陷—>功能缺陷—>数据缺陷—>数据库缺陷—>接口缺陷—>安全缺陷—>兼容性缺陷—>性能缺陷—>界面缺陷—>环境配置缺陷—>文档缺陷—>算法缺陷—>业务逻辑缺陷—>建议

2.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。