一次简单的集成测试(2)

发表于:2011-11-10来源:未知作者:领测软件测试网采编点击数: 标签:集成测试
测试getCards方法testGetCards1 测试用例 判断返回长度是否正确; public void testGetCards1() throws Throwable { Deck deck=new Deck(); deck.addDeck(1); Vector deckcard=deck.getCards(); as

  测试getCards方法testGetCards1测试用例判断返回长度是否正确;

  public void testGetCards1() throws Throwable

  {

  Deck deck=new Deck();

  deck.addDeck(1);

  Vector deckcard=deck.getCards();

  assertEquals(52,deckcard.size());

  }

  testGetCards2测试用例从返回的结果中取任意值判断内容是否正确;

  public void testGetCards2() throws Throwable

  {

  Deck deck=new Deck();

  deck.addDeck(1);

  Vector deckcard=deck.getCards();

  Card card=(Card) deckcard.elementAt(1);

  String RET=card.toString();

  assertEquals("2H",RET);

  }

  测试shuffle方法testShuffle1用例测试在未增加牌时shuffle方法是否会出错;

  public void testShuffle1() throws Throwable

  {

  Deck deck=new Deck();

  deck.shuffle();

  Vector RET=deck.getCards();

  assertEquals(0, RET.size());

  }

  testShuffle2用例测试洗牌后纸牌的内容有没有丢失或改变;代码中使用了穷举的方法,验证每一张牌是否真实存在。是否有更好的测试方法呢?

  public void testShuffle2() throws Throwable

  {

  Deck deck=new Deck();

  Deck deck2=new Deck();

  deck.addDeck( 1);

  deck2.addDeck( 1);

  Vector carddeck= deck.getCards();

  Vector carddeck2= deck2.getCards();

  deck.shuffle();

  Card card,card2;

  boolean RET;

  for(int j=0;j<52;j++){

  card=(Card) carddeck.elementAt( j);

  RET=false;

  for(int i=0;i<52;i++){

  card2=(Card) carddeck2.elementAt(i);

  if(card2.toString().equals( card.toString()))

  RET=true;

  }

  assertEquals(true,RET);

  }

  }

  testShuffle3用例测试洗牌后牌的数量是否错误。

  public void testShuffle3() throws Throwable

  {

  Deck deck=new Deck();

  deck.addDeck( 1);

  deck.shuffle();

  Vector RET=deck.getCards();

  assertEquals(52, RET.size());

  }

  注:由于在源代码中已经注明只使用一幅牌,所以测试过程中未考虑牌多于一幅的情况;

  思考问题:

  是否考虑异常情况?在本次的例子中,当不增加纸牌而取某一张牌时会出现错误,但是否有必要进行这种测试?

  在getCard方法中如果测试者不知道Card类如何使用,那么将无法对测试结果进行判断。当设计文档编写的不够细致时会不会对白盒测试阻碍,这个阻碍会有多大呢?

  测试shuffle方法是否有更好的方法呢?类似这种情况在实际应用中可能会很多,有时可能无法使用穷举、边界值、分类等方法来进行测试,这时应该如何进行测试呢?

  由于测试代码的增多,提高了错误存在于测试代码中的风险,这时应该如何处理呢?

  考虑testBurnIt1测试,当toString方法改变时,可能会引起testBurnIt1测试失败,这样会增加测试代码的维护难度,应该如何解决这一问题呢?

原文转自:http://www.ltesting.net