搜档网
当前位置:搜档网 › 山东大学软件测试实验报告

山东大学软件测试实验报告

山东大学软件测试实验报告
山东大学软件测试实验报告

实验一。黑盒测试

一、等价类划分

电话号码问题某城市电话号码由三部分组成。它们的名称和内容分别是:

(1)地区码:空白或三位数字;

(2)前缀:非'0'或'1'的三位数字;

(3)后缀:4 位数字。

假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码。根据该程序的规格说明,作等价类的划分,并设计测试方案。

根据题目,分别将地区码、前缀、后缀进行分类,分析结果如下:

输入有效等价类编号无效等价类编号

地区码空白 1 包含其他字符 3

三位数字 2 少于三位 4

多于三位 5

前缀非0或

非1的三位数6 包含其他字符8

包含0的三位数9

包含1的三位数10

少于三位数11

多于三位数12

后缀四位数字7 包含其他字符13

少于四位数14

多于四位数15 根据上图的分析,可的测试用例

测试数据预期结果覆盖类地区码前缀后缀

空白555 4344 接受(有效)1、6、7 232545 4343 接受(有效)2、6、7 A23 322 4343 拒绝(无效) 3

21322 4343 拒绝(无效) 4

2323322 4343 拒绝(无效) 5

232 32A4343 拒绝(无效)8

232 208 4343 拒绝(无效)9

232 1114343 拒绝(无效)10

232 32 4343 拒绝(无效)11

232 322224343 拒绝(无效)12

232 322 4AS2 拒绝(无效)13

232 322 434拒绝(无效)14

232 322 434311拒绝(无效)15

三角形问题根据下面给出的规格说明,利用等价类划分的方法,给出足够的测试用例。一个程序读入三个整数。把此三个数值看成是一个三角形的三个边。这个程序要打印出信息,说明不是三角形、三角形是三边不等的、是等腰的、还是等边的。

分析题目中给出和隐含的对输入条件的要求:

(1)整数(2)三个数(3)非零数(4)正数

(5)两边之和大于第三边(6)等腰(7)等边

如果 a 、 b 、 c 满足条件( 1 ) ~ ( 4 ),则输出下列四种情况之一:

1)如果不满足条件(5),则程序输出为 " 非三角形 " 。

2)如果三条边相等即满足条件(7),则程序输出为 " 等边三角形 " 。

3)如果只有两条边相等、即满足条件(6),则程序输出为 " 等腰三角形 " 。

4)如果三条边都不相等,则程序输出为 " 一般三角形 " 。

列出等价类表并编号

覆盖有效等价类的测试用例:

a b c 覆盖等价类号码

3 4 5 (1)--(7)

4 4

5 (1)--(7),(8)

4 5 5 (1)--(7),(9)

5 4 5 (1)--(7),(10)

4 4 4 (1)--(7),(11)

覆盖无效等价类的测试用例:

日期问题用决策表测试法测试以下程序:该程序有三个输入变量month、day、year (month 、 day 和year 均为整数值,并且满足:1≤month≤12 和1≤day≤31),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上隔一天的日期。例如,输入为 2004 年11 月29 日,则该程序的输出为 2004 年12 月1 日。 (1) 分析各种输入情况,列出为输入变量 month 、 day 、 year 划分的有效等价类。 (2) 分析程序的规格说明,并结合以上等价类划分的情况,给出问题规定的可能采取的操作(即列出所有的动作桩)。 (3) 根据 (1) 和 (2) ,画出简化后的决策表。

1)划分等价类并编号,下表等价类划分的结果

输入等价类有效等价类无效等价类

日期的类型及长度①6位数字字符②有非数字字符

③少于6位数字字符

④多于6位数字字符

年份范围⑤在1990~2049之间

⑥小于1990

⑦大于2049

月份范围⑧在01~12之间

⑨等于00

⑩大于12

2)设计测试用例,以便覆盖所有的有效等价类在表中列出了3个有效等价类,编号分别

为①、⑤、⑧,设计的测试用例如下:

测试数据期望结果覆盖的有效等价类

200211 输入有效①、⑤、⑧

3)为每一个无效等价类设计一个测试用例,设计结果如下:

测试数据期望结果覆盖的无效等价类

95June 无效输入②

20036 无效输入③

2001006 无效输入④

198912 无效输入⑥

200401 无效输入⑦

200100 无效输入⑨

200113 无效输入⑩

3.NextDate 函数包含三个变量:month 、 day 和 year ,函数的输出为输入日期后一天

的日期。例如,输入为 2006年3月 7日,则函数的输出为 2006年3月8日。要求

输入变量 month 、 day 和 year 均为整数值,并且满足下列条件:

①1≤month≤12

②1≤day≤31

③1920≤year≤2050

1)有效等价类为:

M1={月份:1≤月份≤12}

D1={日期:1≤日期≤31}

Y1={年:1812≤年≤2012}

2)若条件① ~ ③中任何一个条件失效,则 NextDate 函数都会产生一个输出,指明相应的变量超出取值范围,比如 "month 的值不在 1-12 范围当中 " 。显然还存在着大量的 year 、 month 、 day 的无效组合, NextDate 函数将这些组合作统一的输出: " 无效输入日期 " 。其无效等价类为:

M2={月份:月份<1}

M3={月份:月份>12}

D2={日期:日期<1}

D3={日期:日期>31}

Y2={年:年<1812}

Y3={年:年>2012}

弱一般等价类测试用例

月份日期年预期输出

6 15 1912 1912年6月16日

强一般等价类测试用例同弱一般等价类测试用例

注:弱--有单缺陷假设;健壮--考虑了无效值

(一)弱健壮等价类测试

用例ID 月份日期年预期输出

WR1 6 15 1912 1912年6月16日

WR2 -1 15 1912 月份不在1~12中

WR3 13 15 1912 月份不在1~12中

WR4 6 -1 1912 日期不在1~31中

WR5 6 32 1912 日期不在1~31中

WR6 6 15 1811 年份不在1812~2012中

WR7 6 15 2013 年份不在1812~2012中

(二)强健壮等价类测试

用例ID 月份日期年预期输出 SR1 -1 15 1912 月份不在1~12中 SR2 6 -1 1912 日期不在1~31中 SR3 6 15 1811 年份不在1812~2012中 SR4 -1 -1 1912 两个无效一个有效 SR5 6 -1 1811 两个无效一个有效 SR6 -1 15 1811 两个无效一个有效 SR7 -1 -1 1811 三个无效

实验二。白盒测试

利用白盒测试之赋税管理系统练习基本路径测试方法。

准备: Junit-4.10

