软件工程测试实验
软件工程实验3软件测试技术实验

淮海工学院计算机工程学院实验报告书课程名:《软件工程》题目:实验3软件测试技术实验学号:2014140093班级:Z计121姓名:薛慧君实验3软件测试技术实验实验目的和要求1、通过本实验,学生应掌握软件测试的基本方法和技术,特别是白盒测试和黑盒测试技术,以及软件测试对软件质量保证的重要意义。
2、掌握测试用例设计与测试分析方法等。
3、掌握测试过程:含单元测试、集成测试和验收测试。
实验环境硬件环境:配置性能较好的台式计算机每人1台,并具备网络环境软件环境:Micresoft Visio,VC++实验学时2学时,必做实验实验题目1. 选择主要模块:根据相应的程序流程图、盒图或者PAD图,画出相应的流图,计算其环形复杂度;2、设计驱动程序和存根程序,对该模块进行白盒测试;3、应用等价类划分、边界值分析法对该模块进行黑盒测试。
实验过程与实验结果(1)根据伪代码画出相应的程序流程图以及流图:siacbe fgh(2)计算其环形复杂度:经计算,所示流图的环形复杂度为5(3)白盒测试判定覆盖测试用例:①输入数据:A=5,B=5,C=3,D=6 (覆盖siacbfgh)预期结果:X=10,Y=9②A=-5,B=2,C=5,D=1(覆盖siadbegh)预期结果:X=0,Y=4条件组合覆盖测试用例:1.共有8种可能出现的条件组合,它们分别是:(1)A>0,B>0(2)A>0,B<0(3)A<0,B>0(4)A<0,B<0(5)C>A,D<B(6)C>A,D>B(7)C<A,D<B(8)C<A,D>B2.下面的4组测试数据可以使上面的8种条件组合每种至少出现一次:①输入数据:A=5,B=5,C=3,D=6(针对(1)和(5)两种组合,执行路径siacbegh)预期结果:X=5,Y=3②输入数据:A=5,B=5,C=3,D=6(针对(2)和(5)两种组合,执行路径siadbegh)预期结果:X=6,Y=1③输入数据:A=5,B=5,C=3,D=6(针对(3)和(7)两种组合,执行路径siadbegh)预期结果:X=-6,Y=-6④输入数据:A=5,B=5,C=3,D=6(针对(4)和(8)两种组合,执行路径siadbfgh)预期结果:X=0,Y=-1基本路径测试用例:①由于环形复杂度为5,因此共有5条独立路径,下面列出了5条独立路径:路径1: 1→2.1→4→5→6.1→7→9→10路径2: 1→2.1→2.2→4→5→6.1→7→9→10路径3: 1→2.1→2.2→4→5→6.1→6.2→7→9→10路径4: 1→2.1→2.2→3→5→6.1→6.2→7→9→10路径5: 1→2.1→2.2→3→5→6.1→6.2→8→9→10②设计可强制执行基本集合中每条路径的测试用例路径1的测试用例:输入数据:A=-5;B=1;C=-3;D=2预期结果:X=-6;Y=-5路径2的测试用例:输入数据:A=5;B=-4;C=6;D=2预期结果:X=9;Y=4路径3的测试用例:输入数据:A=5;B=-4;C=6;D=4预期结果:X=9;Y=2路径4的测试用例:输入数据:A=9;B=1;C=6;D=4预期结果:X=6;Y=2路径5的测试用例:输入数据:A=5;B=1;C=4;D=4预期结果:X=6;Y=8(4)黑盒测试等价类划分分析Test2程序,可以划分出如下等价类(1)有效输入的等价类①1~20个数字组成的字符串②1~20个最高位数字左邻是负号的字符串③1~20个大小写字母组合成的字符串④1~20个数字以及大小写字母组合成的字符串⑤1~20个特殊字符组合成的字符串,如:@#等⑥1~20个数字、大小写字符、特殊字符组合成的字符串(2)无效的输入等价类①输入的字符超过20②输入空格③最高位是空格的字符串④输入如ESC键、TAB键、SHIFT键⑤输入最高位是例如ESC键的字符串⑥最高位数字或字母右面由空格和数字组成⑦最高位是负号,右面由数字和空格组成⑧由汉字组成的字符串根据上面划分的等价类,可以设计出下述测试方案(1)1~20个数字组成的字符串,输出的是合法的正整数输入:“123456“预期的输出:123456(2)1~20个最高位数字左邻是负号的字符串,输出的是合法的负整数输入:“-23456“预期的输出:-23456(3)1~20个大小写字母组合成的字符串,输出的是合法的负整数输入:“sdfACDF“预期的输出:(4)1~20个数字以及大小写字母组合成的字符串,输出的是合法的正整数输入:“123adAGF“预期的输出:(5)1~20个特殊字符组合成的字符串,如:@#等,输出的是合法的正整数输入:“@#%^%“预期的输出:146349(6)1~20个数字、大小写字符、特殊字符组合成的字符串,输出的是合法的正整数输入:“13@#GB89“预期的输出:(7)输入的字符超过20,无效输入输入:“123fgbh567vfxxs890fcds2456789h“预期的输出:错误-----程序停止工作(8)输入空格输入:““预期的输出:没有输出(9)最高位是空格的字符串,输出的是合法的正整数输入:“ 122“预期的输出:122(10)输入如ESC键、TAB键、SHIFT键输入:“ESC键“预期的输出:没有输出(11)输入最高位是例如ESC键的字符串,输出的是合法的正整数输入:“ESC键123“预期的输出:123(12)最高位数字或字母右面由空格和数字组成,输出的是合法的正整数输入:“12s axd123“预期的输出:187(13)最高位是负号,右面由数字和空格组成输入:“ 12 fr 45“预期的输出:12(14)由汉字组成的字符串,输出负整数输入:“我们“预期的输出:-108595边界值分析(1)使输出等于0输入:“-“预期的输出:0(2)使输出等于空输入:““预期的输出:空(3)使输出等于负整数输入:“-2345“预期的输出:-2345(4)使输入等于正整数输入:“sdfACDF“预期的输出:72759122实验体会通过实验,我掌握了:(1)判定覆盖又叫分支覆盖,它的含义是,不仅每个语句必须至少执行一次,而且每个判断的每种可能的结果都应该至少执行一次,也就是每个判定的每个分支都至少执行一次。
软件工程(测试报告)

