软件测试及工具培训 白盒及黑盒测试.

Slides:



Advertisements
Similar presentations
简单迭代法的概念与结论 简单迭代法又称逐次迭代法,基本思想是构造不动点 方程,以求得近似根。即由方程 f(x)=0 变换为 x=  (x), 然后建立迭代格式, 返回下一页 则称迭代格式 收敛, 否则称为发散 上一页.
Advertisements

定 格 入 格 破 格 —— 新诗仿写复习训练 仿照下列句子,再把 “ 人生 ” 比喻成 “ 大海 ”“ 天空 ” , 造两个句子。 如果说人生是一首优美的乐曲,那么痛苦则 是其中一个不可或缺的音符。 参考答案: 1 、如果说人生是一望无际的大海,那么挫折则 是其中一个骤然翻起的浪花。 2 、如果说人生是一片湛蓝的天空,那么失意则.
扬州环境资源职业技术学院基础部 一、微分的定义 二、微分的几何意义 四、微分在近似计算中的应用 第五节 函数的微分 三、基本初等函数的微分公式与微分运算 法则.
我国国有银行 资本构成及资本充足率变化 小组成员:金融 尹佳裕 王淼 刘钰 金融 吴昱.
月經異常的原因及警訊 組員: 陳少康、張康樂、許晉愷、何曄、方泠瑩、張 顓麟、蘇梓喬、溫鵬皓、林雅雯.
我的未来不是梦 攀枝花市经贸旅游学校. 1. 文中案例王萍苦恼的原因是 什么? 2. 你有哪些办法可以帮助王萍? 导入 思考  谁来帮帮她?
勞動檢查常見違法案例說明 臺中市政府勞工局.
职业指导服务系统 欢迎了解职业指导服务系统!
消失的吸管 隊名:吸管應該消失才隊.
助學工作說明會 及 教育訓練.
专利技术交底书的撰写方法 ——公司知识产权讲座
第八章 组织文化的整合 ——并购中的文化整合(二) 小组成员:浦若蓉、朱谷一、贾彦彦.
文書檔案組Q&A 崇右技術學院 文書檔案組 Q & A 總務處.
公職人員財產信託簡介 第一銀行信託處 編製.
經分表聘用兼任助理流程 完成 新增/修改 經分表 計畫無聘任兼任助理(新增) 紙本送所屬單位審核 計畫聘任兼任助理(新增)
我征服了黃山 林達的黃山之旅 2006春.
未婚懷孕:你想清楚了嗎 瑞芳國中 林碧欣.
國科會經費報銷說明 報告人:陳秀合 分 機: 年11月 12日(一).
實用技能學程答客問 Q&A 大明高中附設進修學校 教導處 編製.
农业银行网上签约流程 宁夏金溢投资 内部资料 1.
面对经济全球化 江西省石城中学 张文峰.
財團法人台北市任兆璋修女林美智老師教育基金會
廉政會報專題報告 農地重劃工程 施工常見缺失 報告:吳東霖 製作:張昌鈴 日期:103年12月23日.
99年成語200題庫(21-40).
專案製作經驗談.
提高自身素质做好 新时期班主任工作 北京市广渠门中学 高金英.
100學年度719班 親師懇談.
普通话模拟测试 与学习平台 使用指南.
单片机应用技术 项目一 循环彩灯装置 第7讲 Keil软件的使用 《单片机应用技术》精品课程组 湖北职业技术学院机电工程系.
第一章信託法 第一節 信託契約 第二節 信託財產 第三節 受益人 第四節 受託人 第五節 信託關係之消滅.
社團資料製作 亞東技術學院課外組 岳擎天
道路、管線事故緊急應變處理課程.
網路小說劇情建構與伏線營造 Windows98.
第六章 软件测试自动化 HLJU Software Testing.
花的構造- (資料參考--鄭元春 植物Q&A一書) 花瓣 花萼 雌蕊 雄蕊.
認識股票 認識股票.
软件测试的组织和管理 山东省软件评测中心 韩庆良.
宏天信业测试方法论 咨询顾问.
103年度身心障礙福利機構評鑑 日間及住宿機構指標說明 ~會計及財務管理~
屏東縣政府對民間團體補助經費作業要點 & 簡易計畫書撰寫概要與核銷注意事項
金門縣重大空難應變機制-消防局 壹、消防搶救、滅火、緊急救護 一、派遣作為:
四种命题 班级:C274 指导教师:钟志勤 任课教师:颜小娟.
关于整合检验检测认证机构实施意见的通知(国办发〔2014〕8号)
第二节 极限的概念 一、数列的极限 二 、函数的极限 第一章 目标: 理解函数极限的定义;无穷小的性质
推进德育创新 做好新时期班主任工作 北京市广渠门中学 高金英.
面对经济全球化.
銀行舞弊及內部管理常見缺失暨查核技巧 檢查局 陳組長妍沂.
外僑扣繳實務講習 1.
職場性騷擾相關法 律責任-以上司對 下屬性騷擾為例
我国的人民民主专政.
主講人:曲軒 協理 就業情報資訊 日期:2003年5月8日
衛生筷,衛生嗎? 綠的關懷協會 常務理事 董雅坋.
讀報教育 報告者:施子慧 資料來源:徐瑞美、施子慧.
103年度 健康促進學校輔導與網站維護─ 「臺灣健康促進學校之網站特色介紹」 張子超 教授
107年勞動基準法修法重點解析 高雄市政府勞工局.
國立中山大學管理學院 國際人才培育中心 大專人才培訓就業學程.
Discover the power of SSL-VPN+ IT management
第十章 应用程序测试.
開課單位作業流程及Q&A 開啟衛生署積分系統首頁 畫面如下頁.
第9章 DSP集成开发环境CCS 内容提要 CCS是TI公司推出的用于开发DSP芯片的集成开发环境,它采用Windows风格界面,集编辑、编译、链接、软件仿真、硬件调试以及实时跟踪等功能于一体,极大地方便了DSP芯片的开发与设计,是目前使用最为广泛的DSP开发软件之一。 本章对CCS开发软件的使用作了详细地介绍。首先,对CCS开发软件作了简要地说明,并介绍了该软件的安装及配置;其次,介绍了CCS的基本操作,包括:CCS的窗口和工具条、文件的编辑、反汇编窗口、存储器窗口、寄存器窗口、观察窗口
课程简介 《计算机应用基础》 与《微机操作》课程组 2019/1/16 课程简介.
南瑞学堂 学员简明操作指南 上海时代光华教育发展有限公司 2013年.
使用服务平台办理离校 操作指南.
学年第一学期领取教材明细查询的通知 学年第一学期学生使用的教材均在网上平台公示。现将有关事项通知如下:
聚合型第一種:隱沒帶、島弧 例子:臺灣東方的琉球海溝、南美洲智利海溝. 聚合型第一種:隱沒帶、島弧 例子:臺灣東方的琉球海溝、南美洲智利海溝.
日期:2009年10月22日 報告單位: 京年升電腦科技有限公司 報 告 人:副總經理 楊世豐 Power
code::blocks 與GLUT 程式開發
Usage Eclipse 敏捷方法工具介紹 實驗室網站:
函数与导数 临猗中学 陶建厂.
Presentation transcript:

软件测试及工具培训 白盒及黑盒测试

软件测试的重要性 软件的开发方法有一定的缺陷 是保证软件产品质量的一个重要手段 软件是一个特殊的产品,是人脑力劳动的产物。但人不可避免地会犯一些错误,所以做出的产品也就会存在一些缺陷,这就需要我们进行软件测试来发现软件内部存在的这些缺陷或错误 是保证软件产品质量的一个重要手段 其专业化、系统化、规范化、严密的测试能最大限度地发现软件中的错误,从而提高软件产品的可靠性 不是万能的 完全的软件测试是不现实的,如果做彻底的测试需要投入大量的人力和物力。所以需要在有限的投入中获得最大的产出 不能发现所有的错误 测试不能取代其他的软件质量保证手段,如软件开发中的过程管理以及QA等

黑盒测试 功能测试,数据驱动测试 测试的方法和原理 是在已知软件产品具有何种功能的前提下,用来检验每个功能是否能够正常使用的一个测试方法。 把程序看成是一个不能打开的黑盒子,在不考虑程序内部结构的情况下,测试人员用操作接口的方式进行测试,检查程序能否按照需求指定的功能接收输入数据产生正确的结果。

白盒测试 结构测试,逻辑驱动测试 前提:知道软件产品内部工作过程 目标:通过测试来检测软件产品内部动作是否按照规格说明书的规定正常进行 重点:按照软件内部的结构测试程序,软件中的每条通路是否都能按预定要求正确工作

