1、软件测试学生成绩管理系统学号:学号:姓名:姓名:班级:班级:指导老师:指导老师:成绩:成绩:第一章第一章 数据字典数据字典11教师信息教师信息(Teacher):教师编号 Tno CHAR(7)教师姓名 Tname NCHAR(5)所在系 Tdept NVARCHAR(20)登录密码 Tpasword CHAR(6)学生信息学生信息(Student):学号 Sno CHAR(7)姓名 Sname NCHAR(5)性别 Sex NCHAR(1)年龄 Sage TINYINT(2)所在系 Sdept NVARCHAR(20)登录密码 Spasword CHAR(6)成绩信息成绩信息(Grade):
2、学号 Sno CHAR(7)姓名 Sname NCHAR(5)课程编号 Cno VARCHAR(5)课程名 Cname CHAR(20)平时成绩 PSgrade INT(2)实验成绩 SYgrade INT(2)课程设计 KCSJgrade INT(2)期末总成绩 Grade INT(2)课程信息课程信息(Course):课程编号 Cno CHAR(10)课程名 Cname CHAR(20)授课教师 Tname NCHAR(5)系别 dept NVARCHAR(20)1.21.2 概念模型设计概念模型设计根据上面数据字典设计建立相对应的概念模型,从数据字典抽象出的实体有:教师信息实体、学生信息
3、实体、成绩信息实体、课程信息实体。各个实体具体的描述 E-R 图如下。教师员信息实体教师员信息实体 E-RE-R 图:图:图 3 教师员信息实体 E-R 图教师信息所在系教师姓名教师编号登录密码学生信息实体学生信息实体 E-RE-R 图:图:学生信息学号姓名性别年龄所在系登录密码图 4 学生信息实体 E-R 图成绩信息实体成绩信息实体 E-RE-R 图:图:成绩学号课程编号期末总成绩姓名平时成绩实验成绩课程设计图 5 成绩信息实体 E-R 图课程信息实体课程信息实体 E-RE-R 图:图:课程信息课程编号课程名授课教师系别图 6 课程信息实体 E-R 图第第 2 2 章章 测试计划测试计划2.
4、12.1 简要说明简要说明软件测试是软件开发时期的最后一个阶段,也是软件质量和可靠性保证中至关重要的一个环节。软件测试的基本任务是通过在计算机上执行程序,暴露出程序潜在的错误,以便进行纠错,从而保证程序的可靠运行,降低软件的风险。所谓测试用例,就是意发现错误为目的而精心设计的一组测试数据。测试一个程序,需要数量足够的一组测试用例,用数据词典的表示方法表示,可以写成:测试用例=输入数据+输出数据这个是式子还表明,每一个完整的测试用例不仅包含有被测程序的输入数据,而且还包括用这组数据执行被测数据之后的预期的输出结果。每次测试,都要把实测的结果与期望结果做比较,若不相符,就表明程序可能存在错误。白盒
5、测试就是根据源代码进行测试的,用白盒测试涉及测试用例,有两种测试用例,有两种常用技术:逻辑覆盖法测试用例,基本路径法测试用例。黑盒测试就是根据被测程序功能来进行测试,所以也称为功能测试。用黑盒法涉及测试用例,有四种常用技术;等价分类法,边界值分析法,决策表法和因果图法。整个测试基于需求文档,看是否能满足需求文档中所有需求。黑盒测试要求测试者在测试时不能使用与被测系统内部结构相关的知识或经验,适用于对系统的功能进行测试。黑盒测试:黑盒测试:2.2 等价类划分等价类划分2.2.1 说明说明在本学生成绩管理系统中在信息录入部分采用等价分类法。等价分类属于黑盒测试法的一种,黑盒测试的优点比较简单,不需
6、要了解程序内部的代码及实现,从用户的角度出发,且是基于软件开发文档,也能知道软件实现了文档中的哪些功能,在做软件自动化测试是比较方便。黑盒测试法的缺点是覆盖率较低,自动化测试的复用性较低。2.2.22.2.2 教师信息部分教师信息部分1、编号:必须有,系统自动编号,三位2、姓名:必须有,要求为不超过 5 个汉字且可为英文 3、所在系:必须有,具体系别因各学校具体情况而定 4、登录密码:必须有,长度为 6 位 09 阿拉伯数字,且 6 位数不可相同且不能为连续 6 位注:教师信息由管理员录入系统 教师登录时输入编号及密码,若密码及编号信息输入正确,则提示登录系统成功,若无法登录进入系统,则提示提
7、示密码不正确请重新登录输入域:编号 姓名 所在系 登录密码输出域:是否录入/登录成功输入有效等价类编号无效等价类编号编号必须有(自动编号)1空8必须有2空9不超过 5 个汉字3大于五个汉字10姓名英文4非汉字11所在系必须有(具体系别因各学校具体情况而定)5空12长度为 6 位 09 阿拉伯数字6空13登录密码6 位数不相同且不能连续76 位数相同14测试用例:编号姓名所在系登录密码 是否录入/登录成功空张三三系123456(连续 6 位)失败001张三三系131415成功001张三三系空失败002张三三系1111111(6 位相同)失败003空三系131415失败004张三四五六七三系131
8、415失败005BOA三系131415成功006李四空131415失败007王五三系131415成功2.2.32.2.3学生信息部分学生信息部分1、学号:必须有,且为 11 位数,前 4 位为入学时间,后 4 位为系别与专业号,最后 3 位为班级号及学号 2、姓名:必须有,要求为不超过 5 个汉字3、性别:必须有,为“男”或“女”4、年龄:2 位数,在 1880 间5、所在系:必须有,具体系别要求视各学校具体情况而定6、登录密码:必须有,长度为 6 位 09 阿拉伯数字,且 6 位数不可相同且不能为连续 6 位 注:学生信息由各教师录入系统,学生可凭学号及密码登录系统查询自己的信息 学生登录时
9、输入学号及密码,若密码及学号信息输入正确,则提示登录系统成功,若无法登录进入系统,则提示提示密码不正确请重新登录输入域:学号 姓名 性别 年龄 所在系 登录密码输出域:是否录入/登录成功输入有效等价类编号无效等价类编号11 位数1前 4 位为入学时间2不足 11 位15后 4 位为系别及专业号3学号最后 3 位为班级号及学号4大于 11 位16必须有5空17大于 5 个汉字姓名不超过 5 个汉字6非汉字18男7性别女8空192 位数9不足或大于 2 位20年龄1880 之间10小 18 或大于 8021所在系必须有(具体系别因各学校具体情况而定)11空22长度为 6 位 09 阿拉伯数字12不
10、足或大于 6 位236 位数不相同136 位相同24登录密码6 位数不连续146 位连续25测试用例:学号姓名性别年龄所在系登录密码是否录入/登录成功空张三男22三系131415失败20113006212张三四五六七女22三系131415失败20113006212张三空22三系131415失败20113006212张三男17三系131415失败20113006212张三女22空131415失败20113006212张三男22三系123456失败20113006212张三女22三系1111111失败20113006212张三男81三系131415失败20113006212ABC女22三系1314
11、15失败2011300621209张三男22三系131415失败20113062张三女22三系131415失败20113006212张三男22三系131415成功2.2.42.2.4 课程信息部分课程信息部分1、课程编号:必须有,系统自动编号,3 位2、课程名:必须有,由中英文及各种字符组成,字符长度不限 3、授课教师:必须有,要求为不超过 5 个汉字,可为英文4、系别:必须有,具体系别要求视各学校具体情况而定注:课程信息由系统管理员录入系统,学生和教师可登录查询相关信息输入域:课程编号 课程名 授课教师 系别输出域:是否录入登录成功输入有效等价类编号无效等价类编号课程编号必须有(系统自动编号
12、)1空9必须有2中英文及各种字符组成3课程名长度不限4空10必须有5空11不超过 5 个汉字6授课教师英文7大于 5 位中文12系别必须有(具体系别因各学校具体情况而定)8空13测试用例:课程编号课程名授课教师系别是否录入成功空软件测试张三三系失败001空张三三系失败002软件测试张三四五六七三系失败003软件测试张三空失败004软件测试BOA三系成功005软件测试李四三系成功3.3.53.3.5 学生成绩信息学生成绩信息1、学号:必须有,且为 11 位数,前 4 位为入学时间,后 4 位为系别及专业号,最后 3 位为班级号及学号 2、姓名:必须有,要求为不超过 5 个汉字3、课程编号:必须有
13、,系统自动编号,3 位 4、课程名:必须有,由中英文及各种字符组成,字符长度不限5、平时成绩:必须有,0100 之间6、实验成绩:0100 之间,可以为空 7、课程设计:0100 之间,可以为空8、期末总成绩:必须有,0100 之间注:学生成绩信息由各教师录入系统并进行相关管理,学生可凭学号及密码登录系统查询自己的信息输入域:学号 姓名 课程编号 课程名 平时成绩 实验成绩 期末总成绩 输出域:是否录入成功输入有效等价类编号无效等价类编号11 位数1前 4 位为入学时间2大于 11 位19后 4 位为系别及专业号3学号最后 3 位为班级号及学号4不足 11 位20必须有5空21大于 5 个汉字
14、22姓名不超过 5 个汉字6非汉字23课程编号必须有(系统自动编号)7空24必须有825中英文及各种字符组成9课程名长度不限19空26必须有11空27平时成绩0100 之间12大于 10028可为空13实验成绩0100 之间14大于 10029可为空15课程设计0100 之间16大于 10030必须有17空31期末总成绩0100 之间18大于 10032测试用例:学号姓名课程编号课程名平时成绩实验成绩课程设计期末总成绩是否录入成功空张三001软件测试808090失败201130062129张三002软件测试808090失败20115007张三003软件测试808090失败20113006212
15、空004软件测试808090失败20113006212张三四五六七005软件测试808090失败20113006212ABC006软件测试808090失败20113006212李四空软件测试808090失败20113006212李四007空808090失败20113006212李四008软件测试1018090失败20113006212王五009软件测试8010190失败20113006212王五010软件测试8010190失败20113006212王五011软件测试8080101失败20113006212宝儿012软件测试8080100成功2.3 因果图法设计测试用例因果图法设计测试用例前面介
16、绍的等价类划分方法,是着重考虑输入条件,但未考虑输入条件之间的联系。如果在测试时必须考虑输入条件的各种组合,可能的组合数将是天文数字。因此必须考虑使用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例,这就需要利用因果图。以“学生管理系统”前台中的“选课管理”为例。在学生登录系统进行按照规定进行选课,其对应的因果图如图 2.1 所示。因果表 E图 2.1 因果图原因结果C1:课程人数已满E1:选课失败C2:已选择过这门课E1:选课失败C3:课程人数未满,未选择过这门课E2:选课成功课程人数未满没选择这门课选课 成功输出C1C2C3E1E2图 2.2 选课表 2.1 选课
17、图解列表用例编号用例编号用例标题用例标题输入数据输入数据操作步骤操作步骤期望结果期望结果1选课人数选课人数满了登录不同学生的学号使选课人数达到上限在登录测试学号选课选课失败2是否选择过这门课选择过这门课登录测试学生学号先选择 1次退出后再次登录进行选课同 1 门课选课失败3正常选课选课按照规定进行选课选课成功”2.4 决策表法设计测试用例决策表法设计测试用例决策表又称判断表,是一种呈表格状的图形工具,适用于描述处理判断条件较多,各条件又相互组合、有多种决策方案的情况。精确而简洁描述复杂逻辑的方式,将多个条件与这些条件满足后要执行动作相对应。结合软件测试,条件作为程序输入,动作看做程序输出,规则
18、就是测试用例。决策表的建立应该根据软件规格说明,步骤如下:确定规则的个数。假如有 n 个条件,每个条件有两个取值(0,1),故有 2n 种规则。列出所有的条件桩和动作桩。输入条件项。填入动作项。制定初始决策表。简化。合并相似规则或者相同动作。适合使用决策表设计测试用例的条件:规格说明以决策表的形式给出,或很容易转换成决策表。条件的排列顺序不影响执行哪些操作。规则的排列顺序不影响执行哪些操作。当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则。如果某一规则要执行多个操作,这些操作的执行顺序无关紧要。下面以学生成绩管理系统的课程信息作为测试用例进行测试。条件:C1 选择课程编号、C2
19、 选择课程标题、C3 选择授课教师动作:E1 信息填写为完整、E2 信息填写有误、E3 上传成功决策表规则选择12345678C100010111C200101011 条 件C301001101E1111111100E2000000010动作E3000000001经过简化可得决策表如下:规则选择1234C101C201 条 件C301E111100E200010动作E300001决策表测试用例用例编号用例编号用例标题用例标题输入数据输入数据操作步骤操作步骤期望结果期望结果1选择课程编号“”不选择下拉列表框提示请将信息填写完整2选择课程标题“”1、不选择下拉列表框提示请将信息填写完整3选择授课教
20、师“”1、不选择下拉列表框提示请将信息填写完整4课程编号和课程标题标题和授课教师1111 软件测试 吴晓燕老师选择下拉列表框内容选择下拉列表框内容选择课程提示上传成功白盒测试:白盒测试:3.4.1 逻辑覆盖法设计测试用例逻辑覆盖主要是以程序内部的逻辑结构为基础来设计测试用例。逻辑覆盖有语句覆盖 SC(Statement Coverage)、判定覆盖 DC(Decision coverage)、条件覆盖 CC(Condition Coverage)、条件判定组合覆盖 CDC(Condition/Decision Coverage)条件组合覆盖 MCC(Multiple Condition Cov
21、erage)和路径覆盖 6 种覆盖标准。下面以本系统中学生管理的学生登录功能为例,进行测试用例。主要代码如下:if(txtName.Text=|txtNum.Text=|txtPwd.Text=)MessageBox.Show(请将信息填写完整);return;else SqlConnection conn=BaseClass.DBCon();conn.Open();SqlCommand cmd=new SqlCommand(select count(*)from tb_Student where StudentNum=+txtNum.Text+,conn);int i=Convert.ToI
22、nt32(cmd.ExecuteScalar();if(i 0)MessageBox.Show(密码不正确);return;else cmd=new SqlCommand(insert into tb_Student(StudentNum,StudentName,ClassID,StudentSex,StudentPwd)values(+txtNum.Text.Trim()+,+txtName.Text.Trim()+,+txtClass.Text.Trim()+,+rblSex.SelectedValue.ToString()+,+txtPwd.Text.Trim()+),conn);cmd
23、.ExecuteNonQuery();conn.Close();MessageBox.Show(登录成功);btnConcel_Click(sender,e);该函数的流程图如图 1.1 所示:T FT F图 1.1 登录函数流程图输入Sno=”or Spassword=”Sno and Spassword ssa请重新输入请将信息输入完整登录成功EntryTFT F图 1.2 登录过程的判定条件和过程记录1、语句覆盖选择足够多的测试数据,使被测程序中每条语句至少执行一次;缺点:对程序执行逻辑的覆盖很低。从图 1.1 中可以看出要想覆盖所有语句,三条 路径都必须执行一次。语句覆盖法测试用例列表
24、如表 1.1 所示。表 1.1 语句覆盖法测试用例表编号输入数据通过路径用例 1Sno=”&Spassword=”MA1用例 2Sno=”张三”&Spassword=”1234”MNA1用例 3Sno=”李四啊啊”&Spassword 的=xx”MNA22、判定覆盖设计足够多的测试用例,使得程序中的每一个判定至少获得一次真值和假值,或者使得程序中的每一个取真分支或取假分支至少经历一次,因此又称分支覆盖可以满足语句覆盖;缺点:主要对整个表达式最终取值进行度量,忽略了表达式内部取值。因此判定覆盖也需要执行上面的三种路径,所以它的用例和语句覆盖一样。如表 1.2 所示。表 1.2 判定覆盖法测试用例
25、表编号输入数据通过路径用例 1Sno=”&Spassword=”MA1MNA2A1A1用例 2Sno=”张三”&Spassword=”1234”MNA1用例 3Sno=”李四啊啊”&Spasswor=xx”MNA23.4.23.4.2 路径分析法路径分析法3.4.13.4.1 控制流图控制流图设当输入的学生帐号正确时为 T1,否则为-T1设当输入的密码正确时为 T2,否则为-T2 CNAD开始输入管理员帐号输入管理员密码账号是否正确进入系统操作 结束EGY密码是否正确HYF由上面的控制流程图可以得到下面的控制流图BNDBC开始A结束ER1R2根据上面环形复杂的计算结果,有 2 基本独立路径pa
26、th1:A-B-C-D-EPath2:A-B-C-A-B-C-D-E计算圈复杂度:给定流图 G 的圈复杂度 V(G),定义为 V(G)=E-N+2,E 是流图中边的数量,N 是流图中结点的数量 V(G)=7-7+2=2V(G)=7-7+2=2对上面的路径测试选取测试用例测试用例学生学号登陆密码通过路径覆盖条件预期输出结果20113006212131415ABCDET1,T2录入成功2011300621213131415ABGABCDEF-T1,T2录入失败20113006212666666ABCDHCDEFT1,-T2录入失败3.4.23.4.2 测试用例测试用例教师登录模块教师登录模块输入测
27、试用例教师编号登录密码预期输出结果TC1001131415登录成功TC2002123456登录失败TC30003131415登录失败TC4004131415登录成功TC5005131415登录成功TC6006131415登录成功TC7007131415登录成功TC8008131415登录成功TC9009131415登录成功TC10010131415登录成功学生信息录入模块学生信息录入模块输入用例编号学号姓名性别年龄所在系预期输出结果12011300621205张三男一录入失败220113006212空女18二录入失败320113006212张三四五六七男19三录入失败420113006212李四空20四录入失败520113006212小蔡男17五录入失败620113006212张三男22空录入失败720113006212皮皮女81七录入失败820113006212ABC男24三录入失败920113062小杨女25三录入失败1020113006212宝儿女81三录入成功第第 3 3 章章 总结总结通过本次教学管理系统测试计划报告的编写以及具体测试工作的进行我深刻体会到软件测试是一个有组织有计划的活动,在整个测试活动中只有各组员团结合作才能很好的完成整个测试活动。整个测试活动的良好展开除了有一个很好的测试计划以外还必须拥有众多的外部条件,如测试人员的知识结构以及测试时的硬件支持。