软件工程(测试报告)软件工程(测试报告)一、引言二、测试环境为了保证测试的完整性和准确性,我们针对软件工程项目搭建了以下测试环境:操作系统:Windows 10开发工具:Visual Studio编程语言:JavaScript测试框架:Jest版本控制工具:Git三、测试目标和策略我们的测试目标是确保软件工程项目的各个功能模块能够按照需求规格说明书中的要求正确运行,并且在各种异常情况下能够有良好的容错性和健壮性。
为了达到这个目标,我们采用了以下测试策略:1. 单元测试:对每个函数和方法进行单元测试,验证其输出结果是否符合预期。
2. 集成测试:将各个模块组装在一起进行集成测试,确保整个系统的各个模块协同工作正常。
3. 系统测试:对整个软件系统进行全面测试,包括功能测试、性能测试、安全性测试等,验证系统是否符合用户需求和规格说明。
四、测试结果和问题经过对软件工程项目的测试,我们得到了以下测试结果:1. 单元测试:各个函数和方法的单元测试全部通过,输出结果与预期一致。
2. 集成测试:系统的各个模块集成工作正常,协同运行良好。
3. 系统测试:系统经受住了各种功能、性能和安全性方面的考验,功能完善、性能稳定、安全可靠。
在测试过程中,我们也发现了一些问题和bug,包括但不限于:用户界面存在一些布局问题,需要进行调整和优化。
在大规模数据量下,系统的性能有所下降,需要进一步优化代码和算法。
五、测试和改进措施通过本次测试,我们对软件工程项目的质量和稳定性有了更深入的了解,并且发现了一些存在的问题。
基于这些发现,我们提出以下改进措施:1. 对于用户界面的布局问题,我们将进行进一步的设计和调整,确保用户体验良好。
2. 对于系统性能的下降,我们将优化代码和算法,提高系统处理大规模数据量的能力。
在今后的软件工程项目中,我们还将加强测试工作,从测试计划、测试用例编写、测试环境搭建等方面进行全面优化,以进一步提高软件工程项目的质量和可靠性。
软件工程实验文档(精选五篇)

