文档章节

软件测试相关简要记录

NoMasp
 NoMasp
发布于 2015/09/08 21:48
字数 2178
阅读 5
收藏 0

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

软件测试

编码和测试统称为实现。

通常在编写出每个模块之后就对程序做必要的测试,这叫做单元测试。模板的编写者和测试者是同一个人。

之后会进行其他综合测试,由专门的测试人员承担这份工作,也就是软件测试工程师。

软件测试的工作量往往占软件开发总工作量的40%以上。

编码

对于编码有如下要求:

1)程序内部的文档

2)数据说明

3)语句构造

4)输入输出

5)效率:程序运行时间、存储器效率、输入输出的效率

软件测试基础

一、软件测试的目标

1)测试是为了发现程序中的错误而执行程序的过程

2)好的测试方案极可能发现迄今为止尚未发现的错误的测试方案

3)成功的测试是发现了至今为止尚未发现的错误的测试

注:测试只能查找出程序中的错误,而不能证明测试中没有错误。

二、软件测试准则

1)所有的测试都应该能追溯到用户需求

2)应该远在测试开始之前就制定出测试计划

3)把Pareto原理(测试发现的错误中的80%很可能是程序中20%的模块造成的)应用到软件测试中

4)应该从“小规模”测试开始,并逐步进行“大规模”测试

5)穷举测试是不可能的

6)应该由第三方从事测试工作

三、测试方法

白盒测试和黑盒测试,先进行白盒测试,后进行黑盒测试。(随后会有补充)

四、测试步骤

1)模块测试(又被称为单元测试)

2)子系统测试(将经过单元测试的模块放到一起形成一个子系统)

3)系统测试(将经过测试的子系统装配成一个完整的系统来测试)

4)验收测试(将软件系统作为一个单一的整体,它是用户积极参与下进行的,验收测试也被称为确认测试)

5)平行运行(将新旧系统同时运行进行比较,目的是:1,可以在准生产环节中运行新系统而不冒风险;2,用户能有一个熟悉新系统的过程;3,可以验证用户指南和使用手册之类的文档;4,能够以准生产模式对新系统进行全负荷测试,可以用测试结果验证性能指标)

五、测试阶段的信息流

输入的信息由两大类:

1)软件配置,包括需求说明书、设计说明书和源程序说明书清单等

2)测试配置,包括测试计划和测试方案,所谓测试方案不仅仅是测试时使用的输入数据(称为测试用例),还应该包括每组输入数据预定要检验的功能,以及每组数据预期应该取得的正确输出

(测试配置是软件配置的一个子集,也就是说最终交出的软件配置应该包括测试配置和测试的实际结果和测试的记录)

单元测试

一、测试重点

1)模块接口

包括:参数的数目、次序、属性或单位系统与变元是否一致;是否修改了只作输入用的变元;全局变量的定义和用法在各个模块中是否一致

2)局部数据结构

常有局部数据说明、初始化、默认值等方面的错误

3)重要的执行通路

4)出错处理通路

错误常在:1 对错误的描述是难以理解的;2 记下的错误与实际遇到的错误不同;3 在对错误进行处理之前,错误条件已经引起系统干预;4 对错误的处理不正确;5 描述错误的信息不足以帮助确定造成错误的位置

5)边界条件

二、代码审查

三、计算机测试

为每个单元测试开发驱动软件和(或)存根软件

集成测试

一、自顶向下集成

二、自底向上集成

三、在软件结构的较上层使用自顶向下方法与软件结构中较下层使用的自底向上方法相结合。

四、回归测试

确认测试

确认测试也称为验收测试,它的目的是验证软件的有效性。

验证(verification)是指保证软件正确的实现了某个特定要求的一系列活动。

确认(validation)是指保证软件确实满足了用户需求进行的一系列活动。

软件有效性的定义:如果软件的功能和性能如同用户所合理期待的那样,软件就是有效的。

一、软件测试的两种可能结果:

1)功能和性能与用户要求一致,软件是可以接受的。

2)功能和性能与用户要求有差距。

二、软件配置复查

三、Alpha和Beta测试

Alpha测试由用户在开发者的场所进行,并且在开发者对用户的“指导”下进行测试。开发者负责记录发现的错误和使用中遇到的问题。也就是说Alpha测试是在受控的环境中进行的。

Beta测试由软件的最终用户在一个或多个客户场所进行。开发者通常不在场,也就是说是不受控的环境。用户记录在Beta测试中遇到的一切问题(真实的或想象的),并定期将这些报告给开发者。

也就是说,作为计算机/软件的用户而言,我们平常接触最多的Beta版的软件,而Alpha版的软件除了自己开发/测试的基本不会遇到。

白盒测试技术

一、逻辑覆盖

1)语句覆盖

2)判定覆盖

3)条件覆盖

4)判定/条件覆盖

5)条件组合覆盖

6)点覆盖

7)边覆盖

8)路径覆盖

二、控制结构测试

1)基本路径测试

主要是:1 根据过程设计结果画出相应的流图;2 计算流图的环形复杂度,环形复杂度定量度量程序的逻辑复杂性;3 确定线性独立的基本集合;4 设计可强制执行基本集合中每条路径的测试用例

环形复杂度计算方式:V(G)=P+1,P是流图中判定(if等)结点的数目。

