实现

  • 格式:doc
  • 大小:85.00 KB
  • 文档页数:10

7实现
软件生命周期中,编码和测试统称为实现。

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

程序的质量主要取决于软件设计的质量,但程序设计的特点及编码风格也将对程序的可靠性,可读性,可测试性和可维护性产生影响。

测试的目的是在软件投入生产性运行之前,尽可能多地对发现软件中的错误,是对软件规格说明、设计和编码的最后复审。

它包含:模块测试(单元测试)和综合测试,其中模块测试的测试者和编写者是同一个人(???),综合测试是专门的测试人员。

1、编码
A程序设计语言是人和计算机通信的最基本的工具,选择恰当的语言能使编码时遇到困难和测试的难度减少,能写出可读性和可维护性更强的程序。

选择程序设计语言时考虑的几个标准:
✓系统用户的要求:人为
✓可以使用的编译环境:
✓可以得到的软件工具:(开发语言中包含)
✓工程规模:
✓程序员的知识:
✓软件可移植性:
✓软件的应用领域:
B编码风格,应该遵循的规则:
1)程序内部的文档:恰当的标识符,适当的注
解,程序的视觉组织等。

2)数据说明:使数据更容易理解和维护,加速
测试,调试和维护的过程。

3)语句构造:简单而直接(1、不要为了节省空
间,而把多个语句写在同一行2、尽量避免复杂的条件测试3、尽量减少对“非”条件的测试4、避免大量使用循环嵌套和条件嵌套5、利用括号使逻辑表达式或算术表达式的运算次序清晰直观)
4)输入输出:输入数据检验;格式简单;设计
良好的输出报表
5)效率:处理器时间和存储器容量
2、软件测试基础
两种工作:软件工程师:从抽象的概念出发,逐步设计出具体的软件系统,直到用一种适当的程序设计语言写出可以执行的程序代码。


试人员:努力设计出一系列测试方案,从已建造好的软件系统中找出错误或不能按预定要求工作。

考虑???(在交付用户之前进行的工作)
A软件测试的目的:为了发现程序中的错误而执行程序的过程。

(注意考虑测试错误和测试正确,以及编写人员不能参加测试的原因)
B软件测试的准则:
✓所有测试都应该能追溯到用户需求
✓应该在测试之前就制定出测试计划
✓应该从单元测试开始,逐步到综合测试
✓穷举测试是不可能的
✓测试人员是独立的8888888888888
C测试方法:
测试任何产品都有两种方法:1、如果知道产品应该具有的功能,则通过测试来检验是否每个功能都成正常运行(黑盒测试)2、如果知道产品的内部工作过程,则通过测试来检验产品内部动作是否按照规格说明书的规定正常运行(白盒测试)。

黑盒测试不考虑程序的内部结构和处理过程,是在程序接口进行的测试。

(功能测试)
白盒测试考虑程序的结构和处理算法,检验程
序中的主要执行通路是否按预定要求正确工作。

(结构测试)
D测试步骤:模块测试→子系统测试→系统测试→验收测试→平行测试(过渡期测试)
3、单元测试
集中检测软件设计的最小单元——模块。

主要试用白盒测试的技术。

测试重点:
1)模块接口:模块接口的数据流
2)局部数据结构:
3)重要的执行通路:
4)出错处理通路:预见出现错误的条件和适当
的处理方法
5)边界条件:最值测试?
6)代码审查
4、集成测试
是测试和组装软件的系统化技术:一种方法是先分别测试每个模块,在把所有模块按设计要求放在一起集合成所要得程序,称为非渐增式测试方法;另一种方法:把下一个要测试的模块同已经测试好的那些模块结合起来进行测试,测试完成后再把下一个应该测试的模块结
合进来测试。

比较?
自顶向下集成:从主控模块开始,沿着程序的控制层次向下移动,逐渐把各个模块结合起来。

自底向上集成:从“原子”模块(软件结构最底层的模块)开组装和测试。

5、确认测试:
也是验收测试,用来验证软件的有效性
验证是保证软件正确地实现
确认是保证软件满足用户的需求
确认测试是黑盒测试,通常由用户参与进行(培训的方法)。

6、白盒测试
设计测试方案是测试阶段的关键技术。

测试方
案包括具体的测试目的,应该输入的测试数据
和预期的测试结果。

通常,测试数据和预期的输出结果称为测试用例。

不同的测试数据发现程序中错误的能力差别很大,应该注意选择合适的,来提高测试效率。

A测试的逻辑覆盖范围:
✓语句覆盖:选择足够多的测试数据,是被测试程序中每个语句至少执行一次。

✓判定覆盖:(分支覆盖),每个判定的每个分支至少执行一次。

✓条件覆盖:使判定表达式中每个条件都取到各种可能的结果。

✓判定/条件覆盖:选取足够多的测试数据,使得判定表达式都取到各种可能的值,而且每个判定表达式也都取到各种可能的结果
✓条件组合覆盖:选取足够多的测试数据,使得每个判定表达式中条件的各种可能组合都至少出现一次。

✓点覆盖:选取足够多的测试数据,使得程序执行路径至少经过流程图中的每个节点一次,他与语句覆盖是相同的。

✓边覆盖:与判定覆盖相同
✓路径覆盖:选取足够多的测试数据,使程序
的每条可能路径都至少执行一次。

注意练习。

7、黑盒测试技术***************************
着重测试软件功能。

与白盒测试是互补的.白盒测试在测试过程的早期阶段进行,而黑盒测试主要用于测试过程的后期。

解释说明原因?
黑盒测试力图的发现的目的:
1)功能不正确或遗漏了功能
2)界面错误
3)数据结构错误或外部数据库访问错误
4)性能错误
5)初始化和终止错误
主要方法:等价划分;边界值分析;错误推测8、调试
调试是在测试发现错误之后排除错误的过程。

A调试过程:调试过程从执行一个测试用例开始,评估测试结果,如果发现实际结果与预期结果不一致,则这种不一致就是一个症状,他表明在软件中存在着隐藏的问题。

调试的结果会有两种:1、找到了原因并改正、排除了2、没找到原因。

(需要重新测试查找)
调试软件应该重视的原因:
✓症状和产生症状的原因可能在程序中相距甚
远(不在一页)
✓症状只是暂时的消失
✓症状可能不是错误引起的
✓症状可能是有不易跟踪的人为错误引起的
✓症状可能是由定时问题而不是由处理问题引
起的
✓症状可能时有时无
✓症状可能有分布在许多任务中的原因引起。

B调试图径:P168
蛮干法;回溯法;原因派查法
9、软件可靠性
软件可靠性是指程序在给定的时间间隔内,按照规格说明书的规定成功地运行的概率。

软件可用性:是程序再给定的时间点,按照规格说明书的规定,成功地运行的概率。

10、小结。