软件工程实验文档(精选五篇)第一篇:软件工程实验文档《软件工程课程设计》一、提交实验报告文挡及要求序报告名目的要求号称以全面、系统的分析为主要方法,经济效益为核心,围绕影响项目的可行性各种因素,运用大量的数据资料论证拟建项目是否可行,给出项目可1分析行性分析报告。
2 3 项目需根据给定的的题目或自选题目进行需求分析工作;进行功能需求、非求分析功能需求分析得出需求规格说明书。
项目概建立初始结构图,对初始结构构图进行改进、优化得出概要设计说明要设计书。
项目详进行详细设计工作,得出详细设计说明书。
细设计项目编本次实习不需编码码 5进行黑盒、白盒测试试用例设计形成测试用例表;项目测进行黑盒测试,得出测试记录; 6试进行白盒测试,得出测试记录;形成测试报告。
7 项目管利用Project进行项目计划、进度、协调等管理材料。
理二、课程实践选题(课程设计题目)题目一:电子商务网站建设是一个集客户购物、下订单、订单处理、销售统计等功能于一体的系统。
通过浏览器,让客户可以查询货物,把货物放入购物车,创建账户/登陆账户,创建订单,通过信用卡支付等。
系统划分成了多个模块,松耦合的设计架构,允许可以和多个数据源,EIS(企业信息系统)进行交互。
功能如下: 1.用户注册/登陆/忘记密码/管理个人信息查询货物购物车管理提交订单信用卡支付查询历史购物记录 2.货物商店接受/处理订单消息手工接受/拒绝订单用E-mail来通知客户发订单给供应商销售统计 3.供应商接受订单派送货物给用户提供一个基于web的库存管理维护库存数据库题目二:外文图书采购系统 1.问题概述某图书馆外文采购有两个组--征订组和验收登记组。
分别承担书籍订购和进书验收任务。
为了减轻劳动强度和提高工作效率,打算采用计算机进行管理。
为此,系统分析员在进行了调查研究,描述出外文采购室现行系流程。
1)订书组从供书单价收到订书目录,根据各单位的需要选择出要订购的书目。
2)为了避免浪费,对于已进入过或已订过的图书和订单留底。
软件工程软件测试实验报告

软件工程软件测试实验报告一、实验目的本次实验旨在通过对软件测试的学习和实践,使学生能够掌握软件测试的基本概念、方法和技巧,能够运用测试工具进行软件测试,并能够编写测试用例和测试报告。
二、实验内容1. 软件测试基础知识的学习:包括软件测试的定义、分类、原则和流程等内容。
2. 软件测试工具的使用:包括JUnit、Selenium等常用的自动化测试工具。
3. 编写测试用例和执行测试:根据给定的需求文档编写相应的功能性和非功能性测试用例,并使用自动化测试工具进行执行。
4. 测试报告撰写:根据执行结果撰写详细的测试报告,包括问题描述、复现步骤、期望结果和实际结果等内容。
三、实验步骤1. 学习软件测试基础知识:了解软件测试的定义、分类、原则以及流程等内容,对于不同类型的软件进行分类,明确每个阶段所涉及到的任务和目标。
2. 使用JUnit进行单元测试:通过对Java程序中各个方法进行单元测试,检查其是否符合预期结果,并记录下每个方法所涉及到的输入输出数据以及预期结果。
3. 使用Selenium进行自动化测试:使用Selenium对Web应用进行自动化测试,模拟用户操作,检查页面元素是否正常显示,并记录下每个测试用例的执行结果。
4. 编写测试用例和执行测试:根据给定的需求文档编写相应的功能性和非功能性测试用例,并使用自动化测试工具进行执行。
在执行过程中,记录下每个测试用例的执行结果。
5. 测试报告撰写:根据执行结果撰写详细的测试报告,包括问题描述、复现步骤、期望结果和实际结果等内容。
对于出现的问题,需要给出相应的建议和解决方案。
四、实验心得通过本次实验,我深刻认识到了软件测试在软件开发中的重要性。
只有通过充分有效地进行软件测试,才能够保证软件质量和稳定性。
同时,在实践中我也学习到了很多关于软件测试的知识和技巧,例如如何编写高质量的测试用例、如何使用自动化测试工具来提高效率等等。
这些知识和技巧不仅对于我的学习有很大帮助,也为我今后从事软件开发工作打下了坚实基础。
软件工程实验(四个实验)

