Upgrade to Pro — share decks privately, control downloads, hide ads and more …

13_应用调试

powerhope
August 11, 2016
130

 13_应用调试

App Inventor移动应用开发

powerhope

August 11, 2016
Tweet

Transcript

  1. College of Mathematics and Computer Science, Hunan Normal University 

    程序设计风格是指个人编制程序时所表现出来的特 点、习惯和逻辑思维等。良好的编程风格可以减少 编码的错误,减少读程序的时间,从而提高软件的 开发效率。  程序设计风格的内容包括:规范化的程序内部文档 、数据结构的详细说明、清晰的语句结构、遵守某 一编程规范。 程序设计风格
  2. College of Mathematics and Computer Science, Hunan Normal University 

    (1)命名规范。标识符、变量、函数名等名称应 该按意取名,做到见名知义,如在App Inventor中 ,退出按钮的名称用“按钮_退出”或“退出_按钮”命 名既可以从名字中知道按钮的功能,也知道了这个 名称代表的组件是按钮。 程序设计风格
  3. College of Mathematics and Computer Science, Hunan Normal University 

    (2)尽量为程序块加上明确的注释。对于较复杂 的程序或算法需要有注释文件,并在程序中注明注 释文件名,在注释文件中注明程序名。 程序设计风格
  4. College of Mathematics and Computer Science, Hunan Normal University 

    (3)模块本身要高内聚,模块之间要低耦合。设 计时模块内部各元素彼此结合非常紧密,而模块之 间相互联系的紧密程度非常低,即模块的功能要单 一,不要将几个不同的功能放在一个模块中,这样 的模块才具有信息隐蔽和独立性,在修改某一模块 时,不会对其他模块产生影响。  (4)数据说明详细。对变量名、过程名、过程参 数、复杂的数据结构要有详细的说明。 程序设计风格
  5. College of Mathematics and Computer Science, Hunan Normal University 

    (5)界面设计规范、美观和清晰。界面设计遵从 的原则是:界面简洁朴素,控件摆放整齐,颜色风 格统一,基于用户的心里模型,而不是基于工程实 现模型。  (6)对复杂的程序分而治之,化繁为简,逐个击 破。 程序设计风格
  6. College of Mathematics and Computer Science, Hunan Normal University 

    (7)输入和输出。编写输入和输出程序时,应考 虑的原则:输入操作步骤和输入格式尽量简单;输 入数据的合法性、有效性做必要的检查和信息反馈 ;交互式输入时,提供可用的选择和边界值等。尽 量少的让用户输入,输入时尽量多给出参考。自动 保存用户的输入成果。  (8)全局导航需要一直存在,最好还能预览其它 模块的动态。 程序设计风格
  7. College of Mathematics and Computer Science, Hunan Normal University 

    (9)不要让用户等待任务完。  (10)效率。 程序设计风格
  8. College of Mathematics and Computer Science, Hunan Normal University 

    软件测试的目的是为了发现错误而执行程序的过程 ;  一个好的测试用例能够发现至今尚未发现的错误; 一个成功的测试是发现了至今尚未发现的错误的测 试。 软件测试
  9. College of Mathematics and Computer Science, Hunan Normal University 

    软件测试应注意以下指导性原则:(1)测试用例 应有输入数据和预期的输出两部分组成。(2)测 试用例不仅要选用合理的输入数据,还要选择不合 理的输入数据。(3)除了检查程序是否做了它应 该做的事,还应检查程序是否做了它不应该做的事 。(4)长期保留测试用列。(5)对发现错误较多 的程序段,应进行更深入的测试。(6)应避免测 试自己的程序,可相互之间交叉进行测试。  测试只能证明软件存在错误而不能证明软件没有错 误,测试是无法显示潜在的错误和缺陷,继续进一 步错误可能还会找到其它错误和缺陷。 软件测试
  10. College of Mathematics and Computer Science, Hunan Normal University 

    软件测试方法一般分两大类:动态测试和静态测试 。而动态测试方法中又根据测试用例的设计方法不 同,分为黑盒测试和白盒测试。 软件测试
  11. College of Mathematics and Computer Science, Hunan Normal University 

    结合软件测试方法和App Inventor的特点,在AI测 试中:  (1)测试要覆盖每一条语句。  (2)每个判断条件,每一个程序分支都至少通过 一遍。如成绩等级判定,首先在每个成绩段选取一 个成绩(95,84,75,67,40),其次,选取每 个成绩等级的边界值(90,80,70,60),这样 才能保证每个判断条件都能执行到,也对边界数据 的正确与否做了有效的测试。 软件测试
  12. College of Mathematics and Computer Science, Hunan Normal University 

    (3)通过连续输入数据测试变量是否进行初始化 和使用前是否恢复到最初状态等。如例3.3阶乘计 算器1代码 软件测试
  13. College of Mathematics and Computer Science, Hunan Normal University 

    计算第一个阶乘的结果是正确的,但连续计算几个 阶乘,就会发现从第二个阶乘开始结果就是错误的 。如当第一次输入5的时候正确的计算出了5的阶乘 ,但当输入10的阶乘计算出现错误,正确的应该是 3628800,是什么原因造成了这样的结果?  回到图5.2中的代码,原来计算阶乘的全局变量jc 在每次计算之前未被初始化到最初的状态,这是很 多初学编程的人容易犯错误,一定要注意。 软件测试
  14. College of Mathematics and Computer Science, Hunan Normal University 

    (4)条件组合覆盖,设计足够的测试用例,使得 每个判定表达式中条件的各种可能的值的组合都至 少出现一次。  如在3.12项目:一元二次方程求根测试中,输入数 据a,b,c的时候,需要考虑a,b,c的各种组合,首先 看a,要考虑a=0和a≠0,当a=0时,不能构成一 元二次方程,程序是否能够提醒用户数据的合法性 。当a≠0的时候,需要输入a,b,c的组合的至少需要 满足b2-4ac等于0,大于0和小于0三种情况。 软件测试
  15. College of Mathematics and Computer Science, Hunan Normal University 

    (5)路径覆盖,设计足够的测试用例,覆盖被测 程序中所有可能的路径。  (6)对单循环进行测试的时候,假设n为可允许执 行循环的最大次数,设计测试数据的时候,要考虑 跳过循环;只执行一次循环;执行m次循环,其中 m<n;执行n-1次、n次和n+1次循环。对嵌套循 环,让外循环处于最小循环计数值,对于内层循环 进行单循环测试。 软件测试
  16. College of Mathematics and Computer Science, Hunan Normal University 

    (7)对某些需要保存数据和做初始化设置的应用 完成测试后,还需要关闭软件,重新启动进行再次 测试,看已有数据和设置是否还在。  (8)输入测试数据的时候,既要考虑合法的数据 ,还要测试输入不合法的数据时的反映。  (9)找最终用户和其他人员使用你的APP,虚心 接收他们的意见和反馈。 软件测试
  17. College of Mathematics and Computer Science, Hunan Normal University 

    调试应用是在进行了成功的测试之后,确定错误的 原因和位置,并改正错误,因此,调试也称为纠错 。  (1)在程序中插入打印语句。在App Inventor中 通过标签显示需要监视的变量或过程的值。 调试应用
  18. College of Mathematics and Computer Science, Hunan Normal University 

    (2)输出中间过程的所有结果。  如例3.12排序中一样,把排序中每一步的结果都输 出来,通过观察每一步的结果来确定算法的正确性 或查找错误的真正的位置。  (3)运行部分程序。  在调试程序的时候,经常需要查看某个变量的值或运 行部分代码。在App Inventor中,提供了预览代码 块功能(Do It),可以让你脱离程序通常的运行顺 序,单独测试某个块的运行。 调试应用
  19. College of Mathematics and Computer Science, Hunan Normal University 

    操作方法:右键单击你想执行的块,在弹出的快捷 菜单中选择预览代码块功能(Do It),该块就会开 始执行,如果这个块是一个有返回值的表达式, App Inventor将在块的上方显示注释方框,并在方 框内显示返回值。 调试应用
  20. College of Mathematics and Computer Science, Hunan Normal University 注意:

     ①使用预览代码块功能,需要连接模拟器或伴侣程 序。  ②在某些代码块里面,使用预览代码块功能,需要 提供变量的值或参数,如执行前面(项目:一元二 次方程求根)中代码块之前需要提供a,b,c的值,如 图5.7所示利用模拟器提供值。 调试应用
  21. College of Mathematics and Computer Science, Hunan Normal University 

    (4)使用预览代码块功能(Do It)渐进式开发。  (5)启用代码块和禁用代码块。  (6)理解编程语言:用纸和笔跟踪记录。 调试应用