Eclipse(安装完Junit

eclipse新建工程,本次先以获取数组中的中位数为例进行介绍

然后在项目中引入Junite

对于冒泡排序进行一次测试:

当预期结果与执行结果相同时,测试显示正确

如果有错误预判,显示结果错误。

实验步骤二:设计程序,进行测试:

收入Income和供养人数nDependance来计算赋税金额的程序。程序输入是Income 和nDependance,程序输出是:总税金TaxTotal 应缴所得税计算公式:TaxSubtotal 收入(income) 税率计算公式

<10000 0.02*income

10000

>50000 1400+0.04*(income-50000)

免税部分:exemption = 人数*50;

实缴所得税: TaxTotal = TaxSubtotal – exemption

程序Java代码:

package https://www.sodocs.net/doc/204162347.html,.test;

import java.util.Scanner;

public class TexTotal { private double totals; private double income; private int p er;

public double gettotals(){ return totals; }

public void setShuru(double income,int per){ this.income=income; this.per=per ; }

public boolean getShuru() { try {

Scanner in = new Scanner(System.in);

System.out.println("请输入你的工资和家庭人数(以空格隔开):");

this.income = in.nextInt();

this.per = in.nextInt(); } catch (Exception e) {

System.out.println("请输入正确的工资数目!"); System.out.println("错误类型:" + e); return false; }

return true; }

public void Income(){

if(this.income<=0||this.per<=0){

System.out.println("请输入正确的家庭人数和收入!");

}else if(this.income < 10000){

this.totals=this.income*0.02-this.per*50; }else if(this.income>=10000 && this.i ncome<50000){

this.totals=200+(this.income-10000)*0.03-this.per*50;

}else{

this.totals=1400+(this.income-50000)*0.04-this.per*50;

}

if(this.totals<0){ this.totals=0; } }

public void Prints() {

System.out.println("需要缴纳的税为:"+this.totals); }

public static void main(String args[]){ TexTotal d=new TexTotal(); if(d.getShuru( )){ d.Income(); d.Prints(); } } }

}

if(this.totals<0){ this.totals=0; } }

public void Prints() {

System.out.println("需要缴纳的税为:"+this.totals); }

public static void main(String args[]){ TexTotal d=new TexTotal(); if(d.getShuru( )){ d.Income(); d.Prints(); } } }

测试代码:

package https://www.sodocs.net/doc/204162347.html,.test;

import static org.junit.Assert.*; import junit.framework.Assert; import org.junit.After; import org.junit.Before; import org.junit.Test; public class TexTotalTest { TexTotal s=new TexTotal();

@Before

public void setUp() throws Exception { }

@After

public void tearDown() throws Exception { } @Test

public void testGetShuru1() { s.setShuru(9994,5); s.Income();

Assert.assertEquals(0.0,s.gettotals()); } @Test

public void testGetShuru2() { s.setShuru(10023,3); s.Income();

Assert.assertEquals(50.69,s.gettotals()); } @Test

public void testGetShuru3() { s.setShuru(59232,4); s.Income();

Assert.assertEquals(1569.28,s.gettotals()); } @Test

public void testGetShuru4() { s.setShuru(500,0); s.Income();

Assert.assertEquals(0.0,s.gettotals()); } @Test

public void testGetShuru5() {

s.setShuru(-50000,4); s.Income();

Assert.assertEquals(0.0,s.gettotals()); } }

3 测试数据

测试均顺利通过。路径覆盖率为100%。

实验三、

1、运行Winrunner,新建一个测试项目。

点击【开始】按钮,选择【程序】-【WinRunner】-【WinRunner】,点击【New Test】。

2、开始录制。

录制前查看如下设置是否正确。

主菜单“Tools”—“General Options”—“General”选项卡设置如下,选择GUI Map 模式为“The GUI Map File per Test”

图3-1-1

点击工具栏上“录制”按钮,WinRunner进入录制状态。

3、启动需录制界面窗口。

使用WinRunner自带的演示程序,运行Flight 4B程序,进入“Login”窗口如图3-1-2。具体运行方法为:点击【开始】按钮,选择【程序】-【WinRunner】-【Sample Applications】,点击【Flight 4A】。

4、操作图形用户界面。

点击“Agent Name”输入框,输入“tester”;点击“Password”输入框,输入“mercury”;点击“OK”按钮。

图3-1-2

5、在图3-1-3中选择File—Open Order。

图3-1-3

在随后的窗口中,选中Order No(在checkBox中打上勾),输入数字3,按“OK”按钮。如图3-1-4。

图3-1-4

在图3-1-3中,选择File—Fax Order。在图3-1-4窗口中输入传真号码(数字)如:010*******。并将签名选项打上勾。

图3-1-5

在Agent Signature窗口中写下你的名字。用鼠标在白板上签名(画名)。仔细查看WinRunner如何在Context Sensitive录制模式下进行签名。

清除刚才所做的签名轨迹。按下“Clear Signature”按钮。将Fax Order 窗口移动到屏幕上不同的位置。(在更换AnoLog录制模式时,重新设置窗口位置)

按F2转换到AnoLog录制模式下。并在Agent Signature窗口中写下你的名字(画下你的名字)。仔细观察WinRunner如何在Anolog录制模式下进行签名录制。

再次按下F2转换回Context Sensitive录制模式,按下Send按钮,发送传真。窗口将提示发送成功。

6、停止录制。

按左Ctrl + F3键停止录制。查看WinRunner中记录的脚本。

7、保存脚本。

点击工具栏中“保存”按钮把脚本保存到指定目录。

8、回放脚本。

关闭“Flight 4A”程序。

选择工具栏上“From Top”按钮。观察脚本的运行。

插入同步点

操作前请先确保如下设置:

主菜单“Tools”—“General Options”—“Settings”选项卡设置如下,选择Timeout for checkpoints and CS statements为1000msec。

图3-1-6

1、运行WinRunner,并创建一个新的测试。

2、打开“飞机预定票系统”(Flight4A)。(PASSWORD:mercury)

3、录制一个脚本。在“飞机预定票系统”中创建一个新的定单。选择“File>New Order”。填写飞机与乘客信息。如图3-1-7:

图3-1-7

插入定单存到数据库。单击“Insert Order”按钮,当插入完成,“Insert Done”信息将出现在状态栏(在界面上方)。

再单击“Delete Order”按钮,并确认删除此订单。

停止录制。

保存脚本。(例如脚本名为Lesson)

4、关闭“Flight 4A”程序。回放刚才录制的脚本。

观察发生的情况,删除订单时出现错误提示。原因是回放脚本速度太快,插入还没有成功就要删除脚本。

插入同步点步骤

1、确认窗口处在Lesson测试脚本下。(由于间隔时间不够导致失败)

2、移动鼠标到所要插入同步点的脚本位置。将鼠标移动到“button_press ("Insert Order");”末尾,并回车新增行,如图3-1-8:

图3-1-8

3、插入同步设置。策略:当“Insert done”的提示在主窗口上方出现时,再让测试继续。选择菜单“Insert>Synchronization Point>For Object/window Bitmap”。

图3-1-9

4、将手的形状移到“飞机预定票主窗口”,捕获“insert done”的位图信息。如图3-1-10:

