《软件测试》总结

《软件测试》Ron Patton著。程序员

这本书很全面地介绍了软件测试的理论基础知识,也就是看了这本书对软件测试有了必定的了解,帮助我找到了一份关于软件测试的工做。在看这本过程当中也有一些有疑问的地方,这里主要是针对自学软件测试以来对软件测试的理解的一点总结,并把本身不懂的地方梳理一遍。面试

 

1、软件测试工程师究竟要作些什么?编程

这本书中给到一个相对完整的答案:软件测试员的目标就是尽量早地找出软件缺陷,并确保其得以修复。安全

在面试过程当中,面试官曾经告诉过我,并非为了找bug,而是协助开发人员完善产品。有道理,因而就更加赞成一个忘了是在哪里看到的说法:软件测试有如下两个内容。(大概意思是如下)性能

1)检验需求分析文档所要求的功能是否完成。单元测试

2)检验产品是否符合最终用户的体验。测试

 

2、软件开发生命周期模式网站

4种最经常使用的模式spa

一、大爆炸模式设计

简单。几乎没有计划、进度安排和正规开发过程,全部精力都花在开发软件和编写代码上。尽可能避免在此模式下进行测试。

二、边写边改模式

因为开头机会没有计划和文档编制,项目小组得以尿素展示成果。所以,边写边改模式极其适合意在快速制做而且用完就扔的小项目,例如原型范例和演示程序。

三、瀑布模式

强调三点:

一、瀑布模式很是强调产品定义

二、瀑布模式各步骤是分立的,没有交叉的。

三、瀑布模式没法回溯,一旦进入某一个步骤,就要完成该步骤的任务,才能向下继续。

四、螺旋模式(有点包含以上三种模式)

螺旋模式的整体思想是一开始没必要详细定义全部细节。从小开始,定义重要功能,努力实现这些功能,接收客户反馈,而后进入下一阶段。重复上述过程,直至获得最终产品。

螺旋模式每一次循环包含6个步骤:1)肯定目标、可选方案和限制条件;2)明确并化解风险;3)评估可选方案;4)当前阶段开发和测试;5)计划下一阶段;6)肯定进入下一阶段的方法。

五、有些公司采用的模式:敏捷软件开发,快速原型,极限编程,进化开发等。

 

3、测试的方式

一、黑盒测试(功能性测试)

二、白盒测试(访问代码,可以查看和审查)

又能够分:

一、静态测试 ——测试不运行的部分,即检查和审核

二、动态测试 ——一般意义上的测试,即便用和运行软件

因而结合两种就出现了如下测试方式:

一、静态黑盒测试——测试产品说明书,并在软件编写以前找出问题(找出根本性问题)

二、动态黑盒测试——不深刻代码细节测试软件的方法。

动态黑盒测试测试用例的方法

1)等价类划分

2)边界值分析

3)数据测试

4)状态测试

失败状态测试

1)竞争条件测试和时序错乱

2)重复测试——是否存在内存泄露

   压迫测试——尽量地限制软件的必要条件

   重负测试——尽可能提供条件任其发挥

5)经过性测试和失效性测试

失效性测试——纯粹为了破坏软件而设计和执行的测试用例

 

其余:像笨拙的用户那样作、在已找到软件缺陷的地方再找找、像黑客同样思考问题、凭借经验,直觉和预感。

三、静态白盒测试——经过正式审查和检验检查代码的细节

即在不执行软件的条件下有条理地仔细审查软件设计、体系结构和代码,从而找出软件缺陷的过程,有时称为结构化分析

1)正式审查——进行静态白盒测试的过程。

肯定问题、遵照规则、准备、编写报告4个基本要素。

(1)同事审查——最简单,要求最低

(2)走查——比同事审查更正规化的下一步

(3)检验——最正式的审查类型。表述者不是原来的程序员。

2)通用代码审查清单

(1)数据引用错误

(2)数据声明错误

(3)计算错误

(4)比较错误

(5)控制流程错误

(6)子程序参数错误

(7)输入/输出错误

(8)其余检查

四、动态白盒测试——利用查看代码功能(作什么)和实现方式(怎么作)获得的信息来肯定哪些须要测试、哪些不须要测试、如何开展测试。(也称结构化测试structural  testing

测试用例方法:

1)分段测试

(1)单元测试(模块测试)

(2)集成测试

(3)系统测试

以上三种递增测试有两条路径:自底向上(bottom-up)和自顶向下(top-down

自底向上测试中要编写测试驱动模块调用正在测试的模块。

自顶向上测试有点像小规模的大爆炸测试。(编写一小段称为桩Stub的代码充当接口模块。)

2)数据覆盖

数据流、次边界、等式和公式、错误强制

3)代码覆盖

程序语句和代码行覆盖

分支覆盖

条件覆盖

没有指明动静态时好像一般指的是动态的。

 

4、其余测试的技术

配置测试

兼容性测试

外国语言测试

易用性测试

文档测试

软件安全性测试

网站测试

 

5、测试的补充

自动测试、缺陷轰炸、Beta测试(让他人验证和确认软件的经常使用过程)

性能测试、特别测试

 

6、测试文档

测试计划==》测试设计说明==》测试用例说明==》测试过程说明

 

一些典型问题:

1、 问:软件测试主要分哪些阶段?

答:

和开发过程相对应,测试过程会依次经历单元测试、集成测试、系统测试、验收测试四个主要阶段。

单元测试:单元测试是针对软件设计的最小单位––程序模块甚至代码段进行正确性检验的测试工做,一般由开发人员进行。

集成测试:集成测试是将模块按照设计要求组装起来进行测试,主要目的是发现与接口有关的问题。因为在产品提交到测试部门前,产品开发小组都要进行联合调试,所以在大部分企业中集成测试是由开发人员来完成的。。

系统测试:系统测试是在集成测试经过后进行的,目的是充分运行系统,验证各子系统是否都能正常工做并完成设计的要求。它主要由测试部门进行,是测试部门最大最重要的一个测试,对产品的质量有重大的影响。

验收测试:验收测试以需求阶段的《需求规格说明书》为验收标准,测试时要求模拟实际用户的运行环境。对于实际项目能够和客户共同进行,对于产品来讲就是最后一次的系统测试。测试内容为对功能模块的全面测试,尤为要进行文档测试。

 

2、软件测试工程师所应具有的职业素质

优秀的测试工程师除了具有“专业技能、行业知识”外,还必须具有相应的交流技巧、组织技能、实践技能和积极态度。除此以外,还应该具有一些基本的我的素养:即专心、细心、耐心、责任心和自信心“五心”

 

3、软件测试职业发展方向

 

相关文章
相关标签/搜索