跳到主要内容

软件测试

软件缺陷的六种状态:

  1. 新建new: 测试人员发现缺陷, 指派给开发经理, 标记为新建
  2. 开放open: 开发经理确认缺陷, 标记为open,指派给开发人员
  3. 重新开放reopen: 测试人员发现还有问题,重新设置reopen,传递给开发人员
  4. 拒绝rejected: 开发经理不认为是缺陷,拒绝
  5. 已修正fixed: 开发人员修正后标记为已修正,传给测试人员
  6. 已关闭closed: 测试人员确认解决。标记关闭

软件测试基本流程

  1. 分析测试需求
  2. 指定测试计划
  3. 设置测试用例
  4. 执行测试
  5. 编写测试报告

测试用例的内容:

  1. 编号
  2. 标题概述
  3. 步骤
  4. 预期结果
  5. 输入数据
  6. 优先级
  7. 前置条件

黑盒测试

这是因为在黑盒测试中主要关注被测软件的功能实现,而不是内部逻辑。

在黑盒测试中,被测对象的内部结构,运作情况对测试人员是不可见的,测试人员对被测产品的验证主要是根据其规格,验证其与规格的一致性。

在绝大多数没有用户参与的黑盒测试中,最常见的测试有:功能性测试、容量测试、安全性测试、负载测试、恢复性测试、标杆测试、稳定性测试、可靠性测试等。

它是根据软件需求和规范创建测试场景/案例,按照需求文档里面定义的行为及规范进行输入并且检查输出的测试 测试人员在不查看内部代码结构的情况下,评估被测软件的功能。它可以应用于软件测试的各个层次,如单元、集成、系统和验收测试 因为不查看源码,所以测试人员只对应用程序的功能部分执行测试,以确保软件的行为符合预期,所以是基于行为的测试 黑盒测试的常用的一些技术:

1、等价划分:等价划分也称为等价类划分法。在等价划分法中,软件的输入被划分为期望表现出相似行为的组,因此它们很可能以相同的方式被输入。因此,从每个组中选择一个输入来设计测试用例。

2、边界值分析:边界值分析(BVA)是在测试有效和无效分区的边界值的基础上进行的。每个等价分区边缘的行为比分区内的行为更加容易出现缺陷,因此边界是测试可能产生缺陷的区域。

3、决策表:决策表又称因果表。这种测试技术适用于输入之间具有逻辑关系的功能。在决策表技术中,我们处理输入的组合。为了识别决策表的测试用例,我们可以查看它的条件和输出。

4、状态转换:使用状态转换测试,我们从需要测试的不同系统转换的应用程序中选择测试用例。当应用程序为相同的输入提供不同的输出时,我们可以应用这个方法,这取决于在以前的状态中发生了什么。

白盒测试

是一种测试用例设计方法,在这里盒子指的是被测试的软件。白盒,顾名思义即盒子是可视的,你可以清楚盒子内部的东西以及里面是如何运作的,因此白盒测试需要你对系统内的结构和工作原理有一个清楚的了解,并且基于这个知识来设计你的用例。

白盒测试技术一般可被分为:静态分析和动态分析两类技术。

静态分析主要有:控制流分析技术、数据流分析技术、信息流分析技术。

动态分析主要有:逻辑覆盖率测试(分支测试、路径测试等),程序插装等。

白盒测试优点:迫使测试人员去仔细的思考软件的实现;可以检测代码中的每条分支和路径;揭示隐藏在代码中的错误;对代码的测试比较彻底;最优化。

白盒测试缺点:昂贵;无法检测代码中遗漏的路径和数据敏感性错误;不验证规格的正确性。

区别

1、测试方式不同

(1)黑盒测试:功能测试,是通过测试来检测每个功能是否能正常使用

(2)白盒测试:俗称:结构测试\透明盒测试\逻辑驱动测试\基于代码的测试

2、测试目的不同

(1)黑盒测试:把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构盒特性的情况下,在程序接口进行测试,只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息

(2)白盒测试:通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试。在程序不同地方设立监测点,检查程序的状态,以确定实际运行状态与预期状态是否一致。

3、测试原则不同

(1)黑盒测试:以用户角度,从输入数据与输出数据的对应关系出发进行测试的。很明显,如果外部特性本身设计有问题或规格说明的规定有误,用黑盒测试方法是发现不了的。

(2)白盒测试:一个模块种的所有独立路径至少被测一次。所有逻辑值均需测试true和false两种情况

性能测试

安全测试

自动化测试

单元测试、继承测试、系统测试的区别和联系
验收测试和回归测试

软件测试模型

  1. V模型
  2. W模型
  3. H模型
  4. X模型