生物化学实验六——酵母RNA的提取与含量测定 山东大学实验报告

实验六——酵母RNA的提取与含量测定 13生物基地 201300140059 刘洋 2015-05-10 同组者:张奕 一、实验目的 1.掌握稀碱法提取酵母RNA的原理和方法。 2.掌握紫外分光光度计的使用。 3.了解和掌握紫外吸收法测定RNA浓度的原理。 二、实验原理 酵母核酸中RNA含量较多,DNA则少于2%。RNA可溶于碱性溶液,当碱被中和后,可加乙醇使其沉淀,由此即可得到RNA制品。但是用碱液提取的RNA有不同的降解。 核酸及其衍生物,核苷酸、核苷、嘌呤和嘧啶有吸收紫外光的性质,其吸收高峰在260nm 左右,且一定浓度范围内其浓度与吸光度成正比(浓度为5μg/ml—45μg/ml吸光度与浓度成正比),利用此性质,可用RNA标准液绘制RNA吸光标准曲线(标准曲线的斜率为0.022-0.024左右),测定样品RNA浓度。由于蛋白质在280nm的光吸收,对核酸测定有一定的干扰作用,最大吸收峰在280nm处,原因是蛋白质组成中常含有酪氨酸和色氨酸等芳香族氨基酸。所以如果有蛋白质的干扰必须得先测260nm处的吸光度,再测280nm处的吸光度,通过计算消除其对核酸的影响。 三、实验器材 干酵母粉 电子天平 量筒 容量瓶100ml 磁力搅拌器 试管 100℃水浴锅pH试纸(pH1-14)烧杯 离心机 722型分光光度计锥形瓶 离心管 四、实验试剂 0.2%氢氧化钠溶液95%乙醇 无水乙醚酸性乙醇(5ml浓Hcl加入到500ml95%乙醇中混匀)RNA标准蛋白溶液(200μg/ml)

1.RNA的提取 (1)称取4g干酵母粉,放入200ml锥形瓶中,加入40ml0.2%的氢氧化钠溶液混匀,在沸水浴中煮沸30min中并冷却; (2)冷却后,把液体倒入离心管中,在4000r/min的条件下离心15min; (3)离心后留上清液加入95%的酸性乙醇40ml,边加边搅拌,静置5min左右,再4000r/min的条件下离心5min; (4)离心后保留沉淀,用20ml 95%乙醇分两次洗涤沉淀,每次洗后在3000r/min的条件下离心5min; (5)离心后的沉淀再用无水乙醇10ml洗涤两次,每次用3000r/min离心5min; (6)离心结束后,收集沉淀与滤纸上,称重备用。 2.RNA样液的配制 (1)取粗RNA0.2-0.25g与烧杯中,加入5mlNaOH溶液,搅拌,溶解,调成糊状。 (2)再加入蒸馏水40ml,搅拌混匀,调PH至7.0后,放入100ml容量瓶中定容。 (3)再分3-4次分别取2ml定容后溶液于100ml容量瓶中继续定容待测,并且把容量瓶依次编号为A、B、C。 3.RNA标准曲线的绘制 (1)取洁净的试管,依次标号为1-10、A、B、C后,按照下表分别往各试管中加所需液体,并用磁力搅拌器混匀。 (2)混匀后以0号试管为参比液,在260nm下测各试管的吸光度A,并根据0-9试管的吸光值绘制出RNA标准曲线,并最终得出样品的浓度。 六、注意事项 1.离心机的使用,使用前一定要将两离心液(包括外壳)在天平上调平,对称放置在离 心机上,防止力臂不对称而损坏离心机。 2.紫外分光光度计的使用,要先预热10分钟,往比色皿中到液体只需到三分之二即可, 防止液体溢出腐蚀仪器,爱护仪器。

软件测试实验报告96812

实验一:软件测试方法 一:实验题目 采用白盒测试技术和黑盒测试技术对给出的案例进行测试 二:试验目的 本次实验的目的是采用软件测试中的白盒测试技术和黑盒测试技术对给出的案例进行测试用例设计。从而巩固所学的软件测试知识,对软件测试有更深层的理解。 三:实验设备 个人PC机(装有数据库和集成开发环境软件) 四:实验内容 1):为以下流程图所示的程序段设计一组测,分别满足语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖。并在各题下面写出测试用例、覆盖路径及结果等。 2):画出下列代码相应的程序流程图,并采用基本路径测试方法为以下程序段设计测试用例(需列出具体实验步骤)。 void Do (int X,int A,int B) { 1 if ( (A>1)&&(B==0) ) 2 X = X/A; 3 if ( (A==2)||(X>1) ) 4 X = X+1;

5 } 采用基本路经测试方法测试用例,并写出具体步骤 3):在某网站申请免费信箱时,要求用户必须输入用户名、密码及确认密码,对每一项输入条件的要求如下: 用户名:要求为4位以上,16位以下,使用英文字母、数字、“-”、“_”,并且首字符必须为字母或数字; 密码:要求为6~16位之间,只能使用英文字母、数字以及“-”、“_”,并且区分大小写。测试以上用例。 用所学的语言进行编码,然后进行等价类测试,当用户名和密码正确输入时提示注册成功;当错误输入时,显示不同的错误提示 通过分析测试用例以及最后得到的测试用例表分析所测程序的正确性,最后总结自己在这次试验中的收获并写出自己在这次试验中的心得体会。 五:实验步骤 1) (1)用语句覆盖方法进行测试 语句覆盖的基本思想是设计若干测试用例,运行被测程序,使程序中每个可执行语句至少被执行一次。由流程图可知该程序有四条不同的路径: P1:A-B-D P2:A-B-E P3:A-C-F P4:A-C-G 由于p1p2p4包含了所有可执行的语句,按照语句覆盖的测试用力设计原则,设计测试用例 无法检测出逻辑错误 (2)用判定覆盖方法进行测试 判定覆盖的基本思想是设计若干测试用例,运行被测程序,使得程序每个判断的取真和取假分支至少各执行一次,即判断条件真假均被满足。 条件覆盖测试用例 (3)用条件覆盖进行测试 条件覆盖的基本思想是设计若干测试用例,执行被测程序后要使每个判断中每个条件的可能取值至少满足一次。对于第一个判定条件A,可以分割如下: ?条件x>8:取真时为T1,取假时为F1;

山东大学操作系统实验报告4进程同步实验

山东大学操作系统实验报告4进程同步实验

