软件测试的基础理论

一、测试的目的

发现软件中的缺陷和错误,并加以纠正。

二、测试的一般流程

粗略版: 明确测试对象,了解测试对象——>根据需求文档编写测试计划——>设计测试用例——>搭建测试环境——>执行测试用例——>编写测试报告

详细版:

     (1)编写测试计划

成果:项目进度计划、需求说明书

     (2)编写测试用例

成果:概要设计说明书、详细设计说明书

     (3)执行测试

单元测试+测试报告

集成测试+测试报告

系统测试+测试报告

     (4)验收测试

     (5)回归测试

     (6)项目发布


三、测试的方法

     (1)根据实际中是否执行代码来划分:静态测试、动态测试 

静态测试:由手工检查和静态分析组成,测试对象不是以测试数据来执行的,而是通过一个人或多个人一起审查文档来达到发现项目计划中的缺陷和偏差的目的。主要方法是评审。

动态测试:在计算机上运行被测对象。以下所划分的测试方法均为动态测试。

   (2)根据对软件内部、具体实现的关心程度来划分(高——>低):白盒测试、灰盒测试、黑盒测试。

白盒测试:根据程序内部逻辑结构和有关信息设计测试用例,检查程序中的所有逻辑路径是否按预定要求执行。主要的测试方法有:逻辑覆盖测试(语句覆盖、路径覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖)、基本路径测试、数据流测试、循环测试。

灰盒测试:介于白盒测试和黑盒测试之间的测试,既关注输出对于输入的正确性又关注内部结构。灰度是由于软件整体特性信息和内部具体信息所占比例来决定,主要用于集成测试。

黑盒测试:根据软件的需求文档,检查功能是否符合它的功能需求。主要测试方法:等价类划分、边界值分析、因果图方法、错误猜测、比较测试。

   (3)在软件生命周期中的测试:组件测试、集成测试、系统测试、验收测试(α测试、β测试)、回归测试。

组件测试:被测对象可以是模块、单元、函数、程序等,主要关注内部逻辑,需要编写测试驱动程序。

集成测试:被测对象是由几个模块组成的子系统,主要关注模块与模块之间的接口以及模块交互的缺陷。集成策略包括自顶向下集成(需要编写桩程序)、自底向上集成(需要编写测试驱动器)、随意集成(桩和测试驱动器都需要)、中枢集成。

系统测试:被测对象是整个系统,主要关注软件是否实现需求文档所要求的功能要求和非功能要求。

验收测试:被测对象是整个系统,主要关注软件的功能和性能(兼容性、可移植性、课维护性等等)是否符合客户要求。

回归测试:软件版本升级或修改后,再执行原有的测试用例以确认没有引进新的错误。

   (4)测试类型划分:功能测试、非功能测试(负载测试、性能测试、压力测试、容量测试、安全性测试、稳定性测试、健壮性测试、兼容性和数据转换测试、可用性测试、系统不同配置测试)。

四、测试的七大原理

  (1)测试可以证明缺陷存在,但不可以证明缺陷不存在

  (2)穷尽测试是不可能的

  (3)测试应当尽早进行

  (4)缺陷集群性(即缺陷会集中出现在一个地方)

  (5)杀虫剂悖论(多次重复相同的测试用例会减少有效性,需要及时更新测试用例

  (6)测试依赖于测试内容(即不同的系统环境有不同的测试方法)

  (7)没有失效就是有用系统是一种谬论


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值