第五课 闭着眼睛测试软件.

Slides:



Advertisements
Similar presentations
定 格 入 格 破 格 —— 新诗仿写复习训练 仿照下列句子,再把 “ 人生 ” 比喻成 “ 大海 ”“ 天空 ” , 造两个句子。 如果说人生是一首优美的乐曲,那么痛苦则 是其中一个不可或缺的音符。 参考答案: 1 、如果说人生是一望无际的大海,那么挫折则 是其中一个骤然翻起的浪花。 2 、如果说人生是一片湛蓝的天空,那么失意则.
Advertisements

F 15.1 股票指数的功能 F 15.2 股票指数的分类 F 15.3 股票指数的编制 F 15.4 如何编制不同功能的股票指数 F 15.4 中外主要股票指数.
1 1.2 信息的表示与存储  数据:数据是对客观事物的符号表示。 如,数值、文字、语言、图形、图像等都是不同形 式的数据。  信息:信息是既是对客观事物变化和特征的反映,又 是事物之间相互作用、相互联系的表征。 信息必须数字化编码,才能用计算机进行传送、存 储和处理。 信息具有针对性和时效性。
「課程領導」分享 香港潮陽小學 曾美儀老師 鄺婉媛老師 2013 年 11 月 28 日. 一)本校背景: 天水圍 30 班津貼學校 學生多來自公共屋邨 現有 6 位音樂老師.
昆明机场. 目录  机场历史 机场历史  建设状况 建设状况  运行状况 运行状况  航线 航线.
大學甄選入學 個人申請面試技巧 黃仁竑 教授 中正大學資工系. 大綱 面試目的 面試流程 面試技巧 ( 注意事項 ) 結語.
第十四章 人口(二) 高中地理(一). 第一節 人口成長 第二節 人口組成 第三節 人口問題 第十四章 人口(二)
中國歷史 社會主義文化大革命 我們的報告是關於中國著名的革命 —— 文化大革命。你可會立即想到它何時發 生、怎麼會發生等等。我們將會介紹文 化大革命,希望你細心欣賞。
党课讲座 入党的条件与程序.
中國大陸教育 督導制度探究 凌林煌教授/博士 講授 國立中山大學共同科歷史學程
建筑师简介——齐康.
金門的特色小吃 ~結合自然與人文的美食之旅~
温故知新 犬 戎 公元前 770年 周平王 公元前771年 东周 洛邑 西周 镐京.
计算机应用基础 项目化教程 第1章计算机基础知识与操作入门.
让我们走进秋天.
第一章 教育与教育学 讲授提纲 教育与教育学 思考题目 主讲: 白彦茹(教授) 阅读文献 教学目的与要求 教学重点与难点 退出.
我国政府受人民的监督 权力的行使:需要监督.
法學緒論第三單元:立法程序 課程設計: 財經法律系 --楊東連 法學緒論-3.
第二冊 第五課 行政法與生活 師大附中 陳采妍.
水浒传 ——卢俊义,林冲,鲁智深是怎么死的.
為什麼要讀書?.
鹽酥蝦 蝦子先處理好 蝦頭剪至眼睛處,鬚及蝦頭的小腳也都剪乾淨 2 再用廚房用剪刀開背去腸泥
電腦科I.T.C.A.金章專題設計 東華三院羅裕積小學 黎惠君 6B班.
第四节 K线图研判技巧.
何谓学龄期 学龄期是指6~7岁入小学起至12~14岁进入青春期为止的一个年龄段。期小儿体格生长仍稳步增长,除生殖系统外其他器官的发育到本期末已接近成人水平。 这个时期发病率较前为低,但要注意预防近视眼和龋齿,矫治慢性病灶,端正坐、立、行姿势,安排有规律的生活、学习和锻炼,保证充足的营养和休息,注意情绪和行为变化,避免思想过度紧张。
教学管理与学业评价改革 杭州市学军小学 杨一青 2017/3/12.
传统采购与现代采购的区别.
龍騰高中地理(三) 第六章 地形學的應用.
旅游资源赏析.
道路交通事故處理.
2014年中考历史解题技巧与重要类型题 一、图片材料题 1、地图类 2、人、物、场景类 3、表格、数轴类 二、文字材料题 1、引用材料类
11元的鐵道旅行 作者:劉克襄 報告人:康興國.
第二章 计算机信息处理技术 数据是指能够由计算机处理的数字、字符和符号等。 数值数据:用数字符号表示,如1,2,….
程序设计思想与方法入门篇 庄天红.
高中地理(一) 第十六章 產業(二)林、漁、礦業.
班級:2年2班 座號:33 姓名:羅子惠 指導老師:黃源弘 資料來源:
第七章 人 口 第一節 種族的分布與現況 第二節 人口結構與成長 第三節 人口問題 總目錄.
国际贸易法.
第三章 文学作为活动.
宗教故事 Back >> 【被逐出樂園】米開朗基羅1508~12年.壁畫
任务2: 通报的写作.
THE BACK ——周思怡组.
2.4 民主监督—— 守望公共家园.
学风建设 ·学校·我 学风建设报告.
寫 作 教 學 6 電腦與我 時代改變,科技進步,電腦成為日常生活不可或缺的設備。我是二十一世紀的E世代少年,一隻滑鼠在手,樂趣無窮。
《计算机操作员》精品 课件 淮南市潘集职教中心
立體圖形、圖形變換、空間 第十一組 廖芳苓 葉玟孝 林佩君.
視野死角與內輪差 埔心國小交通安全團隊.
教育部顧問室 九年一貫 防災教育教材.
分布式数据库系统及其应用.
大綱 *專題演講介紹 *大陸醫療的改革與發展 *海報發表文章分享 2012海峽兩岸醫院院長論壇行後報告 ‧台北
第十讲 刘少奇与中国革命和建设.
文狀元閱讀心得寫作指導分享 -讀寫整合策略- 苗栗縣新南國小 吳振豪.
$15 文件操作. $15 文件操作 主要内容 文件系统概述 驱动器、目录和文件 文件流和数据流 自定义IO操作.
第一章.
第5章 其他数据库对象.
特定消耗品說明 (指碳粉匣、墨水匣) 國立清華大學 保管組製作.
17 交易處理與鎖定 17-1 交易的基礎 17-2 交易處理 17-3 並行控制 17-4 資料鎖定 17-5 死結問題.
模擬考 日期 10/19,20 12/17,18 2/25,26 3/29,30 4/27,28 範圍
中五級電腦科 PASCAL檔案處理.
自然與生活科技:太陽的觀測 高雄市 博愛國小 林佳蓉老師 2008/11/10.
生活教育 我會坐火車.
Chapter 14 系統保護 (System Protection)
辦公室固體廢物對環境有什麼影響? 第三組.
追分國小101學年度 自然與生活科技上課PPT 單元一 月亮
——彻底变革算法与程序设计的教学方式 湖北省水果湖高级中学 伍先军.
保护环境 人人有责 Come in.
景文科技大學學生校外實習訪視暨差旅費核銷說明
Presentation transcript:

第五课 闭着眼睛测试软件

动态黑盒测试, 闭着眼睛做测试 a) 通过测试和失败 b) 等价分配 c) 数据测试 d) 状态测试 e) 失败状态测试

动态黑盒测试: 让程序运行起来, 测试人员充当客户, 通过使用软件, 找出缺陷. 测试工作就是使用测试用例,进行输入,等待输出,同时验证结果. 这个过程的工作思想是依照产品说明书, 设计和选择测试用例, 输入给软件, 等待结果, 和预期结果相互对照.

测试员会碰到的情况 产品开发不规范, 没有产品说明书,根据现有资料和软件, 尽量进行测试, 这时候叫探索性测试. 把软件本身当说明书, 边运行, 边记录功能, 找出可能存在的缺陷. 尽量督促开发者提供说明书是明智的选择.

通过测试 简单说就是验证软件能做什么, 是否达到了说明书中基本的功能, 而不考虑其他因素。 设计用例时, 就设计最通常的数据, 测试其是否实现了某功能, 不用挖空心思给破坏数据。

在设计和执行测试时, 总是首先进行通过测试, 在破坏性测试前看看软件基本是否实现了所要功能, 这很重要。 通过测试的用例也叫常规用例。

测试汽车: 通过测试:正常启动,停车,刹车,加速等。

看看上面的计算器例子, 我们怎样设计通过测试用例. 常规用例: 0+0 1+0 2+0 99999+0,等等

失败测试 纯粹为了破坏软件而设计的测试用例. 执行失败测试用例的过程叫失败测试, 或者叫迫使出错测试. 工作思想: 尽量找出软件薄弱环节, 蓄意攻击.

