【软件测试-02】软件测试生命周期,Bug周期,测试计划,测试用例,测试类型,测试阶段任务

目录

 

软件测试&软件开发生命周期六个阶段 

合格的bug描述七个要素:

bug的生命周期

测试团队的职责

测试团队需要交付的文档

总体测试计划要素

测试用例要素

测试报告

测试方法

设计测试用例的方法

软件测试的14种类型 

Web测试方法

测试阶段划分  (按测试执行顺序):

单元测试、集成测试、系统测试的比较:

单元测试过程

系统测试过程

集成测试过程

需求分析阶段

概要设计阶段

详细设计阶段

编码阶段

测试阶段


软件测试&软件开发生命周期六个阶段 

  1. 需求阶段 测试人员了解需求、对需求进行分解,得出测试需求
  2. 计划阶段 根据需求编写测试计划/测试方案
  3. 设计阶段 测试人员适当的了解设计,对于设计测试用例是很有帮助的,测试人员搭建测试用例框架,根据需求和设计 编写一部分测试用例
  4. 编码阶段 测试人员一般是不需要编码的,但已经编码的模块,专业的白盒测试人员可以计划执行单元测试,完善、细 化测试用例以及调整测试计划和方案。
  5. 测试阶段测试阶段是软件测试人员最为重要的工作阶段,根据测试用例和计划执行测试,在执行的过程中记录、管理 缺陷,测试完成后编写测试报告。
  6. 运行维护 测试人员需要参与项目的实施工作。测试人员对项目产品的业务和操作非常了解,加上测试人员的沟通表达 能力一般都比较强,所以测试人员可以参与用户使用软件的培训,在试运行项目时收集问题并及时反馈给相 关负责人

 

合格的bug描述七个要素:

1 、发现问题的版本
开发人员需要知道出现问题的版本,才能够获取对应版本的代码来重现故障。并且版本的标识也有利于统计和分析
每个版本的质量。
2 、问题出现的环境
环境分为硬件环境和软件环境,如果是 web 项目,需要描述浏览器版本,客户机操作系统等,如果是 app 项目,需
要描述机型、分辨率、操作系统版本等。详细的环境描述有利于故障的定位。
3 、错误重现的步骤
描述问题重现的 最短 步骤。
4 、预期行为的描述
要让开发人员指导怎么样才是正确的,尤其要以用户的角度来描述程序的行为是怎样的。如果是依据需求提出的故
障,能写明需求的来源是最好的。
要相信:测试人员是最懂需求的。
5 、错误行为的描述
描述错误的现象。 crash 等可以上传 log UI 问题可以有截图。
6 、其他
某些公司会有一些其他的要求,例如故障的分类:功能故障,界面故障,兼容性故障等。有些有优先级的分类,严
重影响测试需要开发人员优先修改的,可以设置优先级为高。
7 、不要把多个 bug 放到一起
在无法确认是同一段代码造成的故障时,不要将 bug 放在一起提交

bug的生命周期

  1. New新建    :新发现的Bug,未经评审决定是否指派给开发人员进行修改。
  2. Open指派   :确认是Bug,并且认为需要进行修改,指派给相应的开发人员。
  3. Fixed修改   :开发人员进行修改后标识成修改状态,有待测试人员的回归测试验证。
  4. Rejected拒绝修改    :如果认为不是Bug,则拒绝修改。
  5. Delay延期修改     :如果认为暂时不需要修改或暂时不能修改,则延后修改。
  6. Closed关闭     :修改状态的Bug经测试人员的回归测斌验证通过,则关闭Bug
  7.  Reopen  重建   :如果经验证Bug仍然存在,则需要重新打开Bug,开发人员重新修改。
  8. 无效的bugopen->closed open-rejected-closed

 

测试团队的职责

  1. 需求评审
  2. 测试计划
  3. 测试用例
  4. 测试用例评审
  5. 测试执行
  6. 缺陷报告
  7. 缺陷跟踪
  8. 测试报告

测试团队需要交付的文档

 

  1. 测试计划
  2. 测试用例
  3. 缺陷报告
  4. 测试报告

