《软件测试》总结

《软件测试》Ron Patton著。

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

一、软件测试工程师究竟要做些什么?

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

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

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

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

二、软件开发生命周期模式

4种最常用的模式

1、大爆炸模式

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

2、边写边改模式

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

3、瀑布模式

强调三点:

1、瀑布模式非常强调产品定义

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

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

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

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

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

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

三、测试的方式

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

2、白盒测试(访问代码,能够查看和审查)

又可以分:

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

2、动态测试 ——通常意义上的测试,即使用和运行软件

于是结合两种就出现了以下测试方式:

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

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

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

1)等价类划分

2)边界值分析

3)数据测试

4)状态测试

失败状态测试

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2)通用代码审查清单

(1)数据引用错误

(2)数据声明错误

(3)计算错误

(4)比较错误

(5)控制流程错误

(6)子程序参数错误

(7)输入/输出错误

(8)其他检查

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

测试用例方法:

1)分段测试

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

(2)集成测试

(3)系统测试

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

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

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

2)数据覆盖

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

3)代码覆盖

程序语句和代码行覆盖

分支覆盖

条件覆盖

没有指明动静态时好像通常指的是动态的。

四、其他测试的技术

配置测试

兼容性测试

外国语言测试

易用性测试

文档测试

软件安全性测试

网站测试

五、测试的补充

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

性能测试、特别测试

六、测试文档

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

一些典型问题:

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

答:

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

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

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

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

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

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

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

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

时间: 2024-12-16 02:02:23

《软件测试》总结的相关文章

《FLASH PROGRAMMING 那些事》总结

注明来自 http://www.ssdfans.com/?p=5589 以MLC为例: 对FGF(Floating Gate Flash)技术的,MLC programming一般分两步走:先program Lower page,然后program Upper Page. 对某个Cell来说,当写入1时,无需Programming,阈值电压保持不变,还是处于E状态:当写入0时,必须进行Programming,使它的阈值电压落到D范围 ,即E->D. Programming某个page时,往其所在

Error:Flash Download Failed-"Cortex-M3"

Error:Flash Download Failed-"Cortex-M3"出现一般有两种情况: 1.SWD模式下,Debug菜单中,Reset菜单选项(Autodetect/HWreset/sysresetReq/Vectreset)默认是AutoDetect,改成SysResetReq即可. 2.Jtag模式下,主要是芯片大小选错.Flash->Configure Falsh Tools配置窗口,切换到“Utilities"页,按“Setting"按钮进

"Insufficient RAM for Flash Algorithms"出错原因及解决方案

"Insufficient RAM for Flash Algorithms"错误一般会有一个"cannot load flash programming algorithm !"的提示窗口,如下图: "Insufficient RAM for Flash Algorithms"从字面上解释是:"装载FLASH算法的RAM空间不足". 这个错误一般出现在添加了新的FLASH烧写算法以后. 原因:FLASH的烧写算法本身也相当于

Flash program memory and data EEPROM

1.简介 STM8S内部的FLASH程序存储器和数据EEPROM是由一组通用寄存器来控制的:所以我们可以通过这些通用寄存器来编程或擦除存储器的内容.设置写保护.或者配置特定的低功耗模式.我们也可以自己对器件的 option byte 进行编程.在这里我们只简单的讲解如何对STM8S内部的数据存储区域(data memory)进行写操作.读操作.擦除操作. 2.存储架构图 STM8S内部存储包括:FLASH程序存储器(FLASH program memory)和数据EEPROM(DATA EEPR

PIC32MZ tutorial -- 32-bit Timer

The microcontroller is PIC32MZ2048ECH144 on the PIC32MZ EC Starter Kit. This microcontroller has four 32-bit synchronous timers are available by combining Timer2 with Timer3, Timer4 with Timer5, Timer6 with Timer7, and Timer8 with Timer9. The 32-bit

PIC32MZ tutorial -- OC Interrupt

In my previous blog "PIC32MZ tutorial -- Output Compare", I shows how to apply Output Compare without interrupt to generate PWM signal. I also tried the Output Compare interrupt. I selected OC to be PWM mode without fault pin (OCM = "110&qu

PIC32MZ tutorial -- Output Compare

Output Compare is a powerful feature of embedded world. The PIC32 Output Compare module compares the values stored in the OCxR and/or the OCxRS registers to the value in the selected timer. When a match occurs, the Output Compare module generates an

关于自制 STM8 Bootloader

由于本人项目需要,要做STM8L052R8的bootloader,用于远程程序升级功能,为了安全考虑,不使用ST自带的bootloader,而是自制bootloader. 基本的功能是这样的,首先程序运行在一个V1.0的版本上,且带了BOOT,当程序收到一条命令后,程序跑入死循环,等待硬件看门狗复位:程序复位后进入bootload区,等待第二条命令的接收,接收到正确的数据帧后,bootloader开始擦除FLASH,并接收数据包,直到最后一个数据包接收完毕,通过指示灯以2HZ的频率闪烁,指示升级

STM32环境搭建/学习观点/自学方法 入门必看

文章转自armfly开发板V4软件开发手册,分享学习~ 今天有幸看到armfly的开发板软件开发手册,开头的基础知识,真的很有用,还好有看到,一切都不迟,感悟很多,摘抄部分,学习分享~ 关于开发环境的搭建 (个人认为,好用的工具,顺手的开发环境,对于编程是一种好的习惯,也是一种好的享受,所以,在环境搭建方面,我还是比较在意软件的互相联合使用,工程建立的规范化等等,这样可以尽量少的在后期更换不同的环境,变软会很浪费时间,一次到位,一路顺风顺水~) 个人偏好的环境搭建: 集成开发环境(IDE):Ke

[stm32参考手册] 1、Introduction

STM32F101xx, STM32F102xx, STM32F103xx, STM32F105xxand STM32F107xx advanced ARM-based 32-bit MCUs 本资料覆盖范围: 这本资料提供完整的关于上述系列STM单片机的存储器和外设的使用方法.在整个文档中(除非特别说明)是把这几类单片机归于STM32F10XXX系列的. 注:STM32F10XXX是一个包含的各种不同存储器尺寸,不同封装和不同外设的微处理器家族. 其他相关资料引导: 关于订货编号.电气和物理性