计算机科学与技术学院实验报告 实验题目:实验四、进程同步实验学号: 日期:20120409 班级:计基地12 姓名: 实验目的: 加深对并发协作进程同步与互斥概念的理解,观察和体验并发进程同步与互斥 操作的效果,分析与研究经典进程同步与互斥问题的实际解决方案。了解 Linux 系统中 IPC 进程同步工具的用法,练习并发协作进程的同步与互斥操作的编程与调试技术。 实验内容: 抽烟者问题。假设一个系统中有三个抽烟者进程,每个抽烟者不断地卷烟并抽烟。抽烟者卷起并抽掉一颗烟需要有三种材料:烟草、纸和胶水。一个抽烟者有烟草,一个有纸,另一个有胶水。系统中还有两个供应者进程,它们无限地供应所有三种材料,但每次仅轮流提供三种材料中的两种。得到缺失的两种材料的抽烟者在卷起并抽掉一颗烟后会发信号通知供应者,让它继续提供另外的两种材料。这一过程重复进行。请用以上介绍的 IPC 同步机制编程,实现该问题要求的功能。 硬件环境: 处理器:Intel? Core?i3-2350M CPU @ 2.30GHz ×4 图形:Intel? Sandybridge Mobile x86/MMX/SSE2 内存:4G 操作系统:32位 磁盘:20.1 GB 软件环境: ubuntu13.04 实验步骤: (1)新建定义了producer和consumer共用的IPC函数原型和变量的ipc.h文件。

(2)新建ipc.c文件,编写producer和consumer 共用的IPC的具体相应函数。 (3)新建Producer文件,首先定义producer 的一些行为,利用系统调用,建立共享内存区域,设定其长度并获取共享内存的首地址。然后设定生产者互斥与同步的信号灯,并为他们设置相应的初值。当有生产者进程在运行而其他生产者请求时,相应的信号灯就会阻止他,当共享内存区域已满时,信号等也会提示生产者不能再往共享内存中放入内容。 (4)新建Consumer文件,定义consumer的一些行为,利用系统调用来创建共享内存区域,并设定他的长度并获取共享内存的首地址。然后设定消费者互斥与同步的信号灯,并为他们设置相应的初值。当有消费进程在运行而其他消费者请求时,相应的信号灯就会阻止它,当共享内存区域已空时,信号等也会提示生产者不能再从共享内存中取出相应的内容。 运行的消费者应该与相应的生产者对应起来,只有这样运行结果才会正确。

软件测试实验报告材料58877

标准实用 本科实验报告 课程名称:软件测试技术 实验项目:软件测试技术试验实验地点:实验楼211 专业班级:软件工程学号: 学生:戴超 指导教师:兰方鹏 2015年10月7 日

理工大学学生实验报告 学院名称计算机与软件学院专业班级软件工程实验成绩学生戴超学号实验日期2015.10. 课程名称软件测试实验题目实验一白盒测试方法 一、实验目的和要求 (1)熟练掌握白盒测试方法中的逻辑覆盖和路径覆盖方法。 (2)通过实验掌握逻辑覆盖测试的测试用例设计,掌握程序流图的绘制。 (3)运用所学理论,完成实验研究的基本训练过程。 二、实验容和原理 测试以下程序段 void dowork(int x,int y,int z) { (1)int k=0,j=0; (2)if((x>0)&&(z<10)) (3){ (4)k=x*y-1; (5)j=sqrt(k); (6)} (7)if((x==4)||(y>5)) (8)j=x*y+10; (9)j=j%3; (10)} 三、主要仪器设备 四、操作方法与实验步骤 说明:程序段中每行开头的数字(1-10)是对每条语句的编号。

A 画出程序的控制流图(用题中给出的语句编号表示)。 B 分别用语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖方法设计测试用例,并写出每个测试用例的执行路径(用题中给出的语句编号表示)。 C 编写完整的C 程序(含输入和输出),使用你所设计的测试用例运行上述程序段。完整填写相应的测试用例表(语句覆盖测试用例表、判定覆盖测试用例表、条件覆盖测试用例表、判定/条件覆盖测试用例表、条件组合覆盖测试用例表、路径覆盖测试用例表、基本路径测试用例表) 流程图为: 开始 开始 k=0,j=0 (x>0)&&(z<1) k=x*y-1 j=sqrt(k) (x==4)||(y>5) j=x*y+10 j=j%3 结束 1 2 5 7 8 9

山东大学信息安全实验报告

山东大学软件学院 信息安全导论课程实验报告 学号:201300301385 姓名:周强班级: 2013级八班 实验题目:缓冲区溢出实验 实验学时:日期: 实验目的: (1)了解缓冲区溢出的原理 (2)利用缓冲区溢出现象构造攻击场景 (3)进一步思考如何防范基于缓冲区溢出的攻击 硬件环境: 软件环境: WindowsXP操作系统 VS2008 实验步骤与内容: (1)了解缓冲区溢出的原理 缓冲区溢出简单来说就是计算机对接收的输入数据没有进行有效的检测(理情况下是程序检测数据长度并不允许输入超过缓冲区长度的字符),向缓冲区内填充数据时超过了缓冲区本身的容量,而导致数据溢出到被分配空间之外的内存空间,使得溢出的数据覆盖了其他内存空间的数据。 看一个代码实例,程序如下: void function(char *str) { char buffer[16]; strcpy(buffer,str); } 上面的strcpy()将直接把str中的内容copy到buffer中。这样只要str的长度大于16,就会造成buffer的溢出,使程序运行出错。

(2)利用缓冲区溢出现象构造攻击场景 首先打开Microsoft Visual C++,新建工程和cpp文件,复制实验指导书的代码进行编译连接: 单击运行按钮,然后第1次输入“zhouqianga”,第2次输入2个“ga”,即可看到输出“correct”。

按F10开始进行逐步调试: 当第一次执行gets()函数之前,内存情况如下图所示

在最新的版本中gets被认为是不安全的,gets从标准输入设备读字符串函数。可以无限读取,不会判断上限,以回车结束读取,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。现在都被要求改为get_s。来防止溢出。 如下图所示。 (3)学习例子程序2:数据被执行 在xp系统下,直接运行Exploit-1.1.exe,如下图所示:

软件测试实验报告

《软件测试技术》 ——实验报告 题目 _____实验一_ __ 指导教师薛曼玲 _ 实验日期 _11.4 专业 学生姓名 _ __ ____ 班级/学号 ____ 成绩 ________ ___ ____ _

一、实验目的 1.能熟练应用黑盒测试技术进行测试用例设计; 2.能对测试用例进行优化设计; 二、实验内容 题目一:电话号码问题 1.某城市电话号码由三部分组成。它们的名称和内容分别是: (1)地区码:空白或3位数字; (2)前缀:非'0'或'1'的3位数字; (3)后缀:4 位数字。 假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码。根据该程序的规格说明,作等价类的划分,并设计测试方案。 1.根据下面给出的规格说明,利用等价类划分的方法,给出足够的测试用例。 “一个程序读入三个整数。把此三个数值看成是一个三角形的三个边。这个

