自动化测试复习提纲之移动测试(二)
基于图像理解的移动应用自动化测试自动化脚本录制与回放简介
GUI测试脚本录制
基于坐标
基于控件树
基于图像
大多数移动应用在不同平台上设计的UI布局结构极为相似,因此可以利用这种相似性进行移动应用的GUI 测试脚本录制与回放
框架
脚本结构
脚本录制
屏幕截图
控件截图
操作类型与操作位置
设备分辨率、设备序列号
脚本回放图像特征对比
根据图标的特征进行比对,找到正确图标。
根据屏幕特征点进行比对,找到正确跳转画面。
最后,根据两个特征描述进行特征匹配,确定需要进行操作的控件。
布局刻画
计算机视觉算法找到所有GUI截图中的控件位置
利用OCR技术提取GUI截图中的文本
为所提取出来的控件划分控件组、行和列
坐标校正
基于布局识别的控件定位
容易受不同平台的外部布局的影响
不易受到图像变化的影响
基于图像匹配的控件定位
容易受到图像变化的影响
不易受到不同平台的外部布局的 ...
自动化测试复习提纲之源码测试(一)
回归测试前言本文由willy进行整理,18级软院复习提纲。
基本概念
版本迭代后,重新测试用例。
可有效保证代码修改的正确性并避免代码修改对被测程序其他模块产生的副作用。
部分代码修改会影响接口,导致测试用例失效。
新需求需要新用例
差分测试
通过向一系列类似的程序(或同一程序的不同实现)提供相同的输入,并观察它们执行过程中的差异,来检测BUG。
适合于发现语义或逻辑错误,这些错误不会表现出明显的错误行为,如崩溃或断言失败。
差分测试通过使用相同功能的不同实现方法的程序来测试语义BUG,在多次输入中找出输出和过程上面的不同。同一输入上的不同程序行为之间的任何差异都被标记为潜在的BUG。
蜕变测试
不知道测试结果的正确性
蜕变测试依据被测软件的领域知识和软件的实现方法建立蜕变关系(Metamorphic Relation, MR),利用蜕变关系来生成新的测试用例,通过验证蜕变关系是否被保 ...
嵌入式复习提纲
嵌入式系统定义(重点)
IEEE定义:用于控制、监控或者辅助操作机器和设备的装置
国内定义:嵌入式系统是以应用为中心以计算机技术为基础,软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专业计算机系统
特点(重点)
形式多样,面向特定应用
得到多种类型处理器和处理器体系结构的支持
极其关注成本
有实时性和可靠性要求
使用的操作系统使用多种处理器、可裁剪、轻量型、实时可靠、可固化的嵌入式操作系统
需要专门工具和特殊方法
分类(重点)
按处理器位数:4位、8位、16位、32位、64位
按应用:信息家电、汽车电子、通信、移动终端、工业控制
按速度:强实时系统、一般实时系统、弱实时系统
按确定性:硬实时系统、软实时系统
按复杂程度:循环轮询系统、有限状态机系统、前后台机系统、单处理器多任务系统、多处理器多任务系统
典型应用(重点)工控设备、军用电子设备、航空航天、汽车电 ...
云计算复习提纲
提纲说明本提纲理论上仅适用于18级软院,请校对当年李传艺老师上课强调的考点和非考点之后进行阅读。
云计算起源与概述追求算力的几种方法
把一台计算机的计算性能提升的足够强大
集中式计算(将所有计算资源集中在一个物理系统之内)
并行计算(能有效提高计算效率,所有处理器紧耦合于中心共享)
人多力量大,机多计算强
分布式计算(由众多自治计算机组成,各自拥有私有内存,通过计算机网络通信)
传统分布式计算系统
计算机集群
将多个可信、静态的独立节点连接起来协作完成计算
计算机集群是计算抽象。
P2P网络
每个节点既是客户端也是服务器,提供部分系统资源
P2P系统是存储抽象,各个机器可以自由地加入或者是退出。
计算网格
将多个异构计算机(采用了不同的操作系统,但是能够进行有效的通信)动态、紧耦合地整合在一起完成计算任务
计算网格已经开始接近云计算
云计算云计算是 ...
计算机网络名词解释汇总(持续更新中)
包含了一些计算机网络课程中的名词解释,作为一个复习的参考,但是有很多缺漏,希望不要完全依赖。
近现代史纲要考点复习
名词解释考试时会从下列八题中出5题,每题6分,共30分 (写一段话,答出时间、地点、关键人物、事件的主要内容和意义即可)。
洋务运动洋务运动,又称自强运动。
时间19世纪60年代到90年代
地点国内
人物曾国藩,李鸿章,张之洞,左宗棠
内容晚清洋务派所进行的一场引进西方军事装备、机器生产和科学技术以挽救清朝统治的自救运动。洋务派举办的事业归纳起来有三个方面:1兴办近代企业 2 建立新式海陆军 3 创办新式学堂,派遣留学生
意义洋务运动虽然在客观上刺激中国资本主义发展、并且在一定程度上抵制了外国资本主义的经济输入 ,但并没有使中国走上富强之路。
太平天国时间1851-1864
地点在广西金田村法动反抗清朝的武装起义,攻下南京之后定都南京
人物洪秀全,杨秀清,萧朝贵,冯云山,韦昌辉,石达开
内容武装起义,从广西金田村起义,在1853年攻下江宁,定都于此,命名天京,之后被湘军攻陷。
意义太平 ...
软件工程与计算II重点整理(第20-23章)
第20、21章 软件交付、软件维护与演化1.软件维护的重要性(1)由于会出现新的需求,如不维护软件将减小甚至失去服务用户的作用。
(2)随着软件产品的生命周期越来越长,在软件生存期内外界环境发生变化的可能性越来越大,因此,软件经常需要修改以适应外界环境的改变
(3)软件产品或多或少的会有缺陷,当缺陷暴露出来时,必须予以及时的解决
2.开发可维护软件的方法(1)考虑软件的可变性:分析需求易变性、为变更进行设计
(2)为降低维护困难而开发:编写详细的技术文档并保持及时更新、保证代码可读性、维护需求跟踪链、维护回归测试基线
3.演化式生命周期模型初步开发—演化—服务—逐步淘汰—停止
(1)初步开发初始开发阶段按照传统的软件开发方式完成第一个版本的软件产品开发。第一版的软件产品可以实现全部需求,也可以(通常是)只包含部分需求——对用户来说非常重要和紧急的最高优先级需求。
(2)演化可能会有预先安排 ...
软件工程与计算II重点整理(第16-19章)
第16章 设计模式1.如何实现可修改性、可扩展性、灵活性教材263页
需要进行接口和实现的分离:通过接口和实现该接口的类;通过子类继承父类
注意:继承关系(A+B)可能使得灵活性下降,因为父类接口的变化会影响子类,这时可以通过组合关系来解决。
利用抽象类机制实现可修改性和可扩展性:只要方法的接口保持不变,方法的实现代码是比较容易修改的,不会产生连锁反应。通过简单修改创建新类的代码,就可以相当容易地做到扩展新的需求(不用修改大量与类方法调用相关的代码。
利用委托机制实现灵活性:继承的缺陷:一旦一个对象被创建完成,它的类型就无法改变,这使得单纯利用继承机制无法实现灵活性(类型的动态改变)。利用组合(委托)机制可以解决这个问题
2.策略模式设计分析:
1)首先,可以把上下文和策略分割为不同的类实现不同的职责。上下文Context类负责通过执行策略实现自己职责;而策略类Strategy只负责复杂策 ...
软件工程与计算II重点整理(第12-15章)
第12章 详细设计概述中层设计+低层设计:实现所有功能性+非功能性需求
1.详细设计的出发点需求开发的结果(需求规格说明和需求分析模型)和软件体系结构的结果(软件体系结构设计方案与原型)
明确职责建立静态模型(设计类图),明确协作建立动态模型(详细顺序图)
GRASP(General Responsibility Assignment Software Patterns)
(1)信息专家模式基本的职责分配原则之一,把职责分配给具有完成该职责所需信息的那个类
例如:总价(委托)——数目——单价——促销策略:耦合没有增加
总价(得到)——数目、单价、促销策略:增加了耦合(总价知道太多)
优点:促进低耦合、高内聚、维护封装
(2)控制器处理外部事件(用户和系统时钟发生的外部交互)
核心思想:解耦
不要界面直接调用代码,也不要代码直接调用界面,把系统/人/用例作为controller
(3)创建 ...
软件工程与计算II重点整理(第8-11章)
第八章 软件设计基础1.软件设计(名词解释)a)为使一软件系统满足规定的需求而定义系统或部件的体系结构、部件、接口和其他特征的过程;
b)设计过程的结果。
2.软件设计的核心思想复杂度控制
分解、抽象、层次性
第九、十章 软件体系结构设计与构建1.体系结构概念部件+连接件+配置
部件:承载系统主要功能,包括处理与数据
连接件:定义部件间的交互,是连接的抽象表示
配置:定义了部件和连接件之间的关联方式,将它们组织称系统的总体结构
2.体系结构的风格的优缺点常见风格模式:
(1)主程序/子程序风格部件:程序、函数、模块
连接件:它们之间的调用
控制从子程序层次结构顶部开始且向下移动
层次化分解:基于定义使用关系
单线程控制
隐含子系统结构:子程序通常合并成模块
层次化推理:子程序的正确性依赖于它调用的子程序的正确性
优点:流程清晰,易于理解;强控制性。
缺点:a.程序调用是一种强耦合的连接方式 ...