You are on page 1of 30

13 ‫ﻓﺼﻞ‬

‫اﺳﺘﺮاﺗﮋي ﻫﺎي آزﻣﺎﻳﺶ‬

Software Engineering: A Practitioner’s Approach, 6th edition
by Roger S. Pressman

‫ابراھيم فضلی‬: ‫ارائه دھنده‬


‫ﺑﺮرﺳﻲ اﺟﻤﺎﻟﻲ‬

‫اﻓﺰار ﻣﻲ ﺎﺑﺎﺷﺪ ‪ .‬ﺗﺴﺖ ﻧﺮم‬


‫ﺑﺮاي ﺗﺴﺖ ﻧﺮم اﻓ ا‬
‫ﻫﺎي ﻣﺘﻌﺪد ا‬ ‫• اﻳﻦ ﻓ ﻞ‬
‫ﻓﺼﻞ ﺗﻮﺻﻴﻒ ﻛﻛﻨﻨﺪه روش ﺎ‬
‫اﻓﺰار ﺑﺎﻳﺪ ﺑﻪ دﻗﺖ ﺑﺮﻧﺎﻣﻪ رﻳﺰي ﺷﻮد ﺗﺎ از اﺗﻼف زﻣﺎن ﺗﻮﺳﻌﻪ و ﻣﻨﺎﺑﻊ ﺟﻠﻮﮔﻴﺮي ﺷﻮد ‪.‬‬
‫اﻓﺰار آﻏﺎز ﺷﺪه و ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ‬
‫ﻧﺮم اﻓﺰا‬ ‫آزﻣﺎﻳﺶ ﺑﺎ اﺑﻌﺎدي " ﻛﻮﭼﻚ" و ﺑﺎ ﺗﻤ ﻛﺰ‬
‫ﺗﻤﺮﻛﺰ ﺑﺑﺮ اﺟﺰاي ﻧ م‬
‫ﻗﺎﺑﻠﻴﺖ ﻫﺎي ﺳﻴﺴﺘﻢ ﺑﻪ اﺑﻌﺎدي " ﺑﺰرگ " ﺑﻪ ﻛﻞ ﺳﻴﺴﺘﻢ ﺗﻮﺳﻌﻪ ﻣﻲ ﻳﺎﺑﺪ ‪ .‬اﺑﺘﺪا‬
‫ﺳﭙﺲ ﻗﻄﻌﺎت ﻣﺠﺰاي ﺗﺴﺖ ﺷﺪه‬ ‫ﻲ ﺷﻮﻧﺪ ‪ ،‬ﭙ‬
‫ﻲ ﻣﻲ‬ ‫ﻗﻄﻌﺎت ﻣﺠﺰا ﺗﺴﺖ ﺷﺪه و اﺷﻜﺎل زداﻳﻲ‬
‫ﺑﻪ ﺳﻴﺴﺘﻢ اﺿﺎﻓﻪ ﻣﻲ ﺷﻮﻧﺪ و ﺗﺴﺖ ﻣﺠﺘﻤﻊ اﻧﺠﺎم ﻣﻲ ﺷﻮد ‪ .‬ﻫﻨﮕﺎﻣﻲ ﻛﻪ ﻣﺤﺼﻮل ﻧﺮم‬
‫اﻓﺰاري ﻛﺎﻣﻞ ﻣﻲ ﺷﻮد ‪ ،‬ﺗﺴﺖ ﺳﻴﺴﺘﻢ اﻧﺠﺎم ﻣﻲ ﺷﻮد‪ .‬اﺳﻨﺎد ﻣﺮﺑﻮط ﺑﻪ وﻳﮋﮔﻲ ﻫﺎي‬
‫ﻗﺮار‬
‫دﻳﮕﺮ ﻣﻮرد ﺑﺮرﺳﻲ ﻗ ا‬
‫اﻓﺰار ﮕ‬
‫ﻛﺎري ﻣﻬﻨﺪﺳﻲ ﻧﺮم اﻓ ا‬ ‫ﻣﺤﺼﻮﻻت ﻛﺎ‬
‫ﻻ‬ ‫دﻳﮕﺮ‬
‫ﺗﻤﺎم ﮕ‬
‫ﻣﺎﻧﻨﺪ ﺎ‬
‫ﺗﺴﺖ ﺎﺑﺎﻳﺪ ﺎ‬
‫ﮔﻴﺮد ‪ .‬ﺟﺰﺋﻴﺎت ﺗﻜﻨﻴﻚ ﻫﺎي ﺗﺴﺖ و ﺳﺎﺧﺘﺎر ﻣﻮارد آزﻣﻮن در ﻓﺼﻞ ﺑﻌﺪ ﺗﻮﺻﻴﻒ ﺷﺪه‬
‫اﺳﺖ‪.‬‬

‫ارائه دھنده‪: ‬ابراھيم فضلی‬


‫روﻳﻜﺮد اﺳﺘﺮاﺗﮋﻳﻚ ﺑﻪ ﺗﺴﺖ ﻧﺮم اﻓﺰار‬

‫ﭘﻴﺪا ﻣﻲ ﻛﻨﺪ ﺗﺎ ااﺟﺘﻤﺎع ﻛﻠﻲ‬


‫اداﻣﻪ ا‬‫ﺗﺴﺖ در ﺳﻄﺢ ﺟﺰﺋﻴﺎت آآﻏﺎز ﻣﻲ ﺷﻮد و ا ا‬ ‫•‬
‫ﺳﻴﺴﺘﻢ ﻣﺒﺘﻨﻲ ﺑﺮ ﻛﺎﻣﭙﻴﻮﺗﺮ‪.‬‬
‫ﺗﻜﻨﻴﻚ ﻫﺎي ﺗﺴﺖ ﻣﺨﺘﻠﻒ‪ ،‬ﻣﻨﺎﺳﺐ در ﻧﻘﺎط ﻣﺨﺘﻠﻔﻲ از زﻣﺎن ﻫﺴﺘﻨﺪ‪.‬‬ ‫•‬
‫ﻦ اﺳﺖ‬‫ﻲ دﻫﺪ و ﻣﻤﻜﻦ‬ ‫اﻧﺠﺎمم ﻣﻲ‬
‫ﻳﺶ ررا ﺠ‬‫آزﻣﺎﻳﺶ‬
‫ﻞ ز‬
‫اﻓﺰارر ﻋﻤﻞ‬
‫ﺮم ﺰ‬‫ﺗﻮﺳﻌﻪ دﻫﻨﺪه ﻧﺮم‬
‫ﻮ‬ ‫•‬
‫ﺑﺮاي ﭘﺮوژه ﻫﺎي ﺑﺰرگ ﻳﻚ ﮔﺮوه آزﻣﻮن ﻣﺴﺘﻘﻞ اﻳﻦ ﻛﺎر را اﻧﺠﺎم دﻫﺪ‪.‬‬
‫ﻣﺨﺘﻠﻔﻲ ﻫﺴﺘﻨﺪ ‪.‬‬
‫زداﻳﻲ ﻓﻌﺎﻟﻴﺖ ﻫﺎي ﻣﺨﺘﻠﻔ‬
‫ﺗﺴﺖ و اﺷﻜﺎل زداﻳ‬ ‫•‬
‫اﺷﻜﺎل زداﻳﻲ ﺑﺎﻳﺪ در ﻫﺮ اﺳﺘﺮاﺗﮋي ﺗﺴﺘﻲ ﮔﻨﺠﺎﻧﺪه ﺷﻮد‪.‬‬ ‫•‬

‫ارائه دھنده‪: ‬ابراھيم فضلی‬


‫ﺗﻌﻴﻴﻦ ﺻﺤﺖ و اﻋﺘﺒﺎر ﺳﻨﺠﻲ‬

‫• ﻳﻚ ﺗﻤﺎﻳﺰ ﺑﻴﻦ ﺗﻌﻴﻴﻦ ﺻﺤﺖ )آآﻳﺎ ﻣﺎ ﻣﺤﺼﻮل را درﺳﺖ اﻳﺠﺎد ﻣﻲ‬


