软件测试技术实验报告——黑盒测试
功能性测试(黑盒测试)实验报告

有效等价类
号码
无效等价类
号码
输入条件
输入三个整数
整数
1
一边为非整数
a为非整数
12
b为非整数
13
c为非整数
14
两边为非整数
a, b为非整数
15
b, c为非整数
16
a, c为非整数
17
三边均为非整数
18
三个数
2
只给一边
只给a
19
只给b
20
只给c
21
只给两边
只给a,b
22
只给b,c
Test22
2
28
2004
1/3/2004
Test23
2
28
2005
2/3/2005
Test24
2
29
2004
2/3/2004
Test25~27
2
29
2005
不可能
Test28~29
2
30
2004
不可能
(3)根据设计的两套测试用例集进行测试。
以下是对步骤(2)中的Test1和Test6进行测试的结果。
表2-4 Test1测试用例的测试结果
测试用例ID
Test1
目的
测试程序能否识别正确输出日历上隔一天的日期
前提
1≤month≤12;1≤day≤31
输入
month=6;day=28;year=2001
预期结果
输出:30/6/2001
测试结果
输出:30/6/2001
测试日期
2011-11-15
备注
无
表2-5 Test6测试用例的测试结果
最新软件测试实验报告(测试计划+黑盒测试+白盒测试)

河北民族师范学院软件测试课程设计报告题目:最大公约数和最小公倍数姓名:班级:学号:指导老师:2014.10.9目录第1章软件测试的概念和设计要求 (3)1.1 测试目的 (3)1.2 测试选题 (3)1.3测试人员 (3)1.4测试方法 (3)1.5 测试资料及参考书 (3)1.6关于黑盒测试 (3)1.7 关于白盒测试 (4)1.8、黑盒测试与白盒测试的比较 (4)1.9 软件测试过程 (5)1.10数据整理 (6)第2章关于最大公约数和最小公倍数问题 (7)2.1求最大公约数和最小公倍数的黑盒测试 (7)2.1.1.问题描述: (7)2.1.2.程序代码(开发环境:Windowsxp xp、java): (7)2.1.3.测试方法 (7)2.1.4.测试用例设计 (8)2-2求最大公约数和最小公倍数的白盒测试 (10)2.2.1核心程序代码 (10)2.2.2程序流程图 (10)2.2.3 测试用例 (11)2.2.4程序控制流图 (12)设计心得与体会 (12)第1章软件测试的概念和设计要求1.1 测试目的1.练习和掌握软件测试管理的一般过程与步骤;2.掌握测试管理的人工过程和能够通过相关管理软件实现以下工作:a)配置软件资产信息、软件需求、软件模型和缺陷数据库;b)创建和管理多个测试组和用户;c)配置测试环境、编写详细测试计划、安排测试进度;d)设计测试脚本、测试用例;e)实施测试、执行测试和评估测试。
1.2 测试选题关于求最大公约数和最小公倍数问题的测试;1.3测试人员张@@:软件测试计划及相关资料的编写与收集。
李@@:对特定问题编写程序代码,并对其进行黑盒测试。
王@@:对特定问题编写程序代码,并对其进行白盒测试。
1.4测试方法对于选题,使用黑盒测试技术,测试内容包括等价类划分测试、边界值分析测试、决策表方法使用。
使用白盒测试技术,测试内容包括语句覆盖测试、分支覆盖测试、条件覆盖测试、分支/条件覆盖测试、条件组合覆盖测试及基本路径测试。
黑盒测试实验报告

