Software Testing Arabic
Software Testing Arabic
وﺻﻴﺎﻧﺘﻬﺎ وﻋﻤﻠﻬﺎ
Lecture 2
د.إﺑﺮاﻫﻴﻢ اﻟﺒﻠﻄﻪ
أﺧﺘﺒﺎر اﻟﺒﺮﻣﺠﻴﺎت
ﻣﻘﺪﻣﺔ
ﻛﻤﺎ ذﻛﺮﻧﺎ ﻓﻲ اﻟﻤﺤﺎﺿﺮة اﻟﺴﺎﺑﻘﺔ اﻧﻪ ﻳﻤﻜﻦ ارﺗﻜﺎب اﺧﻄﺎء ﻓﻲ
اي ﻣﺮﺣﻠﺔ ﻣﻦ ﻣﺮاﺣﻞ ﺣﻴﺎة اﻟﻨﻈﺎم.
ﻳﻌﺘﺒﺮ اﻷﺧﺘﺒﺎر اﻟﺼﺎرم ﻇﺮورﻳﺎً أﺛﻨﺎء اﻟﺘﻄﻮﻳﺮ واﻟﺼﻴﺎﻧﺔ ﻟﻠﺘﻌﺮف
ﻋﻠﻰ اﻟﻌﻴﻮب وذﻟﻚ ﻟﻠﺘﺎﻟﻲ:
ﺗﻘﻠﻴﻞ أﺣﺘﻤﺎل ﻓﺸﻞ اﻟﻨﻈﺎم ﻓﻲ اﻟﺒﻴﺌﺔ اﻟﻌﻤﻠﻴﺎﺗﻴﺔ
زﻳﺎدة ﺟﻮدة اﻟﻨﻈﺎم اﻟﻌﻤﻠﻴﺎﺗﻲ.
اﻷﺧﺘﺒﺎر واﻟﺠﻮدة
ﻳﺴﺎﻋﺪ اﻷ ﺧﺘﺒﺎر ﻓﻲ ﻗﻴﺎس ﺟﻮدة اﻟﺒﺮﻣﺠﻴﺎت ﻣﻦ ﺣﻴﺚ ﻋﺪد
اﻟﻌﻴﻮب اﻟﺘﻲ ﺗﻢ اﻟﻌﺜﻮر ﻋﻠﻴﻬﺎ واﻷ ﺧﺘﺒﺎرات اﻟﺘﻲ ﺗﻢ ﺗﻨﻔﻴﺬﻫﺎ
واﻟﻨﻈﺎم اﻟﺬي ﺗﺸﻤﻠﻪ اﻷﺧﺘﺒﺎرات.
ﻳﻤﻜﻦ أن ﻳﻌﻄﻲ اﻷ ﺧﺘﺒﺎر اﻟﺜﻘﺔ ﺑﺠﻮدة اﻟﺒﺮﻣﺠﻴﺎت إذا وﺟﺪ
ﺑﻌﺾ اﻟﻌﻴﻮب أو ﻟﻢ ﻳﺠﺪ اي ﻋﻴﺐ ,ﺑﺸﺮط أﻧﻨﺎ ﻛﻨﺎ راﺿﻴﻦ ﻋﻦ
ﻣﺪى ﺻﺮاﻣﺔ اﻷﺧﺘﺒﺎر.
ﻋﻨﺪﻣﺎ ﻳﻌﺜﺮ اﻷﺧﺘﺒﺎر ﻋﻠﻰ ﻋﻴﻮب ,ﺗﺰداد ﺟﻮدة اﻟﻨﻈﺎم اﻟﺒﺮﻣﺠﻲ
ﺣﺎل إﺻﻼ ح ﻫﺬه اﻟﻌﻴﻮب ,ﻋﻠﻰ أن ﻳﺘﻢ إﻧﺠﺎز ﻫﺬه اﻟﻌﻴﻮب
ﺑﺸﻜﻞ ﺻﺤﻴﺢ.
ﻣﺎﻫﻲ اﻟﺠﻮدة
ﻫﻨﺎك وﺟﻬﺎت ﻧﻈﺮ ﻣﺨﺘﻠﻔﺔ ﻓﻲ اﻟﺘﻮﻗﻌﺎت و اﻟﺠﻮدة ﺑﻴﻦ اﻟﻤﻄﻮر
و اﻟﻤﺴﺘﺨﺪم واﻟﺰﺑﻮن .اﻟﺠﺪول اﻟﺘﺎﻟﻲ ﻳﻮﻇﺢ ذﻟﻚ:
اﻟﺒﻨﺪورة اﻟﺒﺮﻣﺠﺔ وﺟﻬﺔ اﻟﻨﻈﺮ
ﺳﻮف ﻧﻘﻴﺲ ﺳﻤﺎت اﻟﺒﺮﻣﺠﻴﺎت ,أن ﺗﻜﻮن اﻟﺒﻨﺪورة ﺑﺎﻟﺤﺠﻢ ﺗﻘﺎس اﻟﺠﻮدة ﺗﺒﻌﺎً
واﻟﺸﻜﻞ اﻟﺼﺤﻴﺤﻴﻦ ﻟﺘﻌﻠﻴﺒﻬﺎ ﻣﺜﻞ وﺛﻮﻗﻴﺘﻬﺎ ﻣﻦ ﺣﻴﺚ اﻟﺰﻣﻦ ﻟﺴﻤﺎت اﻟﻤﻨﺘﺞ
ﻣﻦ اﺟﻞ ﻣﺮﻛﺰ اﻟﺘﺴﻮق .وأن اﻟﻮﺳﻄﻲ ﺑﻴﻦ ﺣﺎﻟﺘﻲ ﻓﺸﻞ,
ﺗﻜﻮن ذات ﻃﻌﻢ ﺟﻴﺪ وﻟﻮن واﺻﺪارﻫﺎ ﺣﺎﻟﻤﺎ ﺗﺼﻞ اﻟﻰ
ﻣﻨﺎﺳﺐ. ﻣﺴﺘﻮى ﻣﺤﺪد
ﺳﻮف ﻧﺴﺎل اﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﻋﻤﺎ اذا اﻟﺒﻨﺪورة ﻣﻨﺎﺳﺒﺔ ﻟﻮﺟﺒﺔ اﻟﺠﻮدة ﻫﻲ اﻟﻤﻼءﻣﺔ
ﻟﻠﻌﻤﻞ .ﻗﺪ ﺗﻜﻮن ﻟﻠﺠﻮدة ﻛﺎﻧﻮا ﻳﺴﺘﻄﻴﻌﻮن اﻧﺠﺎز اﻋﻤﺎﻟﻬﻢ ,ﻃﻌﺎﻣﻨﺎ.
ﻧﻮاح ﻣﻮﺿﻮﻋﻴﺔ وﻟﻴﺲ واذا ﻛﺎﻧﻮا ﻣﻘﺘﻨﻌﻴﻦ ﺑﺄن ﺑﻮﺳﻌﻨﺎ
إﺻﺪار اﻟﺒﺮﻣﺠﻴﺔ. ﻛﻤﻴﺔ ﻓﻘﻂ.
اﻟﺒﻨﺪورة اﻟﺒﺮﻣﺠﺔ وﺟﻬﺔ اﻟﻨﻈﺮ
ﺳﻮف ﻧﺴﺘﻌﻤﻞ ﻋﻤﻠﻴﺔ ﺗﻄﻮﻳﺮ ﺑﺮﻣﺠﻲ أن ﻳﺘﻢ زرع اﻟﺠﻮدة ﺗﺴﺘﻨﺪ اﻟﻰ ﻋﻤﻠﻴﺎت
ﻣﻌﺮوﻓﺔ .وﻟﻦ ﻧﺼﺪر اﻟﺒﺮﻣﺠﻴﺔ اﻻ إذا اﻟﺒﻨﺪورة أﺻﻼًً ,و أﻻ اﻟﺘﺼﻨﻴﻊ اﻟﺠﻴﺪة ,وﻫﻲ ﺗﻠﺒﻲ
ﻳﻜﻮن ﻓﻴﻬﺎ أي ﻛﺎن ﻫﻨﺎك أﻗﻞ ﻣﻦ ﺧﻤﺴﺔ ﻋﻴﻮب ﻣﺘﻄﻠﺒﺎت ﻣﻌﺮﻓﺔ .ﺗﻘﺎس
ﺑﺎرزة ذات أوﻟﻮﻳﺔ ﻣﺮﺗﻔﻌﺔ ,وذﻟﻚ ﺣﺎل ﺷﻮاﺋﺐ وﻻ أوﺑﺌﺔ. اﻟﺠﻮدة ﺑﺎﻷﺧﺘﺒﺎر واﻟﺘﺤﺮي
اﻛﺘﻤﺎل اﻷﺧﺘﺒﺎرات اﻟﻤﺨﻄﻂ ﻟﻬﺎ. وﺗﺤﻠﻴﻞ اﻟﻌﻴﻮب وﺣﺎﻻت
اﻟﻔﺸﻞ
ﻟﻠﺒﻨﺪورة ﻣﻌﺪل ﻟﻘﺪ ﻗﻴﺪﻧﺎ اﻷﺧﺘﺒﺎر ﺑﺎﻟﻮﻗﺖ ,أﺳﺒﻮﻋﺎن ﺗﻮﻗﻌﺎت اﻟﻘﺪرة اﻟﻤﺎﻟﻴﺔ.
ﺣﻴﺎة ﺟﻴﺪ ,وﻫﻲ ﺣﺘﻰ ﻻ ﻧﺘﺠﺎوز ﻣﻴﺰاﻧﻴﺔ اﻟﻤﺸﺮوع اﻟﻘﺪرة ﻋﻠﻰ اﻟﺸﺮاء,
رﺧﻴﺼﺔ أو ﻗﻴﻤﺘﻬﺎ واﻟﻤﻘﺎﻳﻀﺔ اﻟﻤﺴﺘﺪة اﻟﻰ
ﺟﻴﺪة ﻣﺎﻟﻴﺎً اﻟﻘﻴﻤﺔ ﺑﻴﻦ اﻟﻮﻗﺖ و اﻟﺠﻬﺪ و
اﻟﺘﻜﻠﻔﺔ .ﻳﻤﻜﻨﻨﺎ ﺷﺮاء ﻫﺬه
اﻟﺒﺮﻣﺠﻴﺎت وﻧﺘﻮﻗﻊ ﻋﺎﺋﺪ
اﺳﺘﺜﻤﺎر ﻣﻨﻬﺎ.
ﻧﺤﺼﻞ ﻋﻠﻰ اﻟﻤﺸﺎﻋﺮ اﻟﻤﺒﻬﻤﺔ ,وﻫﻲ ﺗﺘﻌﻠﻖ ﻧﺤﺐ ﻫﺬه اﻟﺒﺮﻣﺠﻴﺎت! إﻧﻬﺎ ﻣﻀﺤﻜﺔ
ﺑﻨﺪورﺗﻨﺎ ﻣﻦ ﻣﺰرﻋﺔ ﺑﻤﺸﺎﻋﺮ ﻓﺮد أو ﻣﺠﻤﻮﻋﺔ ﻣﻦ وﻫﺬا ﻛﻞ ﺷﻲء! ﻟﻜﻦ ﻣﺎذا ﻟﻮﻛﺎن ﻓﻴﻬﺎ
ﻣﺤﻠﻴﺔ ﺻﻐﻴﺮة اﻷﻓﺮاد ﺣﻴﺎل ﻣﻨﺘﺞ أو ﻣﺰود .ﺑﻌﺾ اﻟﻤﺸﺎﻛﻞ؟
وﻧﺘﻔﻖ ﺟﻴﺪاً ﻣﻊ ﻧﺴﺘﻤﺘﻊ ﺣﻘﺎً ﺑﺎﻟﻌﻤﻞ ﻣﻊ ﻫﺬا اﻟﻔﺮﻳﻖ
اﻟﻤﺰارﻋﻴﻦ اﻟﺒﺮﻣﺠﻲ ,واذا ﻛﺎﻧﺖ ﻫﻨﺎك ﻣﺸﺎﻛﻞ,
ﻣﺎﻫﻮ ﺗﺤﻠﻴﻞ اﻟﺴﺒﺐ اﻟﺠﺬري؟
ﻋﻨﺪﻣﺎ ﻧﻜﺸﻒ اﻟﻔﺸﻞ ,ﻧﺤﺎول ﺗﺘﺒﻌﻪ وﺻﻮﻻً اﻟﻰ ﺳﺒﺒﻪ اﻟﺠﺬري,
أي اﻟﺴﺒﺐ اﻟﺤﻘﻴﻘﻲ ﻟﻮﻗﻮﻋﻪ.
ﻧﻔﺘﺮض أن ﻟﺪى ﻣﺆﺳﺴﺔ ﻣﺸﻜﻠﺔ ﺗﺘﻤﺜﻞ ﻓﻲ اﻟﻔﺸﻞ اﻟﻤﺘﻜﺮر
ﻟﻠﻄﺒﺎﺑﻌﺔ .اﺟﺘﻤﻊ ﺑﻌﺾ ﻓﻨﻴﻴﻦ ال ITﻟﻠﺒﺤﺚ ﻋﻠﻰ اﻟﻤﺸﻜﻠﺔ,
واﺧﺬوا ﻳﺒﺤﺜﻮن ﻋﻠﻰ أﺳﺒﺎب ﺟﺬرﻳﺔ ,ﻣﻦ ﺑﻴﻦ ﻫﺬه اﻷ ﺳﺒﺎب
اﻟﺒﺪﻳﻬﻴﺔ اﻟﺘﻲ اﻛﺘﺸﻔﻮﻫﺎ:
ﺗﻔﺘﻘﺮ اﻟﻄﺎﺑﻌﺔ اﻟﻰ اﻟﺤﺒﺮ أو اﻟﻮرق.
ﻓﺸﻞ ﻓﻲ ﺑﺮﻣﺠﻴﺔ ﺑﺮﻧﺎﻣﺞ ﺗﺸﻐﻴﻞ اﻟﻄﺎﺑﻌﺔ
اﻟﺤﺮارة ﻣﺮﺗﻔﻌﺔ ﺟﺪ اً ﻓﻲ ﻏﺮﻓﺔ اﻟﻄﺎﺑﻌﺔ ,ﻟﺬﻟﻚ اﻟﻄﺎﺑﻌﺔ ﺗﺘﻮﻗﻒ ﻋﻦ
اﻟﻌﻤﻞ ﺑﺸﻜﻞ ﻣﺘﻜﺮر.
ﻣﺎﻫﻮ ﺗﺤﻠﻴﻞ اﻟﺴﺒﺐ اﻟﺠﺬري؟...
إذا أﻟﻘﻴﻨﺎ ﻧﻈﺮة ﻋﻠﻰ اﺣﺪﻫﺎ ”ﺗﻔﺘﻘﺮ اﻟﻄﺎﺑﻌﺔ اﻟﻰ اﻟﺤﺒﺮ أو اﻟﻮرق“
ﻓﻬﻮ ﻳﺤﺪث ﺑﺴﺒﺐ:
ﻻ ﻳﻮﺟﺪ ﺷﺨﺺ ﻣﺴﺆول ﻋﻦ اﻟﺘﺤﻘﻖ ﻣﻦ ﻣﺴﺘﻮى اﻟﻮرق واﻟﺤﺒﺮ ﻓﻲ
اﻟﻄﺎﺑﻌﺔ ,ﻟﺬﻟﻚ ﻳﻜﻮن اﻟﺴﺒﺐ اﻟﺠﺬري اﻟﻤﻤﻜﻦ ﻫﻮ :ﻟﻴﺴﺖ ﻫﻨﺎك ﻋﻤﻠﻴﺔ
ﻣ ُُﺴﺘﺨﺪﻣﺔ ﻣﺴﺒﻘﺎً ﻟﻠﺘﺤﻘﻖ ﻣﻦ ﻣﺴﺘﻮى اﻟﻮرق واﻟﺤﺒﺮ ﻓﻲ اﻟﻄﺎﺑﻌﺔ.
ﻻﻳﻌﺮف ﺑﻌﺾ اﻋﻀﺎء اﻟﻔﺮﻳﻖ اﻟﻌﻤﻞ ﻛﻴﻒ ﻳﻤﻜﻦ أن ﻳُﻐﻴﺮ ﻋﻠﺒﺔ اﻟﺤﺒﺮ,
ﻟﺬﻟﻚ ﻳﻜﻮن اﻟﺴﺒﺐ اﻟﺠﺬري اﻟﻤﻤﻜﻦ ﻫﻮ :اﻟﻔﺮﻳﻖ ﻏﻴﺮ ﻣُﺪرب أو ﻻ ﻳﻤﻠﻚ
اﻟﺘﻌﻠﻴﻤﺎت اﻟﻤﻄﻠﻮﺑﺔ ﻟﻠﻌﻨﺎﻳﺔ ﺑﺎﻟﻄﺎﺑﻌﺔ.
ﻻ ﻳﻮﺟﺪ ﻋﻠﺐ ﺣﺒﺮ ﺑﺪﻳﻠﺔ أو ورق اﺿﺎﻓﻲ ,ﻟﺬﻟﻚ ﻳﻜﻮن اﻟﺴﺒﺐ اﻟﺠﺬري
اﻟﻤﻤﻜﻦ ﻫﻮ :ﻻ ﺗﻮﺟﺪ ﻋﻤﻠﻴﺔ ﻣُﺘُ ﺒﻌﺔ ﻟﻠﺘﺤﻜﻢ ﺑﺎﻟﻤﺨﺰون واﻟﻄﻠﺒﻴﺎت.
ﻟﻤﺎذا ﻧﺴﺘﺨﺪم اﻷﺧﺘﺒﺎر؟
ﻧﺴﺘﺨﺪم اﻻ ﺧﺘﺒﺎر ﻟﻤﺴﺎﻋﺪﺗﻨﺎ ﻓﻲ اﻟﻌﺜﻮر ﻋﻠﻰ اﻟﻌﻴﻮب وﺣﺎﻻت
اﻟﻔﺸﻞ اﻟﻤﻤﻜﻨﺔ ,وذﻟﻚ اﺛﻨﺎء ﺗﻄﻮﻳﺮ وﺻﻴﺎﻧﺔ وﺗﺸﻐﻴﻞ اﻟﺒﺮﻣﺠﻴﺎت.
ﻧﻘﻮم ﺑﺎﻷ ﺧﺘﺒﺎر ﻟﻨﺴﺎﻋﺪ ﻓﻲ اﻟﺘﻘﻠﻴﻞ ﻣﻦ ﺧﻄﺮ وﻗﻮع اﻟﻔﺸﻞ ﻓﻲ
ﺑﻴﺌﺔ اﻟﻌﻤﻞ ,أي ﻓﻲ اﻟﺒﻴﺌﺔ اﻟﺘﻲ ﻳﺘﻢ اﺳﺘﺨﺪم اﻟﻨﻈﺎم ﻓﻴﻬﺎ.
ﻧﻘﻮم ﺑﺎﻷ ﺧﺘﺒﺎر ﻣﻦ أﺟﻞ اﻟﻤﺴﺎﻫﻤﺔ ﻓﻲ ﺗﺤﻘﻴﻖ ﺟﻮدة اﻟﻨﻈﺎم
اﻟﺒﺮﻣﺠﻲ.
رﻏﻢ أﻧﻨﺎ ﻧﺤﺘﺎج اﻟﻰ اﻟﺘﻔﻜﻴﺮ ﺑﻌﻴﻮب و ﻣﺤﺎوﻻ ت ﻓﺸﻞ ﻛﺜﻴﺮة
وﻣﺘﻨﻮﻋﺔ ,إﻻ أﻧﻪ ﻟﻦ ﻳﺘﻢ ﺗﺼﺤﻴﺢ ﺟﻤﻴﻌﻬﺎ .ﻓﻘﺪ ﻳﺼﺤﺢ
اﻟﻤﺒﺮﻣﺠﻮن و اﻵ ﺧﺮون اﻟﻌﻴﻮب ﻗﺒﻞ وﺿﻊ اﻟﻨﻈﺎم وﺗﺸﻐﻴﻠﺔ ﻓﻲ
ﺑﻴﺌﺔ اﻟﻌﻤﻞ ,وﻟﻜﻦ ﻗﺪ ﻳﻜﻮن ﻣﻦ اﻷﻛﺜﺮ ﺣﺴﺎﺳﻴﺔ أن ﻧﺘﺤﺎﻳﻞ ﻋﻠﻰ
اﻟﻔﺸﻞ.
ﻣﺎﻫﻲ اﻟﻜﻤﻴﺔ اﻟﻜﺎﻓﻴﺔ ﻣﻦ اﻻﺧﺘﺒﺎرات؟
ﻣﺒﺪأ اﺧﺘﺒﺎر -ﻻﻳﻤﻜﻦ اﺟﺮاء اﺧﺘﺒﺎر ﺷﻤﻮﻟﻲ
ﻟﻴﺲ أﺧﺘﺒﺎر ﻛﻞ ﺷﻲء )ﺟﻤﻴﻊ ﺗﺮاﻛﻴﺐ اﻟﺪﺧﻞ واﻟﺸﺮوط اﻟﻤﺴﺒﻘﺔ( ﻣﺠﺪﻳﺎً ﺑﺎﺳﺘﺜﻨﺎء
اﻟﺤﺎﻻت
اﻟﺒﺴﻴﻄﺔ .وﺑﺪﻻً ﻣﻦ إﺟﺮاء اﺧﺘﺒﺎر ﺷﻤﻮﻟﻲ ,ﻧﺴﺘﻌﻤﻞ اﻟﻤﺨﺎﻃﺮ واﻷوﻟﻮﻳﺎت ﻟﺘﺮﻛﻴﺰ ﺟﻬﻮد
اﻻﺧﺘﺒﺎر
ﻛﻢ ﻣﻦ اﻻﺧﺘﺒﺎرات اﻟﺘﻲ ﻳﺠﺐ ان ﻧﻨﻔﺬ؟