总体测试计划要素

  1. 测试目标
  2. 测试范围
  3. 测试依据
  4. 测试类型
  5. 资源计划
  6. 测试要求
  7. 测试方法
  8. 测试工作流程
  9. 测试通过标准

测试用例要素

  1. 用例摘要
  2. 优先级
  3. 前置条件
  4. 输入数据
  5. 步骤
  6. 预期结果
  7. 实际结果

测试报告

  1. 项目概述
  2. 测试工作说明
  3. 测试结果
  4. 缺陷分析
  5. 过程改进总结 
  6. 附录

测试方法

  1.  三大方法:白盒、黑盒、灰盒
  2. 测试阶段:α/β测试、系统测试、冒烟测试、回归测试、验收测试
  3. 软件测试类型:功能测试、接口测试、性能测试(基准测试,   负载测试,峰谷测试,参入测试)自动化测试、安全性测试

设计测试用例的方法

  1. 黑盒测试: 等价类划分法, 边界值分析法, 错误推测法 ,因果图法
  2. 白盒测试: 逻辑覆盖法 ,基本路径测试法

软件测试的14种类型 

  1.   数据和数据库完整性测试:

    数据与数据库完整测试是指测试关系型数据库完整性原则以及数据合理性测试。
    数据库完整性原即:
    主码完整性:主码不能为空;
    外码完整性:外码必须等于对应的主码或者为空。
    数据合理性指数据在数据库中的类型,长度,索引等是否建的比较合理。

  2.   白盒测试:白盒测试是基于代码的测试,测试人员通过阅读程序代码或者通过使用开发工具中的单步调试来判断软件的质量,一般黑盒测试由项目经理在程序员开发中来实现。白盒测试分为动态白盒测试和静态白盒测试
  3.   功能测试:功能测试指测试软件各个功能模块是否正确,逻辑是否正确。此类测试基于黑盒技术,该技术通过图形用户界面 (GUI) 与应用程序进行交互,并对交互的输出或结果进行分析,以此来核实应用程序及其内部进程。功能测试的主要参考为类似于功能说明书之类的文档。
  4.    UI测试:


    UI测试指测试用户界面的风格是否满足客户要求,文字是否正确,页面美工是否好看,文字,图片组合是否完美,背景是否美观,操作是否友好等等
    用户界面 (UI) 测试用于核实用户与软件之间的交互。UI 测试的目标是确保用户界面会通过测试对象的功能来为用户提供相应的访问或浏览功能。另外,UI 测试还可确保 UI 中的对象按照预期的方式运行,并符合公司或行业的标准。包括用户友好性,人性化,易操作性测试。

  5.   性能测试:性能测试主要测试软件测试的性能,包括负载测试,强度测试,数据库容量测试,基准测试以及基准测试

    5.1负载测试
    负载测试是一种性能测试指数据在超负荷环境中运行,程序是否能够承担。
    在这种测试中,将使测试对象承担不同的工作量,以评测和评估测试对象在不同工作量条件下的性能行为,以及持续正常运行的能力。负载测试的目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行。此外,负载测试还要评估性能特征,例如,响应时间、事务处理速率和其他与时间相关的方面。
    比如,在B/S结构中用户并发量测试就是属于负载测试的用户,可以使用webload工具,模拟上百人客户同时访问网站,看系统响应时间,处理速度如何?
    5.2强度测试
    强度测试是一种性能测试,他在系统资源特别低的情况下软件系统运行情况。这类测试往往可以书写系统要求的软硬件水平要求。
    实施和执行此类测试的目的是找出因资源不足或资源争用而导致的错误。如果内存或磁盘空间不足,测试对象就可能会表现出一些在正常条件下并不明显的缺陷。而其他缺陷则可能由于争用共享资源(如数据库锁或网络带宽)而造成的。强度测试还可用于确定测试对象能够处理的最大工作量。
    比如:一个系统在内存366M下可以正常运行,但是降低到258M下不可以运行,告诉内存不足,这个系统对内存的要求就是366M。
    5.3数据库容量测试
    数据库容量测试指通过存储过程往数据库表中插入一定数量的数据,看看相关页面是否能够及时显示数据。
    数据库容量测试使测试对象处理大量的数据,以确定是否达到了将使软件发生故障的极限。容量测试还将确定测试对象在给定时间内能够持续处理的最大负载或工作量。例如,如果测试对象正在为生成一份报表而处理一组数据库记录,那么容量测试就会使用一个大型的测试数据库,检验该软件是否正常运行并生成了正确的报表。做这种测试通常通过书写存储过程向数据库某个表中插入一定数量的记录,计算相关页面的调用时间。
    比如,在电子商务系统中,通过insert customer 往user表中插入10 000数据,看其是否可以正常显示顾客信息列表页面,如果要求达到最多可以处理100 000个客户,但是顾客信息列表页面不能够在规定的时间内显示出来,就需要调整程序中的SQL查询语句;如果在规定的时间内显示出来,可以将用户数分别提高到20 000 , 50 000, 100 000进行测试。
    5.4基准测试
    基准测试与已知现有的系统进行比较,主要检验是否与类似的产品具有竞争性的一种测试。
    如果你要开发一套财务系统软件并且你已经获得用友财务系统的性能等数据,你可以测试你这套系统,看看哪些地方比用友财务系统好,哪些地方差?以便改进自己的系统,也可为产品广告提供数据。
    5.5竞争测试
    软件竞争使用各种资源(数据纪录,内存等),看他与其他相关系统对资源的争夺能力。比如:一台机器上即安装您的财务系统,又安装用友财务系统。当CPU占有率下降后,看看是否能够强过用友财务系统,而是自己的系统能够正常运行?
     

  6.   安全性和访问控制测试:

    安全性和访问控制测试侧重于安全性的两个关键方面:
    应用程序级别的安全性,包括对数据或业务功能的访问
    系统级别的安全性,包括对系统的登录或远程访问。

  7.   故障转移和恢复测试:故障转移和恢复测试指当主机软硬件发生灾难时候,备份机器是否能够正常启动,
  8.   配置测试:又叫兼容性测试。配置测试核实测试对象在不同的软件和硬件配置中的运行情况。

    8.1浏览器兼容性
    测试软件在不同产商的浏览器下是否能够正确显示与运行;
    比如测试IE,Natscape浏览器下是否可以运行这套软件?
    8.2操作系统兼容性
    测试软件在不同操作系统下是否能够正确显示与运行;
    比如测试WINDOWS98,WINDOWS 2000,WINDOWS XP,LINU, UNIX下是否可以运行这套软件?
    8.3硬件兼容性
    测试与硬件密切相关的软件产品与其他硬件产品的兼容性,比如该软件是少在并口设备中的,测试同时使用其他并口设备,系统是否可以正确使用.
    比如在INTER,舒龙CPU芯片下系统是否能够正常运行?
    这样的测试必须建立测试实验室,在各种环境下进行测试。
     

  9. 安装测试:安装测试有两个目的。第一个目的是确保该软件在正常情况和异常情况的不同条件下: 例如,进行首次安装、升级、完整的或自定义的安装_都能进行安装。异常情况包括磁盘空间不足、缺少目录创建权限等。第二个目的是核实软件在安装后可立即正常运行。这通常是指运行大量为功能测试制定的测试。
  10.   多语种测试:又称本地化测试,是指为各个地方开发产品的测试,如英文版,中文版等等,包括程序是否能够正常运行,界面是否符合当地习俗,快捷键是否正常起作用等等,特别测试在A语言环境下运行B语言软件(比如在英文win98下试图运行中文版的程序),出现现象是否正常。
  11.   文字测试:文字测试测试软件中是否拼写正确,是否易懂,不存在二义性,没有语法错误;文字与内容是否有出入等等,包括图片文字。
  12.   分辨率测试:测试在不同分辨率下,界面的美观程度,分为800*600,1024*768,1152*864,1280*768,1280*1024,1200*1600大小字体下测试。一个好的软件要有一个极佳的分辨率,而在其他分辨率下也都能可以运行。
  13.   发布测试:主要在产品发布前对一些附带产品,比如说明书,广告稿等进行测试

    13.1说明书测试
    主要为语言检查,功能检查,图片检查
    语言检查:检查说明书语言是否正确,用词是否易于理解;
    功能检查:功能是否描述完全,或者描述了并没有的功能等;
    图片检查::检查图片是否正确
    13.2宣传材料测试
    主要测试产品中的附带的宣传材料中的语言,描述功能,图片
    13.3帮助文件测试
    帮助文件是否正确,易懂,是否人性化。最好能够提供检索功能。
    13.4广告用语
    产品出公司前的广告材料文字,功能,图片,人性化的检查

  14.   发布测试:

    文档审核测试目前越来越引起人们的重视,软件质量不是检查出来的,而是融进软件开发中来。前置软件测试发越来越受到重视。请看一个资料:

    文档审核测试主要包括需求文档测试,设计文档测试,为前置软件测试测试中的一部分。

    14.1需求文档测试

    主要测试需求中是否存在逻辑矛盾以及需求在技术上是否可以实现;

    14.2设计文档测试

    测试设计是否符合全部需求以及设计是否合理。