武汉轻工大学软件工程实验报告院系:数学和计算机学院班级:软件工程1504姓名:赵佳璐学号: 5实验一结构化分析实验1实验目的:通过此实验了解结构化分析的特点和步骤,以及结构化分析所采用的基本图形工具。
2.实验内容:假设你在一所职业高中工作,负责该校信息系统的建设和维护。
财务科长请你研究用学校拥有的pc机生成工资明细表和各种财务报表的可能性。
3.实验要求:1.问题定义:请在这个阶段描述你需要解决的问题。
包括用户面临的问题和预期的项目规模。
最后生成一份问题定义报告书。
2.可行性研究:在这个阶段产生处理工资事务的大致过程,画出高层逻辑模型,并且画出相应的数据流图,建立数据字典。
3.对此系统进行成本效益分析。
4.实验步骤:4.1问题定义报告书1.项目名称:工资支付2.问题描述:该校一直由会计人工计算工资并编制财务报表,随着学校规模扩大工作量也越来越大。
目前每个月都需要两名会计紧张工作半个月才能完成,不仅效率低而且成本高。
今后学校规模将进一步扩大,人工计算工资的成本还会进一步提高。
3.项目目标:1)研究开发费用较低的新工资支付系统的可能性。
4项目规模:1)开发成本应该不超过7.2万元5.初步设想:1)用学校自己的计算机系统生成工资明细表和财务报表6.可行性研究:为了更全面地研究工资支付项目的可能性,建议进行大约历时两周的可行性研究。
这个研究的成本不超过4000元。
4.2可行性研究:1. 处理工资事务的大致过程:1)每月月末教师把他们当月实际授课时数登记在课时表上,由各系汇总后交给财务科,职工把他们当月完成承包任务的情况登记在任务表上,汇总后交给财务科。
2)两名会计根据这些原始数据计算每名教职工的工资,编制工资表、工资明细表和财务报表。
然后,把记有每名教职工工资总额的工资表报送银行。
3)由银行把钱打到每名教职工的工资存折上,同时把工资明细表发给每名教职工。
2高层逻辑模型:3.数据流图:4.数据字典:1)名字:授课情况登记表别名:描述:记录每个教师的当月完成的课时及任务。
软件工程综合实验

