软件测试概述、结构化测试

一、软件测试的目的

是在最小的成本和最短的时间内,通过设计良好的测试规程和测试用例,系统地发现不同类别的错误。

二、软件测试的基本原则

设计好的测试用例、不可能进行穷举测试、尽早开展测试、重点测试、定期进行检验与修正测试用例,并增加新的测试用例、测试依赖于系统环境、测试用例应该包含合理和不合理的输入条件。

测试过程模型

V模型特点:1、对应瀑布模型的变种(自下到上)线性关系

2、有局限性,在于不能体现“尽早地和不断地进行软件测试”的原则

3、仅仅把测试过程作为在需求分析、概要设计、详细设计及编码之后的一个阶段,容易

使人理解为测试是软件开发的最后的一个阶段,主要是针对程序进行测试寻找误,而

需求分析阶段、设计阶段隐藏的问题可能一直到后期的相应测试才被发现。

W模型特点:1、两个”V模型“,开发与测试相结合

2、开发与测试保持一种线性的前后关系

H模型特点:1、可交叉进行

2、测试过程是一个独立的过程

三、测试类型

测试类型可分为:单元测试、集成测试、系统测试、验收测试、回归测试

1、单元测试:主要检测独立的软件单元,为了发现程序级别的错误

面向代码设计与结构

2、集成测试:独立的软件单元(模块)组合过程中所进行的测试。

面向详细设计文档

结构化方法下的集成测试策略:BingBang策略、自顶向下策略、自底向上策略

BingBang策略:所有模块一次性集成为一个整体系统,后对各个模块之间的接口工作进行测试

优点:在于测试之间所有的整合工作已经完成

缺点:在于整合过程较为费时,且集成过程中若引入新的错误则难以追溯

自顶向下策略:先测试软件模块结构图最顶端的模块,后集成下一层的模块再进行测试,直到所

有模块全部组合并测试完。

自底向上策略:先测试软件最底层模块,后集成上一层模块并进行测试,逐步将所有模块组合并

测试完毕。

面向对象方法下的集成测试:主要有基于线程的策略和基于使用的策略。

步骤:1)按照设计阶段的说明画出对象图

2)开发端口输入事件所驱动的类

3)开发与主类直接相关的类

4)将与主类直接相关联的类集成

5)对新集成的模块进行测试

6)从已集成的模块中选一个新类作为下一步的集成类

3、系统测试:对应于概要设计和需求分析,进行系统测试以确保其功能的正确性,以及在不同运行

环境配置下系统的可用性。

4、验收测试:是一种以用户为主的测试,由客户判断最终是否在可接受范围之内,软件开发人员和

质量保证小组也同时参与。

5、回归测试:根本目标在于检测新代码的正确运行,并且不影响其他已运行正确的功能

(集成测试着重测试的是各个模块之间接口运行情况,系统测试是将系统软件作为整个计算机系统的一个元素)

四、测试方法

测试方法有不同 的标准:1)按是否需要执行被测试软件,软件测试可分为静态测试、动态测试。

2)按是否需要查看代码,软件测试可分为白盒测试、黑盒测试、灰盒测试

3)按测试执行时是否需要人工干预,软件测试可分为自动测试、人工测试

1、静态测试(代码复查):是在不要执行所测试程序的情况下,对代码、需求分析和设计文档等 进

行缺陷查找。

主要目的:在于尽早发现系统缺陷,提高软件产品的质量。

主要特征:表现在不需要实际运行,充分发挥人的思维优势,可能比较耗时耗力,

对测试人员要求比较高。

2、动态测试:是通过选择适当的测试用例,实际运行所测试的程序,比较实际运行结果和预期结

果,以发现软件中潜在的缺陷。

主要目的:在于确定软件产品符合实际业务需求,可适用在单元测试、集成测试、系统测试等。

3、白盒测试:也称为玻璃盒测试、结构化测试等。(需查看代码)

