diff -r 9e165ce2e311 src-test/src/org/openbravo/test/costing/TestCosting.java
--- a/src-test/src/org/openbravo/test/costing/TestCosting.java	Tue Mar 03 12:04:20 2015 +0100
+++ b/src-test/src/org/openbravo/test/costing/TestCosting.java	Fri Mar 13 15:06:58 2015 +0100
@@ -11366,6 +11366,7 @@
   // is not yet supported without tomcat running
   private void runCostingBackground() {
     try {
+      long t1 = System.currentTimeMillis();
       OBDal.getInstance().commitAndClose();
       String url = "/ad_process/RescheduleProcess.html?IsPopUpCall=1";
       Map<String, String> params = new HashMap<String, String>();
@@ -11374,11 +11375,15 @@
       String response = doRequest(url, params, 200, "POST");
       assertTrue(response.contains("success"));
       assertFalse(response.contains("error"));
-      Thread.sleep(5000);
+      // Thread.sleep(5000);
       for (int i = 0; i < 30
           && getProcessExecutionsNumber(COSTING_PROCESSREQUEST_ID) < numCosting + 1; i++) {
-        Thread.sleep(1000);
+        Thread.sleep(250);
       }
+      long t2 = System.currentTimeMillis();
+      String runtime = getProcessDuration(COSTING_PROCESSREQUEST_ID);
+      System.out
+          .println("runCostingBackend took: " + (t2 - t1) + " processRuntime was: " + runtime);
     } catch (Exception e) {
       throw new OBException(e);
     }
@@ -11390,6 +11395,7 @@
   // is not yet supported without tomcat running
   private void runPriceBackground() {
     try {
+      long t1 = System.currentTimeMillis();
       OBDal.getInstance().commitAndClose();
       String url = "/ad_process/RescheduleProcess.html?IsPopUpCall=1";
       Map<String, String> params = new HashMap<String, String>();
@@ -11398,11 +11404,14 @@
       String response = doRequest(url, params, 200, "POST");
       assertTrue(response.contains("success"));
       assertFalse(response.contains("error"));
-      Thread.sleep(5000);
+      // Thread.sleep(5000);
       for (int i = 0; i < 30
           && getProcessExecutionsNumber(PRICECORRECTION_PROCESSREQUEST_ID) < numCosting + 1; i++) {
-        Thread.sleep(1000);
+        Thread.sleep(250);
       }
+      long t2 = System.currentTimeMillis();
+      String runtime = getProcessDuration(PRICECORRECTION_PROCESSREQUEST_ID);
+      System.out.println("runPriceBackend took: " + (t2 - t1) + " processRuntime was: " + runtime);
     } catch (Exception e) {
       throw new OBException(e);
     }
@@ -11525,6 +11534,28 @@
     }
   }
 
+  // debugging to get process_duration (assumes single-threaded ! if not gets wrong values)
+  private String getProcessDuration(String processRequestId) {
+    try {
+      OBCriteria<ProcessRun> criteria = OBDal.getInstance().createCriteria(ProcessRun.class);
+      criteria.add(Restrictions.eq(ProcessRun.PROPERTY_CLIENT,
+          OBDal.getInstance().get(Client.class, CLIENT_ID)));
+      criteria.add(Restrictions.eq(ProcessRun.PROPERTY_PROCESSREQUEST,
+          OBDal.getInstance().get(ProcessRequest.class, processRequestId)));
+      criteria.add(Restrictions.eq(ProcessRun.PROPERTY_STATUS, "SUC"));
+      criteria.addOrderBy(ProcessRun.PROPERTY_CREATIONDATE, false);
+      criteria.setMaxResults(1);
+      ProcessRun pr = (ProcessRun) criteria.uniqueResult();
+      if (pr != null) {
+        return pr.getDuration();
+      } else {
+        return "unknown";
+      }
+    } catch (Exception e) {
+      throw new OBException(e);
+    }
+  }
+
   // Get Product Transaction list
   private List<MaterialTransaction> getProductTransactions(String productId) {
     try {
