根据是否知道源代码测试可以分为黑盒和白盒。

黑盒:功能测试。

白盒:知道源代码,要写测试代码。

根据测试的粒度。

方法测试:

单元测试:

集成测试:

系统测试:

根据测试的暴力程度。

压力测试:谷歌工程师给我们提供了一个monkey + 次数指令可以进行压力测试。

冒烟测试:

在Android工程下创建了一个这样的类,运行的时候有异常。

 package com.example.unit;

 public class Test {

     /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("哈哈");
} }

Invalid layout of java.lang.String at value
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (javaClasses.cpp:136), pid=4608, tid=3764
# fatal error: Invalid layout of preloaded class
#
# JRE version: (7.0_72-b14) (build )
# Java VM: Java HotSpot(TM) Client VM (24.72-b04 mixed mode windows-x86 )
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
#
# An error report file with more information is saved as:
# D:\android\adt-bundle-windows-x86-20131019\workspace\单元测试\hs_err_pid4608.log
#
# If you would like to submit a bug report, please visit:
# http://bugreport.sun.com/bugreport/crash.jsp
#

分析:Android工程是运行在Dalivk虚拟机上的,是运行在手机里面的,手机里面谷歌封装了一个Dalivk虚拟机,这段代码是java代码是运行在JVM上的,所以会挂掉。

要进行单元测试,Android中需要继承 AndroidTestCase这个类。

 package com.example.unit;

 import android.test.AndroidTestCase;

 public class CalcTest extends AndroidTestCase {
public void testAdd() {
Calc calc = new Calc();
int result = calc.add(3, 5);
assertEquals(8, result);
}
}

如果直接运行上面的代码会报异常,does not specify a android.test.InstrumentationTestRunner instrumentation or does not declare uses-library android.test.runner in its AndroidManifest.xml(没有指定android.test。在其AndroidManifest.xml文件中,未声明use -library android.test.runner)需要在清单文件里面配置函数库。

 <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.unit"
android:versionCode="1"
android:versionName="1.0" > <uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<instrumentation android:name="android.test.InstrumentationTestRunner"
android:targetPackage="cn.example.unit" android:label="Tests for My App" /> <application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<uses-library android:name="android.test.runner" />
<activity
android:name="com.example.unit.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity> </application> </manifest>

<uses-library android:name="android.test.runner" /> 这段代码的作用是告诉系统我要用到系统的一些函数库。

 <instrumentation android:name="android.test.InstrumentationTestRunner"
android:targetPackage="cn.example.unit" android:label="Tests for My App" />

这行代码的作用是:指定我要测试哪个应用。

如果说ppt搞丢了,找不到需要配置的东西,可以创建针对当前需要测试的工程,搞一个测试工程,测试工程的清单文件里面会将这两项配置自动更新出来。

最新文章

  1. blog已搬迁
  2. 又发现一个msdn的坑
  3. js正则匹配只能输入有效数字可加小数点
  4. 【转】 WebService到底是什么?
  5. Android studio 下JNI编程实例并生成so库
  6. AjaxPro使用方法
  7. ELK beats通用配置说明(12th)
  8. Hadoop Datanode节点无法启动(All directories in dfs.data.dir are invalid)
  9. android学习--视图列表(ListView和ListActivity)
  10. Android提高第二篇之SurfaceView的基本使用
  11. Java 多线程并发编程之 Synchronized 关键字
  12. ARTS打卡计划第一周-Share-系统字典模块的设计
  13. 洛谷P2278操作系统
  14. linux上java解加密(AES/CBC)异常:java.lang.SecurityException: JCE cannot authenticate the provider BC办法
  15. ocacle sql: 两张表左连接 ,1对多,取一条数据,取按时间最新的
  16. 【转载】 强化学习(三)用动态规划(DP)求解
  17. Dbutils 的JDBC链接
  18. LinkedIn实时低延迟数据抓取系统Databus开源
  19. RabbitMQ上手记录–part 6-Shovel
  20. Java Spring中@Query中使用JPQL LIKE 写法

热门文章

  1. opus代码解析
  2. 30-socketserver类
  3. app自动化测试之实战应用(魅族计算器)
  4. Django--Ajax 提交
  5. apache伪静态配置(URL重写)
  6. 微信小程序中this指向作用域问题this.setData is not a function报错
  7. mybatis教程4(动态SQL)
  8. [转]Angular4---部署---将Angular项目部署到IIS上
  9. osgi.net框架简介
  10. java命令运行带包的类