【转载】App测试中的那些不可遗忘的基础知识

App测试是一项批判性的工作,目的就是找出软件中的缺陷。这里暂时不去深究为什么要进行App测试,以及App测试带来的好处。只介绍App测试中一些基本的测试方法。根据是否查看代码程序分为黑盒测试和白盒测试;根据是否运行软件又可分为静态测试和动态测试。

黑盒测试:又叫功能测试或行为测试,只需考虑各个功能,不需要考虑整个软件的内部结构及代码。

白盒测试:访问代码,通过检查代码的线索来协助测试。

静态测试:测试软件不运行的部分,只是检查和审核。

动态测试:使用和运行软件进行测试。

1、静态黑盒测试:检查产品说明书,并在软件编写之前找出问题

· 对产品说明书或软件需求报告进行高级审查:

(1)站在一个设计者的角度进行审查,找出根本性问题或遗漏之处

(2)站在客户(使用者)的角度来审查,因为软件质量的定义是满足客户的需求

(3)研究现有的标准和规范,可以是公司习惯用语和约定、行业要求、GUI、安全标准;检查所用标准是否正确、遗漏,是否与标准和规范相抵触

(4)审查和测试类似软件,检查它的规模、复杂性、测试性、质量和可靠性、安全性

· 对产品说明书或软件需求报告进行低层次测试:

一份优秀的产品说明书或者需求报告:必须是完整、准确、精确(不含糊、清晰)、一致、贴切、合理、代码无关、可测试性

2、动态黑盒测试:在不了解软件如何工作的前提下进行测试

两种基本方法:通过性测试和失效性测试

选择测试用例:等价类划分:把软件具有相似输入,相似输出,相似操作的分在一组。一个等价类或等价类划分是指测试相同目标或者暴露相同软件缺陷的一组测试用例。

等价类划分的目标:把可能的测试用例集缩减到可控制且仍然足以测试软件的小范围内。

(1)测试数据

通过性测试

a) 边界条件:软件运行在计划操作界限的边界情况。测试边界包括测试临近边界的有效数据、测试最后一个可能有效的数据、测试刚超过边界的无效数据。

b)次边界条件:典型的次边界条件:2的幂、ASCII表

c)测试默认、空白、空值、零值和无这些数据

失效性测试

d)测试非法、错误、不正确和垃圾数据

(2)测试状态

软件状态:软件当前所处的条件或者模式。

状态测试:测试程序的状态及其转换。

步骤:

1)建立状态转换图

2)减少要测试的状态及其转换的数量

a. 每一种状态至少访问一次

b. 测试状态之间最不常用的分支

c. 测试所有错误状态及其返回值

d. 测试随机状态转换

e. 测试看起来是最常见和普遍的状态转换

** 通过性状态测试**:审查软件,描绘状态,尝试各种合法可能性,确认状态及其转换正常。

失效性状态测试:竞争条件、重复(检查内存泄漏)、压迫(在不够理想条件下运行:内存小,磁盘空间少...尽量限制软件的必要条件)、重负(提供条件任其发挥)。

3、静态白盒测试:在不执行软件的条件下有条理地仔细审查软件设计、体系结构和代码,从而找出软件缺陷的过程

(1) 编码标准和规范:可靠性、可读性/可维护性、可移植性

(2)通用代码审查清单:

a. 数据引用错误  ->   缓存区溢出

b. 数据声明错误  <-  不正确地声明和使用变量和常量

c. 计算错误

d. 比较错误    <-  边界条件问题

e. 控制流程错误  <-  循环等控制结构未按预期方式工作,由计算或比较错误间接引起

f. 子程序参数错误 <-  子程序不正确地传递数据

g. 输入/输出错误

h. 其他检查    ->  编码、可移植、兼容

4、动态白盒测试:结构化测试,检查代码并观察运行状况,利用查找代码功能和实现方式得到的信息来确定哪些需要测试,哪些不需要,如何开展测试,包括如下内容:

(1) 直接测试底层函数过程,子程序和库(API)

(2) 以完整程序的方式从顶层测试软件,根据对软件运行的了解调整测试用例

(3)从软件获得读取变量和状态信息的访问权,确定测试与预期结果是否相符,强制软件以正常测试难以实现的方式运行

(4) 估算执行测试时命中的代码量和具体代码,调整测试,去掉多余的测试用例,补充遗漏的用例

动态白盒测试与调试的区别:都包括处理软件缺陷和查看代码的过程,但是它们的目标不同:测试的目标是寻找软件缺陷;调试的目标是修复缺陷

测试方法:分段测试(单元测试和集成测试)、数据覆盖、代码覆盖

数据覆盖

数据流覆盖,在软件中完全跟踪一批数据。

次边界:与动态黑盒测试类似。

公式和等式:类似除法运算中,考虑除数为0的情况。

错误强制:迫使软件中的所有错误提示信息显示出来。

代码覆盖:测试程序的状态以及程序的流程,设法进入和退出每一个模块,执行每一行代码,进入软件每一条逻辑和决策分支

代码覆盖包括:程序语句和代码行覆盖、分支覆盖(比如判断语句中if分支和else分支)、条件覆盖(一个条件中可能包含几个子条件,要覆盖每一个子条件及它们的组合)。

App测试其实就是在用户之前使用和运行软件,尽早找出软件中存在缺陷。我们不可能对软件进行完全测试,只可能在测试有限的用例后使得软件仍然存在bug的概率尽可能小。以上所述仅仅只是一点皮毛,App测试覆盖的知识面很广,需要学习的还有很多!!

时间: 2024-10-12 08:58:43

【转载】App测试中的那些不可遗忘的基础知识的相关文章

