移动应用测试流程

news2024/11/19 17:34:14

  以下是这段时间测试手机app的流程总结。

  从需求阶段开始介入。参加软件功能设计,在软件编码之前,在仍有可能大的设计变更的时候,积极参加软件的计划阶段,这会帮助我们了解正被考虑的折衷和权衡从而了解客户需要的产品的雏形。在此阶段内,可以进行测试用例的设计,因为在设计测试用例过程中,更加容易掌握整个应用的流程功能,并且还能将设计图上模糊或不合理的纠出来,从而进一步明确需求。

  界面搭建阶段开始展开测试。由于移动平台的厂商,机型较多。同一个界面在不同屏幕的手机有不同的表现。尤其是android系统低分辨率的手机容易出现图标按钮的拉升、畸形的现象。所以在功能逻辑测试前 尽量进行一次UI测试,以减少开发风险。畸形覆盖测试应尽可能覆盖不同的操作系统及流行的厂商的机型。

  

  功能测试中最常用的测试方法莫过于回归测试了。开发人员在完成某一功能模块的编码工作后,就交互给测试人员进行测试。测试人员根据测试用例进行测试,在完成一轮测试后,将测试过程发现的bug提交到项目管理工具上,如jira,redmine,bugzilla, testdirecor等。并根据每个bug的影响严重程度划分优先级。将其assign给相应的开发人员。开发人员根据bug的优先级进行修改。修复完成后,测试人员进行第二轮测试,也就是回归测试。回归测试的目的一方面在于验证bug是否修改好,另一方面则是为了检查开发人员在修复bug过程中有没有引入新的问题。

  功能测试侧重于一个模块的测试。在进行完各个模块的功能测试后,接下来就应该进行系统测试。集成测试展开的目的是为了检查模块在整合之后会不会造成某些功能不可用或数据传递接收是否正常。

  系统测试完成后,应该再进行一次机型覆盖测试。与前面的界面机型覆盖测试不同,这一轮的机型覆盖测试关注的是逻辑功能层面。因为有些逻辑代码在某些系统是不工作的。在我的测试经验中,就遇到不少类似的例子。比如某个方法在ios6以上的机子是可以正常工作的,但是ios5的机子则不能正常工作。

  系统测试结束后进行最后一轮的验收测试。此轮测试根据验收文档的验收点,一一进行验证。以保证交到客户手中的版本缺陷是最小的。

  如需了解更多测试技术信息请关注:深圳多测师软件与技术服务有限公司

  1 开发测试用例的基本策略

  在测试中,有两种不同的测试思路,它们分别是功能性测试和结构性测试。

  功能性测试,也称为黑盒测试,其基本理念是:任何程序都可以被看作是将输入定义域取值映射到输出值域的函数。采用功能性测试来开发测试用例,唯一使用的信息是软件的规格说明。

  结构性测试,也称为白盒测试,即测试人员将根据功能实现的方式来开发测试用例。

  功能性测试的优点在于,其开发的测试用例是与软件实现无关的,即使实现发生改变,测试用例依然有效。功能性测试的缺点在于,其开发出的测试用例可能存在严重的冗余。

  结构性测试的优点在于它可以提供定义良好的测试覆盖率指标,从而能够可视化地表现软件的已测试范围,而其缺点在于其开发出的测试用例依赖于实现。

  因此,我们开发测试用例的基本策略是:采用功能性测试的方法来开发测试用例,然后利用测试覆盖率指标来提高测试覆盖范围和去除冗余的测试用例,从而保证测试用例的质量。

  上述的测试用例的开发策略体现了这样一种思想:单元测试所测试的是类或对象的行为,而不是类或对象的成员函数;单元测试应该以行为为中心,而不必担心是哪个类在被测试。有些成员函数只是参与到一个特定的功能(feature)中,而不是实现该功能,因此不值得单独测试这样的成员函数。将重点放在测试行为上,而不是每个单独的成员函数上,我们就可以更好地兼顾到测试的覆盖率和重构的简易度。

  2 边界值测试

  边界值测试是基于如下的两个假定:

  软件的bug更可能出现在输入变量的极值附近.

  软件失效极少由两个(或更多)缺陷同时发生所引起.

  基于以上的假定,边界值测试按如下的方法产生测试用例:

  对每个输入变量,在其最小值、略高于最小值、略低于最大值和最大值处取值,这4个值被记为min,min+,max-和max。

  只让一个变量取以上的极值,而其他变量都取出正常值。

  边界值测试很适合于输入变量是互相独立的物理量的情况。这里的关键词是“独立”和“物理量”。由于这些变量互相独立,因此我们可以仅让其中一个变量取极值,而让其他变量取正常值。由于这些变量是物理量,因此它们往往存在极值(即使不存在极值,我们常常也可以人为设定出用于测试的极值)。

  3 健壮性测试

  健壮性测试负责测试被测方法对异常情况的处理是否正确。在单元测试中,我们应该通过模拟异常情况的发生,来测试错误处理逻辑。

  但是必须注意的是,如果被测方法本身并没有被要求必须处理某类异常情况,那么就无需对被测方法进行健壮性测试。仅对真正需要进行异常情况处理的代码作健壮性测试。

  4 等价类测试

  等价类测试的思想是通过每个等价类中的一个元素来开发测试用例,从而降低测试用例的冗余度。等价类测试的关键是确定出类的等价关系,通常的方法是预测可能的实现,并考虑在实现中必须提供的功能操作。

  等价类测试不仅可以针对输入变量划分等价类,也可以针对输出结果划分等价类。因此,在使用等价类测试时,要兼顾输入和输出,通盘考虑,这样往往会有很好的测试效果。当划分出合理的等价类之后,在等价类的边界值处进行边界值测试,将带来更好的测试效果。

  一些常见的划分等价类的标准有:

  ● 存在与否

  ● 取值范围

  ● 元素顺序

  ● 元素个数

  ● 数据格式


 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/183518.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Docker部署oracle -11g