软件工程综合实验软件工程综合实验引言软件工程综合实验是软件工程专业的一门综合性实验课程,旨在通过实际项目的开发和实施,让学生掌握软件工程的基本概念和方法,提高软件开发的实际能力。
该实验将涉及到软件需求分析、系统设计、编码实现、软件测试等方面的知识和技能。
实验目的本次实验的主要目的是让学生通过实践的方式,深入了解软件工程的各个阶段,包括需求分析、设计、开发和测试。
通过完成一个实际的软件项目,学生将学会如何分析和定义软件系统的需求、如何进行系统设计、如何实现代码,并掌握如何进行软件测试和调度。
实验内容本次实验的项目是一个在线购物系统。
学生需要完成该系统的需求分析、系统设计、编码实现和测试等工作。
具体内容包括以下几个方面:1. 需求分析:学生需要分析用户的需求,包括用户登录、商品浏览、购物车管理、订单管理等功能的需求。
还需考虑系统的性能、可用性和扩展性等方面的需求。
2. 系统设计:在需求分析的基础上,学生需要进行系统设计,包括数据库设计、界面设计、流程设计等。
设计时需要考虑系统的可靠性、安全性和可维护性等方面的要求。
3. 编码实现:学生需要根据系统设计的要求,使用合适的编程语言和开发工具,编写代码实现系统的各个功能。
需要遵循良好的编码规范和软件工程的开发流程。
4. 软件测试:完成编码实现后,学生需要进行系统测试,包括单元测试、集成测试和系统测试等。
通过测试,验证系统的各个功能是否符合需求,并发现并修复可能存在的问题。
实验要求1. 学生需要自行组队,并确定合适的团队成员。
团队成员之间需要进行有效的沟通和协作,共同完成实验任务。
2. 实验过程中,学生需要按照软件工程的基本原则和规范进行工作,包括需求分析、系统设计、编码实现和测试等。
3. 学生需要按时完成实验任务,并及时提交相应的实验报告和代码。
4. 实验过程中,学生可以参考相关的教材和资料,但不能抄袭他人的代码或实验报告。
软件工程综合实验是软件工程专业的一门重要实践课程,通过该实验,学生可以加深对软件工程的理解和实践能力。
软件工程黑盒测试实验报告

软件工程黑盒测试实验报告实验目的本次实验旨在对软件工程中的黑盒测试进行实践,通过对已知需求的软件系统进行测试,检验系统是否符合需求规格说明书中的要求,并发现潜在的缺陷。
实验环境本次实验使用了XXX软件工程公司开发的测试工具,测试对象为一个简单的计算器应用程序。
测试环境为Windows操作系统。
实验步骤1.需求分析:首先对计算器应用程序的功能进行分析,了解其需求规格说明书中的各项功能。
2.测试用例设计:根据需求规格说明书编写测试用例,包括正常输入、异常输入和边界条件等。
3.测试执行:使用测试工具对计算器应用程序进行黑盒测试,按照设计的测试用例逐一执行,并记录测试结果。
4.缺陷分析:对测试过程中发现的缺陷进行分析,包括未通过的测试用例和异常情况。
5.报告撰写:根据实验结果撰写测试报告,总结测试过程中的经验和不足,并提出改进建议。
测试结果经过测试,计算器应用程序在正常输入条件下功能正常,符合需求规格说明书中的要求。
但在异常输入和边界条件下存在一些问题,如除数为零时未作出相应提示。
测试报告中详细列出了测试用例和测试结果。
不足之处1.部分测试用例设计不够全面,存在遗漏的情况。
2.对于一些复杂的边界条件,测试覆盖率不够。
3.缺乏对性能和安全性的测试,仅仅着重在功能方面进行测试。
改进建议1.加强对边界条件的测试,提高测试覆盖率。
2.增加对性能和安全性的测试,对于复杂的功能和数据进行更深入的测试。
3.定期进行测试用例的回归测试,保证软件系统的稳定性。
总结通过本次黑盒测试实验,我对软件工程中的测试方法和流程有了更深入的了解,并掌握了测试用例设计和执行的基本技巧。
实践中发现了自身的不足之处,在今后的学习和工作中将不断改进和提升自己的测试能力。
以上为本次软件工程黑盒测试实验的报告内容,感谢您的阅读。
软件工程测试实验