2)条件测试

3)循环测试

主要包括:简单循环,嵌套循环,串接循环(也就是两个循环并列,而非包含关系,包含关系时为嵌套循环)

黑盒测试

一、黑盒测试力图解决的问题:

1)功能不正确或遗漏了功能
2)界面错误
3)数据结构错误或外部数据库访问错误
4)性能错误
5)初始化和终止错误

二、设计黑盒测试时应考虑的问题:

1)怎样测试功能的有效性?
2)哪些类型的输入可构成好测试用例?
3)系统是否对特定的输入值特别敏感?
4)怎样划定数据类的边界?
5)系统能够承受什么样的数据率和数据量?
6)数据的特定组合将对系统运行产生什么样影响?

三、等价划分

将输入域划分成若干个数据类,据此导出测试用例。

四、边界值复习

五、错误推测

调试

一、调试途径

1)蛮干法
2)回溯法
3)原因排除法

软件可靠性

软件可靠性是程序在给定的时间间隔内,按照规格说明书的规定成功地运行的概率

错误的含义是开发人员造成的软件差错(Bug)

故障的含义是由错误引起的软件的不正确行为

一、估算平均无故障时间的方法

1)符号

ET ——测试之前程序中错误总数
IT ——程序长度(机器指令总数)
τ ——测试(包括调试)时间
Ed(τ) ——在0至 τ 期间发现的错误数
Ec(τ) ——在0至 τ 期间改正的错误数

2)估计错误总数

植入错误发和分别测试法

版权声明:本文为 NoMasp柯于旺 原创文章,未经许可严禁转载!欢迎访问我的博客:http://blog.csdn.net/nomasp

本文转载自:http://blog.csdn.net/nomasp/article/details/46642439

NoMasp
粉丝 7
博文 334
码字总数 0
作品 0
镇江
程序员
私信 提问
【北京】豆角网招聘初级软件测试工程师

公司网址:www.doujiao.com 【岗位职责】 1、参与公司产品的测试工作,发现产品的缺陷; 2、针对bug做简要分析,并跟踪状态; 3、整理测试数据。 【岗位要求】 1、大专及以上学历,计算机相关...

liping
2012/02/03
358
3
武汉活动〡第22届BQConf软件质量大会

小伙伴们,2016年武汉BQConf活动本月就要开始咯! 本次活动的内容有敏捷管理和测试,这也符合了之前活动大家反馈的期待。在这新的夏天,我们盛情邀约您的到来,在了解Session的同时,还可以结...

jobthoughtworks
2016/05/18
54
0
武汉活动〡第22届BQConf软件质量大会

小伙伴们,2016年武汉BQConf活动本月就要开始咯! 本次活动的内容有敏捷管理和测试,这也符合了之前活动大家反馈的期待。在这新的夏天,我们盛情邀约您的到来,在了解Session的同时,还可以结...

jobthoughtworks
2016/05/18
5
0
用jmeter进行多用户并发压力测试

测试要求如下,多用户同时登陆web应用程序,并进行操作,查看在多用户操作下,程序的performence。恰好,jemter下有个CSV Data Set Config,它用来设定一组参数,以便在向程序发出请求时,传...

IT追寻者
2016/06/21
1K
0
adb操作命令详解

【天问与天答】   疑问一:adb是什么?   疑问二:adb有什么用?   疑问三:作为最关键的问题,adb工具如何用? 答疑一:adb的全称为Android DebugBridge,就是起到调试桥的作用。通过adb...

Sheamus
2015/09/28
93
0

没有更多内容

加载失败,请刷新页面

加载更多

采购单品汇总_华南.xlsx

import pandas as pdimport matplotlib.pyplot as pltimport matplotlib as mp1mp1.rcParams["font.family"] = "STFangsong"# 加载《销售》表数据df1 = pd.read_excel(r"C:\Us......

龙玉滕
今天
5
0
OSChina 周五乱弹 —— 一次四千 要4次还能多给一千

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @这次装个文艺青年吧 :#今日歌曲推荐# 分享金志文的单曲《远走高飞》: 版权又回来了现在听歌得好几个软件 《远走高飞》- 金志文 手机党少年们...

小小编辑
今天
7
0
Spring Cloud Alibaba 实战(十) - Spring Cloud GateWay

> 本文主要内容是:为什么要使用网关,整合Gateway,Gateway核心学习:Route,Predicate,Filter,最后使用Gateway聚合微服务请求 先总结至此的架构 1 网关的价值 不使用网关行嘛? 各个请求直接打在...

JavaEdge
今天
4
0
【CKB.DEV 茶话会】第二期:聊聊 CKB 钱包和 Nervos DAO 全流程

CKB.DEV 茶话会第二期:聊聊 CKB 钱包和 Nervos DAO 全流程 为了鼓励更多优秀的开发者和研究人员参与到 CKB 的开发和生态建设中去,我们希望组织一系列 CKB Developer Seminar(CKB.DEV 茶话...

NervosCommunity
今天
4
0
聊聊rocketmq的HAClient

序 本文主要研究一下rocketmq的HAClient HAClient rocketmq-all-4.6.0-source-release/store/src/main/java/org/apache/rocketmq/store/ha/HAService.java class HAClient extends Serv......

go4it
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部