程序要打印出信息, 说明这个三角形是三边不等的、是等腰的、还是等边的。” 题目三:日期问题 1.用决策表测试法测试以下程序:该程序有三个输入变量month、day、year (month 、day和year均为整数值,并且满足:1≤month≤12和1≤day≤31),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上隔一天的日期。例如,输入为2004 年11月29日,则该程序的输出为2004年12月1日。 (1) 分析各种输入情况,列出为输入变量month 、day 、year 划分的有效等价类。 (2) 分析程序的规格说明,并结合以上等价类划分的情况,给出问题规定的可能采取的操作(即列出所有的动作桩)。 (3) 根据(1) 和(2) ,画出简化后的决策表。 2.划分有效等价类 1)month变量有效等价类 M1:{month=4,6,9,11}M2:{month=1,3,5,7,8,10} M3:{month=12}M4:{month=2} 2)day变量的有效等价类 D1:{1<= day <= 26}D2:{day=27} D3:{day=28} D4:{day=29} D5:{day=30} D6:{day=31} 3)year变量有效等价类 Y1:{year是闰年} Y2:{year不是闰年} 3.列出所有动作桩

山东大学-中间件实验报告

山东大学软件学院 中间件技术课程实验报告

onResize(); }, error : function(e) { alert('初始化数据错误!'); } }); }); 并从bootstrap上找一些已经写好的布局,作为参考。加入到网页的界面中。 一、数据库操作的封装 1、AutoCreateDB——自动创建数据库 (1)可以根据下列query的结果判断数据库是否存在: Object obj = dao.QueryOnly("SELECT COUNT(*) FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME=?",new Object[] { DATABASE }); 不存在则创建数据库,则执行executeCreate方法。 (2)AutoCreateDB自动创建数据库的表 遍历表,对于数据库中的每一个表,都执行“检测、若不存在则创建”操作,可以根据该query的结果判断数据库的表是否存在,不存在则创建数据库表,则执行executeCreate方法。 2、JdbcDao数据库相关操作 (1)在JdbcDao 中定义应用与数据库建立连接,其相关参数从 config.properties中获取: /**获取Connection连接*/ public Connection getConnection(){ Connection conn = null; System.out.println(JDBC_URL); System.out.println(USER_NAME); System.out.println(USER_PWD); try { conn = DriverManager.getConnection(JDBC_URL,USER_NAME,USER_PWD);

软件测试实验报告LoadRunner的使用

南昌大学软件学院 实验报告 实验名称 LoadRunner的使用 实验地点 实验日期 指导教师 学生班级 学生姓名 学生学号 提交日期 LoadRunner简介: LoadRunner 是一种适用于各种体系架构的自动负载测试工具,它能预测系统行为并优化系统性能。LoadRunner 的测试对象是整个企业的系统,它通过模拟实际用户的操作行为和实行实时性能监测,来帮助您更快的查找和发现问题。此外,LoadRunner 能支持广范的协议和技术,为您的特殊环境提供特殊的解决方案。LoadRunner是目前应用最为广泛的性能测试工具之一。 一、实验目的

1. 熟练LoadRunner的工具组成和工具原理。 2. 熟练使用LoadRunner进行Web系统测试和压力负载测试。 3. 掌握LoadRunner测试流程。 二、实验设备 PC机:清华同方电脑 操作系统:windows 7 实用工具:WPS Office,LoadRunner8.0工具,IE9 三、实验内容 (1)、熟悉LoadRunner的工具组成和工具原理 1.LoadRunner工具组成 虚拟用户脚本生成器:捕获最终用户业务流程和创建自动性能测试脚本,即我们在以后说的产生测试脚本; 压力产生器:通过运行虚拟用户产生实际的负载; 用户代理:协调不同负载机上虚拟用户,产生步调一致的虚拟用户;压力调度:根据用户对场景的设置,设置不同脚本的虚拟用户数量;监视系统:监控主要的性能计数器; 压力结果分析工具:本身不能代替分析人员,但是可以辅助测试结果的分析。 2.LoadRunner工具原理 代理(Proxy)是客户端和服务器端之间的中介人,LoadRunner 就是通过代理方式截获客户端和服务器之间交互的数据流。 ①虚拟用户脚本生成器通过代理方式接收客户端发送的数据包,

山东大学软件测试实验报告

实验一。黑盒测试 一、等价类划分 电话号码问题某城市电话号码由三部分组成。它们的名称和内容分别是: (1)地区码:空白或三位数字; (2)前缀:非'0'或'1'的三位数字; (3)后缀:4 位数字。 假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码。根据该程序的规格说明,作等价类的划分,并设计测试方案。 根据题目,分别将地区码、前缀、后缀进行分类,分析结果如下: 输入有效等价类编号无效等价类编号 地区码空白 1 包含其他字符 3 三位数字 2 少于三位 4 多于三位 5 前缀非0或 非1的三位数6 包含其他字符8 包含0的三位数9 包含1的三位数10 少于三位数11 多于三位数12 后缀四位数字7 包含其他字符13 少于四位数14 多于四位数15 根据上图的分析,可的测试用例 测试数据预期结果覆盖类地区码前缀后缀 空白555 4344 接受(有效)1、6、7 232545 4343 接受(有效)2、6、7 A23 322 4343 拒绝(无效) 3 21322 4343 拒绝(无效) 4 2323322 4343 拒绝(无效) 5 232 32A4343 拒绝(无效)8 232 208 4343 拒绝(无效)9 232 1114343 拒绝(无效)10

232 32 4343 拒绝(无效)11 232 322224343 拒绝(无效)12 232 322 4AS2 拒绝(无效)13 232 322 434拒绝(无效)14 232 322 434311拒绝(无效)15 三角形问题根据下面给出的规格说明,利用等价类划分的方法,给出足够的测试用例。一个程序读入三个整数。把此三个数值看成是一个三角形的三个边。这个程序要打印出信息,说明不是三角形、三角形是三边不等的、是等腰的、还是等边的。 分析题目中给出和隐含的对输入条件的要求: (1)整数(2)三个数(3)非零数(4)正数 (5)两边之和大于第三边(6)等腰(7)等边 如果 a 、 b 、 c 满足条件( 1 ) ~ ( 4 ),则输出下列四种情况之一: 1)如果不满足条件(5),则程序输出为 " 非三角形 " 。 2)如果三条边相等即满足条件(7),则程序输出为 " 等边三角形 " 。 3)如果只有两条边相等、即满足条件(6),则程序输出为 " 等腰三角形 " 。 4)如果三条边都不相等,则程序输出为 " 一般三角形 " 。 列出等价类表并编号

软件测试技术实验报告

《软件测试技术》 实验报告 河北工业大学计算机科学与软件学院 2017年9月

