100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 软件测试实验1——语句覆盖 判定覆盖 条件覆盖 路径覆盖的用例设计及Junit测试

软件测试实验1——语句覆盖 判定覆盖 条件覆盖 路径覆盖的用例设计及Junit测试

时间:2023-02-04 03:59:59

相关推荐

软件测试实验1——语句覆盖 判定覆盖 条件覆盖 路径覆盖的用例设计及Junit测试

一、流程图

根据需求画出流程图

1、两个判定

MMM

NNN

2、两个条件

M=(x>3)&&(z<10))M={(x>3) \&\& (z<10))}M=(x>3)&&(z<10))

N=(x==4)∣∣(y>5)N={(x==4)||(y>5)}N=(x==4)∣∣(y>5)

3、四条路径

P1(1−2−4−5−7−8−9−10):M&&NP1(1-2-4-5-7-8-9-10):M \&\& NP1(1−2−4−5−7−8−9−10):M&&N

P2(1−2−4−5−7−9−10):M&&¬NP2(1-2-4-5-7-9-10):M \&\& \lnot NP2(1−2−4−5−7−9−10):M&&¬N

P3(1−2−7−8−9−10):¬M&&NP3(1-2-7-8-9-10):\lnot M \&\& NP3(1−2−7−8−9−10):¬M&&N

P4(1−2−7−9−10):¬M&&¬NP4(1-2-7-9-10):\lnot M \&\& \lnot NP4(1−2−7−9−10):¬M&&¬N

4、五条语句

O:k=0,j=0O:k=0,j=0O:k=0,j=0

P:k=x∗y−1,j=sqrt(k)P:k=x*y-1, j=sqrt(k)P:k=x∗y−1,j=sqrt(k)

Q:j=x∗y+10Q:j=x*y+10Q:j=x∗y+10

R:j=j%3R:j=j\%3R:j=j%3

S:returnjS:return \;jS:returnj

二、设计测试用例

1、语句覆盖

2、判定覆盖

3、条件覆盖

对于MMM:

x>3取真时T1,取假时F1x>3取真时T1,取假时F1x>3取真时T1,取假时F1

z<10取真时T2,取假时F2z<10取真时T2,取假时F2z<10取真时T2,取假时F2

对于NNN:

x==4取真时T3,取假时F3x==4取真时T3,取假时F3x==4取真时T3,取假时F3

y>5取真时T4,取假时F4y>5取真时T4,取假时F4y>5取真时T4,取假时F4

4、路径覆盖

三、编写Java类,调用该方法,并用Junit测试工具编写测试代码

public class Work {public int DoWork(int x, int y, int z){int k = 0, j = 0;if ( (x>3) && (z<10) ){k = x * y - 1;j = (int) Math.sqrt(k);}if ( (x == 4) || (y>5))j = x * y + 10;j = j%3;return j;}}

测试类的编写

import org.junit.*;import static org.junit.Assert.*;public class WorkTest {@BeforeClasspublic static void before(){System.out.println("Global测试开始");}@AfterClasspublic static void after(){System.out.println("Global测试结束");}@Beforepublic void setUp() throws Exception{System.out.println("-------------");System.out.println("一个测试开始了");}@Afterpublic void tearDown() throws Exception{System.out.println("一个测试结束了");}//语句覆盖@Testpublic void testStatement(){System.out.println("正在进行语句覆盖测试");assertEquals(2,new Work().DoWork(4,4,2));}//判定覆盖@Testpublic void testDecision1(){System.out.println("正在进行判定覆盖测试1");assertEquals(2,new Work().DoWork(4,4,2));}@Testpublic void testDecision2(){System.out.println("正在进行判定覆盖测试2");assertEquals(0,new Work().DoWork(2,2,5));}//条件覆盖@Testpublic void testCondition1(){System.out.println("正在进行条件覆盖测试1");assertEquals(2,new Work().DoWork(4,4,2));}@Testpublic void testCondition2(){System.out.println("正在进行条件覆盖测试2");assertEquals(0,new Work().DoWork(2,2,11));}//路径覆盖@Testpublic void testPath1(){System.out.println("正在进行路径覆盖测试1");assertEquals(2,new Work().DoWork(4,4,2));}@Testpublic void testPath2(){System.out.println("正在进行路径覆盖测试2");// assertEquals(1,new Work().DoWork(5,10,8));错误的用例设计assertEquals(1,new Work().DoWork(10,5,7));}@Testpublic void testPath3(){System.out.println("正在进行路径覆盖测试3");assertEquals(1,new Work().DoWork(2,6,12));}@Testpublic void testPath4(){System.out.println("正在进行路径覆盖测试4");assertEquals(0,new Work().DoWork(2,2,11));}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。