软件测试基础2

软件测试的类型:

1,功能测试:功能测试是根据产品的需求规格说明书和测试需求列表,验证
      产品的功能实现是否符合产品的需求规格。

2,性能测试:是用来测试软件在集成系统中的运行性能的。

     性能测试的目标是度量系统相对于预定义目标的差距。

     性能测试必须要有工具支持,市面上有一些专门用于GUI或Web的性
     能测试工具,如Loadrunner, Jmeter, SilkPerformer, WebLoad。

    性能测试收集的信息
    • CPU使用情况
    • IO使用情况
    • 内存使用情况
    • 信道使用情况
    • 每个模块执行时间百分比
    •  一个模块等待IO完工的百分比
    • 指令随时间的跟踪路径
    • 每一组指令页换入和换出的次数
    • 系统反应时间
    • 系统吞吐量,即每个时间单元的处理数量
    • 所有主要指令的单元执行时间。

3,负载测试:是超过被测对象标准性能负荷指标下,验证系统的负载承
     受能力。并要求超负荷情况下,依然正常实现业务功能。
    负载测试是通过不断对被测对象施加负荷,观察被测对象在不同负
    载下的性能表现。

4,压力测试:压力测试的目的是调查系统在其资源超负荷的情况下的表现。

   尤其感兴趣的是这些对系统的处理时间有什么影响。这类测试在一种需
   要反常数量、频率或资源的方式下执行系统。

   通过极限测试方法,发现系统在极限或恶劣环境中自我保护能力。主要验
   证系统的可靠性,找到系统薄弱环节。

5,容量测试:容量测试的目的是使系统承受超额的数据容
     量来发现它是否能够正确处理。
     容量测试是面向数据的,并且它的目的是显示系统可以处理
     目标内确定的数据容量。

6,安全性测试:用来验证集成在系统内的保护机制是否能够在
     实际中保护系统不受到非法的侵入。 用来保证系统本身数据的完整性和
     保密性。如当受到恶意攻击时,设备的自我保护能力,病毒防护能力,自
     定义通信协议安全性等。广义的还包括物理安全性测试、业务安全性测试。

     安全性测试的内容:

    • 系统的登录
    • 用户管理
    • 防火墙
    • 系统数据
    • WEB安全性,如WEB的加密,解密,数字签名等
    • 数据库的安全性
    • 内部通信协议
    • 系统防病毒测试

7,GUI测试:GUI测试是针对软件系统GUI界面进行的测试。

     • GUI测试主要包括两方面的内容:
     • 界面实现与界面设计的吻合情况;
     • 确认界面处理的正确性。

    一般业界常用的GUI自动化工具有QTP, SilkTest, QARun、
    QuickTestProfessional,selenium等。

GUI测试对象:
     • 简单界面元素:指功能和属性相对比较单一的界面区域,即
       通常所指的各种控件
     • 组合类界面元素:主要指一些复杂的界面元素,比如工具栏,
        组合框,表格,菜单栏等
     • 完整界面(窗口):由一系列界面元素通过适当的形式组合
       而成的界面形式,最为常见的为各种窗口。包括各种对话框、
       单文档窗口、多文档父窗口,多文档子窗口等。

8,可用性测试:是为了检测用户在理解和使用系统方面到底有多好。主要
           考虑产品是否符合实际应用情况,是否符合用户习惯或特殊要求,操作方式是否方便合
           理、设备和用户间的交互信息是否准确易于理解、是否遵从行业习惯、外观/界面是否
           美观等。应涉及到所有和用户有交互的功能或子系统。这包括系统功能、系统发布、帮
           助文本和过程,以保证用户能够舒适地和系统交互。

9,安装卸载测试:系统的可安装性测试,主要是根据软件的测试特性列表、软件安装、
     配置文档,设计安装过程的测试用例,发现软件在安装过程中的错误。

10,异常测试:系统异常测试又叫系统容错和可恢复性测试,它是通过人工干预手段使系统
     产生软、硬件异常,通过验证系统异常前后的功能和运行状态,达到检验系
    统的容错、排错和恢复的能力。它是系统可靠性评价的重要手段

11,文档测试:其目标是验证用户文档是正确的,并且保证操作手册的过程能够正确工作。

12,网络测试:网络测试是在网络环境下和其他设备对接,进行系统功能、性能与指标方面的测
      试,保证设备对接正常。

13,稳定性测试:系统稳定性测试目的是评价系统在一定负荷情况下、长时间的运行情况

14,兼容性测试:兼容性测试验证被测对象与硬件、其他软件之间的兼容情况。

软件测试的方法:

主要分为三类:白盒测试;黑盒测试和灰盒测试。

                         静态测试和动态测试;

       人工测试和自动化测试。