4、黑盒测试:也称为功能测试、数据驱动测试,是一种从用户观点出发的测试。(不需查看代码)

5、灰盒测试:介于白盒测试与黑盒测试之间的测试。

6、手工测试:是完全由人工测试工作,包括测试计划的制定,测试用例的设计和执行,以及测试结

果的检查和分析等。

7、自动测试:是各种测试活动的管理与实施,是使用自动化测试工具或自动化测试脚本来进行的测

试,包括测试脚本的开发与执行等,以某种自动测试工具来验证测试需求。

五、测试用例设计

测试用例=输入+输出+测试环境

测试用例设计应满足以下标准:1)测试用例的目标清楚

(从整体而言)                        2)设计思路正确、清晰

3)在组织和分类上,测试用例层次清楚、结构合理

4)测试用例覆盖所有测试点、覆盖所有已知用户使用背景

5)测试手段的区别对待

6)有充分的负面测试

7)没有重复、冗余的测试用例

测试用例设计应满足以下条件:1)测试用例的出发点是发现缺陷

(从具体的测试用例)              2)测试用例的单一性

3)符合测试用例设计规范或测试用例模板

4)描述清楚

5)操作步骤的准确性

6)操作步骤的简单性

7)所期望的测试结果是可验证的

8)测试环境的正确性、测试数据的充分性

9)前提条件、依赖性被完全识别出来

每个核心的输入条件:1)正确数据   2)边界数据     3)错误数据

六、模块内测试

逻辑覆盖技术是白盒测试中最主要的一种技术,包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖。

1、语句覆盖:设计若干个测试用例,运行测试程序,使得每一可执行语句至少执行一次。

2、判定覆盖:设计若干个测试用例,运行测试程序,使得程序中的每个判断的取真分支和取假分支

至少执行一次。(分支覆盖)

3、条件覆盖:设计若干个测试用例,运行测试程序,使得程序中每个判断的每个条件的可能取值

至少执行一次。

4、判定/条件覆盖:设置若干个测试用例,运行测试程序,使得判定表达式中的每个条件都取到各种

可能的取值,且每个判定表达式也都取到各种可能的结果。

5、条件组合覆盖:设置若干个测试用例,运行测试程序,使得每个判定的所有可能的条件取值组合

至少执行一次。

原文地址:https://www.cnblogs.com/chouqiuqiu/p/8797944.html

时间: 2024-10-07 08:54:34

软件测试概述、结构化测试的相关文章

《软件测试设计》第2章——基于结构的测试

概念:又称白盒测试,是基于测试对象的代码.数据或者系统架构而进行测试的一种技术 关注测试对象的内部结构 基于结构的测试技术的共同特点为: ① 测试对象的内部结构信息是设计测试用例的依据,如程序代码和设计架构 ② 测试对象的覆盖率可通过已有的测试用例测量,并且可系统地增加测试用例来提高覆盖率 要求:测试人员需详细了解测试对象的内部结构 步骤: ① 分析测试对象的具体实现和内部结构 ② 识别测试对象的不同路径(选择合适的代码覆盖标准,如语句覆盖) ③ 选择合适的输入数据覆盖测试对象的相关路径并确定期

4.结构化查询语言SQL概述

什么是SQL 概念 结构化查询语言(Structured  Query Language)  用于访问和操作数据库的标准计算机语言 用途 操作数据库对象 表记录的增删改查 使用SQL重要性 增加数据库处理效率,减少应用响应时间 减少数据库服务器负载,增加服务器稳定些 减少服务器间通讯的网络流量 SQL语句类型 DQL 数据查询语言:SELECT DDL 数据定义语言:CREATE .DROP DCL 数据控制语言:GRANT . REVOKE DML 数据操作语言:INSERT. UPDATE

软件测试概述