Docker部署oracle -11g 拉取镜像 docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g启动容器 docker run -d -p 1521:1521 --name oracle11g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g执行 docker ps 命令确认容器启动成功 进行配置 &#xf…

蓝桥杯 分巧克力

题目描述 儿童节那天有 K 位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。 小明一共有 NN 块巧克力,其中第 ii 块是 H_i \times WiHi​Wi 的方格组成的长方形。为了公平起见, 小明需要从这 NN 块巧克力中切出 K 块巧克力分给小朋友们。切…

读书笔记:神经网络的学习 train_neuralnet.py ← 斋藤康毅

提醒:本例涉及到三个 Python 文件,即 two_layer_net.py,train_neuralnet.py,mnist.py 等。 显然,要进行神经网络的学习,必须先构建神经网络。 因此,本文先构建了一个2层神经网络。代码详见 two_…

玩转代码|解决Chrome浏览器内置谷歌翻译功能无法使用问题!

最近这几天在使用Chrome浏览器的内置谷歌翻译功能时,总是一直停留在不翻译的状态,一开始我还以为是网络波动过几天就好了,过了好几天依旧是这样。去看了新闻才知道谷歌翻译已经退出了中国市场。根据TechCrunch的消息称,谷歌发言人…

我本芬芳

我本芬芳推荐语: 读完前几章,一边为惠才遇人不淑感到遗憾,又不觉想起自己的童年种种,书中简单的三言两语,却又不断地在触动我。我不由得想到上世纪六七十年代的女子们,也就是我的奶奶外婆们,将自…

我的周刊(第076期)

我的信息周刊,记录这周我看到的有价值的信息,主要针对计算机领域,内容主题极大程度被我个人喜好主导。这个项目核心目的在于记录让自己有印象的信息做一个留存以及共享。🎯 项目python-wechaty[1]Wechaty 是一个开源聊天机器人框架…

力扣刷题|226.翻转二叉树、101. 对称二叉树

文章目录LeetCode 226.翻转二叉树题目链接🔗思路递归法迭代法LeetCode 101. 对称二叉树题目链接🔗思路递归法迭代法相关题目LeetCode 226.翻转二叉树 题目链接🔗 LeetCode 226.翻转二叉树 思路 这道题目使用前序遍历和后序遍历都可以&…

PVID和VID相关小知识