还是测试汽车 失败测试:加到最大速度,突然转弯,看打滑情况,突然刹车,看刹车装置, 开到最大速度,突然撞击障碍,看对假人的影响(一般看可能对人伤害多大)等

看看上面计算器例子, 我们怎样设计失败用例. 破坏用例: 1/0 1e308+1 (最大数字+1) 故意用使用过的旧电池,测试在电不足的情况下的表现是否失常。 非常规用法都可以叫破坏用例

注意:不必要强调通过测试和失败测试的词汇区别, 测试人员尽量做到覆盖各种情况. 软件病毒是一种很特殊的破坏测试。 访问网站的时候,随意点击,随便乱用,不合乎常规,看软件会出现怎样情况, 都是破坏测试。 测试打印,可以不连接打印机,或者打印机缺纸等, 没有墨,或者没有墨盒,也是非常规操作测试.(需要查看打印机的操作手册) 注意:不必要强调通过测试和失败测试的词汇区别, 测试人员尽量做到覆盖各种情况.

测试用例生成方法 等价分配原则: 由于测试用例无法穷尽, 等价分配就是分步骤地把过多(甚至无限)的测试用例减小到同样有效的小范围的过程. 等价类别或者等价区间是指具有相同测试目标或者暴露相同软件缺陷的一组测试用例. 在寻找等价区间时, 先想把软件相似输入, 输出, 操作分组, 这些组就是等价区间.

针对一个软件的测试数据的等价类 看,这个例子,应该有9个等价类

等价分配例子 如果一个操作系统文件名可以包括除了、/ : * ? “ < >和1之外的任意字符。文件名长度是1-255个字符。 我们考虑一下等价区间 针对长度:合法长度的名称,过长名称(超过255), 过短名称(空的名) 针对字符:合法字符,非法字符

可以测试: 合法长度,合法字符 合法长度,非法字符 非法长度,合法字符 非法长度,非法字符

例如一个三角型分类程序,会把三角型分成非三角型,三角型(等边,等腰,直角,其他) 我们输入等价类可以是这样:

三角型 非三角型 直角 非直角 非等腰 等腰 非等腰 等腰 等边 非等边 等边 非等边

根据上面的分类设计好三角型三边,a, b, c,边。 同时记住:还要让它们的值轮流一下,比如让a为b的值,b为c的值, c为a的值再测试。

注意: 许多时候针对一个程序的一个方面测试,测试人员等价类设计的也不太一样,但是准则是需要保证把测试的各个方面覆盖。 如果为了减少测试用例的数量过度进行等价分配,测试漏掉软件缺陷的风险会增加。 提醒:对于初涉软件测试的人员,一定要请经验丰富的人员审查预定的等价类。

软件 = 数据+程序 数据包括:用户的交互行为,文件,网络传送的数据,打印输出的数据。 程序:可以执行的流程,转换,逻辑,运算。 下面我们就数据和状态两个方面对测试进行讨论

数据测试 根据下列主要原则进行等价分配,以合理减少测试用例: 边界条件 次边界条件 空值 无效数据等

边界条件:在悬崖边上行走没问题,平地就没事情了。 例如: 数组长度,下标越界; 文件名字长度; 计算器最大值,最小值计算;

边界条件类型 数据类型: 数值, 速度, 字符, 地址, 位置,尺寸, 数量, …. 边界条件类型 第一个/最后一个 最小值/最大值 第一个/最后一个 最小值/最大值 开始/完成 超过/在内 空/满 最短/最长 最慢/最快 最早/最迟 最大/最小 最高/最低 相邻/最远 等价分配原则: 如果要选择在等价分配中包含哪些数据, 就根据边界来选择

针对一个软件的测试数据的等价类 看,这个例子,9个等价类,测试边界,和边界边的值

测试边界线 提出边界线的时候, 要测试临近边界的合法数据, 即测试最后一个合法数据, 和超过边界的非法数据. 例如: 第一个加1/最后一个减1 第一个减1/最后一个加1

看几个例子(p48): a) 如果程序读写一个盘,尝试保存一个字符的文件,然后保存一个刚好和盘容量一样大的文件,然后保存一个空文件,和保存一个超过容量的文件。

b) 测试飞行模拟程序,尝试控制飞机在地平线上和最大允许高度飞行,尝试在地平线和海平线下飞行。