安全测试

安全测试和渗透测试的区别如下:1、渗透测试是证明系统存在问题,而安全测试是发现系统问题。2、渗透测试站在攻击者的角度来看待问题,安全测试则是站在防护者角度。3、渗透测试选取部分点为测试目标,安全测试则是一套完整测试。 安全测试和渗透测试的区别主要在于以下几点:

1、渗透测试是以入侵系统证明系统存在安全问题为出发点,而安全测试则是以发现系统所有可能的安全隐患为出发点。

2、渗透测试是以攻击者的角度来看待和思考问题,安全测试则是站在防护者角度思考问题。

3、渗透测试只选取几个点作为测试的目标,而安全测试是在分析系统架构并找出系统所有可能的攻击界面后进行的具有完备性的测试。

4、安全测试需要对系统的功能、系统所采用的技术以及系统的架构等进行分析,所以较渗透测试需要投入更多的时间和人力。

5、渗透测试无法提供有针对性的解决方案,而安全测试会站在开发者的角度分析问题的成因,提供更有效的解决方案。

CS和BS架构

BS:(Browser/Server,浏览器/服务器模式),web应用 可以实现跨平台,客户端零维护,但是个性化能力低,响应速度较慢。 CS:(Client/Server,客户端/服务器模式),桌面级应用 响应速度快,安全性强,个性化能力强,响应数据较快

对象硬件环境客户端要求软件安装升级和维护安全性
C/S用户固定,并且处于相同区域,要求拥有相同的操作系统。客户端的计算机电脑配置要求较高。每一个客户端都必须安装和配置软件.C/S每一个客户端都要升级程序。可以采用自动升级。一般面向相对固定的用户群,程序更加注重流程,它可以对权限进行多层次校验,提供了更安全的存取模式,对信息安全的控制能力很强。一般高度机密的信息系统采用C/S结构适宜。
B/S要有操作系统和浏览器,与操作系统平台无关。客户端的计算机电脑配置要求较低。可以在任何地方进行操作而不用安装任何专门的软件。不必安装及维护

Client/Server是建立在局域网的基础上的.Browser/Server是建立在广域网的基础上的.

硬件环境不同: C/S 一般建立在专用的网络上, 小范围里的网络环境, 局域网之间再通过专门服务器提供连接和数据交换服务. B/S 建立在广域网之上的, 不必是专门的网络硬件环境,例如电话上网,租用设备, 信息管理. 有比C/S更强的适应范围,一般只要有操作系统和浏览器就行 对安全要求不同 C/S 一般面向相对固定的用户群,对信息安全的控制能力很强,一般高度机密的信息系统采用C/S 结构适宜,可以通过B/S发布部分可公开信息. B/S 建立在广域网之上, 对安全的控制能力相对弱,面向是不可知的用户群. 对程序架构不同 C/S 程序可以更加注重流程, 可以对权限多层次校验, 对系统运行速度可以较少考虑. B/S 对安全以及访问速度的多重的考虑, 建立在需要更加优化的基础之上. 比C/S有更高的要求。B/S结构的程序架构是发展的趋势,从MS的.Net系列的BizTalk 2000 Exchange 2000等,全面支持网络的构件搭建的系统. SUN 和推的JavaBean 构件技术等,使 B/S更加成熟. 软件重用不同 C/S 程序可以不可避免的整体性考虑,构件的重用性不如在B/S要求下的构件的重用性好. B/S 对的多重结构,要求构件相对独立的功能. 能够相对较好的重用. 系统维护不同 系统维护在是软件生存周期中,开销大。——-重要 C/S 程序由于整体性, 必须整体考察, 处理出现的问题以及系统升级. 升级难. 可能是再做一个全新的系统 B/S 构件组成,方面构件个别的更换,实现系统的无缝升级. 系统维护开销减到最小.用户从网上自己下载安装就可以实现升级. 处理问题不同 C/S 程序可以处理用户面固定, 并且在相同区域, 安全要求高需求, 与操作系统相关. 应该都是相同的系统 B/S 建立在广域网上, 面向不同的用户群, 分散地域, 这是C/S无法作到的. 与操作系统平台关系最小. 用户接口不同 C/S 多是建立的Window平台上,表现方法有限,对程序员普遍要求较高 B/S 建立在浏览器上, 有更加丰富和生动的表现方式与用户交流. 并且大部分难度减低,减低开发成本. 信息流不同 C/S 程序一般是典型的中央集权的机械式处理, 交互性相对低 B/S 信息流向可变化, B-B B-C B-G等信息、流向的变化, 更象交易中心

sql注入的防范

Loading Comments...