[软工导论]第7章 编码与测试

上传人:woxinch****an2018 文档编号:44703414 上传时间:2018-06-14 格式:PPT 页数:141 大小:3.06MB
返回 下载 相关 举报
[软工导论]第7章 编码与测试_第1页
第1页 / 共141页
[软工导论]第7章 编码与测试_第2页
第2页 / 共141页
[软工导论]第7章 编码与测试_第3页
第3页 / 共141页
[软工导论]第7章 编码与测试_第4页
第4页 / 共141页
[软工导论]第7章 编码与测试_第5页
第5页 / 共141页
点击查看更多>>
资源描述

《[软工导论]第7章 编码与测试》由会员分享,可在线阅读,更多相关《[软工导论]第7章 编码与测试(141页珍藏版)》请在金锄头文库上搜索。

1、1第七章第七章 实现实现第七章第七章 实现实现( (编码与测试编码与测试) ) 7.1 编码 7.2 软件测试基础 7.3 单元测试 7.4 集成测试 7.5 确认测试 7.6 白盒测试技术 7.7 黑盒测试技术 7.8 调试 7.9 软件可靠性2*编码的目的: : 是使用选定的程序设计 语言,把模块的过程性描述翻译为用该语 言书写的源程序(源代码)模块的过程性描述(不可执行的)源程序 (可执行的)编码编码的目的4第七章 实现(编码与测试)7.1 编码编码就是把软件设计结果翻译成用某种程序设计语 言书写的程序。1、选择程序设计语言程序设计语言是人和计算机通信的最基本的工具, 它的特点必然会影响

2、人的思维和解题方式,会影响 人和计算机通信的方式和质量,也会影响其他人阅 读和理解程序的难易程度。因此,编码之前的一项 重要工作就是选择一种适当的程序设计语言。5选择程序设计语言的主要实用标准:(1) 系统用户的要求。(2) 可以使用的编译程序。(3) 可以得到的软件工具。 (4) 工程规模。(5) 程序员的知识。(6) 软件可移植性要求。 (7) 软件的应用领域。62 程序设计风格 程序实际上也是一种供人阅读的文章, 有一个文章的风格问题。应该使程序具 有良好的风格。 源程序文档化 数据说明 语句结构 输入输出方法 程序效率7(1 1)源程序文档化 标识符的命名标识符的命名 安排注释安排注释

3、 程序的视觉组织程序的视觉组织8 符号名的命名 符号名即标识符,包括模块名、变量名、常量名、标号名、子程序名、 、数据区名以及缓冲区名等。 这些名字应能反映它所代表的实际东西,应有一定实 际意义。例如,表示次数的量用Times,表示总量的用Total,表示平均值的用Average,表示和的量用 Sum等。 名字不是越长越好,应当选择精炼的意义明确的名字 。必要时可使用缩写名字,但这时要注意缩写规则要 一致,并且要给每一个名字加注释。同时,在一个程 序中,一个变量只应用于一种用途。下划线法 print_employee_paychecks(); 下划线法是c出现后开始流行起来的,在许多旧 的程序

4、和UNIX这样的环境中,它的使用非常普 遍。 Camel命名法骆驼式命名法就是当变量名或函式名是由一个或多个单字连结在一起,而构成的唯 一识别字时,第一个单词以小写字母开始;第二个单词的首字母大写或每一个单词 的首字母都采用大写字母,例如:myFirstName、myLastName,这样的变量名看 上去就像骆驼峰一样此起彼伏,故得名。 驼峰法(小驼峰法) 变量一般用小驼峰法标识。驼峰法的意思是:除第一个单词之外,其他单词 首字母大写。譬如 int myStudentCount; 变量myStudentCount第一个单词是全部小写,后面的单词首字母大写。 Pascal法(大驼峰法) 相比小驼

5、峰法,大驼峰法把第一个单词的首字母也大写了。常用于类名,函 数名,属性,命名空间。譬如 publicclass DataBaseUser;匈牙利命名法(1) 原则 匈牙利命名法是一种编程时的命名规范。基本原则是:变量名 =属性+类型+对象描述,其中每一对象的名称都要求有明确含 义,可以取对象名字全称或名字的一部分。命名要基于容易记 忆容易理解的原则。保证名字的连贯性是非常重要的。 例子 举例来说,表单的名称为form,那么在匈牙利命名法中可以简 写为frm,则当表单变量名称为Switchboard时,变量全称应该 为 frmSwitchboard。这样可以很容易从变量名看出 Switchboa

6、rd是一个表单,同样,如果此变量类型为标签,那么 就应命名成 lblSwitchboard。可以看出,匈牙利命名法非常便 于记忆,而且使变量名非常清晰易懂,这样,增强了代码的可 读性,方便各程序员之间相互交流代码。查尔斯西蒙尼(Charles Simonyi) 匈牙利命名法(2) MFC、句柄、控件及结构的命名规范: Windows类型 样本变量;MFC类 样本变量 HWND hWnd; CWnd* pWnd; HDLG hDlg; CDialog* pDlg; HDC hDC; CDC* pDC; HGDIOBJ hGdiObj; CGdiObject* pGdiObj; HPEN hPen