白盒与黑盒测试比较 Y=f(X) Y f(x) X

白盒与黑盒测试比较 白盒测试: 黑盒测试: IN P OUT

调试与白盒测试 从广义上讲调试是白盒测试的一个子集 相同点 不同点 侧重点(排除错误 ------发现错误) 检查基础相同 目的相同 检查基础相同 方法相同(静态、动态、代码跟踪) 不同点 侧重点(排除错误 ------发现错误) 范围不同(语法、功能 -------- 内部结构、内存泄露等) 执行人员不同(开发人员 -------- 测试人员)

白盒测试的内容 代码检查(语法、逻辑、书写) 静态结构分析(内部关系如系统结构、函数调用关系等) 功能确认与接口分析 逻辑覆盖率分析(内部的执行路径、提高软件的可靠性) 性能与效率分析 内存分析(内存泄露、内存越界等)

白盒测试的方法 静态测试 不执行程序来寻找代码中存在的错误或评估代码的过程。由人工来进行,发挥了人的逻辑思维的优势或测试经验。能够批量性地发现问题,并直接定位到缺陷或错误的具体位置。 用静态测试来进行代码检查、静态结构分析。 动态测试 必须生成测试数据来运行被测试程序,取得程序运行的真实情况、动态情况,进而进行分析 测试质量依赖于测试数据 生成测试数据、分析测试结果的工作量大,使开展测试工作费时、费力、费人 代码跟踪

静态测试 ------代码检查 目的 确保代码编程标准有效的被执行 提高代码质量,减轻动态测试负担 提高代码可重复使用,降低项目风险与经费 增加程序的可理解性,降低维护成本 方式 桌面检查(由开发人员来检查代码的正确性) 人工走查(由测试人员根据程序相关文档进行检查) 代码审查(编译系统)

静态测试 ------代码检查 变量命名和类型审查 变量初始值检查 变量作用范围检查 程序逻辑审查 程序语法检查 程序结构检查

静态测试 ------代码检查 排除违背程序编写标准的问题 排除违背程序编程风格的问题 确保代码和设计的一致性 确保代码的逻辑表达的正确性 确保代码结构的合理性 找出程序中不可移植部分 发现程序中不安全、不明确和模糊的部分 实践表明,人工走查平均能查出被测程序的30%~70 %的逻辑设计和编码缺陷

静态测试 代码检查-编码规则示例 文件结构 书写格式 变量命名 与零比较 循环 内存分配 版权和版本声明、预处理块、函数和类结构声明、头文件的引用、程序的实现体 书写格式 空行、空格、缩进、注释 变量命名 变量和参数、常量、静态变量、全局变量、类名和函数名、类的数据成员、其他 与零比较 布尔变量、整型变量、浮点变量、指针变量 循环 循环体内循环变量、case语句、多重循环、循环体内逻辑判断 内存分配 malloc或new申请内存、free或delete释放内存、数组和动态内存、动态内存的申请与释放、数组或指针的下标 20%的注释(每五行进行注释) 与零比较 布尔: b == 0 ; b != 1; 整型: i==0; i != 1; 浮点: f > -0.1 and f <= 0.1 指针:直接跟 循环 循环变量: 在循环体内不改变值; Case: 带break, default; 多重循环: 长循环在内层,减少CPU跨阶处理次数 逻辑判断: 放在循环体的外面,使编译器优化处理,提高处理效率。