软件测试的两种极端情况:

 已知产品的需求规格,但不知道其内部实现,可以进行测试证明每个需求是否实现——黑盒测试

 已知产品的内部实现过程,可以通过测试证明每种内部操作是否符合设计规格的要求,所有内部
成分是否已经过检查——白盒测试。

白盒测试:白盒测试是依据被测软件分析程序内部构造,并根据内部构造设计用例,来对
内部控制流程进行测试,可完全不顾程序的整体功能实现情况。

白盒测试是基于程序结构的逻辑驱动测试。

白盒测试的目的:

• 白盒测试一般在测试前期进行,通过达到一定的逻辑覆盖率指标,使得软件内部逻辑
  控制结构上的问题能基本得到消除;
• 白盒测试能保证内部逻辑结构达到一定的覆盖程度,能够给予软件代码质量更大的保证;
• 白盒测试发现问题后解决问题的成本较低。

白盒测试的常用技术:白盒测试一般会用到静态分析和动态分析两类技术

• 静态分析:控制流分析、数据流分析、信息流分析等

• 动态分析:逻辑覆盖测试(分支测试、路径测试等)、程序插装等

黑盒测试: 黑盒测试把被测对象看成一个黑盒,只考虑其整体特性,不考虑其内部具体实现。

黑盒测试针对的被测对象可以是一个系统、一个子系统、一个模块、一个子模块、一个函数等。

黑盒测试又可以被称为基于规格的测试。

黑盒测试的类型:

• 功能性测试,一种是顺序测试每个程序特性或功能,另一种途径
是一个模块一个模块的测试,即每个功能在其最先调用的地方被
测试;
• 容量测试,检测软件在处理海量数据时的局限性,能发现系统效
率方面的问题;
• 负载测试,检测系统在一个很短时间内处理一个巨大的数据量或
执行许多功能调用上的能力;
• 恢复性测试,主要保证系统在崩溃后能够恢复外部数据的能力。

黑盒测试的特点:

• 对于更大的代码单元来说(子系统甚至系统级)比白盒测试效率要高;
• 测试人员不需要了解实现的细节,包括特定的编程语言;
• 从用户的视角进行测试,很容易被大家理解和接受;
• 有助于暴露任何规格不一致或有歧义的问题。

灰盒测试:

• 根据利用的被测对象信息的不同,会采用不同的方法进行测试。
• 利用被测对象的整体特性信息,采用黑盒测试方法
• 利用被测对象的内部具体实现信息,采用白盒测试方法
• 如果既利用被测对象的整体特性信息,又利用被测对象的内部具体实现信
息,采用的就是灰盒测试方法。两种信息占的比例不同,相应的灰度就不同。

完全是整体特性信息,就是黑盒测试,完全是内部具体实现信息,就是白盒测试
• 典型的灰盒测试比如集成测试和系统测试时借助log信息。

静态测试:不运行被测试的软件系统,而是采用其他手段和技术对被测
试软件进行检测的一种测试技术。例如:代码走读、文档评审、程序分
析等都是静态测试的范畴。常用技术有静态分析技术。

动态测试: 按照预先设计的数据和步骤去运行被测软件系统,从而对被
测软件系统进行检测的一种测试技术。常用技术有动态分析技术。

人工测试:测试活动(如评审、测试设计、测试执行等)由人来完
成,狭义上是指测试执行由人工完成,这是最基本的测试形式。

自动化测试:一般是指通过计算机模拟人的测试行为,替代人的测
试活动,狭义上是指测试执行由计算机来完成。

自动化测试的限制:

• 不能取代手工测试,自动化测试只能提高测试效率,不能提高测试有效性,即不可能发现更多缺陷
• 手工测试比自动测试发现的缺陷更多
• 对测试设计依赖性极大,测试设计的不好会遗漏问题
• 自动化测试对软件开发具有很大的依赖性,开发上出现变更可能导致前面的自动化测试完全失效
• 工具本身并不具备想象力,工具不具有智能。

软件测试流程:

• 测试计划阶段 – 测试计划
• 测试设计阶段 – 测试方案
• 测试实现阶段 – 测试用例、测试规程
• 测试执行阶段 – 测试报告

主要的测试文档:

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

系统测试过程与开发阶段:

 

测试工程师系统测试各阶段任务:

软件需求阶段:评审软件需求规格说明书
软件设计阶段:评审软件概要设计说明书、软件详细设计说明书、协助编写系统测试计划
软件编码阶段:设计系统测试用例、准备测试资源(测试工具、测试环境等)、开发测试脚本、开发测试工具、准备测试数据
软件测试阶段:执行测试用例、提交缺陷单、跟踪缺陷、回归测试、提交测试报告。

软件质量模型:

 

质量保证活动与软件测试的关系:

posted @ 2018-03-25 23:22  正厚7期-刘金涛  阅读(239)  评论(0编辑  收藏  举报