Web测试方法

  1.  链接测试 
  2. 表单测试、
  3. 数据效验 
  4. Cookies测试、
  5. 数据库测试、
  6. 应用程序特定的功能需求 
  7. 导航测试 
  8. 图形测试 
  9. 内容测试 
  10. 表格测试 
  11. 整体界面测试 
  12. 兼容性测试 

测试阶段划分  (按测试执行顺序):

  • 单元测试(Unit Testing)

定义:针对软件基本组成单元(软件设计的最小单位)来进行正确性检验的工作;
测试目的:检测软件模块对《详细设计说明书》的符合程度。

  • 集成测试(Integration Testing)

定义:在单元测试的基础上,将所有模块按照概要设计要求组装成为子系统或系统,验证组装后功能以及模块间接口是否正确的测试工作;
测试目的:检测软件模块对《概要设计说明书》的符合程度。

  • 系统测试(System Testing)

定义:将已经集成好的的软件系统,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他元素组合在一起,在实际运行(使用)环境下,对计算机系统进行的一系列的测试工作。
测试目的:与《需求规格说明书》做比较,发现软件与系统需求定义不符合或与之矛盾的地方。

  •  回归测试(Regression Testing)

定义:软件在测试或其他活动中发现的缺陷经过修改后,进行的测试;
测试目的:验证缺陷得到了正确的修复,同时对系统的变更没有影响以前的功能;
特点:回归测试可以发生在任何一个阶段,包括单元测试、集成测试和系统测试;
策略:
①、完全重复测试:重新执行前期建立的所有测试用例,并确认确认缺陷解决和修改的扩散影响性;
②、选择性重复测试:
——覆盖修改法:选择直接影响的用例;
——周边影响法:选择间接影响的用例;
——指标达成方法:达到指标的覆盖率等。
流程:
1)制定回归测试策略
2)确定测试的版本
3)按照回归测试策略执行回归测试
4)回归测试通过,关闭缺陷跟踪单(问题单)
5)回归测试不通过,缺陷跟踪单返回开发人员,经开发人员修改后再次进行回归测试
回归测试自动化:(需考虑的问题如下)
1)回归测试是一个重复的以前测试的测试,所以自动化是回归测试的追求;
2)自动化法包括:程序的自动运行、自动配置,用例的管理、自动输入,测试自动执行,测试结果自动采集、比较及结论的自动输出;
3)对比较稳定的可采用QTP、Robot、SilkTest等工具的“捕捉回放”工具;
4)为了能实现自动化需要用到脚本语言,如:TCL、Python、Perl等;
5)对比较复杂的过程,无法借助工具的需要自己开发专用工具;
6)尽早考虑回归测试的自动化,形成工具化、可继承和推广的。

  •  其他测试阶段