• 不论软件的生产者还是软件的使用者,均生存在竞争的环境中: 软件开发商为了占有市场,必须把产品质量作为企业的重要目标之一,以免在激烈的竞争中被淘汰出局. 用户为了保证自己业务的顺利完成,当然希望选用优质的软件. 软件带来错误的原因很多,具体地说,主要有如下几点: • 交流不够.交流上有误解或者根本不进行交流 • 软件复杂性 • 程序设计错误 • 需求变化 • 时间压力 • 代码文档贫乏 • 软件开发工具 什么是软件测试 软件测试就是在软件投入运行前,对软件需求分析.设计规格说明和编码的最终复审

精准化测试专业平台Paw:苹果APP应用代码质量的守护者

众所周知,一款苹果APP进入苹果应用商店后,要上排行榜,要被首页推荐,版本更新必不可少,但作为版本更新的关键所在,软件测试一直被业内吐槽“坑太多”,缺陷防不胜防.相关经验缺乏等等.若问如何“填坑”?以往,这相当于老大难,可现在,有了来自星云测试(www.teststars.cc)的软件测试平台Paw,老大难也能迎刃而解. 经常更新APP版本好处多多,时尚应用StyleIt创始人兼首席执行官Henry Kang表示:“不断更新你的产品,添加新功能对获得推荐非常有帮助”,理由就是经常更新不仅可以及时

[Spark]-结构化流之用法篇

4.用法 结构化流使用Datasets和DataFrames.从Spark2.0开始,Spark-SQL中的Datasets和DataFrames,就已经能很好表示静态(有界)数据,动态(无界)数据 4.1 数据源 结构化流提供了四种不中断数据源 file-system,kafka,socket.rate-source 4.1.1 socket 从一个socket连接中读取 UTF-8 的文本数据. <=注意这是一种不可容错的数据源,建议仅在测试环境中使用. 配置参数: host  连接地址  

大数据时代的结构化存储—HBase在阿里的应用实践

摘要: # 前言 时间回到2011年,Hadoop作为新生事物,在阿里巴巴已经玩得风生水起,上千台规模的"云梯"是当时国内名声显赫的计算平台. 这一年,Hadoop的好兄弟HBase由毕玄大师带入淘宝,开启了它的阿里之旅. 前言时间回到2011年,Hadoop作为新生事物,在阿里巴巴已经玩得风生水起,上千台规模的"云梯"是当时国内名声显赫的计算平台.这一年,Hadoop的好兄弟HBase由毕玄大师带入淘宝,开启了它的阿里之旅.从最初的淘宝历史交易记录,到去年的支付宝

结构化与面向对象化之应用比较

结构化与面向对象化之应用比较 引言 软件工程中构建工程经常使用两种方法:结构化方法和面对对象方法.结构化方法由艾兹格.迪杰斯特拉在1967年发表<goto陈述有害论>时提出.面向对象方法在80年代起逐步形成.两种方法各有优点,相伴存在至今.下面我们就来分析.探讨结构化程序设计方法与面向对象的方法的区别,以及在现实应用中如何在两种方法中做出选择. 一.结构化方法 1. 基本思想 结构化方法程序设计的基本思想是: a.自顶向下 b.采用模块化技术 c.分而治之 d.逐步求精地将信息系统按功能分解为

结构化查询语句

目录 概述 实用的结构化查询语句 概述 实用的结构化查询语句

spark结构化数据处理:Spark SQL、DataFrame和Dataset

本文讲解Spark的结构化数据处理,主要包括:Spark SQL.DataFrame.Dataset以及Spark SQL服务等相关内容.本文主要讲解Spark 1.6.x的结构化数据处理相关东东,但因Spark发展迅速(本文的写作时值Spark 1.6.2发布之际,并且Spark 2.0的预览版本也已发布许久),因此请随时关注Spark SQL官方文档以了解最新信息. 文中使用Scala对Spark SQL进行讲解,并且代码大多都能在spark-shell中运行,关于这点请知晓. 概述 相比于