动态测试 ------ 测试内容 功能测试与接口测试 逻辑覆盖率分析 验证程序和详细设计说明的一致性; 检验每个软件单元模块能否正确的实现其功能,满足其性能和接口要求 逻辑覆盖率分析 依据被测程序的逻辑结构设计测试用例,驱动被测程序运行完成测试。 语句覆盖 Statement Coverage 判定覆盖 Decision Coverage 条件覆盖 Condition Coverage 分支条件组合覆盖 Condition/Decision Coverage 多条件覆盖 Multiple Condition Coverage 修正条件/判定覆盖 MC/DC 路径覆盖 Path Coverage 20%的注释(每五行进行注释) 与零比较 布尔: b == 0 ; b != 1; 整型: i==0; i != 1; 浮点: f > -0.1 and f <= 0.1 指针:直接跟 循环 循环变量: 在循环体内不改变值; Case: 带break, default; 多重循环: 长循环在内层,减少CPU跨阶处理次数 逻辑判断: 放在循环体的外面,使编译器优化处理,提高处理效率。

动态测试 ------ 测试内容 性能与效率分析 内存分析 单个函数的性能分析 函数的调用频率分析 代码执行频率分析 响应时间 并发性 了解程序内存分配的真实情况 监测内存使用情况,发现对内存的不正常使用 在系统崩溃前发现内存泄露错误 发现内存分配错误 精确显示发生错误时的上下文情况 指出发生错误的原由 在问题出现前发现征兆 20%的注释(每五行进行注释) 与零比较 布尔: b == 0 ; b != 1; 整型: i==0; i != 1; 浮点: f > -0.1 and f <= 0.1 指针:直接跟 循环 循环变量: 在循环体内不改变值; Case: 带break, default; 多重循环: 长循环在内层,减少CPU跨阶处理次数 逻辑判断: 放在循环体的外面,使编译器优化处理,提高处理效率。

动态测试 ------ 内存错误 内存分配未成功,却使用了它 内存分配虽然成功,但是尚未初始化就引用它 内存分配成功并且已经初始化,但操作越过了内存的边界 忘记了释放内存,造成内存泄露 释放了内存却继续使用它 20%的注释(每五行进行注释) 与零比较 布尔: b == 0 ; b != 1; 整型: i==0; i != 1; 浮点: f > -0.1 and f <= 0.1 指针:直接跟 循环 循环变量: 在循环体内不改变值; Case: 带break, default; 多重循环: 长循环在内层,减少CPU跨阶处理次数 逻辑判断: 放在循环体的外面,使编译器优化处理,提高处理效率。

自动测试和分析工具 随着软件测试的地位逐步提高,测试的重要性逐步显现,测试工具的应用已经成为了普遍的趋势。目前用于测试的工具已经比较多了,这些测试工具一般可分为 白盒测试工具 黑盒测试工具 性能测试工具 用于测试管理(测试流程管理、缺陷跟踪管理、测试用例管理)的工具。

应用测试工具的目的 提高测试质量; 减少测试过程中的重复劳动 实现测试自动化 在测试中应用测试工具,可以发现正常测试中很难发现的缺陷

测试工具的分类 白盒测试工具 白盒测试工具一般是针对代码进行测试,测试中发现的缺陷可以定位到代码级,根据测试工具原理的不同,又可以分为静态测试工具和动态测试工具。 代表工具有Rational的Test Realtime. 黑盒测试工具 黑盒测试工具的一般原理是利用脚本的录制(Record)/回放(Playback),模拟用户的操作,然后将被测系统的输出记录下来同预先给定的标准结果比较。黑盒测试工具可以大大减轻黑盒测试的工作量,在迭代开发的过程中,能够很好地进行回归测试。 黑盒测试工具的代表有MI公司的winrunner、Rational的robot

测试工具的分类 性能测试工具 测试管理工具 是通过模拟大数据量或多用户并发情况,对被测系统进行性能指标的采集。 代表工具有MI公司的LoadRunner 测试管理工具 测试管理工具用于对测试进行管理。一般而言,测试管理工具对测试计划、测试用例、测试实施进行管理,并且,测试管理工具还包括对缺陷的跟踪管理。 代表工作有Rational公司的TestManager,MI公司的TestDirector等

Rational Test realtime 测试工具

Rational Test RealTime概述 代码级的白盒测试工具 帮助开发人员创建测试脚本、执行测试用例和生成测试报告,并提供对被测代码进行静态分析和运行时分析功能。 利用该工具,开发人员可以大大提高测试的效率。