○ α测试:用户在开发环境下进行的测试,评价软件FLURPS
○ β测试:多用户在实际使用环境下进行的测试
○ 验收测试:用户根据合同、《需求规格说明书》或《验收测试计划》对产品进行的验收测试
注:FLURPS即:功能、局域化、可用性、可靠性、性能、技术支持

单元测试、集成测试、系统测试的比较:


● 测试方法:
单元测试属于白盒测试范畴;
集成测试属于灰盒测试范畴;
系统测试属于黑盒测试范畴;
● 考察范围:
单元测试主要测试内部数据结构、逻辑控制、异常处理等;
集成测试主要测试模块间的接口与接口数据传递关系,以及模块组合后的整体功能;
系统测试主要测试整个系统相对于需求的符合度;
● 评估基准:
单元测试主要通过逻辑覆盖率来评估;
集成测试主要通过接口覆盖率来评估;
系统测试主要通过测试用例对需求规格的覆盖率来评估;

主要的测试文档:
● 测试计划:测试范围、方法、资源,以及相应测试活动的时间进度安排表的文档;
● 测试方案:为完成软件集成特性的测试而进行的设计测试方法的细节文档;
● 测试用例:为完成一个测试项的测试输入、预期结果、测试执行条件等因素的文档;
● 测试规程:执行测试时测试活动序列的文档;
● 测试报告:执行测试结果的文档;
● 测试日报:每天测试执行情况的记录和总结。

