Prove correctness of unit test
        Posted  
        
            by 
                Timo Willemsen
            
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by Timo Willemsen
        
        
        
        Published on 2011-03-04T07:12:42Z
        Indexed on 
            2011/03/04
            7:24 UTC
        
        
        Read the original article
        Hit count: 304
        
I'm creating a graph framework for learning purposes. I'm using a TDD approach, so I'm writing a lot of unit tests. However, I'm still figuring out how to prove the correctness of my unit tests
For example, I have this class (not including the implementation, and I have simplified it)
public class SimpleGraph(){
 //Returns true on success
 public boolean addEdge(Vertex v1, Vertex v2) { ... }
 //Returns true on sucess
 public boolean addVertex(Vertex v1) { ... }
}
I also have created this unit tests
@Test
public void SimpleGraph_addVertex_noSelfLoopsAllowed(){
 SimpleGraph g = new SimpleGraph();
 Vertex v1 = new Vertex('Vertex 1');
 actual = g.addVertex(v1);
 boolean expected = false;
 boolean actual = g.addEdge(v1,v1);
 Assert.assertEquals(expected,actual);
}
Okay, awesome it works. There is only one crux here, I have proved that the functions work for this case only. However, in my graph theory courses, all I'm doing is proving theorems mathematically (induction, contradiction etc. etc.).
So I was wondering is there a way I can prove my unit tests mathematically for correctness? So is there a good practice for this. So we're testing the unit for correctness, instead of testing it for one certain outcome.
© Stack Overflow or respective owner