特点 代码静态分析,功能测试和运行时分析相集成。 代码编辑、测试和调试相集成。 测试执行后自动生成测试报告和各种运行时(runtime)报告。测试报告展示通过或失败的测试用例,而运行时分析报告包括代码覆盖分析报告,内存分析报告、性能分析报告和执行追踪报告。

运 行 RTRT的服务器安装于10.110.0.154(计费测试机)上. 客户端PC机上要安装x-windows客户端 运 行 RTRT的服务器安装于10.110.0.154(计费测试机)上. 客户端PC机上要安装x-windows客户端 在服务器上指定DISPLAY环境变量 export DISPLAY=<IP>:0 在服务器端运行/real/start_testrt.sh后, 在指定IP的PC机客户端就会启动RTRT的主界面. 如下图.

创建测试项目 在RTRT的主菜单中点击”NEW PROJECT” 输入新的测试项目名称 选择这个测试项目的存储路径 选择编译器类型: IBM AIX C 点击”finish”, 测试项目建立完成. 具体操作见演示: 1.RTRT环境设置和创建一个测试项目.avi

创建并设置一个测试应用 设置编译参数 首先要设置这个测试项目编译的参数 在设置完成这个编译参数后,在这个测试项目下的所有测试应用都可以自动应用这些设置的参数, 不必每个测试应用都重新指定. 其中设置参数注意一点是在AIX 5L正式编译环境中, 需要指定以64位编译模式( -q64 ). 但在RTRT环境中, 不能以64位编译模式进行编译, 否则在读目录中将不能正常将文件系统的文件读到程序变量中, 造成非程序因素的异常.

创建并设置一个测试应用 增加测试应用 在该测试项目上点右键, 在出现的快捷菜单中选择add child -> Application选项 输入新的测试应用名称 选中新的测试应用并点右键, 在出现的快捷菜单中选择add child -> Files选项 在目录中选择需要测试的源程序文件.

创建并设置一个测试应用 设置应用的运行参数 选中该测试项目, 选择setings… 在Build项目中的Execution选项中的Command Line Arguments栏目中输入该测试应用程序运行时需要的参数列表. (该列表与测试环境运行时一致). 注意在测试源程序中要进行如下的改造: 程序不要常驻内存运行, 要在没有文件处理时退出

创建并设置一个测试应用 编译应用程序并进行测试 在该测试项目上点右键, 在出现的快捷菜单中选择build选项 RTRT会按照前几步设置的编译参数进行编译 在编译完成后, 程序会自动运行并产生结果. 在运行过程中, RTRT会产生程序运行时过程调用的序列图.

RTRT的各种分析报告 运行时内存报告(memory profile) 分析程序运行时内存使用情况和是否存在内存泄露等的问题 内存使用大小的峰值 文件描述符的使用和分配情况

RTRT的各种分析报告 程序运行性能报告(performance profile) 最耗时的三个过程时间分布 每个过程的执行调用次数,执行总时间等运行效率信息 通过这个报告我们可以对调用次数多,执行时间长的过程进行专门的优化, 增加应用处理的效率, 减少执行时间

RTRT的各种分析报告 程序代码覆盖情况报告(code coverage) 每次测试中代码执行的覆盖情况 通过这个报告可以针对程序中没有执行到的情况, 增加测试用例, 保证对每个业务逻辑的代码达到100%的覆盖; 避免了因某种业务逻辑没有覆盖到, 导致程序上线后产生的错误或问题.

WinRunner测试工具

WinRunner概述 黑盒测试工具 通过自动捕获、检测和重放用户的交互操作, WinRunner可自动执行功能测试。可以辨认错误,确保应用程序顺利布署,并且能够维持其长时间的可靠运行 减少测试人员重复性劳动, 提高测试效率和准确性 回归测试: 可以对测试数据进行管理, 每次的测试工作能建立在过去测试数据的基础上,而不必每次测试都从头开始准备测试数据, 提高测试效率和准确率.

测试过程 通过录制测试动作创建测试 插入检查点 数据驱动(DataDriver)测试 测试结果报告(Test Result) 文本的、GUI、位图和数据库 数据驱动(DataDriver)测试 测试结果报告(Test Result)