diff --git a/slapos/runkvmresiliencytestsuite/__init__.py b/slapos/runkvmresiliencytestsuite/kvmresiliencytestsuite.py
similarity index 71%
rename from slapos/runkvmresiliencytestsuite/__init__.py
rename to slapos/runkvmresiliencytestsuite/kvmresiliencytestsuite.py
index 777f84ec11ca9a070d5162287b28b94d5c9aaf74..76346b1f0b7095cd4412644f9c5b2de05894a9cc 100644
--- a/slapos/runkvmresiliencytestsuite/__init__.py
+++ b/slapos/runkvmresiliencytestsuite/kvmresiliencytestsuite.py
@@ -31,24 +31,14 @@ from slapos.recipe.addresiliency.takeover import takeover
 
 import slapos.slap
 
+import logging
 import argparse
 import random
 import string
 import time
 import urllib
 
-def parseArguments():
-  parser = argparse.ArgumentParser()
-  parser.add_argument('--server-url', type=str)
-  parser.add_argument('--key-file', type=str)
-  parser.add_argument('--cert-file', type=str)
-  parser.add_argument('--computer-id', type=str)
-  parser.add_argument('--partition-id', type=str)
-  parser.add_argument('--software', type=str)
-  parser.add_argument('--namebase', type=str)
-  parser.add_argument('--kvm-rootinstance-name', type=str)
-  args = parser.parse_args()
-  return args
+logger = logging.getLogger('KVMResiliencyTest')
 
 def fetchMainInstanceIP(current_partition, software_release, instance_name):
   return current_partition.request(
@@ -74,57 +64,54 @@ def fetchKey(ip):
   """
   return urllib.urlopen('http://%s:10080/get' % ip).read().strip()
 
-def main():
+def runTestCase(server_url, key_file, cert_file,
+                computer_id, partition_id, software,
+                namebase, kvm_rootinstance_name):
   """
   Run KVM Resiliency Test.
   Requires a specific KVM environment (virtual hard drive), see KVM SR for more
   informations.
   """
-  # XXX-Cedric: add erp5 scalabilitytest so that we can receive/send informations
-
-  arguments = parseArguments()
-
   slap = slapos.slap.slap()
-  slap.initializeConnection(arguments.server_url, arguments.key_file, arguments.cert_file)
+  slap.initializeConnection(server_url, key_file, cert_file)
   partition = slap.registerComputerPartition(
-      computer_guid=arguments.computer_id,
-      partition_id=arguments.partition_id
+      computer_guid=computer_id,
+      partition_id=partition_id
   )
 
-  ip = fetchMainInstanceIP(partition, arguments.software, arguments.kvm_rootinstance_name)
-  print('KVM IP is %s.' % ip)
+  ip = fetchMainInstanceIP(partition, software, kvm_rootinstance_name)
+  logger.info('KVM IP is %s.' % ip)
 
   key = setRandomKey(ip)
-  print('Key set for test in current KVM: %s.' % key)
+  logger.info('Key set for test in current KVM: %s.' % key)
 
   # Wait for XX minutes so that replication is done
   sleep_time = 60 * 15#2 * 60 * 60
-  print('Sleeping for %s seconds.' % sleep_time)
+  logger.info('Sleeping for %s seconds.' % sleep_time)
   time.sleep(sleep_time)
 
   # Make the clone instance takeover the main instance
-  print('Replacing main instance by clone instance...')
+  logger.info('Replacing main instance by clone instance...')
   takeover(
-      server_url=arguments.server_url,
-      key_file=arguments.key_file,
-      cert_file=arguments.cert_file,
-      computer_guid=arguments.computer_id,
-      partition_id=arguments.partition_id,
-      software_release=arguments.software,
-      namebase=arguments.namebase,
+      server_url=server_url,
+      key_file=key_file,
+      cert_file=cert_file,
+      computer_guid=computer_id,
+      partition_id=partition_id,
+      software_release=software,
+      namebase=namebase,
       winner_instance_suffix='1', # XXX: hardcoded value.
   )
-  print('Done.')
+  logger.info('Done.')
 
   # Wait for the new IP (of old-clone new-main instance) to appear.
-  print('Waiting for new main instance to be ready...')
+  logger.info('Waiting for new main instance to be ready...')
   new_ip = None
   while not new_ip or new_ip == 'None' or  new_ip == ip:
-    print ip
-    print('Not ready yet. New IP is %s' % new_ip)
+    logger.info('Not ready yet. New IP is %s' % new_ip)
     time.sleep(60)
-    new_ip = fetchMainInstanceIP(partition, arguments.software, arguments.kvm_rootinstance_name)
-  print('New IP of instance is %s' % new_ip)
+    new_ip = fetchMainInstanceIP(partition, software, kvm_rootinstance_name)
+  logger.info('New IP of instance is %s' % new_ip)
 
   new_key = None
   for i in range(0, 10):
@@ -132,17 +119,43 @@ def main():
       new_key = fetchKey(new_ip)
       break
     except IOError:
-      print('Server in new KVM does not answer.')
+      logger.error('Server in new KVM does not answer.')
       time.sleep(60)
 
   if not new_key:
     raise Exception('Server in new KVM does not answer for too long.')
 
-  print('Key on this new instance is %s' % new_key)
+  logger.info('Key on this new instance is %s' % new_key)
 
   # Compare with original key. If same: success.
+  # XXX TODO
   if new_key == key:
-    print('Success')
+    logger.info('Success')
+    return True
   else:
-    print('Failure')
+    logger.error('Failure')
+    return False
+
+# Used if launched as standalone script
+def parseArguments():
+  parser = argparse.ArgumentParser()
+  parser.add_argument('--server-url', type=str)
+  parser.add_argument('--key-file', type=str)
+  parser.add_argument('--cert-file', type=str)
+  parser.add_argument('--computer-id', type=str)
+  parser.add_argument('--partition-id', type=str)
+  parser.add_argument('--software', type=str)
+  parser.add_argument('--namebase', type=str)
+  parser.add_argument('--kvm-rootinstance-name', type=str)
+  args = parser.parse_args()
+  return args
+
+def main():
+  arguments = parseArguments()
+  runTestCase(arguments.server_url, arguments.key_file, arguments.cert_file,
+              arguments.computer_id, arguments.partition_id, arguments.software,
+              arguments.namebase, arguments.kvm_rootinstance_name)
+
+if __name__ == '__main__':
+  main()