实现与测试

编码就是把软件设计结果翻译成用某种程序设计语言书写的程序,是对设计的进一步具体化

程序的质量主要取决于软件设计的质量。软件测试是保证软件质量的关键步骤,是对软件规格说明、设计和编码的最后复审

编码 

选择程序设计语言

程序设计语言是人和计算机通信的最基本的工具,会影响人的思维和解题方式,影响人和计算机通信的方式和质量,影响其他人阅读和理解程序的难易程度。

选择适宜的程序设计语言的原因:

  • 根据设计去完成编码时,困难最少;
  • 可以减少需要的程序测试量;
  • 可以得到更容易阅读和更容易维护的程序(极端重要)

高级语言优于汇编语言:

  • 汇编语言编码需要把软件设计翻译成机器操作的序列, 既困难又容易出差错;
  • 高级语言写程序比用汇编语言写程序生产率可以提高好几倍;
  • 用高级语言写的程序容易阅读、容易测试、容易调试、 容易维护。

理想标准:

  • 应该有理想的模块化机制,以及可读性好的控制结构和数据结构;
  • 使编译程序能够尽可能多地发现程序中的错误;
  • 应该有良好的独立编译机制。

实用标准:

  • 系统用户的要求;
  • 可以使用的编译程序;
  • 可以得到的软件工具;
  • 工程规模;
  • 程序员的知识;
  • 软件可移植性要求;
  • 软件的应用领域

编码风格(逻辑清晰、易读易懂)

源程序代码的逻辑简明清晰、易读易懂是好程序的一个重要标准,为了做到这一点,应该遵循下述规则。  

1.程序内部的文档
所谓程序内部的文档包括恰当的标识符、适当的注解和程序的视觉组织等。

  • 标识符:含义鲜明的名字、缩写规则一致、为名字加注解;
  • 注解:正确性,简要描述模块的功能、主要算法、接口特点、 重要数据以及开发简史或解释包含这段代码的必要性;
  • 视觉组织:适当的阶梯形式使程序的层次结构清晰明显。

2.数据说明     
数据说明的原则:

  • 数据说明的次序应该标准化;
  • 当多个变量名在一个语句中说明时,应该按字母顺序排列这些变量/行业内的约定标准
  • 如果设计时使用了一个复杂的数据结构(能不用就不用),则应该用注解说明用程序设计语言实现这个数据结构的方法和特点。


3.语句构造
下述语句构造的原则有助于使语句简单明了:

  • 不要为了节省空间而把多个语句写在同一行;
  • 尽量避免复杂的条件测试,不主张多个逻辑条件复用
  • 尽量减少对“非”条件的测试(数据库中);
  • 避免大量使用循环嵌套和条件嵌套;
  • 利用括号使逻辑表达式或算术表达式的运算次序清晰直观(避免程序难读)

4.输入输出 
在设计和编写程序时需考虑有关输入输出风格的规则:

  • 对所有输入数据都进行检验; (如:某省某市谋县)
  • 检查输入项重要组合的合法性;
  • 保持输入格式简单;
  • 使用数据结束标记,不要要求用户指定数据的数目;
  • 明确提示交互式输入的请求,详细说明可用的选择或边界数值;
  • 程序设计语言对格式有严格要求时,应保持输入格式一致;
  • 设计良好的输出报表;
  • 给所有输出数据加标志

5.效率   效率主要指处理机时间和存储器容量两个方面。

  • 效率是性能要求,因此应该在需求分析阶段确定效率方面的要求;
  • 效率是靠好设计来提高的;
  • 程序的效率和程序的简单程度是一致的,不要牺牲程序的清晰性和可读性来不必要地提高效率(不要炫技)。

 (1) 程序运行时间    
写程序的风格会对程序的执行速度和存储器要求产生影响,应遵循的规则如下:

  • 写程序之前先简化算术的和逻辑的表达式;
  • 仔细研究嵌套的循环,以确定是否有语句可以从内层往外移;
  • 尽量避免使用多维数组;
  • 尽量避免使用指针和复杂的表;
  • 使用执行时间短的算术运算;(有意识研究风格,优化
  • 不要混合使用不同的数据类型;
  • 尽量使用整数运算和布尔表达式

(2) 存储器效率

  • 在大型计算机中必须考虑操作系统页式调度的特点,一般说来,使用能保持功能域的结构化控制结构,是提高效率的好方法。
  • 在微处理机中如果要求使用最少的存储单元,则应选用有紧缩存储器特性的编译程序,在非常必要时可以使用汇编语言。
  • 提高执行效率的技术通常也能提高存储器效率。提高存储器效率的关键同样是“简单”。

(3) 输入输出的效率     
简单清晰是提高人机通信效率的关键。从写程序的角度看,却有些简单的原则可以提高输入输出的效率。

  • 所有输入输出都应该有缓冲,以减少用于通信的额外开销;
  • 对二级存储器(如磁盘)应选用最简单的访问方法
  • 二级存储器的输入输出应该以信息组为单位进行;
  • 如果“超高效的”输入输出很难被人理解,则不应采用这种方法。 

软件测试基础  

软件测试的目标

关于测试的一些规则如下:

  • 测试是为了发现程序中的错误而执行程序的过程。
  • 好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案。
  • 成功的测试是发现了至今为止尚未发现的错误的测试。

测试的正确定义是“为了发现程序中的错误而执行程序的过程”。
测试决不能证明程序是正确的。即使经过了最严格的测试之后, 仍然可能还有没被发现的错误潜藏在程序中。
另外,在综合测试阶段通常由其他人员组成测试小组来完成测试工作(心理学角度)。

软件测试准则

  • 所有测试都应该能追溯到用户需求;
  • 应该远(需求分析)在测试开始之前就制定出测试计划;
  • 应该从“小规模”测试开始,并逐步进行“大规模”测试;
  • 穷举测试是不可能的;(时间、人力、其他资源)
  • 为了达到最佳的测试效果,应该由独立的第三方从事测试工作(承担模块测试工作)

测试方法

黑盒测试(又称功能测试—>接口)把程序看作一个黑盒子,完全不考虑程序的内部结构和处理过程。
黑盒测试是在程序接口进行的测试, 检查:
程序功能是否能按照规格说明书的规定正常使用;
程序是否能适当地接收输入数据并产生正确的输出信息;
程序运行过程中能否保持外部信息(例如数据库或文件)的完整性。

白盒测试(又称结构测试) 是把程序看成装在一个透明的白盒子里,测试者完全知道程序结构和处理算法。
这种方法按照程序内部的逻辑测试程序,检测程序中的主要执行通路是否都能按预定要求(详细设计)正确工作。

测试步骤

测试过程也必须分步骤进行,后一个步骤在逻辑上是前一个步骤的继续。

大型软件系统通常由若干个子系统组成,每个子系统又由许多模块组成,因此,大型软件系统的测试过程基本上由模块测试、子系统测试、系统测试、验收

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值