单元测试过程

同样这个过程将研究单元测试过程各个阶段的输入及输出。
单元测试计划阶段:
输入:详细设计说明书、软件测试计划
输出:单元测试计划
单元测试设计阶段:
输入:详细设计说明书、单元测试计划
输出:单元测试方案
单元测试实现阶段:
输入:详细设计说明书、单元测试计划、单元测试方案
输出:单元测试用例、单元测试规程
单元测试执行阶段:
输入:单元测试计划、单元测试方案、单元测试用例、单元测试规程
输出:单元测试报告、缺陷报告

系统测试过程

在这里主要研究软件系统测试过程中的输入和输出,了解我们应该根据什么来做、要做什么以及我们做的先后顺序是怎么安排的过程。
系统测试计划阶段:
输入:软件开发计划、软件测试计划、需求规格说明书
输出:系统测试计划
系统测试设计阶段:
输入:需求规格说明书、系统测试计划
输出:系统测试方案
系统测试实现阶段:
输入:需求规格说明书、系统测试计划、系统测试方案
输出:系统测试用例、系统测试规程、系统测试预测试项
系统测试执行阶段:
输入:系统测试计划、系统测试方案、系统测试用例、系统测试预测试项、系统测试规程
输出:系统预测试报告、系统测试报告、缺陷报告

集成测试过程

同样这个过程将研究集成测试过程各个阶段的输入及输出。
集成测试计划阶段:
输入:软件测试计划、概要设计说明书
输出:集成测试计划
集成测试设计阶段:
输入:概要设计说明书、集成测试计划
输出:集成测试方案
集成测试实现阶段:
输入:概要设计说明书、集成测试计划、集成测试方案
输出:集成测试用例、集成测试规程
集成测试执行阶段:
输入:集成测试计划、集成测试方案、集成测试用例、集成测试规程
输出:集成测试报告、缺陷报告

需求分析阶段

每个阶段有每个阶段的任务,这里将了解需求分析阶段的任务,及其软件项目各工作人员的任务所在。
需求分析阶段任务:
● 需求分析,完成SRS
● 软件需求规格说明书的评审:检查遗漏和存在问题
● 进行需求跟踪
● 系统测试计划
● 系统测试计划的评审


概要设计阶段

概要设计阶段任务:
● 软件系统各层设计,完成HLD
● HLD的评审
● 更新需求跟踪
● 系统测试方案、用例的设计
● 系统测试方案、用例的评审
● 集成测试计划
● 集成测试计划的评审
  

详细设计阶段

详细设计阶段任务:
● 软件详细模块的设计,完成LLD
● 详细设计的评审
● 更新需求跟踪
● 集成测试方案、用例的设计
● 集成测试方案、用例的评审
● 单元测试计划
● 单元测试计划的评审

编码阶段

编码阶段任务:
● 软件编码
● 对代码进行静态质量检查
● 代码评审
● 单元测试方案、用例的设计
● 单元测试方案、用例的评审

测试阶段

测试阶段的任务:
● 系统预测试项执行
● 系统预测试报告工作
● 执行各阶段测试用例
● 各阶段的缺陷记录、修复
● 各阶段日志报告
● 各阶段缺陷的回归测试
● 各阶段测试报告
● 测试报告的评审

【软件测试-02】软件测试生命周期,Bug周期,测试计划,测试用例,测试类型,测试阶段任务_第1张图片

繁华事散逐香尘,流水无情草自春

你可能感兴趣的:(软件测试~~)