分割测试Android应用程序的最佳做法

时间:2010-07-15 18:12:25

标签: android testing multivariate-testing

对于Web应用程序,拆分测试通常会对各种选项进行拆分测试,以便通过Google Website Optimizer等工具最大限度地提高其效果。其中一个最令人印象深刻的例子可能是Google以及分裂如何测试数十种蓝色以找到合适的蓝色。

开发Android应用程序时,A / B测试或多变量测试是否有最佳实践?

3 个答案:

答案 0 :(得分:2)

首先来到这里然后继续结果并遇到elegant answer。 (Vincent Tsao于5月12日发表)

private static final boolean isA = UUID.randomUUID().getLeastSignificantBits() % 2 == 0; 

public void onCreate(Bundle savedInstanceState){ 
   super.onCreate(savedInstanceState); 

   if(isA){ 
       setContentView(R.layout.mainA); 
       MyApp.getInstance().tracker().trackPageView("/AUser"); 
   }else{ 
       setContentView(R.layout.mainB); 
       MyApp.getInstance().tracker().trackPageView("/BUser"); 
   } 
   ... 
}

我唯一的想法是保存选择,以便每次都返回相同的布局。

答案 1 :(得分:0)

我只是在考虑这个问题(因此Google搜索将我带到了这里)。我的搜索没有产生和框架。

如果您在启动测试之前就知道了,那么(理论上)它非常简单。启动时打电话回家并询问应用程序是否应显示A或B(并在发送结果时发送用户所在的队列)。

更有可能的是,该应用程序已经停用一周,现在您想开始测试变体。你可以上传一个新版本,这不是一个糟糕的主意。但是,如果您不愿意将自己限制在更新应用程序的人身上,那么您似乎可以从Web下载类并动态加载它们:

http://developer.android.com/reference/dalvik/system/DexFile.html http://developer.android.com/reference/dalvik/system/DexClassLoader.html

当然,您需要知道如何处理您下载的课程。我猜你的应用程序会打电话回家更新,然后下载一个dex文件和一个说明文件,说明它应该替换哪个类。

我自己没试过。无论你做什么,我都觉得这不会是直截了当的。

答案 2 :(得分:-3)

最佳解决方法是构建可通过移动网络浏览器访问的移动应用。因此,您可以实现优化或类似的/ b资源。尽管如此,您还是失去了使用本机应用程序的好处。如果您尝试像在网络上那样对本机应用进行a / b测试。对不起,你好运,至少据我所知,