软件工程测试实验
软件工程实验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 结果分析与实验体会通过实验,要逐步提高白盒测试与黑盒测试技术的实际应用能力。
软件工程实验(四个实验)
软件工程实验(四个实验)————————————————————————————————作者:————————————————————————————————日期:ﻩ武汉轻工大学软件工程实验报告院系:数学和计算机学院班级:软件工程1504姓名:赵佳璐学号:1508100065实验一结构化分析实验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)两名会计根据这些原始数据计算每名教职工的工资,编制工资表、工资明细表和财务报表。
软件工程实验报告
实验一:基于UML的用例模型试验实验目的:1、掌握使用visio绘制用例模型2、掌握Ration Rose绘制用例模型的方法实验内容:1、使用vise绘制用例模型2、使用Ration Rose绘制用例模型的方法实验步骤:1、使用Visio绘制用例模型(1)启动Visio中的UML模型绘制开始时需要新建一个文件存放用例模型,首先选择“开始” 一“程序” -Microsoft office visio 2003选项进入Visio启动页面,在“类别”选项区域中才、选择“软件”项:然后在“模板”选项区域中选择UML模型图,即可打开制作UML模型的全部对彖图集,Vise提供了关于制作UML模型所需要的全部图表,支持开发人员进行面向对彖的分析和设计工作。
(2)保存UML模型通过选择菜单File…Save选项或者单机工具栏的Save按钮,来保存系统模型,保存的文件类型是-VSdo(3)新建立用例图(4)建立用例中的角色(5)建立用例(6)建立角色与用例、用例与角色之间的联系(7)建立活动图2、使用Rational Rose绘制用例模型(1)Rational Rose 的启动:选择"开始"---"程序” ---Rational Software---Rational Rose Enterprise Edetion选项,弹出对话框。
这个对话框用来设置本次启动的初始动作,分为New (新建模型)Existing (打开现有模型)和Recent (最近打开模型)三个标签。
(2)新建用例图在Browser窗I I内的树形列表中选中UseCase包并右击,在弹出的快捷菜单中选择New一UseCase Diagram选项。
此时出现New Diagram用例图名称并允许修改,将NewDiagrain更名为“医疗器材管理系统用例图”双击Biowgram窗I I内树形列表中的“医疗器材管理系统用例图”,在Diagram窗I I中出现“Use CaseDiagiain: Use CaseView/医疗器材管理系统用例图”,可以在该窗1 1中绘制用例图。
软件工程实验——软件需求分析
(4)提高了解决问题的能力:在实验过程中,我遇到了一些问题和困难,通过思考和探索,我学会了如何解决这些问题。通过不断解决问题和总结经验,我提高了自己的解决问题的能力。
注意事项:
(1)调研和需求分析是关键。在实验初期,需要深入相关单位进行调研,了解计算机销售业务的流程和需求,与用户进行交流,了解用户对系统的期望和需求。同时,需要收集并整理相关的资料,对需进行进一步的分析和整理。
(2)数据流图和数据字典是进行需求分析的重要工具。在绘制数据流图时,需要分清系统的边界和内部结构,将系统划分为多个子系统或模块。在定义数据字典时,需要对每个条目进行详细的描述和定义,确保数据的准确性和完整性。
(3)细心、耐心和责任心是必备的素质:软件需求分析是一项复杂而繁琐的工作,需要细心、耐心和责任心。在绘制数据流图、定义数据字典、绘制类图和描述用例时,需要仔细思考和分析,不能出现错误或遗漏。同时还需要对工作负责到底,及时解决问题和总结经验。
(4)良好的沟通和协作能力是成功的保障:软件需求分析是一项团队合作的工作,需要与团队成员和其他相关人员密切合作和沟通。良好的沟通和协作能力能够提高工作效率和质量,同时也能避免出现偏差和错误。在沟通过程中要清晰明确地表达自己的想法和建议,同时也要尊重他人的意见和建议。
(2)数据流图和数据字典定义不够准确。数据流图和数据字典是进行需求分析的重要工具,如果定义不够准确,可能会影响后续的系统设计和开发。因此,在定义数据流图和数据字典时,需要仔细考虑每个条目的准确性和完整性,确保数据的准确性和完整性。
(3)软件需求规格说明(SRS)撰写不够规范。SRS是实验的最后一步,如果撰写不够规范,可能会影响其他人对系统的理解。因此,在撰写SRS时,需要遵循一定的规范和标准,确保SRS的清晰度和可读性。
软件工程实验1-软件测试
软件工程实验1-软件测试软件工程实验 1 软件测试在当今数字化的时代,软件已经成为我们生活和工作中不可或缺的一部分。
从智能手机上的各种应用程序,到企业内部复杂的业务系统,软件的质量和稳定性直接影响着用户的体验和业务的顺利进行。
而软件测试作为确保软件质量的关键环节,其重要性不言而喻。
在本次软件工程实验 1 中,我们深入探讨了软件测试的相关知识和实践。
软件测试,简单来说,就是对开发完成的软件进行检查和验证,以发现其中可能存在的缺陷和问题。
它并不仅仅是在软件完成后进行的一项工作,而是贯穿于整个软件开发的生命周期。
从需求分析阶段开始,测试人员就需要参与其中,对需求的可测试性进行评估,并制定相应的测试策略。
在软件测试中,有多种不同的测试类型。
其中,最常见的包括功能测试、性能测试、兼容性测试、安全测试等。
功能测试是软件测试的基础,它主要检查软件的各项功能是否能够按照预期正常工作。
测试人员会根据软件的需求规格说明书,设计一系列的测试用例,对软件的各种功能进行逐一验证。
比如,对于一个在线购物网站,功能测试会包括用户注册登录、商品浏览、下单购买、支付结算等功能的测试。
性能测试则关注软件在不同负载条件下的响应时间、吞吐量、资源利用率等性能指标。
通过性能测试,可以发现软件在处理大量数据或高并发请求时是否存在性能瓶颈,从而提前进行优化和改进。
例如,对于一个电商平台,在双十一等购物高峰期,能否承受巨大的访问量,保证系统的稳定运行,就是性能测试需要关注的重点。
兼容性测试主要考虑软件在不同的操作系统、浏览器、硬件设备等环境下的兼容性。
由于用户使用的设备和环境千差万别,如果软件不能在各种常见的环境下正常运行,就会给用户带来极大的不便。
比如,一款手机应用程序需要在不同品牌和型号的手机上,以及不同版本的操作系统上都能正常安装和使用。
安全测试则是为了发现软件中可能存在的安全漏洞,如数据泄露、权限控制不当、SQL 注入等。
随着网络安全威胁日益严峻,安全测试已经成为软件测试中不可或缺的一部分。
软件工程实验报告
软件工程实验报告摘要:本报告通过对软件工程实验的实施和分析,总结了在软件工程领域中的实际应用,包括需求分析、系统设计、编码与测试、项目管理等方面的实践经验。
具体内容包括实验目的、实验步骤、实验结果以及对实验结果的分析和总结。
通过本次实验,我们对软件工程的理论知识进行了实际操作,并深入体验了软件开发中的流程和方法。
实验结果的分析表明,在正确的方法指导下,软件工程的实践可以有效提高软件质量和开发效率。
第一部分:引言在现代社会中,软件已经成为各个行业中不可或缺的一部分。
然而,由于软件的复杂性和开发的技术挑战,开发高质量软件变得越来越困难。
为了满足用户需求并确保软件质量,软件工程的概念和方法应运而生。
软件工程是对工程的原则和方法运用于软件开发的一种应用。
通过对软件工程的学习和实践,可以提高软件开发的效率和质量。
本实验旨在通过实际操作,深入理解和应用软件工程的方法和流程。
第二部分:实验目的本次实验的目的是通过实际操作,了解软件工程的实际应用,并掌握软件工程在需求分析、系统设计、编码与测试、项目管理等方面的方法和技巧。
实验内容包括以下方面:1. 需求分析:了解用户需求,进行需求分析和规格说明。
2. 系统设计:根据需求分析结果,进行系统设计,包括系统结构、模块划分等。
3. 编码与测试:基于系统设计,进行软件编码,同时进行单元测试和集成测试,确保软件的正确性和稳定性。
4. 项目管理:对软件项目进行管理,包括进度控制、团队协作、风险管理等。
第三部分:实验步骤1. 需求分析:与用户进行沟通,了解需求,并编写需求规格说明书。
2. 系统设计:根据需求规格说明书,进行系统结构设计和模块划分。
3. 编码与测试:根据系统设计,进行软件编码,并编写单元测试和集成测试用例。
4. 项目管理:创建项目计划,包括进度安排、成本控制等,并组织团队进行工作。
第四部分:实验结果通过本次实验,我们成功完成了需求分析、系统设计、编码与测试以及项目管理的任务。
软件工程实验报告
软件工程实验报告学号:姓名:专业:年月实验一:白盒测试一、实验目的巩固白盒测试知识,对于给定的待测程序,能熟练应用基本控制流覆盖方法设计测试用例;能够执行白盒测试过程,并撰写白盒测试分析报告。
二、实验内容白盒测试又称为结构测试、逻辑驱动测试或基于程序的测试,一般用来分析程序的内部结构。
测试规划基于产品内部结构进行测试,检查内部操作是否按规定执行,软件各个部分功能是否得到充分使用,则这种测试方法称为白盒测试方法。
白盒测试将被测程序看做一个打开的盒子,测试者能够看到被测源程序,可以分析被测程序的内部结构,此时测试的焦点集中在根据其内部结构设计测试用例。
白盒测试要求是对某些程序的结构特性做到一定程度的覆盖,或者说这种测试是“基于覆盖率的测试”。
测试内容包括语句覆盖测试、分支覆盖测试、条件覆盖测试、分支/条件覆盖测试、条件组合覆盖测试和基本路径测试。
三、程序代码要求:实现对不少于10个随机输入的数的冒泡排序算法。
#include<iostream>using namespace std;int main(){double a[100];int N;int i = 0, j = 0;cin >> N;//排序元素的个数for (i = 0; i <= N; i++){cin >> a[i];}for (i = 0; i < N-1 ; i++) {for (j = 0; j < N - 1 - i; j++){if (a[j] > a[j + 1]) {int tmp;tmp = a[j];a[j] = a[j + 1];a[j + 1] = tmp;}}}for (i = 0; i < N; i++){cout << a[i] <<" ";}cout << endl;return 0;}四、程序流程图五、测试内容(1)语句覆盖测试测试结果:①②测试结果分析:输入元素时需要输入的元素个数大于最初输入的元素个数。
软件工程软件测试实验报告
软件工程软件测试实验报告一、引言软件测试是软件工程中的一个重要环节。
通过对软件系统进行各种测试,可以帮助发现潜在的问题、提高软件质量、降低风险。
本实验报告旨在探讨软件工程中的软件测试,包括测试的概念、测试的流程、常用的测试方法和工具等内容。
二、测试的概念测试是指对软件进行各种活动以评估软件质量和发现软件中潜在错误的过程。
测试可以通过运行软件的各种功能、验证软件是否满足需求、检查软件的性能和可用性等方式进行。
三、测试的流程软件测试一般包括测试计划、测试设计、测试执行、测试评估和测试管理五个阶段。
其中,测试计划是制定测试目标和测试策略的过程,测试设计是根据测试目标和测试策略确定具体的测试用例,测试执行是运行测试用例并记录测试结果,测试评估是分析测试结果并评估软件质量,测试管理是对测试过程进行跟踪和控制的过程。
3.1 测试计划在测试计划阶段,需要明确测试的目标、范围、策略和资源等。
测试计划应包括以下内容: - 测试目标:明确测试的目标,例如发现软件中的错误、验证软件是否满足需求等。
- 测试范围:确定需要进行测试的功能或模块。
- 测试策略:确定测试方法、测试工具和测试环境等。
- 测试资源:包括测试人员、测试设备和测试数据等。
- 测试计划进度:确定测试计划的时间安排。
3.2 测试设计在测试设计阶段,需要基于测试目标和测试策略确定具体的测试用例。
测试用例应覆盖软件的各种功能和场景,以发现可能存在的错误。
测试用例应包括输入数据、预期输出和执行步骤等。
黑盒测试是一种基于软件的功能和接口的测试方法,不考虑内部实现细节。
在黑盒测试中,可以采用等价类划分、边界值分析、错误推测等技术来设计测试用例。
3.2.2 白盒测试白盒测试是一种基于软件内部结构的测试方法,需要了解软件的内部实现。
在白盒测试中,可以通过代码覆盖率、路径覆盖等技术来设计测试用例。
3.3 测试执行在测试执行阶段,需要按照测试用例执行测试,并记录测试结果。
软件工程实践实验报告要求(5篇范例)
软件工程实践实验报告要求(5篇范例)第一篇:软件工程实践实验报告要求实验一---姓名---学号加封皮软件工程实践编写实验报告的要求试验报告一利用Visio绘制DFD图根据所选系统,利用Visio绘制系统相关的DFD图。
实验学时:8学时实验要求:试验报告二 UML工具的使用学习Rational Rose、StarUML等工具,针对所选系统进行模型分析和设计,完成用例图、类图、序列图、状态图、活动图等图形的绘制。
实验学时:16学时实验要求:1.下载、安装Rational Rose、StarUML等工具软件,学习软件使用;1.可以采用结构化方法对所选系统进行需求分析;2.采用Visio绘制系传统的DFD图; 3.提交绘制的图形和实验报告。
2.绘制用例图、类图、序列图、状态图、活动图等图形针对所选系统进行模型分析和设计。
试验报告三软件源代码管理实验学时:4学时实验要求:学习基于系统工具进行源代码版本管理实验要求:1.下载、安装SVN、Trac等工具软件,学习软件使用;2.对所选系统的源代码进行版本管理。
试验报告四使用软件测试工具学习Webstress、NUnit等各类软件测试工具,及Test Manager 测试管理工具,针对所选系统实现情况,编写测试计划、设计测试用例,掌握软件自动测试方法。
实验学时:4学时实验要求:1.下载、安装Webstress、NUnit和Test Manager等工具软件,学习软件使用;2.运用NUnit工具软件进行白盒测试用例设计及自动测试;3.运用Webstress工具软件进行性能自动测试;4.了解T est Manager测试管理工具的使用方法。
第二篇:软件工程实验报告实验三:面向对象的系统对象模型实验一、实验目的1: 熟悉面向对象分析的基本方法,加深理解对象模型、动态模型和功能模型的意义和作2: 学习使用rose工具进行面向对象分析的方法3:理解对象模型、动态模型和功能模型在rose系统中的表示4:学习用例图、类图、关联图、顺序图、状态图的绘制方法,了解其各自的作用二、实验环境1.硬件环境P4以上的个人计算机环境,要求内存不少于128MB,硬盘不小于20G.。
软件工程实验
软件工程实验1. 引言软件工程实验是一种通过实践来深入理解和应用软件工程原理和技术的活动。
通过实验,学生可以在真实的软件开发环境中,学习和掌握软件工程的各种工具和方法,培养解决实际软件开发问题的能力。
本文将介绍软件工程实验的主要内容和步骤。
2. 实验内容软件工程实验通常包括以下内容:2.1 需求分析在这个阶段,学生需要学习并掌握需求分析的基本方法和技巧。
通过对实际项目的需求进行分析和整理,学生可以理解需求分析在软件工程中的重要性,并且能够运用所学的知识来解决实际问题。
2.2 设计在设计阶段,学生需要学习系统设计的基本原理和方法。
通过对系统进行设计,学生可以了解和应用软件设计的各种技术和工具,在实践中理解和掌握设计方法的优缺点,并且能够根据需求和设计目标进行合理的设计。
2.3 编码和测试在编码和测试阶段,学生需要学习并掌握软件编码和测试的基本技术。
通过实际的编码和测试过程,学生可以了解和掌握软件开发的规范和流程,提高代码的质量和可靠性,并能够运用所学的技术来解决实际的软件开发问题。
2.4 项目管理在项目管理阶段,学生需要学习并掌握软件项目管理的基本理论和方法。
通过实际的项目管理活动,学生可以了解和掌握软件项目管理的流程和技术,培养解决软件开发中的团队合作和沟通问题的能力,并能够根据实际需求和资源情况进行合理的项目管理。
3. 实验步骤软件工程实验通常包括以下步骤:3.1 实验准备在这一步骤中,学生需要准备实验所需的软件和硬件环境。
根据实验的要求,学生需要安装和配置相应的开发工具和环境,并确保实验所需的硬件设备齐全和正常运行。
3.2 实验设计在这一步骤中,学生需要设计实验的具体内容和实施计划。
根据实验的目标和要求,学生需要确定实验的主要内容和步骤,并制定实验的时间安排和实施计划。
3.3 实验实施在这一步骤中,学生需要按照实验设计的要求,进行实验的实施。
学生需要运用所学的知识和技能,按照实验的步骤和要求,完成实验所需的任务和操作,并记录实验过程和结果。
软件工程白盒测试实验
实验三软件测试(白盒测试)预习报告一、实验目的1掌握覆盖率的计算方法。
2 掌握语句覆盖,分支覆盖(判定覆盖),条件覆盖,条件。
分支组合覆盖,条件组合覆盖,组合覆盖的含义及区别。
3 掌握使用各种覆盖法,设计测试用例的方法。
二、实验原理1测试覆盖率测试覆盖率是指用于确定测试所执行到的覆盖项的百分比。
其中的覆盖项是指作为测试基础的一个入口或属性,比如语句、分支、条件等。
测试覆盖率可以表示出测试的充分性,在测试分析报告中可以作为量化指标的依据,测试覆盖率越高效果越好。
但覆盖率不是目标,只是一种手段。
测试覆盖率包括功能点覆盖率和结构覆盖率。
功能点覆盖率大致用于表示软件已经实现的功能与软件需要实现的功能之间的比例关系。
结构覆盖率包括语句覆盖率、分支覆盖率、循环覆盖率、路径覆盖率等。
(1) 语句覆盖率语句覆盖率=至少被执行一次的语句数量可执行的语句总数*10%(2) 判定覆盖率判定覆盖率=判定结果被评价的次数/判定结果的总数*100%(3) 条件覆盖率条件覆盖率=条件操作数值至少被评价一次的数量/条件操作数值的总数*10% (4) 定/条件覆盖率判定/条件覆盖率=条件操作数值或判定结果值至少被评价一次的数量/ (条件操作数值总数+判定结果总数) *100%(5) 条件组合覆盖率条件组合覆盖率涤件操作数值至少被评价一次的数量/条件操作数值的所有组合总数*100%2 逻辑覆盖根据覆盖目标的不同和覆盖源程序语句的详尽程度,逻辑覆盖又可分为语句覆盖、判定覆盖、条件覆盖、条件判定组合覆盖、多条件覆盖(条件组合覆盖)、组合覆盖。
(1) 语句覆盖语句覆盖是选择足够多的测试数据,使得程序中的每个可执行语句至少执行一次。
语句覆盖的缺点是对程序执行逻辑的覆盖率很低。
为使程序中每个语句至少执行一次,只需设计一个能通过路径ace的例子就可以了,例如选择输入数据为:A=2,B=0,X=3,就可达到“语句覆盖”标准。
为使程序中每个语句至少执行一次,只需设计一个能通过路径ace的例子就可以了,例如选择输入数据为:A=2,B=0,X=3,就可达到“语句覆盖”标准。
软件工程测试实验
实验1 功能性测试(黑盒测试)一、实验目的1、能熟练应用功能性测试技术进行测试用例设计;2、对测试用例进行优化设计;二、实验内容1.题目一:货币转换器根据该程序的规格说明,作等价类的划分,并设计测试方案。
2.题目二:三角形问题根据下面给出的规格说明,利用等价类划分的方法,给出足够的测试用例。
“一个程序读入三个整数。
把此三个数值看成是一个三角形的三个边。
这个程序要打印出信息,说明这个三角形是三边不等的、是等腰的、还是等边的。
”3.题目三:日期问题用决策表测试法测试以下程序:该程序有三个输入变量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) ,画出简化后的决策表。
4.题目四:计算器三、实验步骤1、根据功能性测试技术设计测试用例,主要考虑等价类划分和边界值分析测试技术;2、根据所学知识确定优化策略(原则:用最少的用例检测出更多的缺陷、软件测试的充分性与冗余性考虑),设计两套测试用例集;3、根据设计的两套测试用例集进行测试;四、实验要求1、根据题目要求编写测试用例(参照表1进行用例设计);2、实验结果要求给出两套测试用例集测试效果比较;实验2 结构性测试(白盒测试)一、实验目的1、掌握结构性测试技术,并能应用结构性测试技术设计测试用例;2、对测试用例进行优化设计二、实验内容1.题目一:使用逻辑覆盖测试方法测试以下程序段void DoWork (intx,inty,int z){int k=0, j=0;if ( (x>3)&&(z<10) ){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)是对每条语句的编号。
软件工程-实验3软件测试技术实验
软件工程-实验3软件测试技术实验(总7页)-CAL-FENGHAI.-(YICAI)-Company One1-CAL-本页仅作为文档封面,使用请直接删除淮海工学院计算机工程学院实验报告书课程名:《软件工程》题目:实验3软件测试技术实验学号: 93班级: 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→→4→5→→7→9→10路径2: 1→→→4→5→→7→9→10路径3: 1→→→4→5→→→7→9→10路径4: 1→→→3→5→→→7→9→10路径5: 1→→→3→5→→→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“预期的输出:实验体会通过实验,我掌握了:(1)判定覆盖又叫分支覆盖,它的含义是,不仅每个语句必须至少执行一次,而且每个判断的每种可能的结果都应该至少执行一次,也就是每个判定的每个分支都至少执行一次。
- 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 结果分析与实验体会通过实验,要逐步提高白盒测试与黑盒测试技术的实际应用能力。