淮海工学院计算机科学系实验报告书课程名:《软件工程》题目:软件测试实验班级:软件121学号:2012122722姓名:朱德坤软件测试验报告要求1目的与要求:1)系统学习和理解结构化软件工程实现阶段的基本概念、原理、技术和方法;2)掌握软件测试的基本技术和方法,特别是白盒测试与黑盒测试技术和方法;3)通过实验,要逐步提高白盒测试与黑盒测试技术的实际应用能力;4)熟悉C++编程环境下编写、调试单元代码的基本操作技术和方法;5)按照实验题目要求独立完成本次试验任务,严禁拷贝、抄袭他人设计成果;6)认真书写实验报告(要求给出完整的测试信息,如测试程序、测试用例,测试结果分析等),并于5月5日以前提交。
2 实验内容或题目1.选择结构化详细设计试验中自己设计的某一具有代表性控制结构模块(含有分支和循环结构),并用C语言实现(提前准备好,每种测试用例分别写在作业本上,上机时带上检查),而后分别完成下述2、3、4各题测试用例设计和测试结果分析;2.采用白盒测试技术中逻辑覆盖方法(至少包含语句覆盖、判定覆盖、条件覆盖、条件组合覆盖)设计测试用例,完成测试(测试屏幕截图)和测试结果分析;3.采用白盒控制结构测试技术的基本路径测试和边界测试方法设计相应测试用例,并完成测试和测试结果分析;4.采用黑盒测试技术中的等价类划分方法设计相应测试用例(可重选适合黑盒测试技术的模块),并完成程序测试和测试结果分析;3 实验步骤与源程序程序流程图:流图:程序://拥有超级用户superuser,密码zdk #include<iostream>#include<fstream>#include<string>#include<conio.h>#include<windows.h>using namespace std;int PD; //全局判断执行码void SetPos(int i,int j) //界面光标位置函数{COORD pos= {i-1,j-1};HANDLE Out=GetStdHandle(STD_OUTPUT_HANDLE);SetConsoleCursorPosition(Out,pos);}void jm() //绘制登陆界面{system("cls");SetPos(20,3);cout<<"**************************************";SetPos(20,4);cout<<"* 欢迎使用图书管馆图书管理系统*";SetPos(20,5);cout<<"**************************************";SetPos(30,7);cout<<"1.注册";SetPos(30,8);cout<<"2.登录";SetPos(30,9);cout<<"3.退出";SetPos(30,12);cout<<"请输入对应功能的序号:";}void Zjm() //绘制登录后界面{int i;if(PD==0){PD=1;system("cls");return;}SetPos(25,3);if(PD==1)cout<<"1.查看我的图书信息";else cout<<"1.管理其他用户";SetPos(25,4);cout<<"2.退出";SetPos(20,6);cout<<"请输入序号:";cin>>i;switch(i){case 1:cout<<"图书信息:....\n....\n....\n";system("pause");exit(0); //登陆后的执行区域,预留空间case 2:PD=1;system("cls");return;}}class user//定义用户类{public:user(string w1,string w2):user1(w1),password(w2) {}void save() //保存成员函数{ofstream ofile("C:\\Program Files\\data.txt",ios_base::app);ofile<<user1<<endl<<password<<endl;ofile.close();}private:string user1;string password;};void zhuce() //注册全局函数{char user1[25],user2[25]="superuser",password[25],password1[25];ofstream ofile;ofile.open("C:\\Program Files\\data.txt",ios_base::app);ofile.close();cout<<"请输入用户名:";cin>>user1;if(strcmp(user1,user2)==0){PD=0;cout<<"您不能注册管理员帐号";Sleep(1000);return;}ifstream ifile;ifile.open("C:\\Program Files\\data.txt",ios_base::in);while(!ifile.eof()){ifile.getline(user2,25,'\n');ifile.getline(password,25,'\n');if(strcmp(user1,user2)==0 ){cout<<"该用户已存在";Sleep(1000);ifile.close();PD=0;return;}}ifile.close();Set:cout<<"请输入密码:";cin>>password;cout<<"请再次输入密码:";cin>>password1;if(strcmp(password,password1)!=0){cout<<"您两次输入的密码不一致!"<<endl<<endl;system("pause");goto Set;}user use(user1,password);use.save();cout<<endl<<endl<<"保存成功!"<<endl;Sleep(1000);system("cls");PD=0;}void denglu() //登陆函数{char user[25],password[25];char user1[25]="superuser",password1[25]="zdk";cout<<"\t\t请输入用户名:";cin>>user;cout<<"\t\t请输入密码:";cin>>password;if(strcmp(user1,user)==0 && strcmp(password,password1)==0) {cout<<"\t\t\t登陆成功";Sleep(1000);PD=2;system("cls");cout<<"欢迎管理员登录!";return;}ifstream ifile;ifile.open("C:\\Program Files\\data.txt",ios_base::in);while(!ifile.eof()){ifile.getline(user1,25,'\n');ifile.getline(password1,25,'\n');if(strcmp(user1,user)==0 && strcmp(password1,password1)==0){cout<<"\t\t\t登陆成功";PD=1;ifile.close();system("cls");cout<<"欢迎用户"<<user<<"登录";return;}}cout<<"\t\t\t该用户没有注册或密码错误.\n";PD=0;ifile.close();Sleep(2000);system("cls");}void xuanze() //选择函数{int a;cin>>a;switch(a){case 1:zhuce();break;case 2:denglu();break;case 3:exit(0); //退出default:PD=0;cout<<"序号错误";Sleep(500);}}int main() //主函数{for(PD=1; PD;){jm();xuanze();Zjm();}system("cls");SetPos(25,2);cout<<"感谢使用本软件!";return 0;}4 测试数据与实验结果(可以抓图粘贴)测试:(1)语句覆盖路径1:1-2-3-5-7-9路径2:1-2-4-6-8(2)判定覆盖路径1:1-2-3-5-7-9路径2:1-2-3-5-2路径3:1-2-4-6-2路径4:1-2-4-6-8(3)条件覆盖路径1:1-2-3-5-7-9路径2:1-2-4-6-8路径3:1--2-3-5-2-4-6-8(4)条件组合覆盖路径1:1-2-3-5-7-9路径2:1-2-4-6-8路径3:1-2-3-5-2路径4:1-2-3-5-7-10路径5:1-2-4-6-25 结果分析与实验体会通过实验,要逐步提高白盒测试与黑盒测试技术的实际应用能力。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
淮海工学院计算机科学系实验报告书课程名:《软件工程》题目:软件测试实验班级:软件121学号:2012122722姓名:朱德坤软件测试验报告要求1目的与要求:1)系统学习和理解结构化软件工程实现阶段的基本概念、原理、技术和方法;2)掌握软件测试的基本技术和方法,特别是白盒测试与黑盒测试技术和方法;3)通过实验,要逐步提高白盒测试与黑盒测试技术的实际应用能力;4)熟悉C++编程环境下编写、调试单元代码的基本操作技术和方法;5)按照实验题目要求独立完成本次试验任务,严禁拷贝、抄袭他人设计成果;6)认真书写实验报告(要求给出完整的测试信息,如测试程序、测试用例,测试结果分析等),并于5月5日以前提交。
2 实验内容或题目1.选择结构化详细设计试验中自己设计的某一具有代表性控制结构模块(含有分支和循环结构),并用C语言实现(提前准备好,每种测试用例分别写在作业本上,上机时带上检查),而后分别完成下述2、3、4各题测试用例设计和测试结果分析;2.采用白盒测试技术中逻辑覆盖方法(至少包含语句覆盖、判定覆盖、条件覆盖、条件组合覆盖)设计测试用例,完成测试(测试屏幕截图)和测试结果分析;3.采用白盒控制结构测试技术的基本路径测试和边界测试方法设计相应测试用例,并完成测试和测试结果分析;4.采用黑盒测试技术中的等价类划分方法设计相应测试用例(可重选适合黑盒测试技术的模块),并完成程序测试和测试结果分析;3 实验步骤与源程序程序流程图:流图:程序://拥有超级用户superuser,密码zdk#include<iostream>#include<fstream>#include<string>#include<conio.h>#include<windows.h>using namespace std;int PD; //全局判断执行码void SetPos(int i,int j) //界面光标位置函数{COORD pos= {i-1,j-1};HANDLE Out=GetStdHandle(STD_OUTPUT_HANDLE);}void jm() //绘制登陆界面{system("cls");SetPos(20,3);cout<<"**************************************";SetPos(20,4);cout<<"* 欢迎使用图书管馆图书管理系统 *";SetPos(20,5);cout<<"**************************************";SetPos(30,7);cout<<"1.注册";SetPos(30,8);cout<<"2.登录";SetPos(30,9);cout<<"3.退出";SetPos(30,12);cout<<"请输入对应功能的序号:";}void Zjm() //绘制登录后界面 {int i;if(PD==0){PD=1;system("cls");return;}SetPos(25,3);if(PD==1)cout<<"1.查看我的图书信息";else cout<<"1.管理其他用户";SetPos(25,4);cout<<"2.退出";SetPos(20,6);cout<<"请输入序号:";cin>>i;switch(i){case 1:cout<<"图书信息:....\n....\n....\n";system("pause");exit(0); //登陆后的执行区域,预留空间case 2:PD=1;system("cls");}}class user//定义用户类{public:user(string w1,string w2):user1(w1),password(w2) {}void save() //保存成员函数{ofstream ofile("C:\\Program Files\\data.txt",ios_base::app);ofile<<user1<<endl<<password<<endl;ofile.close();}private:string user1;string password;};void zhuce() //注册全局函数{char user1[25],user2[25]="superuser",password[25],password1[25];ofstream ofile;ofile.open("C:\\Program Files\\data.txt",ios_base::app);ofile.close();cout<<"请输入用户名:";cin>>user1;if(strcmp(user1,user2)==0){PD=0;cout<<"您不能注册管理员帐号";Sleep(1000);return;}ifstream ifile;ifile.open("C:\\Program Files\\data.txt",ios_base::in);while(!ifile.eof()){ifile.getline(user2,25,'\n');ifile.getline(password,25,'\n');if(strcmp(user1,user2)==0 ){cout<<"该用户已存在";Sleep(1000);ifile.close();PD=0;return;}ifile.close();Set:cout<<"请输入密码:";cin>>password;cout<<"请再次输入密码:";cin>>password1;if(strcmp(password,password1)!=0){cout<<"您两次输入的密码不一致!"<<endl<<endl;system("pause");goto Set;}user use(user1,password);use.save();cout<<endl<<endl<<"保存成功!"<<endl;Sleep(1000);system("cls");PD=0;}void denglu() //登陆函数{char user[25],password[25];char user1[25]="superuser",password1[25]="zdk";cout<<"\t\t请输入用户名:";cin>>user;cout<<"\t\t请输入密码:";cin>>password;if(strcmp(user1,user)==0 && strcmp(password,password1)==0){cout<<"\t\t\t登陆成功";Sleep(1000);PD=2;system("cls");cout<<"欢迎管理员登录!";return;}ifstream ifile;ifile.open("C:\\Program Files\\data.txt",ios_base::in);while(!ifile.eof()){ifile.getline(user1,25,'\n');ifile.getline(password1,25,'\n');if(strcmp(user1,user)==0 && strcmp(password1,password1)==0) {cout<<"\t\t\t登陆成功";ifile.close();system("cls");cout<<"欢迎用户"<<user<<"登录";return;}}cout<<"\t\t\t该用户没有注册或密码错误.\n";PD=0;ifile.close();Sleep(2000);system("cls");}void xuanze() //选择函数{int a;cin>>a;switch(a){case 1:zhuce();break;case 2:denglu();break;case 3:exit(0); //退出default:PD=0;cout<<"序号错误";Sleep(500);}}int main() //主函数{for(PD=1; PD;){jm();xuanze();Zjm();}system("cls");SetPos(25,2);cout<<"感谢使用本软件!";return 0;}4 测试数据与实验结果(可以抓图粘贴)测试:(1)语句覆盖路径1:1-2-3-5-7-9路径2:1-2-4-6-8(2)判定覆盖路径1:1-2-3-5-7-9路径2:1-2-3-5-2路径3:1-2-4-6-2路径4:1-2-4-6-8(3)条件覆盖路径1:1-2-3-5-7-9路径2:1-2-4-6-8路径3:1--2-3-5-2-4-6-8(4)条件组合覆盖路径1:1-2-3-5-7-9路径2:1-2-4-6-8路径3:1-2-3-5-2路径4:1-2-3-5-7-10路径5:1-2-4-6-25 结果分析与实验体会通过实验,要逐步提高白盒测试与黑盒测试技术的实际应用能力。