欢迎来到东用知识小课堂!1.PVID和VID的区别PVID和VID经常出现于二、三层交换机里,很多时候由于PVID和VID的设置不合理,造成VLAN划分变得混乱。一般你去超市买东西有个扫描设备扫描一下商品上的标签,然后价格就会出现。商品上的标签…

分布式锁与数据库悲观、乐观锁

分布式锁 什么是分布式锁 要介绍分布式锁,首先要提到与分布式锁相对应的是线程锁、进程锁。 1.线程锁 主要用来给方法、代码块加锁。当某个方法或代码使用锁,在同一时刻仅有一个线程执行该方法或该代码段。线程锁只在同一JVM中有效果,因为…

Redis主从复制与读写分离

1、为什么要主从复制、读写分离Redis在作为缓存的时候,随着项目访问量的增加,对Redis服务器的操作也越加频繁,虽然Redis读写速度都很快,但是一定程度上也会造成一定的延时,甚至出现宕机的可能性,这时候就出…

如何使用知行之桥搭建SFTPServer

知行之桥EDI系统同时支持SFTP Server和SFTP Client功能,既可以作为SFTP Server供多个Client连接,也可以作为Client连接多个Server。无论是作为SFTP Server还是SFTP Client,都只需要简单的配置即可实现。 SFTP Server的特性包括一下几点&…

【React全家桶】react路由

react路由5.1. 路由的简介5.2 路由的基本使用5.3 路由组件与一般组件5.4 NavLink及其封装5.5 Switch5.6 路由的模糊匹配与严格匹配5.7 Redirect重定向5.8 向路由组件传递参数5.9 编程式路由导航5.10withRouter的使用5.12 BrowserRouter与HashRouter的区别5.1. 路由的简介 单页W…

代码随想录--二叉树章节总结 Part III

代码随想录–二叉树章节总结Part III 1.Leetcode106 从中序与后序遍历序列构造二叉树 给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。 解题思路…

【Go基础】并发编程

文章目录1. 并发模型2. Goroutine的使用3. Channel的同步与异步4. 并发安全性5. 多路复用6. 协程泄漏7. 协程管理1. 并发模型 任何语言的并行,到操作系统层面,都是内核线程的并行。同一个进程内的多个线程共享系统资源,进程的创建、销毁、切…

【监控开发】jps命令怎么远程调用另一个IP的机器,jstatd服务支持

jsp命令远程调用咩有Linux服务器启动jstatd服务的时候Linux服务器如何启动jstatd服务1.查找jdk所在目录2.在jdk的bin目录下创建文件jstatd.all.policy3.给这个文件赋权4.这个文件写入安全配置,赋值粘贴即可5.启动jstatd服务6.查看是否启动成功再去另外一台服务器调用…

第一章:Go语言为并发而生

在早期 CPU 都是以单核的形式顺序执行机器指令。Go语言的祖先C语言正是这种顺序编程语言的代表。顺序编程语言中的顺序是指:所有的指令都是以串行的方式执行,在相同的时刻有且仅有一个 CPU 在顺序执行程序的指令。 随着处理器技术的发展,单核…

C语言深度解剖-关键字(4)

目录 signed、unsigned 关键字补充内容 关于大端和小端 大小端存储数据方式 判断大小端 深入理解数据存储 练习: 写在最后: signed、unsigned 关键字补充内容 关于大端和小端 我们通过在内存中存储一个值, 用于观察数据在内存中的存…

Python连接Liunx中mysql数据库-保姆级教程

首先确保你的liunx中已经安装好了mysql数据库如果没有安装mysql数据库看这篇文章Centos6从零开始安装mysql和tomcat后台环境,并成功部署Tomcat项目图文详细过程 python连接Liunx中mysql数据库进行增删改查liunx中相关环境改变Python中连接liunx中的mysql数据库在Nav…

上班第一件事:马上卸载这个恶心的软件!

一上班就被Notepad给恶心到了。“如果不同意政治观点,就在你的源码中添加随机字符。”这个Notepad作者侯今吾真是把自己当做大人物了啊?!率性而为,根本不再考虑用户的感受了。 这个Twitter帖子很快就被一片骂声淹没,这…

【每日CSS3代码】

1-1 两栏布局【1/27】 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevi…