软件工程测试报告.docx
《软件工程测试报告.docx》由会员分享,可在线阅读,更多相关《软件工程测试报告.docx(10页珍藏版)》请在冰豆网上搜索。
![软件工程测试报告.docx](https://file1.bdocx.com/fileroot1/2023-2/1/3d3ca342-6135-49a5-82dc-16d2bbb6ee6e/3d3ca342-6135-49a5-82dc-16d2bbb6ee6e1.gif)
软件工程测试报告
《软件工程》课程设计报告
系统测试报告
课程设计题目:
毕业生管理信息系统
项目负责人:
1引言
1.1编写目的
在开发大型软件的漫长过程中,面对极其错综复杂的问题,人的主观认识不可能完全符合客观现实,与工程密切相关的各类人员之间的通信和配合也不可能完美无缺。
因此,在软件生命周期的每个阶段都不可避免地会产生差错。
尤其对于毕业生管理信息系统这类会影响学生工作的工程软件,必须尽量减少差错,以免造成严重的损失。
测试是“为了发现程序中的错误而执行程序的过程”。
测试的目的就是在软件投入生产性运行之前,尽可能多的发现软件中的错误。
目前软件测试仍然是保证软件质量的关键步骤,它是对软件规格说明.设计和编码的最后复审,也是必不可少的关键步骤。
1.2背景
开发软件名称:
毕业生管理信息系统
项目任务提出者:
学校
项目开发者:
定义
SQLSERVER:
系统服务器所使用的数据库管理系统(DBMS)。
SQL:
一种用于访问查询数据库的语言
事务流:
数据进入模块后可能有多种路径进行处理。
主键:
数据库表中的关键域。
值互不相同。
外部主键:
数据库表中与其他表主键关联的域。
ROLLBACK:
数据库的错误恢复机制。
1.3参考资料
软件需求工程
JAVA程序设计使用教程
2测试概要
2.1需求概述
学校为方便毕业生,需开发一个毕业生管理信息系统。
为便于学生输入及查询个人及毕业信息,要求:
毕业生基本信息维护,毕业生就业信息维护,毕业生就业情况查询(不确定查询);按专业划分的就业情况统计,用户管理(含用户权限的设置)。
要求系统能有效、快速、安全、可靠和无误的完成上述操作。
并要求系统的界面要单明了,易于操作,服务器程序利于维护。
2.2条件与限制
必须在保证各硬件设备.软件系统齐备的情况下,资金充足,人员齐备,各方面互相配合,齐心协力,共同完成。
3测试过程及发现
3.1测试方案
测试方案是测试阶段的关键技术问题。
为了提高测试效率降低测试成本,本测试方案采用黑盒法设计基本的测试方案,用黑盒法注重于测试软件的功能需求,主要试图发现下列几类错误:
功能不对或遗漏;性能错误;初始化和终止错误;界面错误;数据结构或外埠数据库访问错误。
黑盒测试法常用的测试方法包括等价分析类法、边值分析法、错误推测法、因果图法、正交实验设计法、判定表驱动法、功能测试等。
但是没有一种方法能提供一组完整的测试用例,以检查程序的全部功能,因此在实际测试中需要把各种方法结合起来使用。
3.2测试项目
用户登录测试
信息输入测试
信息输出测试
服务器(数据库)测试
系统测试
3.3测试准备
在测试前,与各模块的主要负责人共同协商讨论,以概要设计说明书.详细设计说明书作为总的提纲,选择合适的输入输出数据,并加以意义列举说明。
4.测试有关说明
4.1测试名称及内容
在测试过程中,首先需要对各子单元过程进行测试。
在各子单元过程测试完毕后,再对系统进行测试和维护。
各子模块测试名称如下:
用户登录测试
信息输入测试
信息输出测试
服务器(数据库)测试
系统测试
4.2测试用例
登录过程:
用户登录,首先检验输入合法性,然后调用数据库操作,确定用户权限,根据权限执行不同操作
publicUserAdd(){
add(newJLabel("用户名"));
jTextFiledusername=newJTextField(16);
add(jTextFiledusername);
add(newJLabel("密码"));
jPassword1=newJPasswordField(16);
jPassword1.setEchoChar('■');
add(jPassword1);
add(newJLabel("确认密码"));
jPassword2=newJPasswordField(16);
jPassword2.setEchoChar('■');
add(jPassword2);
add(newJLabel("登录权限"));
StringItem[]={"————请选择————","毕业生","老师","管理员"};
jComboBoxPower=newJComboBox(Item);
add(jComboBoxPower);
JButtonjButtonOK=newJButton("确定");
add(jButtonOK);
JButtonjButtonCancel=newJButton("取消");
add(jButtonCancel);
毕业生基本信息输入:
输入格式要正确,而且基本信息不能为空,毕业生编号不能重复。
publicReaderAdd(){
add(newJLabel("学号"));
jTextFieldStuNum=newJTextField(16);
add(jTextFieldStuNum);
add(newJLabel("姓名"));
jTextFieldStuName=newJTextField(16);
add(jTextFieldStuName);
add(newJLabel("性别"));
StringSex[]={"————请选择————","男","女"};
jComboBoxSex=newJComboBox(Sex);
add(jComboBoxSex);
add(newJLabel("名族"));
jTextFieldStuNumee=newJTextField(16);
add(jTextFieldStuNumee);
add(newJLabel("籍贯"));
jTextFieldStuNumee1=newJTextField(16);
add(jTextFieldStuNumee1);
add(newJLabel("院系"));
StringDepartment[]={"————请选择————","计算机与通信工程系","数学系","中文系","音乐系","物理系","美术系","外语系","体育系","化工系","食工系"};
jComboBoxDepartment=newJComboBox(Department);
add(jComboBoxDepartment);
add(newJLabel("班级"));
jTextFieldClass=newJTextField(16);
add(jTextFieldClass);
毕业生就业信息输入:
jTextFieldBookName=newJTextField(16);
add(jTextFieldBookName);
add(newJLabel("编号"));
jTextFiledAuthor=newJTextField(16);
add(jTextFiledAuthor);
add(newJLabel("职务"));
jTextFiledPrice=newJTextField(16);
add(jTextFiledPrice);
add(newJLabel("工作单位"));
jTextFiledPress=newJTextField(16);
add(jTextFiledPress);
add(newJLabel("工作性质"));
jTextFiledAddress=newJTextField(16);
add(jTextFiledAddress);
add(newJLabel("就业时间"));
year=newJSpinner();
year.setValue(now.get(Calendar.YEAR));
month=newJComboBox(mothArray);
dayArray[0]="日";
毕业生基本信息及就业信息查询:
publicReaderUpdate(
add(newJLabel("提示:
输入学号按“查询”定位要修改的记录"));
add(newJLabel("学号"));
jTextFieldStuNum=newJTextField(16);
add(jTextFieldStuNum);
add(newJLabel("姓名"));
jTextFieldStuName=newJTextField(16);
add(jTextFieldStuName);
add(newJLabel("性别"));
StringSex[]={"————请选择————","男","女"};
jComboBoxSex=newJComboBox(Sex);
add(jComboBoxSex);
add(newJLabel("民族"));
jTextFieldStuNumee=newJTextField(16);
add(jTextFieldStuNum);
add(newJLabel("籍贯"));
jTextFieldStuNumee1=newJTextField(16);
add(jTextFieldStuNum);
add(newJLabel("院系"));
StringDepartment[]={"————请选择————","计算机与通信工程系","数学系","中文系","音乐系","物理系","美术系","外语系","体育系","化工系","食工系"};
jComboBoxDepartment=newJComboBox(Department);
add(jComboBoxDepartment);
add(newJLabel("班级"));
jTextFieldClass=newJTextField(16);
add(jTextFieldClass);
JPanelPanel1=newJPanel();
Panel1.setLayout(newFlowLayout(FlowLayout.CENTER,22,0));
JButtonjButtonOK=newJButton("查询");
Panel1.add(jButtonOK);
publicBookUpdate(){
add(newJLabel("提示:
输入毕业生姓名按“查询”定位要修改的记录"));
add(newJLabel("毕业生姓名"));
jTextFieldBookName=newJTextField(16);
add(jTextFieldBookName);
add(newJLabel("编号"));
jTextFiledAuthor=newJTextField(16);
add(jTextFiledAuthor);
add(newJLabel("职务"));
jTextFiledPrice=newJTextField(16);
add(jTextFiledPrice);
add(newJLabel("工作单位"));
jTextFiledPress=newJTextField(16);
add(jTextFiledPress);
add(newJLabel("工作性质"));
jTextFiledAddress=newJTextField(16);
add(jTextFiledAddress);
add(newJLabel("就业时间"));
year=newJSpinner();
year.setValue(now.get(Calendar.YEAR));
month=newJComboBox(mothArray);
dayArray[0]="日";
5对软件功能的结论
5.1能力
可以将用户划分为不同角色,进而在使用此软件时拥有不同的权限,比如最大的权限用户管理员的权限,可以对毕业生基本信息和就业信息进行修改或书写操作,又可以对系统管理、划分和维护,而且,对数据库维护和更新。
而毕业生只能对基本信息进行修改及就业信息的查询。
5.2限制
管理员的权限是此能力的最大限制,一旦管理员的帐号或密码丢失,则整个系统将静止,无法在实现任何更新,所以,应将管理员的权限在扩大,或是先备份,搜显示对数据库的备份。
以预防系统被侵入或数据丢失
6测试摘要
7测试总结
整个测试过程是验证上述功能,其结果与预测并无太大差异,基本功能要求均已实现,但是,这与要求之间存在一定差距,但这个差距对于整个功能和系统的实现已无很大的区别。
且运行环境在不断变化时,系统与数据库的连接会出现一定的错误。
但这些错误都在控制范围之内,所以,影响并不是很大。
但是在不是开发环境的机器上运行时,一定要注意其数据库的连接,否则也无法正常运行。
8改进建议
1.需要不断增设系统权限的设置,并完善系统的角色划分。
这样可以使系统的数据库管理更加完善。
2.不断搜索数据库,查看潜在在数据侵入危险,实现一定的数据过滤功能,增加系统的安全措施,使系统安全管理更加健全。
3.各项维护的人员定为其开发人员,因为开法人员最熟悉整个功能的数据和设计结构,方便维护。
9测试结果
经过对系统各方面的测试,包括对其功能的测试和数据测试,各方面均已达到客户要求,可以交付使用