黑盒测试实验报告一、实验内容计算日期是星期几已知公元1年1月1日是星期一。
请编写一个程序,只要输入年月日,就能自动回答当天是星期几。
要求:为测试该程序的方便,请将计算星期的算法尽量放入一个函数中,输入和输出检查可用其它函数来处理。
为简单起见,不考虑公元前的日期。
提示:(a)解答思路:计算输入日期与公元1年1月1日所相差的天数,具体如下:总天数=公元1年到输入日期上一年年底天数+输入年份的1月到上月月底天数+输入日期的天数(b)闰年满足条件(year%4==0)&&(year%100!=0)||(year%400==0)(1)分析各种输入情况,结合程序输出结果,进行等价类划分,并给出详细测试用例(2)根据(1)所划分的等价类,进行边界值分析,并给出具体的测试用例(3)决策表测试法①列出输入变量month、day、year的有效等价类;(条件桩)②分析程序的规格说明,给出问题规定的可能采取操作;(动作桩)③画出决策表(简化)④根据决策表,给出详细测试用例二、实验要求(1)根据题目要求编写测试用例(2)撰写实验报告(3)有关的实现程序请附到实验报告中(4)实验报告命名规则:学号后两位+姓名_黑盒实验三、实验报告(1)程序代码#include <iostream>using namespace std;void main(){int year, month, day;cout<<"请输入年份:"<<endl;cin>>year;cout<<"请输入月份:"<<endl;cin>>month;cout<<"请输入日期:"<<endl;cin>>day;int i, num=0,total, total1, total2;for(i=1; i<year; i++){if((i%4==0)&&(i%100!=0)||(i%400==0))num++;}total1 = 365*(year-num-1) + 366*num;if((year%4==0)&&(year%100!=0)||(year%400==0)) {switch(month){case 1:total2 = 0;break;case 2:total2 = 31;break;case 3:total2 = 60;break;case 4:total2 = 91;break;case 5:total2 = 121;break;case 6:total2 = 152;break;case 7:total2 = 182;break;case 8:total2 = 213;break;case 9:total2 = 244;break;case 10:total2 = 274;break;case 11:total2 = 305;break;case 12:total2 = 335;break;}}else{switch(month){case 1:total2 = 0;break;case 2:total2 = 31;break;case 3:total2 = 59;break;case 4:total2 = 90;break;case 5:total2 = 120;break;case 6:total2 = 151;break;case 7:total2 = 181;break;case 8:total2 = 212;break;case 9:total2 = 243;break;case 10:total2 = 273;break;case 11:total2 = 304;break;case 12:total2 = 334;break;}}total = total1 + total2 + day;int week;week = total % 7;switch(week){case 0:cout<<"今天是星期天"<<endl;break;case 1:cout<<"今天是星期一"<<endl;break;case 2:cout<<"今天是星期二"<<endl;break;case 3:cout<<"今天是星期三"<<endl;break;case 4:cout<<"今天是星期四"<<endl;break;case 5:cout<<"今天是星期五"<<endl;break;case 6;cout<<"今天是星期六"<<endl;break;}}测试用例原因:C1:year为闰年C2:month为1、3、5、7、8、10、12 C3:month为4、6、9、11C4:month为2C5:1<=day<=27C6:day=28C7:day=29C8:day=30C9:day=31结果:E1:输出今天是星期几。
软件测试实验报告(测试计划+黑盒测试+白盒测试)

break;
case 12:
if(day==32)
{
year++;
month=1;
day=1;
cout<<"明天是:"<<year<<'/'<<month<<'/'<<day<<endl;
}
break;
}
cout<<"明天是:"<<year<<'/'<<month<<'/'<<day<<endl;
对于选题,使用黑盒测试技术,测试内容包括等价类划分测试、边界值分析测试、决策表方法使用。
使用白盒测试技术,测试内容包括语句覆盖测试、分支覆盖测试、条件覆盖测试、分支/条件覆盖测试、条件组合覆盖测试及基本路径测试。
1.5
1.软件测试与维护基础教程,机械工业出版社,黄武
2.软件测试技术基础教程,电子工业出版社,顾海花
1/3/2001
19
2
29
2004
1/3/2004
20
2
29
2001
不可能
21~22
2
30
2004
不可能
2.2.1
if(n1<n2)//使得n1为较大的数,n2为较小的数
{
temp=n1;
n1=n2;
n2=temp;
}
p=n1*n2;//p为两个数的乘积
while(n2!=0)//求两个数的最大公约数
NextDate(year,month,day);
计算器黑盒测试实验报告

