软件测试的常识

来源:互联网 发布:刷机软件 for mac 编辑:程序博客网 时间:2024/05/16 02:18

1.软件测试基本概念
1.1 软件分类

1) 按功能:系统软件、应用软件
2) 按技术架构:单机版软件、C/S结构软件、B/S结构软件
3) 按功能:产品软件、项目软件
4) 按开发规模:小型软件、中型软件、大型软件

1.2 测试用例(TC)

测试用例的基本要素:测试环境、操作步骤、输入数据、期望结果

测试模板:Excel模板(适合写功能用例)、Word模板(适合写性能用例)


2. 软件测试分类


2.1 黑盒测试和白盒测试

黑盒测试(black-box testing):把被测软件看作一个黑盒子,只关心软件的输入数据和输出结果。它包括功能测试和性能测试。

白盒测试(white-box testing):研究软件的源码和程序结构。需要一定编码能力,并会使用一些测试工具。


2.2 静态测试和动态测试

静态测试(static testing):不实际运行被测软件,只是静态地检查程序代码、界面或文档中可能存在的错误。

动态测试(dynamic testing):实际运行被测软件,输入相应的测试数据,检查实际输出结果和预期结果是否相符。


2.3 单元测试、集成测试、系统测试和验收测试


它们是软件测试中的重要概念,是按照软件测试的阶段来划分的。

单元测试(unit testing):指对软件中的最小可测试单元进行检查和认证。通常在程序员编码之后,代码已通过编译后进行。单元测试一般由白拿测试工程师或开发人员来测试。依据是源程序本身和项目的<<详细设计>>文档。标准是语句的覆盖率达到100%,分支的覆盖率达到85%。

集成测试(integration testing):单元测试的下一个阶段,是指将通过测试的单元模块组装成系统或子系统,再进行测试,重点测试不同模块的接口部分。集成测试就是用来检查各个单元模块结合到一起能否协同配合,正常运行。一般由白拿测试工程师或开发人员来测试。集成测试的依据是单元测试的模块以及<<概要设计>>文档。

系统测试(system testing):将整个软件系统看做一个整体进行测试,包括对功能、性能以及软件所运行的软硬件环境进行测试。主要由黑盒测试工程师在整个系统集成完毕后进行测试,前期主要测试系统的功能是否满足需求,后期主要测试系统运行的性能是否满足需求,以及系统在不同的软硬件环境中的兼容性等。系统测试的主要依据是<<系统需求规格说明书>>文档。

验收测试(acceptance testing):

指的是在系统测试的后期,以用户测试为主,或有测试人员等质量保障人员共同参与的测试,它也是软件正式交给用户使用的最后一道工序。验收测试又分为α测试和β测试。其中α测试指的是由用户、测试人员、开发人员等共同参与的内部测试,而测试指的是内测后的公测,即完全交给最终用户测试。测试的主要依据是<<系统需求规格说明书>>和验收标准。


2.4 功能测试和性能测试

功能测试(function testing):检查实际软件的功能是否符合用户需求。细分为多种:逻辑功能测试、界面测试、易用性测试、安装测试、兼容性测试等。

性能测试(performance testing):一般要用到自动化测试工具。包括一般性能测试、稳定性测试、负载测试和压力测试。一般性能测试指的是让被测试系统在正常的软硬件环境下运行的测试。稳定性测试,也叫可靠性测试,指连续运行被测系统,检查系统运行时的稳定程序。负载测试指让被测系统在其能忍受的压力的极限范围内连续运行,为测试系统的稳定性。与稳定性测试的区别在于负载测试需要给被测系统施加其刚好能承受的压力,为我们测试系统在临界状态下运行是否稳定提供了一种方法。压力测试指持续不断地给被测系统增加压力,直到将被测系统压垮为止,用来测试系统所能承受的最大压力。


3. 黑盒测试技术

主要包括等价类技术、边界值技术、因果图技术、业务流程图技术


4. 白盒测试技术

根据是否运行源代码,白盒测试又可分为:静态测试和动态技术。实用的动态测试技术包括:边界值、逻辑驱动覆盖、路径图法等。

4.1 边界值:数据类型的边界值、数组的边界值、分支判断语句的边界值

(1) 数据类型的边界值:32760 + 8 = 32768 吗?

#include <stdio.h>

main() 

    
short int x = 32760;
    
short int y = 8;
    
short int z = x + y;

    printf(
"%d", z);
}


(2) 数组的边界值:数组上下越界问题

#include <stdio.h>

main() 

    
int i, pos[2];

    
for(i=0; i<=2; i++)
        scanf(
"%d"&pos[i]); //输入数组2个元素
    for(i=1; i<2; i++)
        printf(
"%d", pos[i]); //打印数组2个元素
}

 

4.2 逻辑驱动覆盖:是一种传统的白盒测试技术,专门用来测试程序中的分支结构和循环结构。分支结构的测试又包括语句覆盖、分支覆盖、条件覆盖、分支-条件覆盖、条件组合覆盖及路径覆盖等方法。

(1) 语句覆盖测试:指设计若干测试用例,使得程序中的每条语句至少执行一次。虽然能够执行所有的语句,但不能覆盖所有的分支,是最弱的逻辑驱动覆盖。

(2) 分支覆盖测试:也叫判定覆盖测试,是指设计若干测试用例,使得程序中每个分支的取真分支和取假分支至少各执行一次。

(3) 条件覆盖测试:条件覆盖是选取足够多的测试数据,使被测试程序中不仅每条语句至少执行一次,而且每个判定表达式中的每个条件都取到各种可能的结果。

(4) 分支-条件覆盖测试:选取足够多的测试数据,使得程序中每个分支的取真分支和取假分支至少各执行一次,而且每个判定表达式中的每个条件都取到各种可能的结果。

(5) 条件组合覆盖测试:选取足够多的测试数据,使得判定表达式中条件的各种可能组合都至少出现一次。

(6) 路径覆盖测试:选取足够多的测试数据,使得程序的每条可能路径都至少执行一次。

 

Tag标签: 软件测试,黑盒测试,白盒测试,单元测试,集成测试,系统测试
原创粉丝点击