7、; CPen* pPen;13 程序的注释 夹在程序中的注释是程序员与日后的程序 读者之间通信的重要手段。 注释决不是可有可无的。 一些正规的程序文本中,注释行的数量占 到整个源程序的1/3到1/2,甚至更多。 注释分为序言性注释和功能性注释。14序言性注释 通常置于每个程序模块的开头部分,它应当给出程序的整体 说明,对于理解程序本身具有引导作用。 序言性注释包括: 程序标题; 有关本模块功能和目的的说明; 主要算法; 接口说明:包括调用形式,参数描述,子程序清单; 有关数据描述:重要的变量及其用途,约束或限制条件, 以及其它有关信息; 模块位置:在哪一个源文件中,或隶属于哪一个软件包; 开发

8、简历:模块设计者,复审者,复审日期,修改日期及 有关说明等。15功能性注释 功能性注释嵌在源程序体中,用以描述其后的语句或程 序段是在做什么工作,或是执行了下面的语句会怎么样 ,而不要解释下面怎么做。例如, /* ADD AMOUNT TO TOTAL */TOTAL = AMOUNTTOTAL 上面注视不清楚,如果注明把月销售额计入年度总额, 便使读者理解了下面语句的意图:/* ADD MONTHLY-SALES TO ANNUAL-TOTAL */TOTAL = AMOUNTTOTAL 要点 描述一段程序,而不是每一个语句; 用缩进和空行,使程序与注释容易区别; 注释要正确。注释demo1

9、7 视觉组织 空格、空行和移行 恰当地利用空格,可以突出运算的优 先性,避免发生运算的错误。例如 , 将表达式(A17)ANDNOT(B49)ORC 写成 (A17) AND NOT (B49) OR C 自然的程序段之间可用空行隔开; 移行也叫做向右缩格。它是指程序中 的各行不必都在左端对齐,都从第一 格起排列。这样做使程序完全分不清 层次关系。 对于选择语句和循环语句,把其中的 程序段语句向右做阶梯式移行。使程 序的逻辑结构更加清晰。例如,两重选择结例如,两重选择结 构嵌套,写成下面构嵌套,写成下面 的移行形式,层次的移行形式,层次 就清楚得多。就清楚得多。IF IF() THENTHEN

10、IF IF() THENTHEN ELSE ELSE ENDIF ENDIF ELSE ELSE ENDIF ENDIF*IF (X .LT. Y) GOTO 30 IF (Y .LT. Z) GOTO 50 SMALL=Z GOTO 70 30 IF (X .LT. Z ) GOTO 60 SMALL=Z GOTO 70 50 SMALL=Y GOTO 70 60 SMALL=X 70 CONTINUE 视觉组织FORTRAN demo视觉组织demo20(2) 数据说明在设计阶段已经确定了数据结构的组织及其复杂性。在编 写程序时,则需要注意数据说明的风格。为了使程序中数据说明更易于理解和维

11、护,必须注意以下 几点: a.数据说明的次序应该标准化。有次序易查阅,能加速测试 、调试和维护的过程。例如:数据说明 数据类型说明 常量说明 简单变量类型说明 数组说明 公用数据块说明 所有的文件说明 整型量说明 实型量说明 字符量说明 逻辑量说明21b. 当多个变量名在一个语句中说明时,应该按字母顺序排列这些变量。例如,把integer size, length, width, cost, price写成integerinteger costcost, , lengthlength, , price price , , sizesize, , widthwidthc. 如果设计时使用了一个复

12、杂的数据结构,则应该用注解说明用程序设计语言实现这个数据结构的方法和特点。22(3)语句构造构造语句时应该遵循的原则是,每个语句都应该简单而直接,不能为了提高效率而使程序变得过分复杂;也不要刻意追求技不要刻意追求技巧性,使程序编写得过于紧凑。巧性,使程序编写得过于紧凑。例如:例如:AI = AIAI = AIATAT; AT = AIAT = AIATAT;AI = AIAI = AIATAT;WORK = ATWORK = AT;AT = AIAT = AI;AI = WORKAI = WORK; 例如:例如: intint i i,j; j;for ( for ( i i = 1; = 1; i i = 0 =1时测试员甲发现的错误数为B1; =1时测试员乙发现的错误数为B2; =1时两个测试员发现的相同错误数为bc。假定测试员乙发现有标记错误和发现无标记错误的概率 相同,则可估计出测试前程序中的错误总数为 B0 =(B2/bc)B1(7.8)本章小结:1、实现包括编码和测试两个阶段2、 编码=设计结果翻译成程序(某种程序语言编写)3、测试包含静态测试和动态测试,测试步骤至少分为:1. 模块测试 - 单元2. 子系统测试 - 局部3. 系统测试 - 集成4. 验收测试 - 用户参与 4、白盒测试和黑盒测试是软件测试的两类基本方法

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 高中教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号