西实科技验报算告?实验名称计算器黑盒测试I实验地点____________________实验日期_______________指导教师__________________学生班级________________学生姓名__________________学生学号_________________提交日期软件教研室制一、测试目的设计测试用例、使用各种测试方法进行计算器的测试,并对测试结果进行分析二、测试内容1•软件说明:实现一个小的计算器程序,只需要完成加、减、乘、除运算,设计测试用例,并对测试结果进行分析,同时计算器运行稳定。
2、设计测试用例3、执行测试4、测试结果分析5、源代码三、测试步骤(一)、计算器界面2、设计测试用例(1)等价类测试:1、4个等价类测试用例的分析过程如下:2、对应测试的结果分析: 整型:1.加(55+50)2.减(78-24)3.乘(15*25)4.除(36/4)小数1.加(25.3+12.7)2.减(14.3-11.7)3.乘(25.6*12.8)4.除(50.2/20.7)负数6.加-20+-217.减(-15)-(-14)8.乘-12*-129.除-16/-5(其中算式写法错误导致正常运算错误)无效输入1.加(E1+t2):程序中无效数字无法正常输入,程序无法进行。
2.减(G4-k5)程序中无效数字无法正常输入,程序无法进行。
(同上)3.乘(I5*l6)程序中无效数字无法正常输入,程序无法进行。
(同上)4.除(Ff/se)程序中无效数字无法正常输入,程序无法进行。
(同上)简易计食器1、计算器4个标准等价类测试用例的分析过程如下:测试用例被加数加数预期输出Testi 0 10 正常运算Test2 1 10 正常运算Test3 40 10 正常运算Test4 55.5 10 正常运算Test5 -70 10 正常运算Test6 10 10 正常运算Test7 101 10 正常运算Test8 10 0 不能运算Test9 10 1 正常运算Test10 10 40 正常运算Testil 10 55.5 正常运算Test12 10 -78 正常运算Test13 10 100 正常运算2、对应测试与结果:测试结果运算均属正常,对应的部分的示图如下:Testi结果:Test2结果:Test3结果:Test4结果:Test5结果:Test6结果:减法:1、计算器4个标准等价类测试用例的分析过程如下:2、对应测试与结果:测试结果运算均属正常,对应的部分的示图如下:Testi结果:Test3结果:Test4结果:Test5结果:Test6结果:乘法1、计算器42、对应测试与结果:测试结果运算均属正常,对应的部分的示图如下:Testi结果:Test3结果:Test4结果:Test5结果:Test6结果:除法1、计算器4个标准等价类测试用例的分析过程如下:测试用例被除数除数预期输出Test2结果:Test3结果:Test8结果:附录:源代码CCalculateDlg::CCalculateDlg(CWnd* pParent /*=NULL*/):CDialog(CCalculateDlg::IDD, pParent){//{{AFX_DATA_INIT(CCalculateDlg)m_parameter = 0.0;//}}AFX_DATA_INIT// Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);CalculatePara = 0;CalculateResult = 0;Ispoint = false;Sumpoint = 0;} void CCalculateDlg::DoDataExchange(CDataExchange* pDX)CDialog::DoDataExchange(pDX);//{{AFX_DATA_MAP(CCalculateDlg)DDX_Text(pDX, IDC_EDIT, m_parameter);//}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(CCalculateDlg, CDialog)//{{AFX_MSG_MAP(CCalculateDlg)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_BN_CLICKED(IDC_clear, Onclear)ON_BN_CLICKED(IDC_calculate, Oncalculate)ON_BN_CLICKED(IDC_para1, Onpara1)ON_BN_CLICKED(IDC_para2, Onpara2)ON_BN_CLICKED(IDC_para3, Onpara3)ON_BN_CLICKED(IDC_para4, Onpara4)ON_BN_CLICKED(IDC_para5, Onpara5)ON_BN_CLICKED(IDC_para6, Onpara6)ON_BN_CLICKED(IDC_para7, Onpara7)ON_BN_CLICKED(IDC_para8, Onpara8)ON_BN_CLICKED(IDC_para9, Onpara9)ON_BN_CLICKED(IDC_para0, Onpara0)ON_BN_CLICKED(IDC_point, Onpoint)ON_BN_CLICKED(IDC_minus, Onminus)ON_BN_CLICKED(IDC_plus, Onplus)ON_BN_CLICKED(IDC_subtrack, Onsubtrack)ON_BN_CLICKED(IDC_multiply, Onmultiply)ON_BN_CLICKED(IDC_divide, Ondivide)//}}AFX_MSG_MAPEND_MESSAGE_MAP()///////////////////////////////////////////////////////////////////////////// // CCalculateDlg message handlersBOOL CCalculateDlg::OnInitDialog(){CDialog::OnInitDialog();// Add "About..." menu item to system menu.// IDM_ABOUTBOX must be in the system command range.ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX < 0xF000);CMenu* pSysMenu = GetSystemMenu(FALSE);if (pSysMenu != NULL){CString strAboutMenu;strAboutMenu.LoadString(IDS_ABOUTBOX);if (!strAboutMenu.IsEmpty()){pSysMenu->AppendMenu(MF_SEPARATOR);pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);}}// Set the icon for this dialog. The framework does this automatically// when the application's main window is not a dialogSetIcon(m_hIcon, TRUE); // Set big iconSetIcon(m_hIcon, FALSE); // Set small icon// TODO: Add extra initialization herereturn TRUE; // return TRUE unless you set the focus to a control}void CCalculateDlg::OnSysCommand(UINT nID, LPARAM lParam){if ((nID & 0xFFF0) == IDM_ABOUTBOX){CAboutDlg dlgAbout;dlgAbout.DoModal();}else{CDialog::OnSysCommand(nID, lParam);}}// If you add a minimize button to your dialog, you will need the code below // to draw the icon. For MFC applications using the document/view model, // this is automatically done for you by the framework.void CCalculateDlg::OnPaint(){if (IsIconic())CPaintDC dc(this); // device context for paintingSendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);// Center icon in client rectangleint cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;GetClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cyIcon + 1) / 2;// Draw the icon dc.DrawIcon(x, y, m_hIcon);}else{CDialog::OnPaint();}}// The system calls this to obtain the cursor to display while the user drags // the minimized window.HCURSOR CCalculateDlg::OnQueryDragIcon(){return (HCURSOR) m_hIcon;}void CCalculateDlg::Onclear(){UpdateData(true);m_parameter = 0;CalculatePara = 0;CalculateResult = 0;Ispoint = false;Sumpoint = 0;UpdateData(false);// TODO: Add your control notification handler code herevoid CCalculateDlg::Oncalculate(){UpdateData(true);CalculatePara = m_parameter;switch(CalculateExpre){case'+':CalculateResult += CalculatePara;m_parameter = CalculateResult;break;case,-':CalculateResult -= CalculatePara;m_parameter = CalculateResult;break;case,*,:CalculateResult *= CalculatePara;m_parameter = CalculateResult;break;case,/':if (CalculatePara){CalculateResult /= CalculatePara;m_parameter = CalculateResult;}else{m_parameter = 0;MessageBox(”除数不能为零!”);} break;}// TODO: Add your control notification handler code hereCalculatePara = 0;CalculateResult = 0;Ispoint = false;Sumpoint = 0;UpdateData(false);}void CCalculateDlg::Onpara1(){UpdateData(true);if (!Ispoint){CalculatePara = m_parameter*10 + 1;}else{CalculatePara = m_parameter + 1/pow(10,Sumpoint);Sumpoint++;}m_parameter = CalculatePara;UpdateData(false);// TODO: Add your control notification handler code here }void CCalculateDlg::Onpara2(){UpdateData(true);if (!Ispoint){CalculatePara = m_parameter*10 + 2;elseCalculatePara = m_parameter + 2/pow(10,Sumpoint);Sumpoint++;}m_parameter = CalculatePara;UpdateData(false);// TODO: Add your control notification handler code here }void CCalculateDlg::Onpara3(){UpdateData(true);if (!Ispoint){CalculatePara = m_parameter*10 + 3;}else{CalculatePara = m_parameter + 3/pow(10,Sumpoint);Sumpoint++;}m_parameter = CalculatePara;UpdateData(false);// TODO: Add your control notification handler code here }void CCalculateDlg::Onpara4(){UpdateData(true);if (!Ispoint){CalculatePara = m_parameter*10 + 4;}elseCalculatePara = m_parameter + 4/pow(10,Sumpoint);Sumpoint++;m_parameter = CalculatePara;UpdateData(false);// TODO: Add your control notification handler code here }void CCalculateDlg::Onpara5(){UpdateData(true);if (!Ispoint){CalculatePara = m_parameter*10 + 5;}else{CalculatePara = m_parameter + 5/pow(10,Sumpoint);Sumpoint++;}m_parameter = CalculatePara;UpdateData(false);// TODO: Add your control notification handler code here }void CCalculateDlg::Onpara6(){UpdateData(true);if (!Ispoint){CalculatePara = m_parameter*10 + 6;}else{CalculatePara = m_parameter + 6/pow(10,Sumpoint);Sumpoint++;m_parameter = CalculatePara;UpdateData(false);// TODO: Add your control notification handler code here }void CCalculateDlg::Onpara7(){UpdateData(true);if (!Ispoint){CalculatePara = m_parameter*10 + 7;}else{CalculatePara = m_parameter + 7/pow(10,Sumpoint);Sumpoint++;}m_parameter = CalculatePara;UpdateData(false);// TODO: Add your control notification handler code here }void CCalculateDlg::Onpara8(){UpdateData(true);if (!Ispoint){CalculatePara = m_parameter*10 + 8;}else{CalculatePara = m_parameter + 8/pow(10,Sumpoint);Sumpoint++;UpdateData(false);// TODO: Add your control notification handler code here }void CCalculateDlg::Onpara9(){UpdateData(true);if (!Ispoint){CalculatePara = m_parameter*10 + 9;}else{CalculatePara = m_parameter + 9/pow(10,Sumpoint);Sumpoint++;}m_parameter = CalculatePara;UpdateData(false);// TODO: Add your control notification handler code here }void CCalculateDlg::Onpara0(){UpdateData(true);if (!Ispoint){CalculatePara = m_parameter*10 + 0;}else{Sumpoint++;}m_parameter = CalculatePara;UpdateData(false);// TODO: Add your control notification handler code here void CCalculateDlg::Onpoint(){Ispoint = true;Sumpoint = 1;// TODO: Add your control notification handler code here}void CCalculateDlg::Onminus(){UpdateData(true);m_parameter = 0 - m_parameter;UpdateData(false);// TODO: Add your control notification handler code here }void CCalculateDlg::Onplus(){UpdateData(true);CalculateResult = m_parameter;CalculateExpre = '+';m_parameter = 0;Ispoint = false;Sumpoint = 0;UpdateData(false);// TODO: Add your control notification handler code here }void CCalculateDlg::Onsubtrack(){UpdateData(true);CalculateResult = m_parameter;CalculateExpre =m_parameter = 0;Ispoint = false;Sumpoint = 0;UpdateData(false);// TODO: Add your control notification handler code here }void CCalculateDlg::Onmultiply(){UpdateData(true);CalculateResult = m_parameter;CalculateExpre = '*';m_parameter = 0;Ispoint = false;Sumpoint = 0;UpdateData(false);// TODO: Add your control notification handler code here }void CCalculateDlg::Ondivide(){UpdateData(true);CalculateResult = m_parameter;CalculateExpre = '/';m_parameter = 0;Ispoint = false;UpdateData(false);// TODO: Add your control notification handler code here。
黑盒测试实验报告

一、实验目的1、能熟练应用功能性测试技术进行测试用例设计;2、对测试用例进行优化设计;二、实验内容题目11、题目内容描述三角形问题:输入三个整数a、b、c,分别作为三角形的三条边,通过程序判断着三条边是否能够成三角形。
如果能够成三角形,则判断三角形的类型(等边三角形、等腰三角形、一般三角形)。
要求输入三个整数a、b、c,必须满足以下条件:1<=a<=100;1<=b<=100;1<=c<=100。
2、测试用例的编写3、测试结果分析A、测试结果列表:B、测试结果截图:C、分析结果:有以上结果可知:用例7和用例16失败可得出该程序考虑不周全。
当输入数据为小数时,程序无法输出正确结果,另外,当输入数据不是一个数的时候,程序也无法输出正确结果。
4、实验思考三角形问题的关键在我看来是隐含的对输入条件的要求:1.正数 2.3个数 3.整数 4.非零数 5.两边之和大于第三边6. 等腰三角形7.等边三角形,对这些输入条件进行考虑并选择测试数据测试,运用等价类测试法,一个三角形问题就基本可以解决了。
通过这次软件测试实验,我学到了很多东西。
这次的实验内容是三角形问题,首先我根据需求规格说明书和所应具有的功能位依据,确定了有效等价类和无效等价类,从而画出了等价类表;然后我又根据等价类表写出了测试用例表。
接着在C++环境下编写出了相应的程序,再根据测试用例表,测试出相应的结果。
虽然是一个简单的测试,但是我认识到,测试效果的好坏很大程度上取决于是否采用好的测试过程,所以应该先精心设计好测试过程,然后再认真执行这些过程,而不是盲目的进行测试。
附录:程序代码主要函数(判断输入数据的函数)void CMyDlg::OnBTNJudge(){// TODO: Add your control notification handler code hereUpdateData();if(!(this->m_num1+this->m_num2<=this->m_num3 || this->m_num1+this->m_num3<=this->m_num2 || this->m_num2+this->m_num3<=this->m_num1) && (this->m_num1>=1 && this->m_num1<=100) && (this->m_num2>=1 && this->m_num2<=100)&&(this->m_num3>=1 && this->m_num3<=100)) {if (this->m_num1==this->m_num2 && this->m_num1==this->m_num3) MessageBox(" 等边三角形",NULL,MB_OK);else if (this->m_num1==this->m_num2 || this->m_num1==this->m_num3 || this->m_num2==this->m_num3)MessageBox(" 等腰三角形",NULL,MB_OK);elseMessageBox(" 一般三角形",NULL,MB_OK);}else{if(this->m_num1<1||this->m_num1>100||this->m_num2<1||this->m_num2>1 00||this->m_num3<1||this->m_num3>100)MessageBox(" 输入有误",NULL,MB_OK);elseMessageBox(" 不是三角形",NULL,MB_OK);}}。
软件工程{黑盒测试}实验报告
XXXXX公司软件工程{黑盒测试}实验报告项目名称:XXXXXxxxx中国 xx注意事项1、实验报告(测试报告)无xx中心盖章无效。
2、实验报告(测试报告)无测试人员、报告人员、审核人员签字无效。
3、实验报告(测试报告)涂改无效。
4、对实验报告(测试报告)若有异议,应于收到报告之日起一周内向XX中心提出,逾期不予受理。
5、摸底测试只在XX中心试验室登记,不出具实验报告(测试报告)。
6、委托测试仅对样品和所测项目负责。
测试项目及测试结论:主要测试仪器设备:审核人:XXXX 检测人:XXXX 报告人: XXXX1基本功能1.1测控功能1.2应用功能1.3通讯功能2性能要求2.1交流输入量量基本误差测试2.1.1电压基本误差2.1.2电流基本误差2.1.3有功功率基本误差2.1.4无功功率基本误差测试(相角90°)2.1.5频率基本误差测试2.1.6功率因素基本误差2.2交流工频输入量影响量2.3开关量采集2.4遥控2.5功耗2.6过载能力3安全性规格3.1绝缘电阻3.2绝缘强度3.3冲击4电源影响测试(175V~265V)5连续通电稳定度测试6电磁兼容6.1高频干扰(1M Hz)6.1.1串模6.1.2共模6.2静电6.2.1接触式6.2.2空气式6.3快速瞬变6.3.1电源回路6.3.2信号回路6.4浪涌6.4.1电源回路7环境试验7.1高温7.2低温7.3湿热8外观结构9机械性能(振动、跌落等)(待测)10可靠性(待测)11测试及缺陷分析11.1测试过程简要小结此次测试自XXX年X月X日开始,至X月X日结束,共占用测试人员工作量XX人时(其中测试计划、策略、大纲等文档编写时间XX小时);执行测例XX项(测例总共XX项,其他项目由于需要外部测试暂不进行测试);该项目由于多数板卡是借用原XXXX的,技术比较成熟,测试除了发现XX软件方面的问题外没有其他问题。
11.2测试收获在该项目的电流回路功耗测试时,将万用表接自标准源的电流输出端和装置的输入端对测试结果是有影响的,虽然只是普通的导线,但是存在压差,建议后续项目测试为了更加准确应在装置的电流输入端进行测试。
黑盒测试实验报告
课程名称:软件测试实验题目:黑盒测试报告专业:教育技术学班级:教技142学生姓名:安卓指导老师:郭小雪所属学期:2017-2018学年第二学期一、引言1.1目的测试报告为三角形问题和找零钱最佳组合问题项目的黑盒测试报告,目的在于总结测试阶段的测试以及分析测试结果。
1.2实验环境在Windows 2000(SP2) 或Windows XP 操作系统上,使用C++语言,VC6.0工具作为开发环境(IDE)1.3实验要求1.根据给出的程序分别使用等价类划分法、边界值分析法、判定表方法、因果图法、正交试验法、功能图法、错误推测法来设计相应的测试用例。
2.输入数据进行测试,填写测试用例。
二、实验原理黑盒测试原理:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。
软件的黑盒测试意味着测试要在软件的接口处进行。
这种方法是把测试对象看作一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。
因此黑盒测试又叫功能测试。
从理论上讲,黑盒测试只有采用穷举输入测试,把所有可能的输入都作为测试情况考虑,才能查出程序中所有的错误。
实际上测试情况有无穷多个,人们不仅要测试所有合法的输入,而且还要对那些不合法但可能的输入进行测试。
这样看来,完全测试是不可能的,所以我们要进行有针对性的测试,通过制定测试案例指导测试的实施,保证软件测试有组织、按步骤,以及有计划地进行。
黑盒测试行为必须能够加以量化,才能真正保证软件质量,而测试用例就是将测试行为具体量化的方法之一。
具体的黑盒测试用例设计方法包括等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法等。
等价类划分的办法是把程序的输入域划分成若干部分(子集),然后从每个部分中选取少数代表性数据作为测试用例。
每一类的代表性数据在测试中的作用等价于这一类中的其他值。
该方法是一种重要的,常用的黑盒测试用例设计方法。
白盒测试和黑盒测试实验报告
软件质量保证与测试实验指导计算机工程学院测试环境配置1.settingJunit(1)startEclipseSelectwindows-preferences-java-buildpath–classpathvariables(2)clicknew,thefigureofnewvariableentryisshown.(3)name JUNIT_LIBselectfile-选择JUnit插件所对应的JAR文件所在地,在Eclipse的安装目录的plugins目录中2.JUNIT的组成框架其中,junit.framework和junit.runner是两个核心包。
junit.framework负责整个测试对象的框架junit.runner负责测试驱动Junit的框架又可分为:A、被测试的对象。
B、对测试目标进行测试的方法与过程集合,可称为测试用例(TestCase)。
C、测试用例的集合,可容纳多个测试用例(TestCase),将其称作测试包(TestSuite)。
D、测试结果的描述与记录。
(TestResult)。
E、每一个测试方法所发生的与预期不一致状况的描述,称其测试失败元素(TestFailure)F、JUnitFramework中的出错异常(AssertionFailedError)。
JUnit框架是一个典型的Composite模式:TestSuite可以容纳任何派生自Test 的对象;当调用TestSuite对象的run()方法是,会遍历自己容纳的对象,逐个调用它们的run()方法。
3.JUnit中常用的接口和类Test接口——运行测试和收集测试结果Test接口使用了Composite设计模式,是单独测试用例(TestCase),聚合测试模式(TestSuite)及测试扩展(TestDecorator)的共同接口。
它的publicintcountTestCases()方法,它来统计这次测试有多少个TestCase,另外一个方法就是publicvoid run(TestResult),TestResult是实例接受测试结果,run方法执行本次测试。
软件测试实验报告(测试计划+黑盒测试+白盒测试)
河北民族师范学院软件测试课程设计报告题目:NextDate函数姓名:班级:学号:指导老师:2014.10.9目录第1章软件测试的概念和设计要求 (2)1.1 测试目的 (2)1.2 测试选题 (2)1.3测试人员 (2)1.4测试方法 (2)1.5 测试资料及参考书 (3)1.6关于黑盒测试 (3)1.7 关于白盒测试 (3)1.8、黑盒测试与白盒测试的比较 (4)1.9 软件测试过程 (4)1.10数据整理 (5)第2章NextDate函数问题 (5)2.1NextDate函数的黑盒测试 (5)2.1.1.问题描述: (5)2.1.2.程序代码(开发环境:Windowsxp xp、java): (5)2.1.3.测试方法 (5)2.1.4.测试用例设计 (8)2-2NextDate函数的白盒测试 (14)2.2.1核心程序代码 (14)2.2.2程序流程图 (14)2.2.3 测试用例 (15)2.2.4程序控制流图 (17)设计心得与体会 (17)第1章软件测试的概念和设计要求1.1 测试目的1.练习和掌握软件测试管理的一般过程与步骤;2.掌握测试管理的人工过程和能够通过相关管理软件实现以下工作:a)配置软件资产信息、软件需求、软件模型和缺陷数据库;b)创建和管理多个测试组和用户;c)配置测试环境、编写详细测试计划、安排测试进度;d)设计测试脚本、测试用例;e)实施测试、执行测试和评估测试。
1.2 测试选题NextDate函数;1.3测试人员张@@:软件测试计划及相关资料的编写与收集。
李@@:对特定问题编写程序代码,并对其进行黑盒测试。
王@@:对特定问题编写程序代码,并对其进行白盒测试。
1.4测试方法对于选题,使用黑盒测试技术,测试内容包括等价类划分测试、边界值分析测试、决策表方法使用。
使用白盒测试技术,测试内容包括语句覆盖测试、分支覆盖测试、条件覆盖测试、分支/条件覆盖测试、条件组合覆盖测试及基本路径测试。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
报告成绩 软件测试技术实验报告
实验名称:____黑盒测试实验_____ - 2 -
实验内容 1.使用WebScarab对JForum的登录模块进行测试 2.使用Selenium IDE对JForum的用户注册模块进行测试 3.通过Java编程对JForum的登录模块进行测试
过程记录(问题及解决方法)
一. 使用WebScarab对JForum的登录模块进行测试 1. 安装webscarab,以管理员身份运行cmd java -jar webscarab-installer-20070504-1631.jar 2. WebScarab有两种运行模式Lite和Full。本实验中需要使用Full模式运行。 从”Tool”中可以对模式进行切换,切换后需要重启程序;
3. 需要修改IE设置 - 3 - - 4 - - 5 - 将代理指向为 地址:localhost 端口:8008 4. 选择Proxy->Manual Edit,选中Intercept requests前的复选框,保持GET和POST方法被选中。这样,可以拦截所有浏览器发往外部的请求,除了所有图片和ping_session的请求。 - 6 -
5. 启动论坛系统,在IE地址栏输入本机的IP地址,本机IP为10.254.73.90 6. 对网页的请求会被WebScrab拦截
7. 单击“会员注册”按钮,IE浏览器发往服务器的请求将被拦截 - 7 - 8. 单击Accept changes按钮,直到进入注册页面 9. 填写注册信息 会员:wwk,电子邮件:wwk@qq.com 登录密码:123 - 8 -
10. 定位到forum.page的请求,其编号为70 - 9 -
11. 双击forum.page请求,打开70号会话 12. 右键单击70号会话,选择Use as fuzz template - 10 - 13. 选择Fuzzer选项卡,查看模板信息
14. 用记事本生userinfo.txt和usermail.txt 15. 导入userinfo.txt中记录的用户信息 - 11 -
16. 导入usermail.txt中记录的邮件信息 17. 依次为表单项中的元素进行参数化,即导入测试数据点击“Start”开始测试,请求数会减少 - 12 -
18. 使用测试脚本添加的用户进行登录测试 - 13 -
二. 使用Selenium IDE对JForum的用户注册模块进行测试 1.安装Firefox浏览器,选择经典安装 2.单击Alt键显示菜单,从“工具”菜单选择“附加组件”
3.选择“从文件安装附加组件”选项 4.在弹出文件选择窗口中选择selenium-ide-2.9.0.xpi插件,在浏览器将弹出的菜单中选择“安装”按钮,并选择立即重启 - 14 -
5.重启浏览器后,在“工具”菜单中选择“Selenium IDE”运行之 6.录制脚本 - 15 - 7.系统同时会记录用户所有输入,包括错误输入信息。在录制脚本后需要修改输入,包括删除错误输入内容 - 16 - - 17 - 8.选择成功注册用户后系统的提示信息“恭喜您!”在右键菜单中选择
“verifyTextcss=center >b恭喜您!”选项
9.此时会在IDE中出现校验命令 - 18 - 10.保存测试用例
11.运行测试用例 - 19 - 12.出现此界面,分析错误原因
错误原因:已存在该用户,没有返回注册页面 13.更改后重新运行 - 20 -
三. 通过Java编程对JForum的登录模块进行测试 1. 解压Maven压缩文件apache-maven-3.0.3-bin.zip到C盘根目录
2. 设置系统环境变量M2_HOME,变量值为Maven的解压路径- 21 -
C:\apache-maven-3.0.3 3. 将M2_HOME下的bin目录加入系统环境变量PATH中 4. 设置MAVEN_OPTS环境变量为:-Xms256m -Xmx512m,避免运行maven时出现内存溢出错误 - 22 -
5. 在命令行中输入mvn --version,正确安装后应该有类似如下输出结果 6. 创建c:\m2目录,并将repository.rar压缩文件解压到c:\m2目录下,生成本地仓库 7. 设置环境变量M2_REPO,指向本地仓库的路径 - 23 -
8. 修改安装目录下conf文件夹里的settings.xml文件,在图示位置增加一行本地仓库的配置代码。
9. 依次点击菜单栏中的File→New→Project,在弹出的对话框中,找到Maven一项,再将其展开 - 24 -
10. 通过Windows -> Preferences打开Eclipse系统选项,在弹出的对话框中展开左边的Maven项,选择Installation子项。点击Add…然后选择我们的Maven安装目录M2_HOME。添加完毕之后选择这一个外部的Maven。
11. 单击User Settings选项,确保用户设置和本地资源库设置正确 - 25 - 12. 在任意位置创建MySel20Proj目录,编写如下pom.xml文件
13. 在工程目录下运行:mvn clean install xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 MySel20Proj MySel20Proj 1.0 org.seleniumhq.selenium selenium-java 2.47.1 - 26 -
14. 运行结束后,Maven将在工程目录下的target文件夹中生成如下项目框架。该框架即为Selenium-WebDriver项目
15. 运行命令mvneclipse:eclipse - 27 - 16. 运行JAVA。File -> Import... ;General -> Existing Projects into Workspace ;选择“Browse” 定位到MySel20Proj目录;选择“ Finish”,完成项目导入
17. 创建src/main/java源文件夹,这是Maven的默认源文件夹,然后创建主测试文件 - 28 -
18. 通过FireFox浏览器的“查看元素”功能查看登录窗口的源代码 - 29 -
19. 登录前,页面顶部有“登录”连接,对于id为login 20. 登录后,页面顶部有“注销”连接,对于id为logout 21. 登录前,页面顶部左侧仅显示当前系统时间,登录后,页面顶部左侧显示用户最后一次登录时间 22. 创建一个新的Class,填写包名和类名 - 30 -
23. 创建测试主文件 packagecn.edu.cuit.cs.selenium.example; importorg.openqa.selenium.By; importorg.openqa.selenium.WebDriver; importorg.openqa.selenium.WebElement; importorg.openqa.selenium.firefox.FirefoxDriver; importorg.openqa.selenium.support.ui.ExpectedCondition; importorg.openqa.selenium.support.ui.WebDriverWait; public class TestLogin { public static String username = "TiejunWang"; public static String password = "justatest";
public static void main(String[] args) { // Create a new instance of the Firefox driver // Notice that the remainder of the code relies on the interface, // not the implementation. WebDriver driver = new FirefoxDriver(); // And now use this to visit JForum driver.get("http://localhost:8080/jforum/forums/list.page"); // Find the useranme and password elements by their names WebElementusernameElement = driver.findElement(By.name("username")); WebElementpasswordElement = driver.findElement(By.name("password"));