c)测试一个fib数列生成,测试f(-1), f(0), f(1) d)测试栈,测试从空栈中提取数,向满栈压数。

次边界条件 次边界条件一般是隐含的,需要测试员大体了解软件工作方式和一些细节。

2的乘方:一个通信软件是压缩数据来传送的,允许你输入数字(0-255之间),其实内部软件是这样做的,当你输入的是0-15,把数据压缩为4个bit, 和其他数据一起发送。当你输入16-255时,把数据当8个bit发送。 边界条件:0, 1, 254, 255, 256 次边界条件:数据15, 16, 17, 都需要测试

如果一个输入,可以接受ASCII表中 0-9, A-Z, a-z的数字,测试员需要知道0-9, A-Z, a-z的边界,边界外的测试. (参考p52)

默认,空白,空值,零值和无 对于这些数据要小心测试。 默认值:好的软件,当用户没有输入一些数据的时候,往往根据需要,会选定一些默认值,例如书例子(p53), 或者给出提醒。

测试人员需要对这些值格外关注,进行测试。

非法,错误,垃圾数据 垃圾数据时失败测试的数据,为了应付千奇百怪的用户使用方法。 故意乱用软件,输入不正常数据,发挥想象。

状态测试 状态测试就是通过不同的状态验证程序的逻辑流程, 在黑盒测试中, 我们说的软件状态是指软件当前所处的情况或者模式.

测试软件状态也有组合爆炸问题,原因是现在的软件为了迎合日益丰富的用户界面, 提供了太多选择和选项, 致使软件分支爆炸式增长. 解决办法: 用等价类法, 选择状态和分支.

举画图软件测试状态 测试窗口,拉大,拉小,放最大,最小,看版面的各种图版位置 选择画图工具栏,观察下面状态栏的文字变化。 选择了一个画图工具,测试画图效果 有了当前图片,测试菜单中“图像”栏中各种对图像的调整。

建立状态转换图 先建立软件可能进入的每一种独立状态。 从一种状态进入另一种状态所需要的输入和条件。(可能按键,菜单选择,传感器信号等) 进入或退出状态的设置条件及输出结果。(包括显示的菜单和按钮,设置的标志,产生的打印输出,执行的运算.)

状态的研究,是需要研究产品说明书,同时还需要和开发设计小组人员共同讨论。

考虑这样的计算器的状态图

根据状态图设计上面用例,将是我们的实习作业之一。

失败状态测试

例如:银行数据读写问题 用户A 用户B 500元 If(money>500) 提取500 If(money>500) 提取500 read read 500元 If(money>500) 提取500 If(money>500) 提取500 write 0元 write 注意:银行该帐户被提取两次,应该是不行的,但是程序没有保护,造成了错误

正确做法:读取,判断,写回操作应该是锁住帐户数据,不让其他读写介入,这样的操作在数据库或者编程工具中叫transaction(交易)。 例如: beginTransaction read account if (account_money >=500) withdraw 500 write back account endTransaction 这样的问题也可以用代码走查找到。

重复,压迫和重负 重复做一个操作,看该操作对系统影响。 比如系统有一个功能,允许教师等成绩。该操作要读一批学生成绩数据,模仿这个过程,进去后,然后退出系统,然后进入,重新读一批学生成绩数据,排序,然后退出。 这样的反复操作,意在看程序对读取大量数据,占有了内存,退出后,是否内存被释放了。 (注意,这样的测试往往针对一个目的,所以测试员需要和程序员沟通,了解哪些地方是薄弱的)

压迫测试: 迫使软件在不理想状态下运行-内存小,磁盘少,CPU慢,网速慢等。观察软件对外部资源的要求和依赖程度。

重负测试:尽量提供条件,让软件处理可能大的数据。

针对性能测试的方法,和数据分析,我们将会在后面专题讨论。

其他黑盒测试技术 象愚笨的用户那样 根本不懂得正常操作 输入无法想象的数据 使用中中途变卦,对异常流程的考验。

在已经找到软件缺陷的地方再找找 凭借经验,直觉以及预感

小测验 1. 假设有一个文本框要求输入10个字符作为邮政编码,对这样的文本框,如何选择等价类? format: 00000-0000

2. 说出画程序状态图的几个要素? 3. 启动写字板程序, 从File菜单选择Print命令。看Print Range这个特性,有哪些需要测试的边界条件?

本学期第一次实验: 黑盒动态测试,测试两个程序。