软件测试中的那些不可遗忘的基础知识

软件测试是一项批判性的工作,目的就是找出软件中的缺陷.这里暂时不去深究为什么要进行软件测试,以及软件测试带来的好处.只介绍软件测试中一些基本的测试方法.根据是否查看代码程序分为黑盒测试和白盒测试:根据是否运行软件又可分为静态测试和动态测试. 黑盒测试:又叫功能测试或行为测试,只需考虑各个功能,不需要考虑整个软件的内部结构及代码. 白盒测试:访问代码,通过检查代码的线索来协助测试. 静态测试:测试软件不运行的部分,只是检查和审核. 动态测试:使用和运行软件进行测试. 1.静态黑盒测试:检查产品说明

软件測试中的那些不可遗忘的基础知识

软件測试是一项批判性的工作,目的就是找出软件中的缺陷. 这里临时不去深究为什么要进行软件測试,以及软件測试带来的优点. 仅仅介绍软件測试中一些主要的測试方法.依据是否查看代码程序分为黑盒測试和白盒測试:依据是否执行软件又可分为静态測试和动态測试. 黑盒測试:又叫功能測试或行为測试,仅仅需考虑各个功能.不须要考虑整个软件的内部结构及代码. 白盒測试:訪问代码,通过检查代码的线索来协助測试. 静态測试:測试软件不执行的部分,仅仅是检查和审核. 动态測试:使用和执行软件进行測试. 1.静态黑盒測试:检

【转载】App测试中ios和Android的区别:

App测试中ios和Android的区别: 1.        Android长按home键呼出应用列表和切换应用,然后右滑则终止应用: 2.        多分辨率测试,Android端20多种,ios较少: 3.        手机操作系统,Android较多,ios较少且不能降级,只能单向升级:新的ios系统中的资源库不能完全兼容低版本中的ios系统中的应用,低版本ios系统中的应用调用了新的资源库,会直接导致闪退(Crash): 4.        操作习惯:Android,Back键是

【转载】移动app测试中的主要问题

对于每个使用智能手机或平板的人来说,app都是不可或缺的.一个app是针对一个特定环境开发的.在移动背景下,通常被称为移动app.App技术自2007年iphone的商业发布时就为人们所熟知了.苹果App商店的推出,打开了软件app的一个新的销售渠道.随之,用于其他操作系统的类似App商店,例如安卓市场,诺基亚商店,黑莓App世界,Mac App商店,三星Apps,以及Windows Phone市场,不久后也一一推出了.很长一段时间,大家只关注用于个人使用的app,但现在情况改变了. App的商

移动app测试中的主要问题

Kerstin Knab是德国慕尼黑Maiborn Wolff股份有限公司的高级IT顾问.她有10多年的复杂软件开发和测试项目方面的经验.她通过电信.金融和公路收费行业的项目掌握了深厚的知识,尤其是移动app测试.质量管理,故障管理以及测试自动化等领域的知识. ? 对于每个使用智能手机或平板的人来说,app都是不可或缺的.一个app是针对一个特定环境开发的.在移动背景下,通常被称为移动app.App技术自2007年iphone的商业发布时就为人们所熟知了.苹果App商店的推出,打开了软件app的

【转】移动App测试中的最佳做法

一说起软件测试,测试员想到肯定是去检查文件,功能,API,性能并确定软件是否安全,以及关于软件特定部分的其他事项.但是对于移动测试,测试员不得不基于用户移动使用模式考虑移动相关的功能. 本文是基于我的工作经验而写的.作为一名敏捷软件开发团队的软件质量保证经理,我一心投入iPhone,Android,WindowsPhone7的移动apps和移动webapps.在XING移动团队的日常工作以及与其他移动测试专家交流的过程中,我深刻了解了移动测试工作的困难.渐渐地,我明确了什么是帮助改进同事们和我的

移动App测试中的最佳做法

每项开发的新功能都需要进行测试.移动app测试中功能测试是一个重要方面,移动测试员应该要进行手动测试和自动化测试.刚开始测试时,测试员必须把移动app 当做"黑盒"一样进行手动测试,看看提供的功能是否正确并如设计的一样正常运作.除了经典软件测试,像点击按钮看看会发生什么,测试员还必须执行更多功能的移动设备专门的测试. 如今,现代移动设备都有触摸屏,要求多点触控动作来与它们互动.设备可以是纵向或横向显示屏.它们提供动作,倾斜和螺旋传感器.它们有不同的接口可以连接其他设备或服务,比如GPS

[转]移动App测试中的最佳做法

Daniel Knott 用过各种不同编程语言和软件质量保证工具.他在软件开发和测试方面干了七年,自2010年起,他一直在德国汉堡的XING AG公司就职,几个项目里,比如XING调查和XING建议,他负责测试管理,测试自动化和测试执行.Daniel现在是XING移动和XING API团队的质量保证团队负责人.在XING移动团队中,他还负责XING安卓和iPhone Apps的测试管理和测试自动化.Daniel在包括像Robotium, KIF (Keep It Functional), Sel

.net中的并行编程系列-1.基础知识

最近半年一直研究用.net进行并行程序的开发与设计,再研究的过程中颇有收获,所以画了一个图总结了一下并行编程的基础知识点,这些知识点是并行编程的基础,有助于我们编程高性能的程序,里面的某些结构实现机制也蕴含着丰富的软件设计思想,在后续的文章中我会对图里面提到某些数据结构或同步机制的源码进行分析. 注:虽然使用的平台是.net ,但大部分知识点和平台以及语言无关,相关数据结构其他相关平台都有实现,包括优化手段都非常相似. .net中的并行编程系列-1.基础知识,布布扣,bubuko.com