软件说明 电话号码问题 某城市电话号码由三部分组成。它们的名称和内容分别是:地区码:空白或三位数字; 前缀:非'0'或'1'的三位数字; 后缀:4位数字。 流程图 源代码 import java.awt.*; import java.awt.event.*; public class PhoneNumber extends Frame implements ActionListener{ /** * */ private static final long serialVersionUID = 1L;

private final String[] st = {"Name","Local","Prefix","Suffix"}; static int c_person=0; TextField t_name,t_local,t_prefix,t_suffix; RecordDialog d_record; MessageDialog d_message; person a[]=new person[100]; public PhoneNumber() { super("电话号码"); this.setSize(250,250); this.setLocation(300,240); Panel panel1 = new Panel(new GridLayout(4, 1)); for (int i = 0; i < st.length; i++) panel1.add(new Label(st[i],0)); Panel panel2 = new Panel(new GridLayout(4, 1)); t_name =new TextField("",20); t_local =new TextField(""); t_prefix=new TextField(""); t_suffix=new TextField(""); panel2.add(t_name); panel2.add(t_local); panel2.add(t_prefix); panel2.add(t_suffix); Panel panel3 = new Panel(new FlowLayout()); Button b_save = new Button("Save"); Button b_record= new Button("Record"); panel3.add(b_save); panel3.add(b_record); this.setLayout(new BorderLayout()); this.add("West", panel1); this.add("East", panel2); this.add("South", panel3); addWindowListener(new WindowCloser()); b_save.addActionListener(this); b_record.addActionListener(this); d_record=new RecordDialog(this); d_message=new MessageDialog(this); this.setVisible(true);

软件测试实验报告

桂林航天工业学院 课程设计报告 课程名称:软件测试 专业:软件技术 学号:201102520xxx 姓名: 指导教师:

实验一黑盒测试 一.实验目的 (1)能熟练应用黑盒测试技术进行测试用例设计; (2)对测试用例进行优化设计; 二.实验内容 1.三角形问题的边界值分析测试用例 在三角形问题描述中,除了要求边长是整数外,没有给出其它的限制条件。在此,我们将三角形每边边长的取范围值设值为[1, 100] 。在三角形问题中,有四种可能的输出:等边三角形、等腰三角形、一般三角形和非三角形。利用这些信息能够确定下列输出(值域)等价类。 R1 = { : 边为a,b,c的等边三角形} R2 = { : 边为a,b,c的等腰三角形} R3 = { : 边为a,b,c的一般三角形} R4 = { : 边为a,b,c不能组成三角形} 2. 找零钱最佳组合 假设商店货品价格(R) 都不大于100元(且为整数),若顾客付款(P)在100元内,现有一个程序能在每位顾客付款后给出找零钱的最佳组合(找给顾客货币张数最少)。假定此商店的货币面值只包括:50元(N50)、10元(N10)、5元(N5)、1元(N1) 四种。请结合等价类划分法和边界值分析法为上述程序设计出相应的测试用例。 三、程序代码

1.三角形问题程序。 #include int main(void){ int a,b,c;//定义三个整数a,b,c printf("请输入1到100的三个整数:"); scanf("%d%d%d",&a,&b,&c); if((a>=1&&a<=100)&&(b>=1&&b<=100)&&(b>=1&&b<=100))//判断取值范围 { if((a+b>c)&&(a+c>b)&&(b+c>a))//判断是否构成三角形 { if(a==b&&b==c) printf("等边三角形\n"); else if(a==b||a==c||b==c) printf("等腰三角形\n"); else printf("一般三角形\n"); } else printf("不能组成三角形\n"); } else

小鼠脾脏细胞原代培养及观察计数实验报告-山东大学

小鼠脾脏细胞原代培养及观察计数 【实验目的】 1.学习掌握细胞培养的基本原理以及具体方法,并对小鼠脾细胞进行原代培养; 2.掌握无菌操作的具体过程及无菌操作台的使用; 3.学习掌握染色法鉴别细胞的生死状态的原理及方法; 4.学习使用血球计数板对细胞总数及活细胞数进行计数; 【实验原理】 1.细胞培养 细胞培养指的是在无菌条件下,把动、植物细胞从组织中取出,在体外模拟体的生理环境,使离体的细胞在体外生长和繁殖,并且维持其结构和功能的一种培养技术。动物细胞培养可分为原代培养和传代培养。从供体获得组织细胞,在无菌条件下,用胰蛋白酶消化或机械分散等方法,将动物组织分散成单个细胞开始首次培养长出单层细胞的方法称为细胞的原代培养。当培养的动物细胞生长增殖达到一定密度,形成致密的单层细胞时,用胰蛋白酶将细胞消化分散成单细胞,从一个容器中以1:2或其他比例转移到另一个容器中扩大培养的方法,称为细胞的传代培养。传代培养的累计次数就是细胞的培养代数。 高等生物是由多细胞构成的整体,在整体条件下要研究单个细胞或某一群细胞在体的功能活动是十分困难的。但如果把活细胞拿到体外培养、增殖并进行观察和研究,则要方便和简单得多。被培养的动物细胞是非常好的实验对象和实验研究材料,对体外培养的活细胞进行研究可以帮助人类揭开生、老、病、死的规律,探索优生、抗衰老和防治各种疾病的途径和机制,也可以人为地诱导和改变细胞的遗传性状和特性,使其向有利于人类健康长寿的方向发展。因此动物细胞体外培养技术是研究细胞分子机制非常重要的实验手段,被广泛应用于医学、生物技术、基因工程等研究领域。 细胞培养的意义:具有其他生物技术无可比拟的优点;培养条件易改变和控制,便于单因子分析;便于人们直接对细胞结构、细胞生长及发育等过程的观察;在生物学的各个领域(如分子生物学、细胞生物学、遗传学、免疫学、肿瘤学及病毒学等)已被广泛应用。 细胞培养的局限性:在脱离机体复杂环境下,细胞培养条件与躯体环境有一定距离;观察到的结果有时难以正确反映机体的状况;细胞培养得到的产物少。 培养细胞的条件有水的质量、无菌环境,最适温度、渗透压、气体条件、最适PH、营养条件和培养基质等。 2.细胞死活鉴定 细胞生死状态的鉴别方法主要是化学染色法和荧光染色法。 活细胞和死亡细胞在生理技能和性质上主要存在一下差异: ①细胞膜通透性的差异:活细胞的细胞膜是一种选择性膜,对细胞起保护和屏障作用,只允许物质选择性地通过;而细胞死后,细胞膜受损,其通透性增加。基于此,发展出了以台盼蓝、伊红、苯胺黑、赤藓红、甲基蓝以及荧光染料碘化丙啶或溴化乙啶等为染料鉴别细胞生死状态的方法,上述染料能使死亡细胞着色,而活细胞不被着色。此外,应用植物质壁分离的性质也可鉴定植物细胞的生死状态。活细胞的原生质具有选择透过性,死细胞因其原生质的选择透过性已遭破坏,故与高渗透压溶液接触时不产生质壁分离。 ②代上的差异:活细胞中新代作用强,细胞的酶具有较强的活性和还原能力。基于此,发展处了以荧光素二乙酸酯(FDA)、荧光素二丙酸酯、荧光素二丁酸酯或荧光素二苯甲酰酯等酯化的荧光素鉴别细胞生死状态的方法,上述酯化的荧光素亲脂性提高,容易被细胞吸收进入,活细胞的酯酶具有较强的活性,可将酯化的荧光素分解而释放出能发荧光的荧光素,该物质不能自由透过活的细胞膜,积累在细胞,荧光显微镜下显示有明亮的绿色或黄绿色荧光;而死亡细胞的酯酶因失去活性,不能分解酯化的荧光素,荧光显微镜下显示不发光。另外,可用亚甲基蓝为染料鉴定酵母细胞的生死状态。亚甲基蓝是一无毒染料,氧化型为蓝色,还原型为无色。活细胞因具有较强的还原能力,能使亚甲蓝从蓝色的氧化型变成无色的还原型,故活的酵母细胞在用亚甲基蓝染色后显示无色;死亡酵母细胞或代缓慢的衰老酵母细胞,因无还原能力或还原能力极弱,使亚甲蓝仍处于氧化态,故呈现蓝色或淡蓝色。 3.血球计数板的使用

黑盒测试软件测试实验报告2

软件测试与质量课程实验报告实验2:黑盒测试法实验

缺席:扣10分实验报告雷同:扣10分实验结果填写不完整:扣1 – 10分其他情况:扣分<=5分总扣分不能大于10分 参考代码如下: (1)程序参考答案: #include double main() { int hours; double payment,wage; wage=20; cout<<"please input hours:"; cin>>hours; if(hours>=0&&hours<=168){ if (hours<40) payment=hours*wage ; else if ((hours>=40) && (hours<=50)) payment=40*wage+(hours-40)*1.5*wage; else if (hours>50) payment=40*wage+10*1.5*wage+(hours-50)*3*wage; cout<<"The final payment are:"< void main() { int year; int month,maxmonth=12; int day,maxday; printf("请输入年份:(1000~3000)"); scanf("%d",&year); if(year<1000 || year>3000) { printf("输入错误!请从新输入!\n");

最新软件测试白盒测试实验报告

7.使用白盒测试用例设计方法为下面的程序设计测试用例: ·程序要求:10个铅球中有一个假球(比其他铅球的重量要轻),用天平三次称出假球。 ·程序设计思路:第一次使用天平分别称5个球,判断轻的一边有假球;拿出轻的5个球,拿出其中4个称,两边分别放2个球;如果两边同重,则剩下的球为假球;若两边不同重,拿出轻的两个球称第三次,轻的为假球。 【源程序】 using System; using System.Collections.Generic; using System.Linq; using System.Text; using NUnit.Framework; namespace Test3_7 { [TestFixture] public class TestGetMinValue { [Test] public void AddTwoNumbers() { Random r = new Random(); int n; int[] a=new int[10]; n = r.Next(0, 9); for (int i = 0; i < a.Length; i++) { if (i == n) a[i] = 5; else a[i] = 10; } GetMin gm = new GetMin(); Assert.AreEqual(n,gm.getMinvalue(a)); }

} public class GetMin { public int getMinvalue(int[] m) { double m1 = 0, m2 = 0, m3 = 0, m4 = 0; for (int i = 0; i < 5; i++) { m1 = m1 + m[i]; } for (int i = 5; i < 10; i++) { m2 = m2 + m[i]; } if (m1 < m2) { m3 = m[1] + m[0]; m4 = m[3] + m[4]; if (m3 > m4) { if (m[3] > m[4]) return 4; else return 3; } else if (m3 < m4) { if (m[0] > m[1]) return 1; else return 0; } else return 2; } else { m3 = m[5] + m[6]; m4 = m[8] + m[9]; if (m3 < m4) { if (m[5] > m[6]) return 6;

山东大学计算机网络实验报告

计算机网络试验报告 学院:计算机科学与技术学院 班级:13计基地

目录 一、实验简述 (3) 二、实验内容 (3) 实验一:双队列模型 (3) 一、实验模型 (3) 二、具体实现 (3) 三、结果展示 (4) 实验二:802.11 无线竞争模型 (6) 一、实验模型 (6) 二、具体实现 (6) 三、实验结果 (6) 1.图表结果 (6) 2.数据结果 (8) 三、实验感想 (8) 一、双队列单服务器 (8) 二、802.11无限竞争模型 (8)

一、实验简述 实验一要求采用尽量公平的调度算法,实现一个服务器服务2个队列的功能。且满足以下条件:到达包数是泊松过程(Poisson process);服务时间是指数分布(exponentially distributed);只有一部服务器(server);队列长度无限制;可加入队列的包数为无限。 实验二基于802.11协议采用二进制指数回退算法,没有中央控制器的调度算法实现对五个站的调度机制。要求尽可能达到公平。 二、实验内容 实验一:双队列模型 一、实验模型 本次计算机网络实验主要是关于服务器处理包的过程模拟,其中一个重要的基础排队模型是M/M/1 排队模型。M/M/1排队模型是一种单一服务器(single-server)的排队模型,有以下主要特点: 1.到达人数是泊松过程(Poisson process) 2.服务时间是指数分布(exponentially distributed) 3.只有一台服务器(server) 4.队列长度无限制 5.可加入队列的人数为无限 M/M/1排队模型在任何状态下,只有两种事情可能发生: 1.有人加入队列。如果模型在状态k,它会以速率λ进入状态k + 1 2.有人离开队列。如果模型在状态k(k不等于0),它会以速率μ进入状 态k -1 二、具体实现 1.赤字轮询算法 赤字轮询算法引入赤字的概念, 即在较长时间统计平均意义上平衡各条流所获得的吞吐量。因为各流之间不同业务造成的数据包大小的差异以及各流内部数据包大小的不同都可能造成在一个轮询周期内各虚拟队列所发送的字节数具有较大偏差。 DRR算法为每个虚拟队列维护一个赤字字节数, 使得本次轮询未能发送的字节会在下一次甚至下几次轮询过程中得到补偿。具体过程如下:将有

软件测试实验报告

本科实验报告 课程名称:软件测试技术 实验项目:软件测试技术试验实验地点:实验楼211 专业班级:软件工程学号: 学生姓名:戴超 指导教师:兰方鹏 2015年10月7 日

太原理工大学学生实验报告

一、实验目的和要求 (1)熟练掌握白盒测试方法中的逻辑覆盖和路径覆盖方法。 (2)通过实验掌握逻辑覆盖测试的测试用例设计,掌握程序流图的绘制。 (3)运用所学理论,完成实验研究的基本训练过程。 二、实验内容和原理 测试以下程序段 void dowork(int x,int y,int z) { (1)int k=0,j=0; (2)if((x>0)&&(z<10)) (3){ (4)k=x*y-1; (5)j=sqrt(k); (6)} (7)if((x==4)||(y>5)) (8)j=x*y+10; (9)j=j%3; (10)} 三、主要仪器设备

一、实验目的和要求 (1)熟练掌握黑盒测试方法中的等价类测试方法和边界值测试方法。 (2)通过实验掌握如何应用黑盒测试用例。 (3)运用所学理论,完成实验研究的基本训练过程。 二、实验内容和原理 (1)用你熟悉的语言编写一个判断三角形问题的程序。 要求:读入代表三角形边长的三个整数,判断它们能否组成三角形。如果能够,则输出三角形是等边、等腰或者一般三角形的识别信息;如果不能构成三角形,则输出相应提示信息。 (2)使用等价类方法和边界值方法设计测试用例。 三、主要仪器设备 四、操作方法与实验步骤 (1)先用等价类和边界值方法设计测试用例,然后用百合法进行检验和补充。 (2)判断三角形问题的程序流程图和程序流图如图1和图2所示。用你熟悉的语言编写源程序。 (3)使用等价类方法设计测试用例,并填写表2 和表3。

山东大学嵌入式实验报告

嵌入式实验报告 班级:电信工X班姓名:XXX 学号:20120012XXXX 实验一、ARM汇编指令实验-简单数据搬移实验 实验目的: 熟悉实验开发环境,掌握简单ARM汇编的使用方法 实验内容 熟悉开发环境并使用LDR/STR,MOV等指令访问寄存器或存储单元; 使用ADS/SUB/LSL/LSR/AND/ORR等指令完成基本数学/逻辑运算。 实验要求 (1)按照前面叙述介绍的方法,在ADS下创建一个工程asmlabl,定义两个变量x,y和堆栈地址0x1000,将变量x的内容存到堆栈顶,然后计算x+y,并将和存到堆栈的下一个单元。通过AXD查看寄存器和memory和寄存器中数据的变化。 (2)在指令后面加上适当注释,说明指令功能。 (3)指出程序执行后各相关寄存器及存储器单元的具体内容。 程序代码截图如下: 程序运行结果截图:

由实验结果可知堆栈的第二个单元中存放了x+y的值6D 练习题 编写程序实现对一段数据的最大值和最小值搜索,最大值存在于max变量之中,最小值存在于min变量之中。提示:数据的定义采用伪指令:DCD来实现。 基本思路:利用R0做基地址,将R1,R2分别放入第一单元的内容,利用R3做循环计数,利用R4遍历读取第2至最后一个数据,如果R1的数据小于新读入的R4数据则将R4的内容存入R1,如果R2的内容大于R4的内容则将R4的内容存入R2,。遍历完成之后,R1将存放最大数据,R2将存放最小数据。 程序代码截图如下: 程序运行结果截图:

实验二ARM汇编指令实验2-字符串拷贝实验 实验目的 通过实验掌握使用LDB/STB,b等指令完成较为复杂的存储区访问和程序分支,学会使用条件码。 实验内容

山东大学微生物生理生化反应实验报告

山东大学实验报告2015年 12 月 7日 姓名黄新迪系年级2014级生科3班组别5 同组者高岩、国文洁、梁萧 科目微生物学实验题目微生物的生理生化反应 微生物的生理生化反应 一、【实验目的】 1. 证明不同微生物对各种有机大分子物质的水解能力不同,从而说明不同微生物有着不同的酶系统。 2.掌握进行微生物大分子物质水解试验的原理和方法。 3.了解糖发酵的原理和在肠细菌坚定中的重要作用。 4.掌握通过糖发酵鉴别不同微生物的方法。 5. 了解吲哚和甲基红试验的原理以及其在肠道细菌鉴定中的意义和方法。 二、【实验仪器与试剂】 菌种:枯草芽孢杆菌、大肠杆菌、铜绿假单胞菌、普通变形杆菌、产气肠杆菌 培养基:培养基:固体淀粉培养基、固体油脂培养基(大分子水解试验);葡萄糖发酵培养基、乳糖发酵培养基(内装有倒置的德汉氏小管)(糖发酵试验);蛋白胨水培养基(吲哚试验);葡萄 糖蛋白胨水培养基; 试剂:卢戈氏碘液、乙醚、吲哚试剂、甲基红试剂、蒸馏水、 仪器:酒精灯、接种针、培养皿、试管、试管架、烧杯、量筒、德汉氏小管 三、【实验原理】 1.在所有生活细胞中存在的全部生物化学反应称之为代谢,代谢过程主要是酶促反应过程,由于各种 微生物具有不同的酶系统,所以他们能利用的底物不同,或虽利用相同的底物但产生的代谢产物却不同,因此可以利用各种生理生化反应来鉴别不同的细菌,尤其是在肠杆菌科细菌的鉴定中,生理生化试验占有重要的地位。

2.淀粉的水解:由于微生物对淀粉这种大分子物质不能直接利用,必须靠产生的胞外酶将大分子物质 分解才能被微生物吸收利用.胞外酶主要为水解酶,通过加水裂解大的物质为较小的化合物,使其能被运输至细胞内.如淀粉酶水解淀粉为小分子的糊精,双糖和单糖;而淀粉遇碘液会产生蓝色,因此能分泌胞外淀粉酶的微生物,则能利用其周围的淀粉,在淀粉培养基上培养用碘处理其菌落周围不呈蓝色,而是无色透明圈,据此可分辨微生物能否产生淀粉酶。 3.油脂的水解:在油脂培养基上接种细菌,培养一段时间后观察菌苔的颜色,若出现红色斑点,则说 明此中菌可产生分解油脂的酶。 4. 糖发酵试验:糖发酵试验是常用的鉴别微生物的生化反应,在肠道细菌的鉴定上尤为重要.绝大多数 细菌都能利用糖类作为碳源和能源,但是它们在分解糖类物质的能力上有很大的差异.有些细菌能分解某种糖产生有机酸(如乳酸,醋酸,丙酸等)和气体(如氢气,甲烷,二氧化碳等);有些细菌只产酸不产气. 例如大肠杆菌能分解乳糖和葡萄糖产酸并产气。产酸后再加入溴甲酚指示剂后会使溶液呈黄色,且德汉氏小管中会收集到一部分气体。若细菌不能使糖产酸产气,则最后溶液为指示剂的紫色,且德汉氏小管中无气体。 5.IMVC实验主要用于快速鉴别大肠杆菌和产气肠杆菌。 (1)吲哚试验:是用来检测吲哚的产生,在蛋白胨培养基中,若细菌能产生色氨酸酶,则可将蛋白胨中的色氨酸分解为丙酮酸和吲哚,吲哚与对二甲基苯甲醛反应生成玫瑰色的玫瑰吲哚。但并 非所有的微生物都具有分解色氨酸产生吲哚的能力,所以吲哚实验可以作为一个生物化学检测 的指标。大肠杆菌吲哚反应阳性,产气肠杆菌为阴性。 (2)甲基红试验(MR):某些细菌在糖代谢过程中分解葡萄糖生成丙酮酸,后者进而被分解产生甲酸,乙酸和乳酸等多种有机酸,培养基就会变酸,使加入培养基中的甲基红指示剂由橙黄色转 变为红色,即甲基红反应。大肠杆菌为阳性,产气肠杆菌为阴性。 四、【实验步骤】

相关主题