如何开心设计一个网站,黄页app下载,58网站自己做,广州11个区繁华排名软件的实现阶段#xff1a;软件编码#xff0c;单元测试和综合测试。
软件编码是对软件设计的进一步具体化#xff0c;其任务是将设计表示变换成用程序设计语言编写的程序。
软件测试是软件质量保证的重要手段#xff0c;要成功开发出高质量的软件产品#xff0c;必须认…软件的实现阶段软件编码单元测试和综合测试。
软件编码是对软件设计的进一步具体化其任务是将设计表示变换成用程序设计语言编写的程序。
软件测试是软件质量保证的重要手段要成功开发出高质量的软件产品必须认真计划并彻底地进行软件测试。
4.1软件编码
4.1.1程序设计语言
用于书写计算机程序的语言。
按照级别可以分为两大类
①低级语言包括机器语言和汇编语言优点是执行速度快但代码编写难度较大可读性较差。另外用它编写的程序与具体的机器有关想要运行在不同的机器上必须重写但是在实现与硬件系统的接口部分时易于实现且实现效率高。
机器语言是机器能直接识别的程序设计语言或指令代码。无须经过翻译。
汇编语言也称符号语言。要通过汇编过程转换成机器指令。
②高级语言在一定程度上与具体机器无关是有可移植性更接近人的思维易于编程阅读和修改。但由于运行时需将其翻译成机器语言运行效率相对较低对硬件的可控性相对于低级语言较弱。
程序设计语言的选择
①应用领域的不同决定选择的语言。
②系统用户的要求。
③程序员的经验和知识。
④开发和维护成本。
⑤软件可移植性要求。
4.1.2程序设计风格
①源程序文档化包括标识符的命名使用注释程序的视觉组织。
标识符的命名应具有精练的意义明确的名字不与关键词同名。
使用注释应有助于对程序的阅读理解不宜太多也不能太少。
程序的视觉组织恰当地利用空格空行和缩进来增加程序的层次性和清晰度。
②数据说明标准化为使程序中的数据说明更易于理解和维护。应数据说明的次序规范化说明语句中变量安排有序化使用注释说明复杂数据结构。
③语句结构简单化。
④输入/输出方法规范化
结构化程序设计应遵循以下重要原则
使用语言中的顺序选择重复等有限的基本控制结构表示程序逻辑。
选用的控制结构只准许有一个入口和一个出口。
复杂结构应该用基本控制结构进行组合嵌套来实现。
4.1.3程序效率分析
复杂性度量解决多可选方案问题与在程序编写完成后测试评价程序。
程序复杂性主要指摸块内程序的复杂性其度量方法一般分为以下两种
①代码行度量法统计一个程序摸块的源代码行数目并以源代码行数作为程序复杂性的度量适用于控制结构比较简单的模块。
②McCabe度量法基于程序控制流。使用程序控制流图进行McCabe度量。仅仅描绘程序的控制流程。
4.2软件测试概述
软件测试是为了发现错误而执行程序的过程。
4.2.1测试的目的和原则
两种不同的测试目的
①从用户角度出发他们普遍希望通过软件测试暴露出软件中隐藏的错误和缺陷以考虑是否可以接受该产品。
②从软件开发者的角度出发他们则希望测试成为表明软件产品中不存在错误的过程验证该软件已正确地实现了用户的要求确立用户对软件质量的信心。
软件测试目的观点①测试是程序的执行过程目的在于发现错误。②一个好的测试用例在于能发现至今未发现的错误。③一个成功的测试是发现了至今未发现错误的测试。
软件测试的原则①应当把尽早地不断地进行软件测试作为软件开发者的座右铭。
②测试用例应由测试输入数据和与之对应的预期输出结果两部分组成。
③应由第三方人员从事测试工作。
④在设计测试用例时应当包括合理的输入条件和不合理的输入条件。
⑤注意测试中的错误群集现象。
⑥严格执行测试计划排除测试的随意性。
4.2.2测试的方法和步骤
1软件测试方法
黑盒测试已知产品的功能设计规格可以进行测试证明每个实现了的功能是否符合要求。不考虑程序内部的逻辑结构和内部特性。
白盒测试已知产品的内部工作过程可以进行测试证明每种内部动作是否按设计规格要求正常进行。对软件的过程性细节做细致检查。允许测试人员利用程序内部的逻辑结构及有关信息设计或选择测试用例。
2软件测试步骤
自底向上从小规模测试开始逐步进行大规模测试。首先重点测试单个程序模块然后重点转移到正在集成的模块组接着对整个系统进行测试最后由用户进行系统的验收测试。一般分为单元测试集成测试系统测试和验收测试。
4.3黑盒测试
着重测试软件的功能需求是在程序接口上进行的测试主要是为了发现以下错误
①是否有功能错误功能遗漏。
②是否能正确地接收输入数据并产生正确的输出结果。
③是否有数据结构错误或外部信息访问错误。
④是否有程序初始化和终止方面的错误。
黑盒穷举测试对所有输入数据的各种可能值的排列组合都进行测试来检查程序是否都能产生正确的输出。
具体的黑盒测试用例设计方法包括等价类划分法边界值分析法错误推测法等。
①等价类划分法把程序的输入分为若干类然后在每一类中选取少数代表性数据作为测试用例每一类的代表性数据在测试中的作用等价于这一类中的其他值。
②边界值分析法对等价类划分方法的补充。针对各种边界情况设计测试用例。
③错误推测法基于经验和直觉推测程序中所有可能存在的各种缺陷和错误从而有针对性地设计测试用例的方法。
4.4白盒测试
目的①保证程序中所有关键路径都被测试到防止系统投入使用后用户发现系统问题。
②便于衡量测试的完整性即是否把某个功能点的所有可能情况都测试到。
③可以测试到程序中的所有真分支假分支。
④检查局部数据结构的有效性。
⑤检查程序的异常处理能力。
⑥检查代码是否遵循编码规范。
总体上分为静态白盒测试和动态白盒测试两大类。
①静态白盒测试是一种不通过执行程序而进行测试的技术其关键功能是检查软件的表示和描述是否一致。一般包括桌面检查代码走查和代码审查。
②动态白盒测试将程序在受控的环境下使用特定的测试用例进行正式的运行显示了一个系统在检查状态下是否正确。最重要的技术是路径和分支测试。
穷举测试难以实现一般可采用逻辑覆盒的白盒测试即孝察用测试数据运行被测程序对程序逻辑的覆盖程度。可由弱到强分为语句覆盖判定覆盖条件覆盖判定-条件覆盖条件组合覆盖和路径覆盖。
正确的白盒测试要先从代码分析入手根据不同的语句执行情况具体的测试场景选择适合的覆盖方式。
①语句覆盖设计若干个测试用例运行被测程序使每个可执行语句至少执行一次。
②判定覆盖设计若干个测试用例运行被测程序使程序中每个判断的取真分支和取假分支至少经历一次。
③条件覆盖设计若干个测试用例运行被测程序使程序中每个判断的所有条件的每种可能取值至少执行一次。
④判定-条件覆盖设计足够的测试用例使判断中每个条件的所有可能取值至少执行一次。
⑤条件组合覆盖设计足够的测试用例运行被测程序使每个判断的所有可能的条件取值组合至少执行一次。
4.5单元测试
①内容模块接口测试局部数据结构测试重要路径测试错误处理测试边界测试。
②步骤编码阶段进行。辅助模块驱动模地桩模块。进行单元测试时应为测试模块开发一个驱动模块和若干桩模块。
4.6集成测试
目标按照设计要求使用那些通过单元测试的构件来构造程序结构。①功能性测试黑盒测试技术针对被测模块的接口规格说明进行测试。②非功能性测试对模块的性能或可靠性进行测试。
集成方式①一次性集成方式首先对每个模块分别进行模块测试然后再把所有模地组装在一起进行测试最终得到要求的软件系统。
②增量式集成方式先对各个模块进行模块测试然后将这些模块逐步组装成较大的系统在组装的过程中边连接边测试以发现连接过程中产生的问题最后通过增量逐步组装成为要求的软件系统。有自顶向下自底向上两种增量方式。
4.7系统测试
①功能测试②回归测试③可靠性测试④压力测试⑤性能测试⑥恢复测试⑦启动/停止测试⑧配置测试等