Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
13_应用调试
Search
powerhope
August 11, 2016
0
130
13_应用调试
App Inventor移动应用开发
powerhope
August 11, 2016
Tweet
Share
More Decks by powerhope
See All by powerhope
1_App Inventor初步
powerhope
0
190
2_1_HelloPurr
powerhope
0
130
2_2_8-Ball(魔术8球)
powerhope
2
120
3_App Inventor编程基础
powerhope
0
100
4_组件-用户界面
powerhope
0
140
5_组件-界面布局
powerhope
0
140
6_组件-多媒体
powerhope
0
89
7_组件-绘图动画
powerhope
0
110
8_组件-传感器
powerhope
0
120
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1356
200k
Debugging Ruby Performance
tmm1
70
11k
The Power of CSS Pseudo Elements
geoffreycrofte
60
5k
Building Effective Engineering Teams - LeadDev
addyosmani
28
1.8k
Embracing the Ebb and Flow
colly
80
4.1k
Fashionably flexible responsive web design (full day workshop)
malarkey
398
65k
jQuery: Nuts, Bolts and Bling
dougneiner
59
7.1k
Building an army of robots
kneath
300
41k
Docker and Python
trallard
34
2.7k
Building Your Own Lightsaber
phodgson
99
5.7k
GraphQLとの向き合い方2022年版
quramy
32
12k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
244
20k
Transcript
College of Mathematics and Computer Science, Hunan Normal University 瞿绍军
湖南师范大学数学与计算机科学学院
College of Mathematics and Computer Science, Hunan Normal University
程序设计风格是指个人编制程序时所表现出来的特 点、习惯和逻辑思维等。良好的编程风格可以减少 编码的错误,减少读程序的时间,从而提高软件的 开发效率。 程序设计风格的内容包括:规范化的程序内部文档 、数据结构的详细说明、清晰的语句结构、遵守某 一编程规范。 程序设计风格
College of Mathematics and Computer Science, Hunan Normal University
(1)命名规范。标识符、变量、函数名等名称应 该按意取名,做到见名知义,如在App Inventor中 ,退出按钮的名称用“按钮_退出”或“退出_按钮”命 名既可以从名字中知道按钮的功能,也知道了这个 名称代表的组件是按钮。 程序设计风格
College of Mathematics and Computer Science, Hunan Normal University
(2)尽量为程序块加上明确的注释。对于较复杂 的程序或算法需要有注释文件,并在程序中注明注 释文件名,在注释文件中注明程序名。 程序设计风格
College of Mathematics and Computer Science, Hunan Normal University
(3)模块本身要高内聚,模块之间要低耦合。设 计时模块内部各元素彼此结合非常紧密,而模块之 间相互联系的紧密程度非常低,即模块的功能要单 一,不要将几个不同的功能放在一个模块中,这样 的模块才具有信息隐蔽和独立性,在修改某一模块 时,不会对其他模块产生影响。 (4)数据说明详细。对变量名、过程名、过程参 数、复杂的数据结构要有详细的说明。 程序设计风格
College of Mathematics and Computer Science, Hunan Normal University
(5)界面设计规范、美观和清晰。界面设计遵从 的原则是:界面简洁朴素,控件摆放整齐,颜色风 格统一,基于用户的心里模型,而不是基于工程实 现模型。 (6)对复杂的程序分而治之,化繁为简,逐个击 破。 程序设计风格
College of Mathematics and Computer Science, Hunan Normal University
(7)输入和输出。编写输入和输出程序时,应考 虑的原则:输入操作步骤和输入格式尽量简单;输 入数据的合法性、有效性做必要的检查和信息反馈 ;交互式输入时,提供可用的选择和边界值等。尽 量少的让用户输入,输入时尽量多给出参考。自动 保存用户的输入成果。 (8)全局导航需要一直存在,最好还能预览其它 模块的动态。 程序设计风格
College of Mathematics and Computer Science, Hunan Normal University
(9)不要让用户等待任务完。 (10)效率。 程序设计风格
College of Mathematics and Computer Science, Hunan Normal University
软件测试的目的是为了发现错误而执行程序的过程 ; 一个好的测试用例能够发现至今尚未发现的错误; 一个成功的测试是发现了至今尚未发现的错误的测 试。 软件测试
College of Mathematics and Computer Science, Hunan Normal University
软件测试应注意以下指导性原则:(1)测试用例 应有输入数据和预期的输出两部分组成。(2)测 试用例不仅要选用合理的输入数据,还要选择不合 理的输入数据。(3)除了检查程序是否做了它应 该做的事,还应检查程序是否做了它不应该做的事 。(4)长期保留测试用列。(5)对发现错误较多 的程序段,应进行更深入的测试。(6)应避免测 试自己的程序,可相互之间交叉进行测试。 测试只能证明软件存在错误而不能证明软件没有错 误,测试是无法显示潜在的错误和缺陷,继续进一 步错误可能还会找到其它错误和缺陷。 软件测试
College of Mathematics and Computer Science, Hunan Normal University
软件测试方法一般分两大类:动态测试和静态测试 。而动态测试方法中又根据测试用例的设计方法不 同,分为黑盒测试和白盒测试。 软件测试
College of Mathematics and Computer Science, Hunan Normal University
结合软件测试方法和App Inventor的特点,在AI测 试中: (1)测试要覆盖每一条语句。 (2)每个判断条件,每一个程序分支都至少通过 一遍。如成绩等级判定,首先在每个成绩段选取一 个成绩(95,84,75,67,40),其次,选取每 个成绩等级的边界值(90,80,70,60),这样 才能保证每个判断条件都能执行到,也对边界数据 的正确与否做了有效的测试。 软件测试
College of Mathematics and Computer Science, Hunan Normal University
(3)通过连续输入数据测试变量是否进行初始化 和使用前是否恢复到最初状态等。如例3.3阶乘计 算器1代码 软件测试
College of Mathematics and Computer Science, Hunan Normal University
计算第一个阶乘的结果是正确的,但连续计算几个 阶乘,就会发现从第二个阶乘开始结果就是错误的 。如当第一次输入5的时候正确的计算出了5的阶乘 ,但当输入10的阶乘计算出现错误,正确的应该是 3628800,是什么原因造成了这样的结果? 回到图5.2中的代码,原来计算阶乘的全局变量jc 在每次计算之前未被初始化到最初的状态,这是很 多初学编程的人容易犯错误,一定要注意。 软件测试
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三种情况。 软件测试
College of Mathematics and Computer Science, Hunan Normal University
(5)路径覆盖,设计足够的测试用例,覆盖被测 程序中所有可能的路径。 (6)对单循环进行测试的时候,假设n为可允许执 行循环的最大次数,设计测试数据的时候,要考虑 跳过循环;只执行一次循环;执行m次循环,其中 m<n;执行n-1次、n次和n+1次循环。对嵌套循 环,让外循环处于最小循环计数值,对于内层循环 进行单循环测试。 软件测试
College of Mathematics and Computer Science, Hunan Normal University
(7)对某些需要保存数据和做初始化设置的应用 完成测试后,还需要关闭软件,重新启动进行再次 测试,看已有数据和设置是否还在。 (8)输入测试数据的时候,既要考虑合法的数据 ,还要测试输入不合法的数据时的反映。 (9)找最终用户和其他人员使用你的APP,虚心 接收他们的意见和反馈。 软件测试
College of Mathematics and Computer Science, Hunan Normal University
调试应用是在进行了成功的测试之后,确定错误的 原因和位置,并改正错误,因此,调试也称为纠错 。 (1)在程序中插入打印语句。在App Inventor中 通过标签显示需要监视的变量或过程的值。 调试应用
College of Mathematics and Computer Science, Hunan Normal University
(2)输出中间过程的所有结果。 如例3.12排序中一样,把排序中每一步的结果都输 出来,通过观察每一步的结果来确定算法的正确性 或查找错误的真正的位置。 (3)运行部分程序。 在调试程序的时候,经常需要查看某个变量的值或运 行部分代码。在App Inventor中,提供了预览代码 块功能(Do It),可以让你脱离程序通常的运行顺 序,单独测试某个块的运行。 调试应用
College of Mathematics and Computer Science, Hunan Normal University
操作方法:右键单击你想执行的块,在弹出的快捷 菜单中选择预览代码块功能(Do It),该块就会开 始执行,如果这个块是一个有返回值的表达式, App Inventor将在块的上方显示注释方框,并在方 框内显示返回值。 调试应用
College of Mathematics and Computer Science, Hunan Normal University 注意:
①使用预览代码块功能,需要连接模拟器或伴侣程 序。 ②在某些代码块里面,使用预览代码块功能,需要 提供变量的值或参数,如执行前面(项目:一元二 次方程求根)中代码块之前需要提供a,b,c的值,如 图5.7所示利用模拟器提供值。 调试应用
College of Mathematics and Computer Science, Hunan Normal University
(4)使用预览代码块功能(Do It)渐进式开发。 (5)启用代码块和禁用代码块。 (6)理解编程语言:用纸和笔跟踪记录。 调试应用