• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > 安卓下如何使用JUnit进行软件测试,安卓junit

安卓下如何使用JUnit进行软件测试,安卓junit

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了junit软件测试报告,软件测试junit,junit进行单元测试,junit,junit单元测试等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

安卓下如何使用JUnit进行软件测试,安卓junit


软件测试作为程序员必备的一项技能是决定软件开发周期长短以及软件运行成败的关键,可以说好的软件不是代码写得好而是有效的测试决定的。本文将介绍在android下利用eclipse进行开发时如何使用JUnit进行单元测试。

 

一、测试的分类(仅举例其中一些方法)

【根据测试是否知道代码】

1、黑盒测试(测试的时候不知道具体代码):指的是把被测的软件看作是一个黑盒子,我们不去关心盒子里面的结构是什么样子的,只关心软件的输入数据和输出结果。它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。 

2、白盒测试(测试的时候需要了解具体的代码):指的是把盒子盖子打开,去研究里面的源代码和程序结果。是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。

3、灰盒测试(灰盒测试介于黑盒测试与白盒测试之间):可以这样理解,灰盒测试关注输出对于输入的正确性,同时也关注内部表现,但这种关注不象白盒那样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态,有时候输出是正确的,但内部其实已经错误了,这种情况非常多,如果每次都通过白盒测试来操作,效率会很低,因此需要采取这样的一种灰盒的方法。 

【根据测试的粒度】

1、方法测试(function test):验证模块的功能。

2、单元测试(unit test):在最低的功能/参数上验证程序的准确性,比如测试一个函数的正确性。

3、集成测试(intergration test):验证几个互相有依赖关系的模块的功能。

【根据测试的次数】

1、冒烟测试(smoke test):指的是测试人员在同一时间对软件进行大量的点击或者功能测试,测试软件遭到这样的压力时是否能够扛得住,关键在于同一个用户在极短的时间内对软件进行大量重复的测试。

2、压力测试(pressure test):指的是软件或者网站在同一时间内被大量的用户访问,突出的是软件或者网站被大量客户访问时的抗压能力,一般运用于大型网站的测试。

 

二、举例对其中的JUnit测试进行讲解

这里我们想要对安卓应用程序中AppService类中的randomArray()方法进行单元测试。

注:试直接使用java的JUnit是无效的,应为java应用程序时在java虚拟机(JVM)运行的,而安卓程序则是在终端的Dalvik虚拟机运行的,所以直接对其进行JUnit测试会报错,故我们可以使用以下方法进行测试。

1、创建一个包,并在包下新建一个测试类(TestService)用来测试该方法,具体代码如下:

AppService 的randomArray方法: 
 1 package com.app.wolf;
 2 
 3 public class AppService {
 4 /**
 5      * 随机指定范围内N个不重复的数 在初始化的无重复待选数组中随机产生一个数放入结果中,
 6      * 将待选数组被随机到的数,用待选数组(len-1)下标对应的数替换 然后从len-2里随机产生下一个随机数,如此类推
 7      * 
 8      * @param max
 9      *            指定范围最大值
10      * @param min
11      *            指定范围最小值
12      * @param n
13      *            随机数个数
14      * @return int[] 随机数结果集
15      */
16     public static int[] randomArray(int min, int max, int n) {
17         int len = max - min + 1;
18 
19         if (max < min || n > len) {
20             return null;
21         }
22 
23         // 初始化给定范围的待选数组
24         int[] source = new int[len];
25         for (int i = min; i < min + len; i++) {
26             source[i - min] = i;
27         }
28 
29         int[] result = new int[n];
30         Random rd = new Random();
31         int index = 0;
32         //这个算法666,我理解的步骤应该是这样的
33         //1、首先初始化一个数组source,这个数组的长度是用户选择要开始游戏的人数,接着将数组中的元素分别是0~数组长度-1;
34         //2、接着借用一个一个随机变量index,这个变量产生的随机数范围是0~数组长度-1;
35         //3、最后将每一个index对应的source的内容对应到最后返回的result数组中;
36         //最厉害的地方就是首先用index索引取得source数组中的内容,此时数组的长度减1,接着用数组的最后一个元素来代替之,
37         //这样就不会出现数组中元素被重复使用的情况了。
38         for (int i = 0; i < result.length; i++) {
39             // 待选数组0到(len-2)随机一个下标
40             index = Math.abs(rd.nextInt() % len--);
41             // 将随机到的数放入结果集
42             result[i] = source[index];
43             // 将待选数组中被随机到的数,用待选数组(len-1)下标对应的数替换
44             source[index] = source[len];
45         }
46         for(int i:result){
47             System.out.print(i+"\t");
48         }
49         return result;
50     }
51 
52 }
  
  TestService类:
 1 package com.app.wolf.testService;
 2 
 3 import com.app.wolf.AppService;
 4 
 5 import android.R.integer;
 6 import android.test.AndroidTestCase;
 7 
 8 public class TestService extends AndroidTestCase {
 9 
10     /**
11      * 用JUnit测试randomArray方法
12      * @throws Exception
13      */
14     public void testRandomArray() throws Exception {
15<



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 安卓下如何使用JUnit进行软件测试,安卓junit

相关文章

  • 2017-05-26Android studio .gitignore 文件的内容,android.gitignore
  • 2017-05-26Android音频开发之基础知识介绍
  • 2017-05-26Android Doze模式源码分析,androiddoze
  • 2017-07-22详解Android中的SQLite数据库存储
  • 2017-05-26编译器开发系列--Ocelot语言5.表达式的有效性检查,--ocelot有效性
  • 2017-05-26自定义一个全屏的AlertDialog。,全屏alertdialog
  • 2017-05-26Linux简介及常用命令使用5--linux shell编程入门,5--linux编程入门
  • 2017-05-26android 通过uri获取bitmap图片并压缩,
  • 2017-05-26list集合的排序Comparator和Collections.sort,collections.sort排序
  • 2017-05-228.2.2 Bitmap引起的OOM问题

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 悬浮对话框的实现,悬浮对话框实现
    • android源码解析之(三)--)HandlerThread
    • Android SDK镜像更新网速慢的解决问题,androidsdk
    • 初识android中的动画,初识android动画
    • Form and Control KeyEvent
    • 关于异地容灾的感触
    • Android关于Dex拆分(MultiDex)技术的解析
    • 接入微信分享过程的喜和泪
    • Android之ViewTreeObserver
    • android 5.X Toolbar+DrawerLayout实现抽屉菜单

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有