‫ﻢ(‬
‫ﻲ ﻛﻨﻴﻢ‬
‫ﻲ اﻳﺠﺎد ﻣﻲ‬‫درﺳﺘﻲ‬
‫ﻲ )آﻳﺎ ﻣﺎ ﻣﺤﺼﻮل ر‬
‫ﻢ( و اﻋﺘﺒﺎرر ﺳﻨﺠﻲ‬
‫ﻛﻨﻴﻢ‬
‫• ﺗﺴﺖ ﻧﺮم اﻓﺰار ﺗﻨﻬﺎ ﻳﻚ ﻋﻨﺼﺮ از ﺗﻀﻤﻴﻦ ﻛﻴﻔﻴﺖ ﻧﺮم اﻓﺰار‬
‫اﺳﺖ ‪.‬‬ ‫)‪(SQA‬‬
‫)‪(SQA‬ا ﺖ‬
‫• ﻛﻴﻔﻴﺖ ﺑﺎﻳﺪ در روﻧﺪ ﺗﻮﺳﻌﻪ ﻧﺮم اﻓﺰار اﻳﺠﺎد ﺷﻮد ‪ ،‬ﺷﻤﺎ ﻧﻤﻲ‬
‫ﺗﻮاﻧﻴﺪ از آزﻣﺎﻳﺶ ﺑﺮاي اﺿﺎﻓﻪ ﻛﺮدن ﻛﻴﻔﻴﺖ ﺑﻪ ﻧﺮم اﻓﺰار آﻣﺎده‬
‫ﻛﻨﻴﺪ ‪.‬‬
‫اﺳﺘﻔﺎده ﻴ‬

‫ارائه دھنده‪: ‬ابراھيم فضلی‬


‫ﺳﺎزﻣﺎﻧﺪﻫﻲ ﺑﺮاي ﺗﺴﺖ ﻧﺮم اﻓﺰار‬

‫• ﻧﻘﺶ ﮔﺮوه آآزﻣﺎﻳﺶ ﻣﺴﺘﻘﻞ )‪ (ITG‬ﺑﺮﻃﺮف ﻛﺮدن ﻣﺸﻜﻼت اﺳﺎﺳﻲ ﺑﻪ ﻫﻨﮕﺎﻣﻲ اﺳﺖ‬
‫ﻛﻪ ﺳﺎزﻧﺪه ﻣﻲ ﺧﻮاﻫﺪ ﻣﺤﺼﻮل ﺧﻮد را ﺗﺴﺖ ﻛﻨﺪ ‪.‬‬
‫آزﻣﺎﻳﺶ ﻘﻞ‬
‫ﻣﺴﺘﻘﻞ‬ ‫ﻫﺎي آ ﺎ ﺶ‬ ‫اﺳﺘﻔﺎده ااز ﺗﺗﻴﻢ ﺎ‬
‫ﺧﺼﻮص ا ﻔﺎ‬ ‫• ﻔﺎ‬
‫ﻣﻔﺎﻫﻴﻢ ﻏﻠﻂ در ﺧ‬
‫– ﺗﻮﺳﻌﻪ دﻫﻨﺪه ﺑﻪ ﻫﻴﭻ ﻋﻨﻮان ﻧﺒﺎﻳﺪ ﻋﻤﻞ آزﻣﺎﻳﺸﻲ اﻧﺠﺎم دﻫﺪ ‪.‬‬
‫ﺷﻮد ‪.‬‬
‫آزﻣﺎﻳﺶ ﺷ‬
‫ﺑﻴﺮﺣﻤﺎﻧﻪ ﺎﺑﺎﻳﺪ آ ﺎ‬
‫ﺎ‬ ‫اﻓﺮاد ﻏﻏﺮﻳﺒﻪ و ﺑﺼﻮرت‬
‫ﺗﻮﺳﻂ اﻓ ا‬ ‫– ﻧﺮم اﻓ ا‬
‫اﻓﺰار ﻂ‬
‫– آزﻣﺎﻳﺶ ﻛﻨﻨﺪﮔﺎن ﺗﺎ ﻗﺒﻞ از زﻣﺎن آزﻣﺎﻳﺶ ﻫﻴﭻ درﮔﻴﺮي ﺑﺎ ﭘﺮوژه ﻧﺒﺎﻳﺪ داﺷﺘﻪ‬
‫ﺎﺷﻨﺪ ‪.‬‬
‫ﺑﺎﺷﻨﺪ‬
‫• ﺗﻮﺳﻌﻪ دﻫﻨﺪه و ‪ ITG‬ﺑﺎﻳﺪ ﺑﺎ ﻫﻢ ﻛﺎر ﻛﻨﻨﺪ ﺗﺎ در ﺳﺮاﺳﺮ ﭘﺮوژه ﻧﺮم اﻓﺰاري از اﻧﺠﺎم ﻛﺎﻣﻞ‬
‫آزﻣﺎﻳﺶ اﻃﻤﻴﻨﺎن داﺷﺘﻪ ﺑﺎﺷﻨﺪ ‪.‬‬

‫ارائه دھنده‪: ‬ابراھيم فضلی‬


‫اﺳﺘﺮاﺗﮋي آزﻣﺎﻳﺶ ﻧﺮم اﻓﺰار ﺑﺮاي ﻣﻌﻤﺎري ﻫﺎي ﺳﻨﺘﻲ ﻧﺮم اﻓﺰار‬

‫ﺧﺎص راا‬‫ﻛﻨﺘﺮﻟﻲ ﺎ‬
‫ﻣﺴﻴﺮﻫﺎي ﻛ ﻟ‬
‫ﺎ‬ ‫ﻫﺎي آآزﻣﻮﻧﻲ ﻛﻛﻪ‬
‫ﺗﻜﻨﻴﻚ ﺎ‬
‫زﻳﺎد ااز ﻜ ﻚ‬‫اﺳﺘﻔﺎده ﺎ‬
‫آآزﻣﻮن اواﺣﺪ ‪ -‬ا ﺎ‬ ‫•‬
‫آزﻣﺎﻳﺶ ﻣﻲ ﻛﻨﻨﺪ ﺧﻄﺎﻫﺎي ﻣﻮﺟﻮد در ﻫﺮ ﺟﺰء ﻧﺮم اﻓﺰار را ﺑﻪ ﺻﻮرت ﺟﺪاﮔﺎﻧﻪ‬
‫ﺷﻨﺎﺳﺎﻳﻲ ﻛﻨﻨﺪ ‪.‬‬
‫ﺷﻨﺎﺳﺎﻳ‬
‫آزﻣﻮن ﻣﺠﺘﻤﻊ ‪ -‬ﺑﺮ ﻣﺴﺎﺋﻞ ﻣﺮﺗﺒﻂ ﺑﺎ ﺗﻌﻴﻴﻦ ﺻﺤﺖ و ﺳﺎﺧﺘﺎر ﺑﺮﻧﺎﻣﻪ ﻣﺘﻤﺮﻛﺰ اﺳﺖ ﺑﻪ‬ ‫•‬
‫ﻋﻨﻮان ﻣﺜﺎل ﺗﻌﺎﻣﻞ ﻣﻮﻟﻔﻪ ﻫﺎ ﺑﺎ ﻳﻜﺪﻳﮕﺮ‬
‫آزﻣﻮن اﻋﺘﺒﺎر ﺳﻨﺠﻲ ‪ -‬ﺗﻀﻤﻴﻦ ﻛﻨﻨﺪه اﻳﻨﻜﻪ ﻣﻌﻴﺎرﻫﺎي اﻋﺘﺒﺎر ﻧﺮم اﻓﺰار )اﻳﺠﺎد ﺷﺪه در‬ ‫•‬
‫ﺶ داده‬
‫ﭘﻮﺷﺶ‬
‫ﻲ ررا ﭘﻮ‬
‫ﻛﺎرآﻳﻲ‬
‫ري و ر‬‫ي ‪ ،‬ررﻓﺘﺎري‬
‫ﻋﻤﻠﻜﺮدي‬
‫ﺮ‬ ‫ﻧﻴﺎزﻫﺎي‬
‫ي‬ ‫ﻧﻴﺎزﻣﻨﺪﻳﻬﺎ( ﻫﻤﻪ ز‬
‫ﻞ ز ﻬ‬ ‫ﺗﺠﺰﻳﻪ و ﺗﺤﻠﻴﻞ‬
‫ﺰ‬
‫اﺳﺖ ‪.‬‬
‫آزﻣﻮن ﺳﻴﺴﺘﻢ –‪  ‬ﺗﺎﻳﻴﺪ اﻳﻨﻜﻪ ﻫﻤﻪ ﻋﻨﺎﺻﺮ ﺳﻴﺴﺘﻢ ﺑﻪ درﺳﺘﻲ ﻛﺎر ﻣﻲ ﻛﻨﻨﺪ و ﻋﻤﻠﻜﺮد‬ ‫•‬
‫و ﻛﺎرآﻳﻲ ﻣﻄﻠﻮب در ﻛﻞ ﺳﻴﺴﺘﻢ ﺑﻪ دﺳﺖ آﻣﺪه اﺳﺖ ‪.‬‬

‫ارائه دھنده‪: ‬ابراھيم فضلی‬


‫اﺳﺘﺮاﺗﮋي آزﻣﺎﻳﺶ ﻧﺮم اﻓﺰار ﺑﺮاي ﻣﻌﻤﺎري ﻫﺎي ﺳﻨﺘﻲ ﻧﺮم اﻓﺰار‬

‫ارائه دھنده‪: ‬ابراھيم فضلی‬


‫اﺳﺘﺮاﺗﮋي آزﻣﺎﻳﺶ ﻧﺮم اﻓﺰار ﺑﺮاي ﻣﻌﻤﺎري ﻫﺎي ﺳﻨﺘﻲ ﻧﺮم اﻓﺰار‬

‫ارائه دھنده‪: ‬ابراھيم فضلی‬


‫اﺳﺘﺮاﺗﮋي آزﻣﻮن ﻧﺮم اﻓﺰار ﺑﺮاي ﻣﻌﻤﺎري ﻫﺎي ﺷﻲء ﮔﺮا‬

‫• آآزﻣﻮن واﺣﺪ –‪  ‬ﻣﻮﻟﻔﻪ ﻫﺎي ﻣﻮرد آآزﻣﺎﻳﺶ ﻛﻼس ﻫﺎ ﻫﺴﺘﻨﺪ ﻧﻪ‬


‫ژ‬
‫ﻣﺎژول ﻫﺎ‬
‫• آزﻣﻮن اﺟﺘﻤﺎع – ﻫﻤﭽﻨﺎن ﻛﻪ ﻛﻼس ﻫﺎ در ﻣﻌﻤﺎري ﻣﺠﺘﻤﻊ ﻣﻲ‬
‫ارﺗﺒﺎﻃﻲ و‬
‫ﺑﺮاي ﻛﺸﻒ ﺧﻄﺎﻫﺎي ا ﺗ ﺎﻃ‬
‫رﮔﺮﺳﻴﻮن ﺑ اي‬
‫ن ﻫﺎي ﮔ ﺳ ن‬ ‫آزﻣﻮن‬
‫ﻧﺪ آز‬
‫ﺷﻮﻧﺪ‬ ‫ﺷ‬
‫ﻫﻤﻜﺎري ﺑﻴﻦ اﺷﻴﺎء اﺟﺮا ﻣﻲ ﺷﻮﻧﺪ‪.‬‬
‫• آزﻣﻮن ﺳﻴﺴﺘﻢ ﻫﺎ ‪ -‬ﺳﻴﺴﺘﻢ ﺑﻪ ﻋﻨﻮان ﻳﻚ واﺣﺪ ﻳﻜﭙﺎرﭼﻪ‬
‫ﺷﻮد ‪.‬‬
‫ﻧﻴﺎزﻣﻨﺪﻳﻬﺎ ﻛﺸﻒ ﻮ‬
‫ﺧﻄﺎﻫﺎي ﻴ ز ﻳﻬ‬
‫ي‬ ‫ﺷﻮد ﺗﺎ‬
‫ﻣﻲ ﻮ‬
‫آزﻣﺎﻳﺶ ﻲ‬
‫ز ﻳﺶ‬

‫ارائه دھنده‪: ‬ابراھيم فضلی‬


‫ﻞ آآزﻣﻮن ا ا ﻚ‬
‫اﺳﺘﺮاﺗﮋﻳﻚ‬ ‫ﻣﺴﺎﺋﻞ‬
‫ﺎ‬

‫ﻧﻴﺎزﻣﻨﺪﻳﻬﺎي ﻣﺤﺼﻮل را ﺑﻪ ﺷﻴﻮه اي ﻗﺎﺑﻞ ﺳﻨﺠﺶ و ﻗﺒﻞ از ﺷﺮوع آزﻣﻮن ﻣﺸﺨﺺ ﻛﻨﻴﺪ‪.‬‬ ‫‪‬‬
‫اﻫﺪاف آزﻣﺎﻳﺶ را ﺑﻪ ﺻﺮاﺣﺖ ﻣﺸﺨﺺ ﻛﻨﻴﺪ‪.‬‬ ‫‪‬‬
‫دﺳﺘﻪ ﻫﺎي ﻛﺎرﺑﺮان ﻧﺮم اﻓﺰار را ﺷﻨﺎﺳﺎﻳﻲ ﻛﻨﻴﺪ و ﻣﺸﺨﺼﺎﺗﻲ ﺑﺮاي ﻫﺮﻳﻚ ﺗﻮﺳﻌﻪ دﻫﻴﺪ‪.‬‬ ‫‪‬‬
‫ﻃﺮح آآزﻣﻮﻧﻲ ﺑﺎ ﺗﺎﻛﻴﺪ ﺑﺮ ﭼﺮﺧﻪ آآزﻣﻮن ﺳﺮﻳﻊ‪ ،‬ﺗﻮﺳﻌﻪ دﻫﻴﺪ ‪.‬‬ ‫‪‬‬
‫ﻧﺮم اﻓﺰاري ﻗﺪرﺗﻤﻨﺪ اﻳﺠﺎد ﻛﻨﻴﺪ ﻛﻪ ﺑﻪ ﺻﻮرﺗﻲ ﻃﺮاﺣﻲ ﺷﺪه اﺳﺖ ﻛﻪ ﺧﻮدش را آزﻣﺎﻳﺶ‬ ‫‪‬‬
‫ﻛﻨﺪ‪.‬‬
‫از ﺑﺮرﺳﻲ ﻫﺎي رﺳﻤﻲ ﻣﻮﺛﺮ ﺑﻪ ﻋﻨﻮان ﻳﻚ ﻓﻴﻠﺘﺮ ﻗﺒﻞ از آزﻣﻮن اﺳﺘﻔﺎده ﻛﻨﻴﺪ‪.‬‬ ‫‪‬‬
‫ﻣﺮورﻫﺎي ﻓﻨﻲ رﺳﻤﻲ را ﺑﺮاي ارزﻳﺎﺑﻲ اﺳﺘﺮاﺗﮋي آزﻣﻮن و ﻣﻮارد آزﻣﻮن اﻧﺠﺎم دﻫﻴﺪ‪.‬‬ ‫‪‬‬
‫ﻳﻚ روش ﺑﻬﺒﻮد ﻣﺴﺘﻤﺮ را ﺑﺮاي ﻓﺮآﻳﻨﺪ آزﻣﻮن ﺗﻮﺳﻌﻪ دﻫﻴﺪ‪.‬‬ ‫‪‬‬

‫ارائه دھنده‪: ‬ابراھيم فضلی‬


‫آزﻣﻮن واﺣﺪ‬

‫راﺑﻂ ﻫﺎي ﻣﺎژول ﺑﺮاي ﺟﺮﻳﺎن اﻃﻼﻋﺎت ﻣﻨﺎﺳﺐ آآزﻣﺎﻳﺶ ﻣﻲ ﺷﻮﻧﺪ‪.‬‬ ‫•‬
‫داده ﻫﺎي ﻣﺤﻠﻲ ﻣﻮرد ﺑﺮرﺳﻲ ﻗﺮار ﻣﻲ ﮔﻴﺮﻧﺪ ﺗﺎ اﻃﻤﻴﻨﺎن ﺣﺎﺻﻞ ﺷﻮد ﻛﻪ‬ ‫•‬
‫ﺟﺎﻣﻌﻴﺖ ﺣﻔﻆ ﺷﺪه اﺳﺖ‪.‬‬
‫ﺷﻮﻧﺪ‪.‬‬
‫ﻲ ﻮ‬‫ﻳﺶ ﻣﻲ‬
‫آزﻣﺎﻳﺶ‬‫ﺮزي ز‬
‫ﺷﺮاﻳﻂ ﻣﺮزي‬
‫ﺮﻳ‬ ‫•‬
‫ﻣﺴﻴﺮﻫﺎي )ﻣﺴﺘﻘﻞ( آزﻣﺎﻳﺶ ﻣﻲ ﺷﻮﻧﺪ‪.‬‬ ‫•‬
‫ﺷﻮﻧﺪ‪.‬‬
‫آزﻣﺎﻳﺶ ﺷ ﻧﺪ‬
‫ﺑﺎﻳﺪ آز ﺎ ﺶ‬
‫ﺑﻪ ﺧﻄﺎ ﺎ ﺪ‬‫ﻣﻨﺠﺮ ﻪ‬
‫ﻣﺴﻴﺮﻫﺎي ﻨ‬
‫ﺎ‬ ‫ﻪ‬
‫ﻫﻤﻪ‬ ‫•‬
‫راه اﻧﺪازﻫﺎ و‪ /‬ﻳﺎ ﺟﺎﻳﮕﺰﻳﻦ ﻫﺎ ﺑﺎﻳﺪ اﻳﺠﺎد ﺷﻮﻧﺪ ﺗﺎ ﻧﺮم اﻓﺰار ﻧﺎﻗﺺ آزﻣﺎﻳﺶ‬ ‫•‬
‫ﺷﻮد‪.‬‬

‫ارائه دھنده‪: ‬ابراھيم فضلی‬


‫آزﻣﻮن واﺣﺪ‬

module
to be
tested
interface
interface 
local data structures
boundary conditions
boundary conditions
independent paths
error handling paths

test cases
‫ابراھيم فضلی‬: ‫ارائه دھنده‬
‫آزﻣﻮن ﻣﺠﺘﻤﻊ‬

‫آآزﻣﻮن ﻣﺠﺘﻤﻊ ﺑﺎﻻ ﺑﻪ ﭘﺎﻳﻴﻦ‬ ‫•‬


‫ﻳﻴﻦ ﺑﺑﻪ ﺑﺑﺎﻻ‬
‫ﻊ ﭘﭘﺎﻳﻴﻦ‬
‫ﻣﺠﺘﻤﻊ‬
‫ﻮن ﺠ‬
‫آزﻣﻮن‬
‫ز‬ ‫•‬
‫آزﻣﻮن رﮔﺮﺳﻴﻮن‬ ‫•‬
‫آزﻣﻮن دود‬ ‫•‬

‫ارائه دھنده‪: ‬ابراھيم فضلی‬


‫ﻣﺠﺘﻤﻊ ﺑﺎﻻ ﺑﻪ ﭘﺎﻳ ﻦ‬
‫ﭘﺎﻳﻴﻦ‬ ‫آزﻣﻮن ﻣﺠﺘ ﻊ‬
‫ﻫﺎي اواﺑﺴﺘﻪ ﺑﻪ آ ﺎ‬
‫آﻧﻬﺎ‬ ‫ﻣﻮﻟﻔﻪ ﺎ‬
‫ﺟﺎي ﻟ‬
‫ﻫﺎ ﺑﻪ ﺎ‬
‫ﺟﺎﻳﮕﺰﻳﻦ ﺎ‬
‫اﻧﺪاز آآزﻣﻮن و ﺎ ﮕ‬
‫ﻋﻨﻮان اراه ا ا‬
‫اﺻﻠﻲ ﺑﻪ ا‬
‫ﻛﻨﺘﺮﻟﻲ ا ﻠ‬ ‫• ‪ .1‬ﺎ ل‬
‫ﻣﺎژول ﻛ ﻟ‬
‫اﺳﺘﻔﺎده ﻣﻲ ﺷﻮﻧﺪ‪.‬‬

‫• ‪ .2‬در ﻫﺮ ﻳﻚ زﻣﺎن ﻳﻚ ﺟﺎﻳﮕﺰﻳﻦ ﻓﺮﻋﻲ ﺑﺎ ﻣﺆﻟﻔﻪ ﻫﺎي واﻗﻌﻲ )ﻣﻄﺎﺑﻖ ﺑﺎ روش اول ﻋﻤﻖ ﻳﺎ اول‬
‫ﺳﻄﺢ( ﺟﺎﻳﮕﺰﻳﻦ ﻣﻲ ﺷﻮد‪.‬‬

‫• ‪ .3‬ﺑﺎ اﺿﺎﻓﻪ ﺷﺪن ﻫﺮ ﻣﻮﻟﻔﻪ آزﻣﺎﻳﺸﺎت اﻧﺠﺎم ﻣﻲ ﺷﻮﻧﺪ‪.‬‬

‫• ‪ .4‬ﭘﺲ از اﺗﻤﺎم ﻫﺮ ﻣﺠﻤﻮﻋﻪ اي از آزﻣﻮن ﻫﺎ ﺟﺎﻳﮕﺰﻳﻦ ﻓﺮﻋﻲ دﻳﮕﺮي ﺑﺎ ﻣﻮﻟﻔﻪ اﺻﻠﻲ ﺟﺎﻳﮕﺰﻳﻦ ﻣﻲ‬
‫ﺷﻮد ‪.‬‬
‫ﻮ‬

‫• ‪ .5‬ﻣﻤﻜﻦ اﺳﺖ آزﻣﻮن رﮔﺮﺳﻴﻮن ﺑﺮاي اﻃﻤﻴﻨﺎن از ﺑﺮوز ﻧﻜﺮدن ﺧﻄﺎﻫﺎي ﺟﺪﻳﺪ اﻧﺠﺎم ﺷﻮد‪.‬‬

‫ارائه دھنده‪: ‬ابراھيم فضلی‬


‫ﻣﺠﺘﻤﻊ ﺑﺎﻻ ﺑﻪ ﭘﺎﻳ ﻦ‬
‫ﭘﺎﻳﻴﻦ‬ ‫آزﻣﻮن ﻣﺠﺘ ﻊ‬

A
top module is tested with 
stubs

B F G

stubs are replaced one at 
a time, "depth first"
C
as new modules are integrated, 
some subset of tests is re‐
some subset of tests is re‐run
D E

‫ابراھيم فضلی‬: ‫ارائه دھنده‬


‫آزﻣﻮن ﻣﺠﺘﻤﻊ ﭘﺎﻳﻴﻦ ﺑﻪ ﺑﺎﻻ‬
‫اﻧﺠﺎم ﻣﻲ‬
‫ﺧﺎص ارا ا ﺎ‬
‫اﻓﺰاري ﺎ‬
‫ﻋﻤﻞ ﻧﺮم اﻓ ا‬
‫ﻳﻚ ﻞ‬‫ﻫﺎﻳﻲ ﻛﻛﻪ ﻚ‬
‫ﺳﻄﺢ ﺎﭘﺎﻳﻴﻦ در ﺧﻮﺷﻪ ﺎ‬
‫ﻫﺎي ﻄ‬ ‫• ‪ .1‬ﻟ‬
‫ﻣﻮﻟﻔﻪ ﺎ‬
‫دﻫﻨﺪ‪ ،‬ﺟﻤﻊ ﻣﻲ ﺷﻮﻧﺪ‪.‬‬

‫• ‪ .2‬ﻳﻚ راه اﻧﺪاز )ﺑﺮﻧﺎﻣﻪ ﻛﻨﺘﺮﻟﻲ( ﻧﻮﺷﺘﻪ ﻣﻴﺸﻮد ﺗﺎ ورودي و ﺧﺮوﺟﻲ ﻣﻮارد آزﻣﻮن را‬
‫ﻫﻤﺎﻫﻨﮓ ﻛﻨﺪ‪.‬‬
‫ﻫ ﺎﻫﻨﮓ‬

‫ﺷﻮﻧﺪ‪.‬‬
‫آزﻣﺎﻳﺶ ﻣﻲ ﺷ ﻧﺪ‬ ‫• ‪ .3‬ﺧ ﺷﻪ‬
‫ﺧﻮﺷﻪ ﻫﺎ آز ﺎ ﺶ‬

‫ﺳﺎﺧﺘﺎر ﻧﺎ ﻪ‬
‫ﺑﺮﻧﺎﻣﻪ‬ ‫ﺑﺎﻻ ددر ﺎﺧﺘﺎ‬
‫ﺑﻪ ﺎﻻ‬
‫ﺣﺮﻛﺖ رو ﻪ‬
‫ﺣﺎل ﻛﺖ‬
‫ﺧﻮﺷﻪ ددر ﺎل‬
‫ﺷﻮﻧﺪ و ﺧ ﺷﻪ‬ ‫• ‪ .4‬اراه اﻧﺪازﻫﺎ داﺷﺘﻪ‬
‫ﺑﺮداﺷﺘﻪ ﻣﻲ ﺷ ﻧﺪ‬
‫ﺑﺎ ﻫﻢ ﺗﺮﻛﻴﺐ ﻣﻲ ﺷﻮﻧﺪ‪.‬‬

‫ارائه دھنده‪: ‬ابراھيم فضلی‬


‫آآزﻣﻮن ﻣﺠﺘﻤﻊ ﭘﺎﻳﻴﻦ ﺑﻪ ﺑﺎﻻ‬

B F G

drivers are replaced one at a 
time, "depth first"
C

builds and integrated
D E

cluster
‫ابراھيم فضلی‬: ‫ارائه دھنده‬
‫آزﻣﻮن ﮔ ﺳ ﻮن‬
‫رﮔﺮﺳﻴﻮن‬
‫ﻫﺎي‬
‫ﻣﺎژول ﺎ‬
‫ﺧﻄﺎﻫﺎ ﺑﻪ ﺎ ل‬
‫اﻧﺘﺸﺎر ﻄﺎ ﺎ‬
‫اﻧﺠﺎم ﻣﻲ ﮔﮔﻴﺮد ‪ ،‬ا ﺎ‬
‫ﺑﺮﻧﺎﻣﻪ ﻣﻮﺟﻮد ا ﺎ‬
‫زﻣﺎﻧﻲ ﻛﻛﻪ ﺗﻐﻴﻴﺮي در ﺎ‬‫• در ﺎ‬
‫دﻳﮕﺮ را ﺑﺮرﺳﻲ ﻣﻲ ﻛﻨﺪ ‪.‬‬

‫• ‪ .1‬ﻧﻤﻮﻧﻪ اي از ﻣﻮارد آزﻣﻮن ﻣﻮﺟﻮد ﺑﺮاي آزﻣﺎﻳﺶ ﺗﻤﺎم ﻋﻤﻠﻜﺮد ﻫﺎي ﻧﺮم اﻓﺰار اﺳﺘﻔﺎده‬
‫ﺷﻮد‪.‬‬
‫ﻣﻲ ﺷ د‬

‫دﭼﺎر‬
‫زﻳﺎد دﭼﺎ‬
‫اﺣﺘﻤﺎل ز ﺎد‬
‫ﺑﻪ اﺣﺘ ﺎل‬
‫اﻓﺰار ﻛﻪ ﻪ‬
‫ﻋﻤﻠﻜﺮدﻫﺎﻳﻲ از ﻧﻧﺮم اﻓﺰا‬
‫روي ﻋ ﻠﻜ دﻫﺎ‬
‫اﺿﺎﻓﻲ ﺑﺮ ي‬
‫آزﻣﻮن اﺿﺎﻓ‬ ‫• ‪ .2‬ا د‬
‫ﻣﻮارد آز ن‬
‫ﺗﻐﻴﻴﺮ ﺷﺪه اﻧﺪ‪ ،‬ﻣﺘﻤﺮﻛﺰ ﻣﻲ ﺷﻮﻧﺪ‪.‬‬

‫• ‪ .3‬ﻣﻮارد آزﻣﻮﻧﻲ ﻛﻪ ﺑﺮ ﻣﻮﻟﻔﻪ ﻫﺎي ﻧﺮم اﻓﺰاري ﺗﻐﻴﻴﺮ ﻳﺎﻓﺘﻪ ﺗﻤﺮﻛﺰ ﻣﻲ ﻛﻨﻨﺪ‪.‬‬

‫ارائه دھنده‪: ‬ابراھيم فضلی‬


‫آزﻣﻮن دود‬
‫ﺣﺴﺎس ﻫﺴﺘﻨﺪ ﺑﻪ ﺻﻮرت‬ ‫زﻣﺎن ﻧﻴﺰ ﺎ‬‫ﺣﺎل ﺗﻮﺳﻌﻪ ﻛﻛﻪ ﺑﻪ ﺎ‬
‫ﻫﺎي در ﺎل‬ ‫در ﭘﺮوژه ﺎ‬
‫ﻣﻜﺮر )ﺑﻌﻀﻲ اوﻗﺎت روزاﻧﻪ( اﻧﺠﺎم ﻣﻲ ﺷﻮد ‪ .‬داراي ﻓﻌﺎﻟﻴﺖ ﻫﺎي زﻳﺮ‬
‫اﺳﺖ ‪:‬‬
‫ا ﺖ‬
‫• ‪ .1‬ﻣﻮﻟﻔﻪ ﻫﺎي ﻧﺮم اﻓﺰاري ﻛﻪ ﺑﻪ ﺑﺮﻧﺎﻣﻪ ﺗﺒﺪﻳﻞ ﺷﺪه اﻧﺪ ﺑﻪ ﺷﻜﻞ ﻳﻚ‬
‫ﺷﻮﻧﺪ ‪.‬‬
‫ﺗﻠﻔﻴﻖ ﻣﻲ ﺷ ﻧﺪ‬
‫ﺳﺎﺧﺘﻤﺎن ﺗﻠﻔ ﻖ‬
‫ﺎﺧﺘ ﺎن‬
‫• ‪ .2‬ﻣﺠﻤﻮﻋﻪ اي از آزﻣﻮن ﻫﺎ ﻃﺮاﺣﻲ ﻣﻲ ﺷﻮﻧﺪ ﺗﺎ ﺧﻄﺎﻫﺎﻳﻲ ﻛﻪ از ﻋﻤﻠﻜﺮد‬
‫ﺷﻮﻧﺪ ‪.‬‬
‫ﺷﻨﺎﺳﺎﻳﻲ ﺷ ﻧﺪ‬
‫ﻛﻨﻨﺪ‪ ،‬ﺷﻨﺎ ﺎ‬
‫ﺟﻠﻮﮔﻴﺮي ﻣﻲ ﻛﻨﻨﺪ‬
‫ﺳﺎﺧﺘﻤﺎن ﺟﻠ ﮔ ي‬
‫ﺻﺤﻴﺢ ﺎﺧﺘ ﺎن‬ ‫ﺤ‬
‫• ‪ .3‬ﺳﺎﺧﺘﻤﺎن ﺑﻮﺟﻮد آﻣﺪه ﺑﺎ ﺳﺎﺧﺘﻤﺎن ﻫﺎي دﻳﮕﺮ ﺗﻠﻔﻴﻖ ﺷﺪه و ﻣﺤﺼﻮل‬
‫ﭘﺎﻳﻴﻦ ﻳﺎ‬
‫ﮔﻴﺮد )اﻋاﻋﻢ از ﺑﺎﻻ ﺑﻪ ﭘﺎﻳ ﻦ‬
‫ﻗﺮار ﻣﻣﻲ ﮔ د‬
‫روزاﻧﻪ ﺗﺤﺖ آزﻣﻮن دود ﻗ ا‬
‫ﺑﻮﺟﻮد آﻣﺪه وزاﻧﻪ‬
‫ﭘﺎﻳﻴﻦ ﺑﻪ ﺑﺎﻻ(‪.‬‬

‫ارائه دھنده‪: ‬ابراھيم فضلی‬


‫)اداﻣﻪ ‪(. . .‬‬ ‫آزﻣﻮن دود‬
‫• ﻣﺰاﻳﺎي اﺳﺘﻔﺎده از آزﻣﻮن دود در ﭘﺮوژه ﻫﺎي ﭘﻴﭽﻴﺪه و ﺣﺴﺎس ﺑﻪ زﻣﺎن‬

‫رﻳﺴﻚ ﺗﻠﻔﻴﻖ ﺑﻪ ﺣﺪاﻗﻞ ﻣﻲ رﺳﺪ ‪.‬‬ ‫•‬


‫ﻧﻬﺎﻳﻲ ﺑﻬﺒﻮد ﻣﻲ ﺎﻳﺎﺑﺪ ‪.‬‬
‫ﻣﺤﺼﻮل ﺎ‬
‫ل‬ ‫ﻛﻛﻴﻔﻴﺖ‬ ‫•‬
‫ﺗﺸﺨﻴﺺ ﺧﻄﺎ و ﺗﺼﺤﻴﺢ ﺧﻄﺎ آﺳﺎﻧﺘﺮ و ﺳﺎده ﺗﺮ ﻣﻲ ﺷﻮد ‪.‬‬ ‫•‬
‫ارزﻳﺎﺑﻲ روﻧﺪ ﭘﻴﺸﺮﻓﺖ ﭘﺮوژه آآﺳﺎﻧﺘﺮ ﻣﻲ ﺷﻮد ‪.‬‬ ‫•‬

‫ارائه دھنده‪: ‬ابراھيم فضلی‬


‫اﻓﺰار‬
‫ﻋﻤﻮﻣﻲ آزﻣﻮن ﻧﻧﺮمم اﻓﺰا‬
‫ﺿﻮاﺑﻂ ﻋﻤﻮﻣ‬

‫ﺟﺎﻣﻌﻴﺖ راﺑﻂ – آزﻣﻮن ﻃﺮاﺣﻲ ﺷﺪه ﺑﺮاي ارزﻳﺎﺑﻲ راﺑﻂ ﻫﺎي داﺧﻠﻲ و ﺧﺎرﺟﻲ ‪.‬‬ ‫•‬
‫راﺑﻂ ﻫﺎي ﻣﺎژول ﺑﺎ اﺿﺎﻓﻪ ﺷﺪن ﻫﺮ ﻣﺎژول ﻳﺎ ﺧﻮﺷﻪ ﺑﻪ ﻧﺮم اﻓﺰار ﻣﻮرد آزﻣﺎﻳﺶ‬
‫ﻗﺮار ﻣﻲ ﮔﻴﺮد ‪.‬‬
‫اﻋﺘﺒﺎر ﻋﻤﻠﻜﺮدي – آآزﻣﻮن ﻃﺮاﺣﻲ ﺷﺪه ﺑﺮاي ﻛﺸﻒ ﻧﻘﺺ ﻫﺎي ﻋﻤﻠﻜﺮدي ﻧﺮم‬ ‫•‬
‫اﻓﺰار‪.‬‬
‫ﺳﺎﺧﺘﺎر‬
‫ﺧﻄﺎﻫﺎي ﻣﻮﺟﻮد در ﺎﺧﺘﺎ‬
‫ﺑﺮاي ﻛﺸﻒ ﺧﻄﺎ ﺎ‬ ‫ﺷﺪه ا‬
‫ﻃﺮاﺣﻲ ﺷ‬
‫اﻃﻼﻋﺎت ‪ -‬آآزﻣﻮن ﻃ ا‬
‫ﻣﺤﺘﻮاي اﻃﻼ ﺎت‬
‫ﺘا‬ ‫•‬
‫داده ﻫﺎي ﻣﺤﻠﻲ ﻳﺎ ﻋﻤﻮﻣﻲ ‪.‬‬
‫ﻃﺮاﺣﻲ‬
‫ﻛﺎرآﻳﻲ ﻛﻪ ددر ﻃﻃﻲ ﻃ اﺣ‬
‫ﻣﺮزﻫﺎي ﻛﺎ آ‬
‫ﺑﺮاي ﺑﺮرﺳﻲ زﻫﺎي‬
‫ﻃﺮاﺣﻲ ﺷﺪه اي‬‫ن ﻃ اﺣ‬ ‫ﻛﺎرآﻳﻲ – آز‬
‫آزﻣﻮن‬ ‫ﻛﺎ آ‬ ‫•‬
‫ﻧﺮم اﻓﺰار ﻣﺸﺨﺺ ﺷﺪه اﺳﺖ ‪.‬‬

‫ارائه دھنده‪: ‬ابراھيم فضلی‬


‫ﺷﻲء ﮔ ا‬
‫ﮔﺮا‬ ‫اﻓﺰار ﺷ ء‬
‫ﻧﺮم اﻓﺰا‬
‫ﺗﺴﺖ واﺣﺪ ددر ﻧ م‬
‫ﺗ ﺖ‬
‫ﻛﻮﭼﻜﺘﺮﻳﻦ واﺣﺪ ﻗﺎﺑﻞ آآزﻣﺎﻳﺶ ﻛﻼس ﺑﺴﺘﻪ ﺑﻨﺪي ﺷﺪه و ﻳﺎ ﺷﻲ‬ ‫•‬
‫اﺳﺖ‪.‬‬
‫ﺷﺒﻴﻪ ﺑﻪ آزﻣﻮن ﺳﻴﺴﺘﻢ در ﻳﻚ ﻧﺮم اﻓﺰار ﻣﻌﻤﻮﻟﻲ ﻣﻲ ﺑﺎﺷﺪ ‪.‬‬ ‫•‬
‫اﻧﺠﺎم‬
‫اﻳﺰوﻟﻪ ا ﺎ‬
‫ﻛﻼس ﺑﻪ ﺻﻮرت ا ﻟ‬ ‫داﺧﻞ ﻫﺮ ﻛﻼ‬
‫ﻋﻤﻠﻴﺎت ‪ ،‬در اﺧﻞ‬
‫آزﻣﺎﻳﺶ ﻠ ﺎ‬‫آ ﺎ‬ ‫•‬
‫ﻧﻤﻲ ﺷﻮد ‪.‬‬
‫ﺑﺎ ﻋﻤﻠﻴﺎت و ﺣﺎﻟﺖ رﻓﺘﺎر ﻳﻚ ﻛﻼس راه اﻧﺪازي ﻣﻲ ﺷﻮد‪ ،‬ﻧﻪ ﺑﺮ‬ ‫•‬
‫اﻟﮕﻮرﻳﺘﻤﻲ و ﺟﺮﻳﺎن داده ﻫﺎ در ﺑﻴﻦ راﺑﻂ ﻫﺎي‬
‫اﺳﺎس ﺟﺰﺋﻴﺎت اﻟﮕﻮرﻳﺘﻤ‬
‫ﻣﺎژول ﻫﺎ ‪.‬‬

‫ارائه دھنده‪: ‬ابراھيم فضلی‬


‫آزﻣﻮن ﻣﺠﺘﻤﻊ ﺷﻲء ﮔﺮا‬

‫دارﻧﺪ‬
‫ارﺗﺒﺎط ا‬
‫ﻫﻤﻜﺎري و ﺎﻳﺎ ا ﺎط‬
‫ﻫﺎ ﺎﺑﺎﻫﻢ ﻜﺎ‬
‫ﻣﺘﻤﺮﻛﺰ ااﺳﺖ ﻛﻛﻪ در ﺑﻌﻀﻲ روﻳﻪ ﺎ‬‫ﻛ‬ ‫ﻫﺎﻳﻲ‬
‫ﻛﻼس ﺎ‬‫ﻫﺎي ﻛﻼ‬
‫ﺑﺮ ﮔﮔﺮوه ﺎ‬ ‫•‬
‫‪.‬‬
‫ﻣﻌﻨﻲ اﺳﺖ ‪.‬‬
‫ﻣﻮرد ﻛﻼﺳﻬﺎ اﻏﻠﺐ ﺑﺑﻲ ﻣﻌﻨ‬
‫ﺑﺼﻮرت ﻳﻚ ﺑﻪ ﻳﻚ ددر ﻣﻮ د‬
‫ادﻏﺎم ﻋﻤﻠﻴﺎت ﺑﺼﻮ ت‬ ‫•‬
‫آزﻣﻮن ﻣﺒﺘﻨﻲ ﺑﺮ دﻧﺒﺎﻟﻪ ‪ -‬ﺗﻤﺎم ﻛﻼس ﻫﺎي ﻣﻮرد ﻧﻴﺎز ﺑﺮاي ﭘﺎﺳﺨﮕﻮﻳﻲ ﺑﻪ ﻳﻚ روﻳﺪاد ﻳﺎ ورودي‬ ‫•‬
‫ﻲ ﺷﻮﻧﺪ ‪.‬‬
‫ﻢ آزﻣﺎﻳﺶ ﻣﻲ‬
‫ﺳﻴﺴﺘﻢ‬
‫آزﻣﻮن ﻣﺒﺘﻨﻲ ﺑﺮ اﺳﺘﻔﺎده ‪ -‬ﺑﺎ آزﻣﺎﻳﺶ ﻛﻼﺳﻬﺎي ﻣﺴﺘﻘﻞ )ﻛﻼس ﻫﺎﻳﻲ ﻛﻪ ﻛﻼﺳﻬﺎي ﺳﺮوﻳﺲ‬ ‫•‬
‫دﻫﻨﺪه زﻳﺎدي را اﺳﺘﻔﺎده ﻣﻲ ﻛﻨﻨﺪ ( آﻏﺎز ﻣﻲ ﺷﻮد و ﺳﭙﺲ ﻛﻼﺳﻬﺎي واﺑﺴﺘﻪ )ﻛﻼﺳﻬﺎﻳﻲ ﻛﻪ‬
‫آزﻣﺎﻳﺶ ﻣﻲ ﻛﻛﻨﺪ ‪.‬‬
‫اﺳﺘﻔﺎده ﻣﻲ ﻛﻛﻨﻨﺪ( ارا آ ﺎ‬
‫ﻣﺴﺘﻘﻞ ا ﻔﺎ‬
‫ﻛﻼﺳﻬﺎي ﻘﻞ‬
‫ﻛﻼ ﺎ‬
‫آزﻣﻮن ﺧﻮﺷﻪ ‪ -‬ﮔﺮوه ﻫﺎي ﻛﻼس ﻫﺎي ﻫﻤﻜﺎر ﺑﺮاي ﻛﺸﻒ ﺧﻄﺎﻫﺎي ﺗﻌﺎﻣﻞ آزﻣﺎﻳﺶ ﻣﻲ ﺷﻮﻧﺪ ‪.‬‬ ‫•‬
‫ﻣﻬﻢ‬
‫ﺑﺴﻴﺎر ﻬ‬
‫ﺳﻴﺴﺘﻢ ﺎ‬
‫ﺘ‬ ‫زﻳﺮﺳﻴﺴﺘﻢ ﻪ‬
‫ﺑﻪ‬ ‫ﺘ‬ ‫ﺧﻮﺷﻪ ‪ ،‬ﺎﻳﺎ ز‬
‫دﻧﺒﺎﻟﻪ ‪ ،‬ﺧ ﺷﻪ‬
‫رﮔﺮﺳﻴﻮن ‪ -‬ﺎﺑﺎ اﺿﺎﻓﻪ ﺷﺪن ﻫﻫﺮ دﻧ ﺎﻟﻪ‬
‫ن‬ ‫آزﻣﻮن ﮔ‬
‫آز ن‬ ‫•‬
‫اﺳﺖ ‪.‬‬

‫ارائه دھنده‪: ‬ابراھيم فضلی‬


High Order Testing
h
 Validation testing
Focus is on software requirements
 System testing
Focus is on system integration
 Alpha/Beta testing
F
Focus is on customer usage
i t
 Recovery testing
forces the software to fail in a variety of ways and verifies that recovery 
is properly performed
is properly performed
 Security testing
verifies that protection mechanisms built into a system will, in fact, 
protect it from improper penetration
 Stress testing
executes a system in a manner that demands resources in abnormal 
quantity, frequency, or volume
 Performance Testing
P f T ti
test the run‐time performance of software within the context of an 
‫ابراھيم فضلی‬: ‫ دھنده‬integrated system
‫ارائه‬
‫آزﻣﻮن اﻋﺘﺒﺎر ﺳﻨﺠﻲ‬

‫ﺗﻘﺮﻳﺒﺎ ﺑﺮاي ﻫﺮ دو ﻧﺮم اﻓﺰار ﻫﺎي ﻣﻌﻤﻮﻟﻲ و ﺷﻲ ﮔﺮا ﻳﻜﺴﺎن اﺳﺖ ‪.‬‬ ‫•‬
‫ﺑﺮ روي ﻓﻌﺎﻟﻴﺖ ﻣﺸﺨﺺ ﻛﺎرﺑﺮ و ﺧﺮوﺟﻲ ﺳﻴﺴﺘﻢ ﻛﻪ ﻗﺎﺑﻞ ﺗﺸﺨﻴﺺ ﺑﺮاي ﻛﺎرﺑﺮ اﺳﺖ‪،‬‬ ‫•‬
‫ﺗﻤﺮﻛﺰ دارد ‪.‬‬
‫آزﻣﻮن اﻋﺘﺒﺎر ﺳﻨﺠﻲ ﻣﺒﺘﻨﻲ ﺑﺮ ﺳﻨﺎرﻳﻮﻫﺎي ﻣﻮرد اﺳﺘﻔﺎده ‪ ،‬ﻣﺪل رﻓﺘﺎر ‪ ،‬و ﻧﻤﻮدار ﺟﺮﻳﺎن‬ ‫•‬
‫روﻳﺪاد اﻳﺠﺎد ﺷﺪه در ﻣﺪل ﺗﺤﻠﻴﻞ ﻣﻣﻲ ﺑﺎﺷﺪ ‪.‬‬
‫• ﺑﺎﻳﺪ اﻃﻤﻴﻨﺎن ﺣﺎﺻﻞ ﺷﻮد ﻛﻪ ﻫﺮ ﻋﻤﻠﻜﺮد ﻳﺎ وﻳﮋﮔﻲ ﻛﺎرآﻳﻲ ﻣﻄﺎﺑﻖ ﺑﺎ ﻣﺸﺨﺼﺎت آن‬
‫ﻣﻲ ﺑﺎﺷﺪ‪.‬‬
‫• اﻧﺤﺮاﻓﺎت )ﻛﺎﺳﺘﻲ ﻫﺎ( ﺑﺎﻳﺪ ﺑﺎ ﻣﺸﺘﺮي ﻣﺬاﻛﺮه ﺷﻮد ﺗﺎ راه ﺣﻠﻲ ﺑﺮاي ﺧﻄﺎﻫﺎ ﻣﺸﺨﺺ‬
‫ﺷﻮد‪.‬‬
‫ﺑﺮرﺳﻲ ﭘﻴﻜﺮﺑﻨﺪي و ﻳﺎ ﻣﻤﻴﺰي ﺑﺎﻳﺪ اﻧﺠﺎم ﺷﻮد ﺗﺎ اﻃﻤﻴﻨﺎن ﺣﺎﺻﻞ ﺷﻮد ﻛﻪ ﺗﻤﺎم ﻣﻮﻟﻔﻪ‬ ‫•‬
‫ﻫﺎي ﭘﻴﻜﺮ ﺑﻨﺪي ﻧﺮم اﻓﺰار ﺑﻪ درﺳﺘﻲ ﺗﻮﺳﻌﻪ ﻳﺎﻓﺘﻪ ‪ ،‬ﻓﻬﺮﺳﺖ ﺑﻨﺪي و ﻣﺴﺘﻨﺪ ﺳﺎزي ﺷﺪه‬
‫اﻧﺪ ﺗﺎ ﭘﺸﺘﻴﺒﺎﻧﻲ در ﻓﺎز ﻧﮕﻬﺪاري ﺑﻪ درﺳﺘﻲ اﻧﺠﺎم ﺷﻮد ‪.‬‬

‫ارائه دھنده‪: ‬ابراھيم فضلی‬


‫آزﻣﻮن ﭘﺬﻳﺮش‬

‫• اﻃﻤﻴﻨﺎن از اﻳﻨﻜﻪ ﻧﺮم اﻓﺰار در ﻣﺤﻴﻂ ﻛﺎر ﻛﺎرﺑﺮ در ﻧﻈﺮ ﮔﺮﻓﺘﻪ‬


‫ﻲ ﻛﻨﺪ‪.‬‬
‫ﻲ ﻛﺎرر ﻣﻲ‬
‫درﺳﺘﻲ‬
‫ﺷﺪه ﺑﻪ ر‬
‫• آزﻣﻮن آﻟﻔﺎ ‪ -‬ﻧﺴﺨﻪ اي ﻛﺎﻣﻞ از ﻧﺮم اﻓﺰار ﻛﻪ ﺗﻮﺳﻂ ﻣﺸﺘﺮي‬
‫آزﻣﺎﻳﺶ ﻣﻲ‬
‫ﺗﻮﺳﻌﻪ دﻫﻨﺪه آز ﺎﻳﺶ‬
‫ﺗﻮﺳﻌﻪ دﻫﻨﺪه ددر ﺳﺎﻳﺖ ﺗ ﺳﻌﻪ‬
‫ﻧﻈﺎرت ﺗ ﺳﻌﻪ‬
‫ﺗﺤﺖ ﻧﻈﺎ ت‬
‫ﺷﻮد ‪.‬‬
‫• آزﻣﻮن ﺑﺘﺎ ‪ -‬ﻧﺴﺨﻪ اي از ﻧﺮم اﻓﺰار ﻛﺎﻣﻞ ﻛﻪ ﺗﻮﺳﻂ ﻣﺸﺘﺮي در‬
‫ﺷﻮد ‪.‬‬
‫ﻲ ﻮ‬‫ﻳﺶ ﻣﻲ‬
‫آزﻣﺎﻳﺶ‬
‫ﺗﻮﺳﻌﻪ دﻫﻨﺪه ز‬
‫ﻮر ﻮ‬
‫ون ﺣﻀﻮر‬‫ﺧﻮد وي و ﺑﺑﺪون‬
‫ﺳﺎﻳﺖ ﻮ‬‫ﻳ‬

‫ارائه دھنده‪: ‬ابراھيم فضلی‬


‫آزﻣﻮن ﺳﻴﺴﺘﻢ‬

‫آآزﻣﻮن ﺑﺎزﮔﺮد – آآزﻣﻮن ﺗﻮاﻧﺎﻳﻲ ﺳﻴﺴﺘﻢ ﺑﺮاي ﺑﻬﺒﻮد ﻳﺎﻓﺘﻦ از ﺷﻜﺴﺖ ﻫﺎ ‪.‬‬ ‫•‬
‫آزﻣﻮن اﻣﻨﻴﺖ – ﺗﺎﻳﻴﺪ ﺻﺤﺖ ﺳﻴﺴﺘﻢ ﺑﺮاي وﺟﻮد ﻣﻜﺎﻧﻴﺴﻢ ﻫﺎي ﺣﻔﺎﻇﺖ‬ ‫•‬
‫و ﺟﻠﻮﮔﻴﺮي از ﻧﻔﻮذ ﻫﺎ و ﻳﺎ ﺗﻐﻴﻴﺮ ﻧﺎدرﺳﺖ داده ﻫﺎ ‪.‬‬
‫ﺧﻮاﺳﺘﻪ‬‫ن ﺑﺑﺎ ﻮ‬
‫ﺑﺮﺧﻮرد آن‬
‫ﻲ ﺑﺮ ﻮر‬
‫ﭼﮕﻮﻧﮕﻲ‬‫ﺷﻮد ﺗﺎ ﭼ ﻮ‬
‫ﻲ ﻮ‬‫ﻲ ﻣﻲ‬‫ﺑﺮرﺳﻲ‬
‫ﺑﺮﻧﺎﻣﻪ ﺑﺮر‬
‫ﻮن ﻓﺸﺎرر ‪ -‬ﺑﺮ‬
‫آزﻣﻮن‬
‫ز‬ ‫•‬
‫ﻫﺎي ﻣﻨﺎﺑﻊ ﻏﻴﺮ ﻃﺒﻴﻌﻲ )ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل ‪ ،‬ﻛﻤﻴﺖ ‪ ،‬ﻓﺮﻛﺎﻧﺲ ‪ ،‬ﻳﺎ دوره(‬
‫ﺷﻮد ‪.‬‬
‫ﺺ ﻮ‬‫ﻣﺸﺨﺺ‬
‫آزﻣﻮن ﻛﺎرآﻳﻲ ‪ -‬ﺑﺮاي آزﻣﺎﻳﺶ ﻛﺎرآﻳﻲ زﻣﺎن اﺟﺮاي ﻧﺮم اﻓﺰار ‪ ،‬ﺑﻪ ﺧﺼﻮص‬ ‫•‬
‫ﻃﺮاﺣﻲ ﺷﺪه اﺳﺖ ‪.‬‬
‫در ﻧﺮم اﻓﺰارﻫﺎي ﺑﻼدرﻧﮓ ‪ ،‬ﻃﺮاﺣ‬

‫ارائه دھنده‪: ‬ابراھيم فضلی‬


‫اﺷﻜﺎل زداﻳﻲ‬

‫• اﺷﻜﺎل زداﻳﻲ )ﺣﺬف ﻧﻘﺺ( ﻛﻪ در ﻧﺘﻴﺠﻪ آآزﻣﺎﻳﺶ ﻣﻮﻓﻘﻴﺖ آآﻣﻴﺰ اﺟﺮا ﻣﻲ ﺷﻮد ‪.‬‬
‫• ﺑﺮﺧﻲ از اﻓﺮاد در اﺷﻜﺎل زداﻳﻲ از دﻳﮕﺮان ﺑﻬﺘﺮ ﻫﺴﺘﻨﺪ‪.‬‬
‫• روش ﻫﺎي ﻣﺘﺪاول‪:‬‬
‫• ﻧﻴﺮوي ﻣﺎدي ‪ -‬ﺗﺨﻠﻴﻪ ﺣﺎﻓﻈﻪ اﻧﺠﺎم ﺷﺪه و ﻋﻼﺋﻢ ﺣﻴﻦ اﺟﺮا ﺑﺮاي وﺟﻮد ﺧﻄﺎ‬
‫ﻗﺮار ﻣﻲ ﮔﮔﻴﺮد ‪.‬‬
‫ﻣﻮرد ﺑﺮرﺳﻲ ﻗ ا‬
‫• ﺑﺮﮔﺸﺖ و ﺟﺴﺘﺠﻮي ﻣﺠﺪد ‪ -‬ﻛﺪ ﻣﻨﺒﻊ از ﻣﺤﻞ ﻋﻼﺋﻢ ﺧﻄﺎﻫﺎي ﺑﺎﻟﻘﻮه ﺑﻪ ﺳﻤﺖ‬
‫ﺷﻮد ‪.‬‬
‫ﻋﺎﻣﻞ ﺧﻄﺎ ﻛﺸﻒ ﺷ د‬
‫ﮔﻴﺮد ﺗﺎ ﺎ ﻞ‬
‫ﻗﺮار ﻣﻲ ﮔ د‬
‫ﻣﻮرد ﺑﺮرﺳﻲ ﻗ ا‬
‫ﻋﻘﺐ د‬ ‫ﻘ‬
‫• ﺣﺬف ﻋﻠﺖ ‪ -‬از ﭘﺎرﺗﻴﺸﻦ ﺑﻨﺪي دودوﻳﻲ اﺳﺘﻔﺎده ﻣﻲ ﻛﻨﺪ ﺗﺎ ﺗﻌﺪاد ﻧﻘﺎط ﺑﺎﻟﻘﻮه ﻛﻪ‬
‫داراي ﺧﻄﺎ ﺑﺎﺷﻨﺪ‪ ،‬ارا ﻛﺎﻫﺶ دﻫﺪ ‪.‬‬
‫ﻣﻤﻜﻦ اﺳﺖ دا اي‬

‫ارائه دھنده‪: ‬ابراھيم فضلی‬


‫اﺷﻜﺎل زداﻳﻲ‬

‫ارائه دھنده‪: ‬ابراھيم فضلی‬


‫ﻣﻼﺣﻈﺎت ﺣﺬف اﺷﻜﺎﻻت‬

‫ﺑﺮﻧﺎﻣﻪ اﺳﺖ؟‬
‫دﻳﮕﺮي از ﺑ ﻧﺎ ﻪ‬ ‫• آﻳﺎ ﻋﻠﺖ اﺷﻜﺎل ﺗﻜﺜ‬
‫ﺗﻜﺜﻴﺮ ددر ﺑﺨﺶ دﻳﮕ ي‬
‫• ﭼﻪ " اﺷﻜﺎل ﺑﻌﺪي " ﻣﻤﻜﻦ اﺳﺖ ﺑﺎ اﻧﺠﺎم ﺗﻌﻤﻴﺮي ﻛﻪ‬
‫ﭘﻴﺸﻨﻬﺎد ﺷﺪه ﺑﺮوز ﻛﻨﺪ ؟‬
‫• ﺑﺮاي ﺟﻠﻮﮔﻴﺮي از اﻳﻦ ﻣﺸﻜﻼت در وﻫﻠﻪ اول ﭼﻪ ﻣﻲ ﺗﻮاﻧﺴﺖ‬
‫اﻧﺠﺎم ﺷﻮد ؟‬

‫ارائه دھنده‪: ‬ابراھيم فضلی‬

You might also like