ST-9101-HW1.pdf

‫ﺑﻪ ﻧﺎم ﺧﺪا‬
‫داﻧﺸﻜﺪه ﻣﻬﻨﺪﺳﻲ ﻛﺎﻣﭙﻴﻮﺗﺮ داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ‬
‫درس آزﻣﻮن ﻧﺮم اﻓﺰار – ﻧﻴﻤﺴﺎل اول ‪91-92‬‬
‫ﺗﻤﺮﻳﻦ اول‬
‫ﻣﻮﻋﺪ ﺗﺤﻮﻳﻞ ‪ 06‬آذر ‪1391‬‬
‫‪ (1‬ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺑﺮﻧﺎﻣﻪ زﻳﺮ‪ ،‬ﺑﻪ ﺳﻮاﻻت ﭘﺎﺳﺦ دﻫﻴﺪ‪:‬‬
‫• ﺗﻮﺟﻪ‪ :‬ﺑﺮاي ﺗﻤﺎم ﻣﺜﺎلﻫﺎ از ﻣﺠﻤﻮﻋﻪ }‪ {-8,-5,-3,0,3,5,8‬اﺳﺘﻔﺎده ﻛﻨﻴﺪ‪.‬‬
‫)‪ Fault (a‬را ﻣﺸﺨﺺ و ﺗﺮﻣﻴﻢ ﻛﻨﻴﺪ‪.‬‬
‫)‪ (b‬ﺑﺮاي ﭼﻪ ﻣﻘﺎدﻳﺮي از ‪ s‬ﻧﺘﻴﺠﻪ آزﻣﻮن ‪ failure‬اﺳﺖ؟ ﺑﺎﻣﺜﺎﻟﻲ ﻧﺘﻴﺠﻪ ﻣﻮرد اﻧﺘﻈﺎر و ﻧﺘﻴﺠﻪ اﻳﻦ ﺑﺮﻧﺎﻣﻪ را ﻧﺸﺎن‬
‫دﻫﻴﺪ‪.‬‬
‫)‪ (c‬ﺑﺮاي ﭼﻪ ﻣﻘﺎدﻳﺮي از ‪ s‬آزﻣﻮن ﺑﺮﻧﺎﻣﻪ ‪ fault‬را اﺟﺮا ﻧﻤﻲ ﻛﻨﺪ؟‬
‫)‪ (d‬ﺑﺮاي ﭼﻪ ﻣﻘﺎدﻳﺮي از ‪ s‬آزﻣﻮن ﺑﺮﻧﺎﻣﻪ ‪ fault‬را اﺟﺮاﻣﻴﻜﻨﺪ اﻣﺎ ﻧﺘﻴﺠﻪ آﻧﭽﻪ درﺣﺎﻻت ﻣﻴﺎﻧﻲ وﭼﻪ درﺣﺎﻟﺖ ﭘﺎﻳﺎﻧﻲ‬
‫ﻣﺸﺨﺺ ﻛﻨﻨﺪه ﺣﺎﻟﺖ ﻏﻠﻂ ﻧﻴﺴﺖ؟‬
‫)‪ (e‬ﺑﺮاي ﭼﻪ ﻣﻘﺎدﻳﺮي از ‪ s‬ﺑﺮﻧﺎﻣﻪ در ﺣﺎﻻت ﻣﻴﺎﻧﻲ‪ error‬اﺳﺖ اﻣﺎ در ﻧﻬﺎﻳﺖ ‪ failure‬ﻧﻴﺴﺖ؟ ﺑﺎﻣﺜﺎﻟﻲ ﻧﺘﻴﺠﻪ اﻳﻦ‬
‫ﺑﺮﻧﺎﻣﻪ دراوﻟﻴﻦ ﺣﺎﻟﺖ ﻣﻴﺎﻧﻲ ﻏﻠﻂ را ﺑﺎ ﻧﺘﻴﺠﻪ ﻣﻮرد اﻧﺘﻈﺎر درآﻧﺤﺎﻟﺖ ﻣﻴﺎﻧﻲ ﻣﻘﺎﻳﺴﻪ ﻛﻨﻴﺪ‪.‬‬
‫‪ (2‬ﻗﺴﻤﺖ ‪ 2.4‬ﻣﺴﺌﻠﻪ ‪3‬‬
‫‪ (3‬ﺑﺮاي ﺑﺮﻧﺎﻣﻪ اول ﮔﺮوه ﺧﻮد‪ ،‬ﺑﻪ ازاي ﻫﺮ ﻳﻚ از ﭘﻮﺷﺶﻫﺎي‬
‫• )‪Edge Coverage (EPC‬‬
‫• )‪Prime Path Coverage (PPC‬‬
‫• )‪All Uses Coverage(AUC‬‬
‫ﻣﺮاﺣﻞ زﻳﺮ را اﻧﺠﺎم دﻫﻴﺪ‪:‬‬
‫)‪ (a‬اﺳﺘﺨﺮاج ﮔﺮاف ‪ EPC (Control Flow Graph) CFG‬و ‪ PPC‬و ﮔﺮاف ‪ Data Flow Graph‬ﺑﺮاي ‪AUC‬‬
‫)‪ (b‬اﺳﺘﺨﺮاج ﻧﻴﺎزﻣﻨﺪي ﻫﺎي آزﻣﻮن‪.‬‬
‫• در اﺳﺘﺨﺮاج ﻧﻴﺎزﻣﻨﺪيﻫﺎي آزﻣﻮن ﻣﺮﺑﻮط ﺑﻪ ‪ ،PPC‬ﻣﺤﺎﺳﺒﻪ دﺳﺘﻲ ﺗﺎ ﺳﻄﺢ ‪) 8‬ﻣﺴﻴﺮﻫﺎي ﺳﺎده ﺑﻪ ﻃﻮل ‪(8‬‬
‫ﻛﺎﻓﻲ ﺧﻮاﻫﺪ ﺑﻮد و ﺑﺮاي ﻧﻴﺎزﻣﻨﺪيﻫﺎي ﻧﻬﺎﻳﻲ آزﻣﻮن ﻣﻲ ﺗﻮاﻧﻴﺪ از اﺑﺰار ﻣﻮﺟﻮد در ﺳﺎﻳﺖ ﻛﺘﺎب درس اﺳﺘﻔﺎده‬
‫ﻧﻤﺎﻳﻴﺪ‪ .‬ﻧﻴﺎزﻣﻨﺪﻳﻬﺎي آزﻣﻮن ﻧﻬﺎﻳﻲ و ﻃﺮﻳﻘﻪ ﺑﺪﺳﺖ آوردن آﻧﻬﺎ راﺑﻪ ﻃﻮر ﻛﺎﻣﻞ در ﭘﺎﺳﺦ ﺧﻮد ذﻛﺮ ﻛﻨﻴﺪ‪.‬‬
‫)‪ (c‬ﻃﺮاﺣﻲ ﻣﻮارد آزﻣﻮن ﺑﺮاي ﭘﻮﺷﺶ ﻧﻴﺎزﻣﻨﺪي ﻫﺎي آزﻣﻮن و ﻣﺸﺨﺺ ﻛﺮدن اﻳﻨﻜﻪ ﻫﺮ ﻣﻮرد آزﻣﻮن‪ ،‬ﭼﻪ ﻧﻴﺎزﻣﻨﺪي‬
‫ﻫﺎي آزﻣﻮﻧﻲ را ﭘﻮﺷﺶ ﻣﻲ دﻫﺪ‪.‬‬
‫• ﺑﺮاي ﻫﺮ ﻣﻌﻴﺎر آزﻣﻮن‪ ،‬ﺑﺪﺳﺖ آوردن ‪ 15‬ﻣﻮرد آزﻣﻮن ﻛﻪ اﻟﺒﺘﻪ ﻫﺮ ﻛﺪام‪ ،‬ﺗﻌﺪادي ﻧﻴﺎزﻣﻨﺪي آزﻣﻮن ﺟﺪﻳﺪ‬
‫)ﻏﻴﺮ از آﻧﭽﻪ ﺗﻮﺳﻂ ﺳﺎﻳﺮ ﻣﻮارد آزﻣﻮن ﭘﻮﺷﺶ داده ﻣﻴﺸﻮد( را ﭘﻮﺷﺶ دﻫﻨﺪ‪ ،‬ﻛﻔﺎﻳﺖ ﻣﻴﻜﻨﺪ‪.‬‬
‫)‪ (d‬ﻣﺸﺨﺺ ﻛﺮدن ﻧﻴﺎزﻣﻨﺪي ﻫﺎي آزﻣﻮن ﻏﻴﺮﻣﻤﻜﻦ)‪(infeasible‬‬
‫• ﻧﺸﺎن دادن دو ﻣﻮرد از ﻧﻴﺎزﻣﻨﺪﻳﻬﺎي آزﻣﻮن ﻏﻴﺮﻣﻤﻜﻦ‪ ،‬ﻛﺎﻓﻲ ﻣﻲ ﺑﺎﺷﺪ‪ .‬در ﻛﻞ اﻳﻦ ﻣﺴﺌﻠﻪ‪ ،‬ﻣﺴﺌﻠﻪاي‬
‫‪ Undecidable‬اﺳﺖ اﻣﺎ ﺑﺮاي ﺑﺮﻧﺎﻣﻪ ﻫﺎي ﻛﻮﭼﻚ‪ ،‬ﺑﺎ اﺳﺘﺪﻻل ﻣﻴﺘﻮان ﺗﺎ ﺣﺪ ﺧﻮﺑﻲ ﻏﻴﺮﻣﻤﻜﻦ ﺑﻮدن ﭘﻮﺷﺶ‬
‫ﻳﻚ ﻧﻴﺎزﻣﻨﺪي آزﻣﻮن را ﻧﺸﺎن داد‪.‬‬
‫)‪ (e‬ﺗﻌﻴﻴﻦ ﻧﺘﻴﺠﻪ ﻣﻮرد اﻧﺘﻈﺎر ﺑﺮاي ﻫﺮ ﻣﻮرد آزﻣﻮن‬
‫)‪ (f‬اﺟﺮاي ﻣﻮارد آزﻣﻮن ﺑﺮ روي ﺑﺮﻧﺎﻣﻪ ﺗﺤﺖ آزﻣﻮن و ﺛﺒﺖ ﻧﺘﺎﻳﺞ ﺑﺪﺳﺖ آﻣﺪه‬
‫• ﺗﺮﺟﻴﺤﺎ ﺑﺎ اﺳﺘﻔﺎده از ﭼﺎرﭼﻮب ‪.JUnit‬‬
‫)‪ (g‬ﻣﻘﺎﻳﺴﻪ ﻧﺘﺎﻳﺞ ﺑﺪﺳﺖ آﻣﺪه و ﻧﺘﺎﻳﺞ ﻣﻮرد اﻧﺘﻈﺎر و ﮔﺰارش ﺧﻄﺎﻫﺎي اﺣﺘﻤﺎﻟﻲ ﻳﺎﻓﺖ ﺷﺪه در ﺑﺮﻧﺎﻣﻪ‬
‫• ﺗﻤﺮﻳﻦ ﻫﺎ ﺑﻪ ﺻﻮرت ﮔﺮوﻫﻲ اﺳﺖ )ﻣﻄﺎﺑﻖ ﮔﺮو هﻫﺎي ﻣﺸﺨﺺ ﺷﺪه(‬
‫• ﭘﺎﺳﺦ ﺗﻤﺮﻳﻦ ﻫﺎ ﻣﻲ ﺑﺎﻳﺴﺖ ﺗﺎﻳﭗ ﺷﺪه و درﻛﻼس درس ﺑﻪ ﺻﻮرت ﭘﺮﻳﻨﺖ ﺷﺪه‪ ،‬ﺑﻪ اﺳﺘﺎد ﺗﺤﻮﻳﻞ ﮔﺮدد ‪.‬ﻫﻤﭽﻨﻴﻦ‬
‫ﻧﺴﺨﻪ اﻟﻜﺘﺮوﻧﻴﻜﻲ آن را ﺑﻪ آدرس ‪ [email protected]‬ارﺳﺎل ﻧﻤﺎﺋﻴﺪ‪.‬‬
‫• آﺧﺮﻳﻦ ﺗﺎرﻳﺦ ﺗﺤﻮﻳﻞ ﺗﻤﺮﻳﻦﻫﺎ‪ 6 ،‬آذر ﻣﻲ ﺑﺎﺷﺪ ‪.‬ﺗﻤﺮﻳﻦﻫﺎﻳﻲ ﻛﻪ دﻳﺮﺗﺮ از ﻣﻮﻋﺪ ﺗﺤﻮﻳﻞ داده ﺷﻮﻧﺪ‪ ،‬ﻣﺸﻤﻮل ﻛﺴﺮ‬
‫ﻧﻤﺮه ﺧﻮاﻫﻨﺪ ﺷﺪ ‪.‬ﻟﺬا ﺳﻌﻲ ﻛﻨﻴﺪ اﻧﺠﺎم ﺗﻤﺮﻳﻦ را ﺗﺎ روزﻫﺎي ﭘﺎﻳﺎﻧﻲ ﺑﻪ ﺗﺎﺧﻴﺮ ﻧﻴﺎﻧﺪازﻳﺪ‪.‬‬
‫• ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ اﻳﻨﻜﻪ ﻓﺮﺻﺖ ارﺳﺎل ﺑﺮﻧﺎﻣﻪﻫﺎي ﮔﺮوه ﻫﺎ ﺑﻪ اﺗﻤﺎم رﺳﻴﺪه اﺳﺖ‪ ،‬در ﺻﻮرﺗﻲ ﻛﻪ ﺑﺮﻧﺎﻣﻪ ﻫﺎي ﺧﻮد را‬
‫ﺗﺎﻛﻨﻮن ﺗﻌﻴﻴﻦ ﻧﻜﺮده اﻳﺪ‪ ،‬ﻫﺮ ﭼﻪ زودﺗﺮ اﻗﺪام ﻧﻤﺎﺋﻴﺪ ﺗﺎ در اﻧﺠﺎم ﺗﻤﺮﻳﻦ ﺑﺎ ﻣﺸﻜﻞ ﻣﻮاﺟﻪ ﻧﺸﻮﻳﺪ‪.‬‬
‫ﻣﻮﻓﻖ و ﻣﻮﻳﺪ ﺑﺎﺷﻴﺪ‬