[ 
https://issues.apache.org/jira/browse/HBASE-4821?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13245705#comment-13245705
 ] 

Keith Turner commented on HBASE-4821:
-------------------------------------

I noticed an early comment about Python code in the Accumulo test dir.  This is 
code in test/auto and we call these functional test.  This code is probably 
similar to some HBase unit test.  It supports test that run against a live 
instance of Accumulo.  The test framework starts an instance of Accumulo, runs 
a python or JAva test against that instance, and then shuts the instance down.  
Running all of the functional test takes 1 to 2 hours.

This test framework was written before random walk and it ensures basic 
functionality works.  For example theres a test to verify that adding split 
points to a table continues to work.  Since we have implemented random walk, I 
have found myself writing a lot more random walk test and less functional test. 
The reason for this is that the functional test usually test the feature when 
the system is one state, where as random walk test the same feature with the 
system in many different states.  For example a random walk test that adds 
splits points to a table will try to do that when the table and system are in 
many different states.  It may try to add the split when a tablet/region is 
migrating, currently splitting, minor compacting, major compacting, offline, 
etc.   So the likelyhood of finding a bug with addsplits() in randomwalk is 
much greater than the functional test.  The functional test will detect if the 
feature is completely broken, random walk can detect if the feature is broken 
under certain circumstances.
 

                
> A fully automated comprehensive distributed integration test for HBase
> ----------------------------------------------------------------------
>
>                 Key: HBASE-4821
>                 URL: https://issues.apache.org/jira/browse/HBASE-4821
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Mikhail Bautin
>            Assignee: Mikhail Bautin
>            Priority: Critical
>
> To properly verify that a particular version of HBase is good for production 
> deployment we need a better way to do real cluster testing after incremental 
> changes. Running unit tests is good, but we also need to deploy HBase to a 
> cluster, run integration tests, load tests, Thrift server tests, kill some 
> region servers, kill the master, and produce a report. All of this needs to 
> happen in 20-30 minutes with minimal manual intervention. I think this way we 
> can combine agile development with high stability of the codebase. I am 
> envisioning a high-level framework written in a scripting language (e.g. 
> Python) that would abstract external operations such as "deploy to test 
> cluster", "kill a particular server", "run load test A", "run load test B" 
> (we already have a few kinds of load tests implemented in Java, and we could 
> write a Thrift load test in Python). This tool should also produce 
> intermediate output, allowing to catch problems early and restart the test.
> No implementation has yet been done. Any ideas or suggestions are welcome.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply via email to