Full transcript
0:20ينبغي أن تكون قادراً
0:22على الدخول الآن . هل
0:26هناك أي أحد آخر ؟
0:43موجود هنا . حتى نغلق
1:03موضوع تليجرام . حسناً ،
1:04ينقصني إسكالانتي ، هو
1:06الوحيد الذي لا يزال
1:08ينقصني ، لكني لا أعرف
1:11تحت أي اسم هو موجود ،
1:12فهو ليس مسجلاً باسم
1:14إسكالانتي ولا باسم
1:16تشونغ إسكالانتي ، لذا
1:18لا ، ليس لدي . حسناً ،
1:19إذن ليس لديكم أي
1:21أسئلة حول الفصول
1:22الافتراضية ، هل
1:23تمكنتم من رؤية كل شيء
1:25محملاً ؟ الاختباران
1:27الجزئيان حضوريان ،
1:29وكذلك الاختبار
1:30التعويضي بالطبع . إيه ،
1:32هناك ثلاث مهام عملية ،
1:34كما أخبرتكم . حسناً ،
1:36إيه ، سنقوم بـ
1:47>> حسناً ، عن ماذا يتحدث
1:49المحتوى ؟ بالطبع هناك
1:53إيه جزء النماذج
1:55والمنهجيات والعمليات
1:57، حيث لا يزال جزء
1:58النماذج والمنهجية
2:00نظرياً كما أخبرتكم ،
2:02وفقط في جزء العمليات
2:04سنقوم بالجزء العملي ،
2:06أي من المنهجية فما
2:07قبلها . سنقوم بتمرين
2:13عملي حيث ستضعون فيه
2:15مهاراتكم قيد
2:16الاختبار . من ناحية
2:19أخرى ، لدينا أنواع
2:20الاختبارات . حسناً ،
2:25سنرى هناك أنواع
2:27الاختبارات المختلفة
2:29الموجودة ، وهي كثيرة ؛
2:31وكيف يتم تنظيمها ،
2:33وكيف نرتبها في
2:34أذهاننا حتى لا تكون
2:36المفاهيم مشتتة ، بل في
2:38صناديق ، لنسمّها هكذا
2:40؛ وأن كل شيء يُستخدم
2:42في لحظة مختلفة لنتمكن
2:45من بناء استراتيجية
2:47اختبار جيدة لمواجهة
2:49مشاريع جديدة أو
2:50إضافتها إلى مشروع
2:52موجود بالفعل . وأخيراً
3:01سنرى جزء التقنيات ،
3:03حسناً ، والذي سيخبرنا
3:05كيف سنجري هذا
3:06الاختبار بطريقة أكثر
3:08تنظيماً وهيكلة حتى لا
3:10تكون مجرد أفكار أولية
3:13تخطر ببالكم . حسناً .
3:19إيه ، وهنا يخطر ببالي
3:25عدم جعل الطريقة التي
3:27نولد بها الاختبارات
3:29نظامية لنبدأ . حسناً .
3:33إيه ، نعم ، لكنه ليس
3:39موجوداً باسم جون
3:40إسكالانتي ، إيه ؟ لقد
3:42تأكدت بالفعل ، ليس لدي
3:44" جون إسكالانتي " محظور
3:46، يجب أن يكون قادراً
3:48على الدخول ، لذا إذا
3:50لم يستطع الدخول ،
3:51بصراحة لا أعرف ، لقد
3:53راجعت ذلك ، ليس لدي أي
3:55إسكالانتي محظور ، إيه
3:57؟ لكن حسناً ، إذا لم
4:00يكن موجوداً عندما
4:02يأتي ، ليس هناك
4:05إسكالانتي ، عندما
4:07يأتي سنراجع الأمر ،
4:10إيه ؟ التحقق والصحة . "
4:16التحقق والصحة " تشير
4:18إلى عمليتي رقابة وهما
4:20التحقق والصحة . التحقق
4:24والصحة مفهومان مهمان
4:26جداً في هندسة
4:27البرمجيات . حسناً ،
4:29لهذا يتم دراستهما
4:31ومعرفتهما معاً ، لذا
4:33إذا بحثتم عنهما في
4:35جوجل ستجدونهما كـ "
4:37التحقق والصحة " . حسناً .
4:41لقد أخبرتكم للتو أن
4:43التحقق ( Validation )
4:45والتحقق ( Verification ) هما
4:47عمليتان للرقابة . ولكن
4:50، ماذا يراقبان ؟ إنهما
4:56يراقبان أن النظام يتم
4:58تطويره وفقًا
4:59للمواصفات وأنه يلبي
5:01توقعات واحتياجات كل
5:02من العملاء والمستخدم
5:04الذي سيستخدمه . حسنًا .
5:12و ، ما هو الفرق بالضبط
5:18بين هذين الأمرين ،
5:20التحقق والتحقق ؟ من
5:23ناحية ، لدينا التحقق (
5:25Validation ) . يتحقق هذا
5:28النوع مما إذا كان
5:30المنتج سيلبي
5:31المتطلبات ويجيب على
5:33السؤال : هل نحن نبني
5:35البرنامج بشكل صحيح ؟
5:42هل نراقب كل ما لدينا
5:44من النظام ، النموذج
5:46الذي نملكه لهذا
5:48النظام مقابل
5:49المستخدم ، لنرى ما إذا
5:51كان ذلك النموذج ، ذلك
5:53التمثيل ، ذلك التجريد
5:55الذي قمنا به لما
5:56سنبنيه يلبي التوقعات
5:58؟ وعندما أتحدث عن
6:04نموذج ، فأنا أشير إلى
6:06الطريقة التي ستأتي
6:07بها تلك المواصفات .
6:10المتطلبات ، سنرى
6:11لاحقًا قصص المستخدم ،
6:14حسنًا ، ما هو النموذج .
6:17لأننا كمتخصصي ضمان
6:19جودة ( QA ) سنشارك في
6:21عملية بناء البرمجيات .
6:23حسنًا . وهو ما سنراه
6:26لاحقًا . إذن ، ما سنقوم
6:31به هو بناء البرنامج . و
6:41الآن ، كيف تأتي
6:42مواصفات ذلك البرنامج
6:44الذي أريد بناءه ؟
6:49حسنًا . و ، كيف ستأتي
6:57تلك المتطلبات حتى
6:59أتمكن من فهمها
7:00واختبارها ؟ حسنًا ،
7:03ستأتي كما قلت لكم
7:05كقصص مستخدم ( user stories ) ،
7:07وهي عبارة عن قصص . وهذا
7:09سنراه لاحقًا ، وسأشرح
7:11لكم ما تحتويه وكيف
7:13يتم إعداد قصة
7:14المستخدم . و ، قد تأتي
7:20مع نوع من الرسوم
7:22البيانية ، أو بوصف
7:23حرفي لمتطلب ما . إذن ،
7:29ستأتي بأشكال مختلفة ،
7:31وهذه الأشكال خارج
7:33نطاق هذه الدورة .
7:36حسنًا ، لأن رؤيتها أمر
7:38واسع جدًا . إذن ،
7:42بالعودة إلى مفهوم
7:44التحقق ، من المهم
7:45إجراء عمليات التحقق
7:47في أقرب وقت ممكن
7:49للبدء في بناء نظام
7:51يلبي التوقعات . لأنه
7:57إذا لم يتم التحقق من
7:59تلك التوقعات منذ
8:00البداية ، فكل ما نبنيه
8:02لاحقًا سيكون حول شيء
8:04لا يريده العميل . لذلك
8:11، من المهم جدًا
8:12دائمًا التحقق من
8:14النموذج مقابل
8:15المستخدم الرئيسي ،
8:17المستخدم النهائي ، أو
8:19مقابل العميل المتاح
8:21لدينا ، ممن له كلمة
8:23مسموعة . ومن ناحية
8:27أخرى لدينا التحقق (
8:29Verification ) ، الذي يراقب
8:31أن المنتج الذي يتم
8:33بناؤه يحترم
8:34المواصفات الأولية .
8:39هذا البرنامج الذي
8:41نبنيه يقوم بما يفترض
8:43به أن يقوم ، وينفذ ما
8:45تنص عليه المواصفات .
8:49إذن هو يجيب على سؤال :
8:51هل نبني النظام بشكل
8:53صحيح ؟ نحن نقوم بما
8:56قلنا إننا سنقوم به .
9:00لذا ، بدلاً من مقارنة
9:02النموذج مع المستخدم ،
9:04سنقوم بمقارنة ما
9:05لدينا في النظام مقابل
9:07النموذج . لماذا ؟ لأن
9:12النموذج قد تم التحقق
9:13منه بالفعل . جيد .
9:16ولماذا من المهم ذكر
9:17هذا في بداية الدورة ؟
9:19لأنه على الرغم من
9:21أننا نقوم بعمليات
9:22التحقق ( Validation ) في
9:24الاختبار ، إلا أن معظم
9:26جهدنا ينصب على عمليات
9:27التأكد ( Verification ) . حسناً
9:30، إذن ، باختصار شديد ،
9:33يمكننا القول إن
9:35التحقق ( Validation ) يجيب
9:37على سؤال : هل نبني
9:39النظام الصحيح ؟
9:42ويقارن المستخدم بما
9:44لدينا في النظام . أما
9:46التأكد ( Verification ) فيجيب
9:49على سؤال : هل نبني
9:50النظام بشكل صحيح ؟
9:54ويقارن النظام
9:55بالنماذج . إذا أردتم
10:00مثالاً أكثر واقعية
10:02وملموسة ، حسناً ، ربما
10:04يمكننا التفكير في
10:06مثال أستخدمه دائماً ،
10:08وهو بناء منزل . ما الذي
10:11نفعله ؟ على الأرجح ،
10:13سيأتي مهندس معماري
10:15أولاً برسم هندسي ،
10:16وسيقوم بالتحقق من هذا
10:19الرسم مع المستخدم أو
10:21العميل ، ليقول : " هل من
10:22المناسب أن تكون
10:24النوافذ هنا ، والمطبخ
10:26هنا ، والحمام هناك ؟ "
10:28حسناً ، إذا كانت
10:30الإجابة نعم ، نبدأ في
10:32بناء المنزل . تخيلوا
10:34لو قمنا ببناء منزل
10:35دون التحقق من الرسم
10:37الهندسي . عندما يرغب
10:39العميل في النهاية
10:41بإجراء تغيير ، سيكون
10:43الأمر صعباً جداً
10:44ومكلفاً للغاية ،
10:46بالإضافة إلى أن
10:47المنزل عند اكتماله لن
10:49يلبي توقعاته . سيخسر
10:52العميل الكثير من
10:54المال ، لذا فإن هذا
10:55الرسم هو بمثابة
10:57النموذج . الآن ، يجب
10:59علينا التأكد من
11:01المنزل المبني مقابل
11:03الرسم الهندسي . يتم
11:05التحقق من الرسم مع
11:07العميل ، بينما نتأكد
11:09من المنزل مقابل الرسم
11:11. هذا المثال يترجم ما
11:15قلته لكم للتو عن
11:17النظرية في سياق بناء
11:19منزل . لننظر إلى متطلب
11:24معين . حسناً ، كنت أقول
11:26إنه يجب علينا إجراء
11:28عمليات التحقق في أقرب
11:30وقت ممكن لأن التغافل
11:31وأخطاء التواصل
11:32غالباً ما تجعل
11:34التواصل معقداً
11:35للغاية . ولاحظوا في
11:37هذا المتطلب ، أريد أن
11:38يتمكن الأطفال من
11:40القفز من ارتفاع معين
11:42إلى الأرض دون أن
11:43يصابوا بأذى . المثالي
11:45هو أن يتمكن الأطفال
11:46من الانزلاق عبر ذلك
11:48السطح . حسناً ؟ هل
11:50المتطلب مفهوم ؟ هل هذا
11:52جيد ؟ حسناً ، ما الذي
11:54سنقوم ببنائه ؟ عندما
11:57أسأل هذا ، ما الذي
11:58سنقوم ببنائه ؟ حسنًا ،
12:02نظرًا لأن هذا المطلب
12:04يأتي إليكم عندما يكون
12:06لدي تكرار ، حسنًا ،
12:08سيتم بناء زلاقة مثلاً
12:10. إذًا بعد كل شيء ،
12:14يمكن للأطفال
12:15الانزلاق من سطح معين ،
12:17هل سيؤذون أنفسهم ؟
12:19حسنًا ، أو لن يؤذوا
12:21أنفسهم ، لنفترض أنهم
12:23لن يتأذوا . سوف
12:25ينزلقون من ارتفاع
12:26معين ، حسنًا ،
12:28وسيتزلجون على تلك
12:29الزلاقة . وماذا يحدث
12:32عندما نبني الزلاقة ؟
12:35حسنًا ، على سبيل
12:36المثال ، يبدأ الأطفال
12:38في الانزلاق من أي
12:39مكان آخر ، لذا هناك
12:41الكثير من الأشياء
12:42التي يجب أن نأخذها في
12:44الاعتبار عند البناء .
12:46هل كان ذلك المطلب
12:47واضحًا ؟ هل تحققنا منه
12:49مع الأطفال لنرى ما
12:50إذا كان هذا ما
12:52يريدونه ، فربما لم
12:53يريدوا ذلك . ربما كان
12:55يكفيهم ، لا أعلم ، تل
12:57أو سطح ، لا أعلم ، من
12:59التراب ، حسنًا ، أو من
13:01الرمل . إذًا ، حسنًا ،
13:09هذا مهم جدًا ، أن نضع
13:11في اعتبارنا وجود
13:13أخطاء في التواصل ،
13:15وسأكررها لكم كثيرًا
13:17خلال الدورة ، كلمة
13:19التواصل خاصة مع موضوع
13:21المنهجية . ودائمًا ما
13:27يكون من المهم ، حسنًا ،
13:29ومن الأساسي التحقق من
13:31ذلك مع المستخدمين
13:32النهائيين . حسنًا ، كنت
13:37أقول لكم إننا نواجه
13:39مشاكل في التواصل للتو
13:41، وهذا رسم بياني
13:43نموذجي . ربما رآه
13:46البعض ، والبعض الآخر
13:48لا . حسنًا ، إذا كنتم في
13:51مجال تطوير البرمجيات
13:53، كان هناك القليل
13:55جدًا ، لكن ربما
13:56رأيتموه لأنه موجود
13:58منذ سنوات عديدة . هذا
14:00طلب المستخدم هو
14:02أرجوحة ، لنقل ذات
14:03ثلاثة طوابق ، لنفترض
14:05أنها الصورة الأولى .
14:07حسنًا ، ماذا فهم قائد
14:09المشروع ؟ جاهز ، يكفي
14:11صنع أرجوحة وتعليقها
14:13بفرعين على شجرة . من
14:15صممها ؟ ماذا فعل ؟ محلل
14:19النظم . انتظروا قليلاً
14:25ماذا فعل محلل النظم
14:27هذا ؟ حسنًا ، أضاف
14:29القليل من التعقيد ،
14:31كما في الصورة الثالثة
14:33، أليس كذلك ؟ إه ، ماذا
14:35طور المبرمج ؟ حسنًا ،
14:38جاء استشاري خارجي
14:40لنرى ما إذا كان
14:41بإمكانه مساعدتنا ،
14:42وهو أمر يحدث أحيانًا .
14:44ما الذي اقترحه ؟
14:46بالطبع ، الاستشاري
14:48الخارجي دائمًا ، بما
14:50أنه ليس من سيبنيها ،
14:52يقترح دائمًا أشياء ،
14:54حسنًا ، لكي ، أو بمعنى
14:58لا أعرف إن كان لتعقيد
15:00الأمر ، ولكن حسنًا .
15:02أعني ، الاستشاري
15:03الخارجي ، أنا لست من
15:05مؤيدي الاستشاريين
15:07الخارجيين لأنهم لا
15:08يدركون جيدًا ما يفعله
15:10كل شخص . إه إذًا ، من
15:14الواضح ، بما أنه يجب
15:15عليهم تقاضي أجر ، فيجب
15:17أن يقولوا شيئًا ما .
15:18إذًا ، ما هي وثائق
15:20المشروع ؟ لم يتم توثيق
15:22أي شيء . يعني ، هذه
15:25مسألة إشكالية جداً
15:26بالنسبة للاختبار ،
15:28وهي مسألة التوثيق .
15:31وصل إلى الإنتاج ، لم
15:32يصل إلى الإنتاج ، لم
15:34يصل إلى الإنتاج سوى
15:35مجرد حبل . ميزانية
15:37المشروع كانت متقلبة
15:38من الأعلى إلى الأسفل ،
15:39ومن الأسفل إلى الأعلى
15:40. كانت أشبه بركوب
15:42الأفعوانية . حسناً .
15:45إيه ، من قدم الدعم
15:46وماذا كان يحتاج
15:48المستخدم حقاً ؟ لأن
15:50لاحظوا ما طلبه
15:51المستخدم وما كان
15:53يحتاجه بالفعل . هو لا
15:55يعرف دائماً ما يريده ،
15:57حسناً . المستخدم
15:59النهائي يريد شيئاً
16:01دائماً ، لكنه في كثير
16:02من الأحيان لا يعرف ما
16:04يريده . في الواقع ، هو
16:07لا يعرف أبداً ما يريد .
16:09هل هذا سيء ؟ لا ، ليس
16:11سيئاً جداً . نحن نوظف
16:13لنساعدهم ، لذا يجب
16:15علينا مساعدتهم في
16:16معرفة ما يحتاجونه .
16:18وبالعودة إلى هذا
16:20الرسم البياني ، بينما
16:21كنت أخبركم به ، أدركت
16:23أنني ذكرت كلمة "
16:24الإنتاج " . الإنتاج ،
16:26كما يعلم البعض ، هو
16:28اسم يطلق على بيئة
16:29العمل . حسناً ، إذا كنا
16:31سنتحدث عن بيئات
16:33مختلفة ، وهو ما
16:35سنتناوله خلال الدورة
16:37، فهناك بيئة التطوير
16:39حيث يعمل المطورون ،
16:41وبيئة الاختبار حيث
16:43نجري اختبارات الجودة
16:45( QA ) ، وبيئة الإنتاج ،
16:47وقد تكون هناك بيئات
16:49أخرى . هناك بيئة وسيطة
16:51بين بيئة الاختبار
16:53والإنتاج تسمى ( UAT ) ،
16:54وهي اختبارات قبول
16:56المستخدم النهائي .
16:58ماذا يعني ذلك ؟ أن
17:00المطور سيعمل في بيئة ،
17:02بينما سيختبر المختبر
17:04في بيئة أخرى . وسيصل
17:06المستخدمون النهائيون
17:07إلى مكان آخر وهو بيئة
17:09الإنتاج . لماذا ؟ لأن
17:11هناك أمراً أساسياً .
17:13يعني ، لا يمكن للمطور
17:14أن يقوم بإجراء
17:15تعديلات وتغييرات في
17:16نفس الوقت الذي يستخدم
17:18فيه المستخدم النهائي
17:19النظام ، على سبيل
17:20المثال . هذا جنون .
17:22حسناً ، لأن الاختبار
17:24لا يمكن أن يتم في نفس
17:25المكان الذي يتم فيه
17:27التطوير وإجراء
17:28التغييرات ، وإلا فلن
17:29تكون الاختبارات
17:31موثوقة . إذن ، هذا ما
17:35يقصده بمصطلح الإنتاج .
17:43الآن ، ما هو الاختبار ؟
17:45حسناً ، إنه سؤال عظيم
17:47لمقدمة عن الاختبار .
17:49إنه أشبه بمحتوى
17:50الدورة التدريبية
17:51بأكملها . هذا تقريباً .
17:54دعونا نرى بعض
17:55المفاهيم . حسناً ، إذا
17:57بحثتم عن تعريف
17:58للاختبار ، ستجدون
18:00الكثير . أنا شخصياً
18:01يعجبني التعريف
18:03الموجود هنا والذي
18:04ترونه على الشاشة ، لكن
18:06هناك العديد غيره .
18:08حسناً . وهذا لا يعني أن
18:10هذا هو الحقيقة
18:11المطلقة . حسناً . وهذا
18:13التعريف يقول إن
18:14الاختبار هو التحقق
18:16الديناميكي من مطابقة
18:17النظام للمتطلبات .
18:20لماذا التحقق ؟ تلك
18:22الكلمتان الموضحتان
18:24بالخط العريض هناك ،
18:26التحقق والديناميكية .
18:29حسناً ، رأينا مصطلح
18:31التحقق سابقاً لأنه
18:33يتكون ببساطة من
18:35مطابقة النظام مع
18:36المتطلبات . ولماذا
18:38الديناميكية ؟ لأنها
18:42تتضمن تنفيذ النظام
18:44على عكس شيء ثابت ، وهو
18:46شيء لا يتحرك ، شيء لا
18:48يتم تنفيذه . حسناً ،
18:53الاختبار يعني تنفيذ
18:54النظام . في كثير من
18:57الأحيان ستجدون هذا ،
18:59حيث يقولون : أنا أختبر
19:01الكود ، لا . إذا كنت
19:04تختبر الكود ، فأنت
19:05تبحث عن أخطاء أو عيوب
19:08، وسنرى لاحقاً الفرق
19:10في الكود ؛ فأنت لا
19:12تقوم بعملية " اختبار "
19:14فعلية ، بل تقوم بشيء
19:16آخر . على سبيل المثال ،
19:18التحليل الساكن . ولكن ،
19:20أحياناً نقول إن
19:21مفاهيم الاختبار
19:23مبالغ فيها ، ويطلق
19:25مسمى " اختبار " على
19:26الكثير من الأشياء
19:28التي ليست اختباراً في
19:30الحقيقة . حسناً . في
19:33الواقع ، أقول أنا
19:34أحياناً " أنا أختبر
19:36شيئاً ما في حياتي
19:37اليومية " ، ولكنني في
19:39الحقيقة لا أقوم
19:40بالاختبار ؛ لأنني إذا
19:42حصرته في اختبار
19:43البرمجيات ، فلن يكون
19:45تعريفاً صحيحاً . لذا
19:48في الممارسة العملية ،
19:50ستجدون أن هناك أموراً
19:52تُسمى اختباراً وهي
19:53ليست كذلك . لكن ،
19:55باختصار ، هذا التعريف
19:57يقول إنه عبارة عن
19:59عملية تحقق . وما الذي
20:01يتحقق منه ؟ مدى ملاءمة
20:04النظام للمتطلبات . هذا
20:07ما قلته سابقاً ،
20:08النظام مقابل تلك
20:10النماذج والديناميكية
20:12. لماذا ؟ لأنه يتم
20:14تنفيذه . دعونا نلقي
20:17نظرة على تعريف آخر من
20:19شين باتش . شين باتش
20:21خبير اختبار من الطراز
20:23الرفيع ، صاحب مسيرة
20:25مهنية طويلة ، ابتكر
20:27منهجية اختبار تسمى "
20:29رابيد " ( Rapid ) . اختبار
20:31البرمجيات . هو شخص نشط
20:33جداً على وسائل
20:34التواصل الاجتماعي ،
20:35ومثير للجدل ، كتب
20:36العديد من المقالات ،
20:38وغالباً ما يكون
20:39مضيفاً للعديد من
20:40المؤتمرات ، لذا إذا
20:42كنتم تحبون الاختبار
20:43وتفهمون اللغة
20:44الإنجليزية ، أنصحكم
20:46بمتابعته . إذاً ، هو
20:48يقول إن الاختبار هو
20:49العملية اللانهائية
20:51لمقارنة ما هو غير
20:52مرئي بما هو غامض . لقد
20:54قمت بتسليط الضوء على
20:56ثلاث كلمات هناك .
20:58عملية ، أي أن هناك
21:00عملية للقيام
21:01بالاختبار . ليس الأمر
21:04أنني أفعل ما أريد ،
21:05وأقوم بالبحث ونرى ما
21:07سيحدث ، لا . هناك عملية
21:10وسنراها لاحقاً .
21:11ومجازياً ، يقول إنه
21:13يقارن بين ما هو غير
21:15مرئي وما هو غامض . ما
21:17هو الشيء غير المرئي ؟
21:18حسناً ، غير المرئي هو
21:20الكود ، كود النظام ،
21:22البرمجيات ، ذلك الشيء
21:24الذي لا يُرى ، والغامض
21:26هو المواصفات .
21:27المواصفات دائماً
21:29غامضة ، وفي أغلب
21:31الحالات تكون كذلك .
21:33ولهذا السبب التواصل ،
21:35وهنا أذكركم مجدداً
21:37بكلمة التواصل ، هو أمر
21:39جوهري . إذًا ، باختصار ،
21:44ما يقوله جيمس هو نفس
21:46ما كنا نقوله نحن أو ما
21:48كنت أقوله لكم . هو يضيف
21:55فقط أن هناك عملية ،
21:57ويقول بشكل مجازي إنه
21:59يقارن النظام
22:01بالمتطلبات . وهناك
22:10تعريف آخر جيد لماهية
22:12الاختبار من السيد
22:14ديكسترا ، وهو أن
22:15الاختبار وسيلة فعالة
22:17لإظهار وجود الأخطاء ،
22:19لكنه وسيلة غير ملائمة
22:21لإثبات غيابها . أي أنه
22:28من خلال الاختبار
22:29يمكننا القول بوجود
22:31عيوب ، لكن لا يمكنني
22:32القول بأن النظام خالٍ
22:34من العيوب أو أنه لا
22:36يحتوي على المزيد ،
22:37فأنا ببساطة لم أعثر
22:39عليها . انتبهوا لهذا
22:43الأمر ، وسنراه لاحقًا
22:45في عدة دروس . إذًا ،
22:49لماذا نقوم بالاختبار
22:51؟ والإجابة تتعلق
22:54بأنني أقوم بالاختبار
22:56لتقليل مخاطر حدوث
22:58العيوب . عدم إجراء
23:03الاختبار أثناء تطوير
23:05البرمجيات هو مخاطرة ،
23:07ومخاطرة كبيرة جدًا .
23:11يساعد إجراء الاختبار
23:13في تقليل احتمالية
23:15العثور على عيوب في
23:16النظام . والآن ، لقد
23:21قدمنا للتو هذا
23:22المفهوم المهم للغاية
23:24، لأن هناك نهجًا
23:26للاختبار يركز على
23:27المخاطر ، وسنرى
23:29لاحقًا درسًا حول
23:30مخاطر الاختبار . والآن
23:37، ما هو الخطر ؟ الخطر
23:40هو حدث في مستقبل غير
23:42مؤكد ، إذا وقع ، فمن
23:44الواضح أنه سيكون له
23:46تأثير ، سواء كان
23:47إيجابيًا أو سلبيًا ،
23:49على أحد أهداف المشروع
23:51. هو مستقبل غير مؤكد
23:53لأنه لا يُعرف ما إذا
23:55كان سيحدث أم لا . إذا
23:57لم يكن هناك يقين بشأن
24:00ذلك ، فقد يكون له
24:01تأثير إيجابي ، أي يمكن
24:04أن يكون فرصة ، على
24:06سبيل المثال ، لنذهب
24:08إلى كرة القدم ، أو خطر
24:10رياضي ، فقد يتم تسجيل
24:12هدف . هذا شيء في مستقبل
24:16غير مؤكد يمكن أن تكون
24:18له نتيجة إيجابية . وقد
24:20يكون له أيضًا تأثير
24:22سلبي ، أو تهديد ، وهو
24:24أن يتم تسجيل هدف في
24:25مرماي . حسنًا ، إذًا
24:29هذا الخطر لديه
24:30احتمالية للوقوع .
24:34حسنًا ، سواء كان
24:35إيجابيًا أو سلبيًا ،
24:38فله تأثير ، وهذان
24:39السمتان ستسمحان لي
24:41بتقييم ذلك الخطر . أي
24:48تحديد مدى الأهمية
24:50التي سأعطيها لهذا
24:52الخطر ، لأنه أحيانًا
24:54يكون خطرًا ، لا أعلم
24:56يا شباب ، وقوع جائحة ،
24:58فهو خطر حتى قبل 6
25:00سنوات كان شيئًا لن
25:02يحدث ، لكنه خطر تحقق
25:04ووقع بالفعل . إذًا ،
25:13احتمالية الوقوع
25:15تتعلق بالتكرار ،
25:16وبإمكانية حدوثه أو
25:18تحقق ذلك الخطر ،
25:20وبالتأثير الذي
25:21سيحدثه . حسناً ، الأمر
25:26يتعلق بما سيحدث إذا
25:28تحقق ذلك الخطر . وفيما
25:32يتعلق بالمخاطر ،
25:34حسناً ، هناك أنواع
25:35مختلفة من المخاطر .
25:37هناك مخاطر الأعمال
25:39التي ستؤثر على
25:40المؤسسات . على سبيل
25:42المثال ، إطلاق منتج
25:44مبكراً ، لأن المنافس
25:46يطلق شيئاً مشابهاً
25:48لتغيير هيكلي في
25:49الإدارة . يمكن أن يجلب
25:52معه خطر عمل ، أو خطر
25:54مشروع إذا أثر على أحد
25:56أهداف ذلك المشروع مثل
25:58المواعيد النهائية أو
26:00التكاليف أو النطاق ،
26:02على سبيل المثال . بعد
26:07ذلك لدينا خطر يتعلق
26:09بالمشروع ، قد يكون
26:10دوران الموظفين ،
26:12حسناً من الفريق أو
26:13التغيير المفرط في
26:15المتطلبات أو التقليل
26:17من تقدير الجهد . لدينا
26:21أيضاً مخاطر المنتج
26:22التي ستؤثر عليه . هذا
26:25قد يكون جودة أو أداء
26:27المنتج ، على سبيل
26:28المثال ، لا أعلم ، عيوب
26:31في التصميم ، مخرجات
26:33غير قابلة للتحقق ، نقص
26:35في تفاصيل التعريفات .
26:37ومن ناحية أخرى ،
26:39الأخيرة ، لدينا
26:40المخاطر الخارجية ،
26:42وهي تلك البعيدة عن
26:43المنظمة والمشاريع
26:45التي تولد ، على سبيل
26:47المثال ، لا أعلم ، خطر
26:49عمل . هي أمور لا يمكننا
26:51السيطرة عليها عموماً
26:53، مثل التضخم ، انخفاض
26:55العملة ، تغير اللوائح
26:57، أمثلة على جائحة ،
26:59كوارث مناخية . حسناً ،
27:02الآن ، ما علاقة هذا
27:03بالاختبار ؟ حسناً ،
27:06شيئان . من جهة ، الفريق
27:08الذي يشارك في تطوير
27:10البرمجيات يبلغ عن
27:11المخاطر ، والاختبار
27:13جزء من ذلك الفريق .
27:15إذاً ، سيكون الاختبار
27:17متيقظاً وسيبلغ عن
27:19المخاطر ، والتي من
27:21الواضح أنه سيكون مدير
27:23المشروع ، أو الـ PM ، أو
27:25مدير التسليم ، أو أي
27:27مسمى آخر ، هو من سيدير
27:29تلك المخاطر ، لكن يمكن
27:31لأي شخص من الفريق
27:33الإبلاغ عن خطر . حسناً .
27:36وبالإضافة إلى ذلك ، من
27:38ناحية أخرى ، من خلال
27:39الاختبارات نحن نساهم
27:41في تقليل بعض المخاطر
27:43التي تم ذكرها ، بعض
27:45المخاطر التي قد تظهر
27:47في هذا المشروع . يمكن
27:51تقليلها بشكل جيد من
27:53حيث احتمالية الحدوث
27:55من خلال الاختبار
27:56وأيضاً يمكن تقليل أثر
27:58البعض ، حسناً ، لكننا
28:00نعمل في الغالب على
28:02احتمالية الحدوث .
28:09حسناً ، أي أسئلة حتى
28:11الآن ؟ أمم ، كنت أريد
28:15أن أسأل فيما يتعلق
28:17باحتمالية الأثر . من
28:19الواضح أنه يمكن قياس
28:20ذلك بالنسبة المئوية ،
28:22ولكن الأثر بأي طريقة
28:23يمكن قياسه ؟
28:25>> أمم ، نعم ، كما قلت ، هو
28:27بالنسبة المئوية ،
28:28والأثر ، حسناً ، كما
28:30أخبرتكم ، أي المثال
28:31الذي أعطيتكم إياه ،
28:33على سبيل المثال ، ماذا
28:34يحدث في جائحة ؟ حرفياً
28:36، هذه هي الطريقة التي
28:38نقارن بها الأمر مع
28:40جائحة ، حيث تضع اليوم
28:41نسبة مئوية لحدوث
28:43جائحة وربما تكون
28:44عالية ، لكن قبل 6 سنوات
28:46، كنت ستقول : " لا ،
28:47احتمال حدوث جائحة ، لا
28:49أعلم ، 0.5 % . " هل تفهم ؟
28:53يعني ، أو لنقل ، لا
28:55أعلم ، لنقل حدوث زلزال
28:57في المبنى ويتحطم
28:59المبنى بالكامل
29:00ويتحطم مركز البيانات .
29:05خطر آخر قد يحدث ، وأود
29:08أن أقول لك أنه 0.1 % هنا ،
29:13على سبيل المثال ، حيث
29:16نتواجد نحن ، في كابا
29:18وأمبا ، قد حدث ذلك من
29:20قبل ، أليس كذلك ؟ وقد
29:25يحدث ، لا أعلم ، لهذا
29:27السبب يجب وضع نسبة
29:29مئوية ، ولهذا فهي
29:31مخاطر ، مخاطر المشروع
29:33ومخاطر سنتعمق فيها
29:35لاحقاً في مخاطر
29:37الاختبار . سنرى خطة
29:41جيدة وهناك نضع المزيد
29:44من المخاطر . كنت أتخيل
29:48التأثير كعدد الأشخاص
29:50الذين قد يصل إليهم أو
29:52نطاق ذلك الخطر ،
29:55>> مثلاً على مدينة أو
29:57على العالم ، كما قلت ،
29:59جائحة أو
30:00>> مجموعة من الأشخاص
30:02هكذا ، لكن لا أعلم ،
30:04ربما كانت لديك طريقة
30:06أخرى لقياسه ، ولهذا
30:08كنت أسأل . لا ، لا ، لا ،
30:11يتم وضع نسب مئوية
30:13ويتم تحديدها . حسناً .
30:16>> نعم ، حسناً . شكراً
30:18جزيلاً .
30:19>> أه ، حسناً . هل هناك أي
30:22أسئلة أخرى يا شباب ؟
30:27حتى نتمكن من المتابعة
30:29مع الجزء الثاني . جون
30:32إسكالانتي ، هل أنت
30:33موجود ؟
30:34>> نعم يا أستاذ ، أنا هنا .
30:36أنا هنا . لقد اتصلت .
30:38عذراً ،
30:39>> حسناً . أه ، لا أستطيع
30:42إضافتك إلى أه تليجرام
30:53لأنني لا أعرف ما هو
30:55اسمك . أه ، كيف تظهر
30:58باسمك ؟ ليس اسم
31:00المستخدم ، بل الاسم
31:02الحقيقي . باسم " جون
31:03إسكالانتي " لست مسجلاً
31:05عندي . يجب أن تخبرني
31:07باسمك حتى أتمكن من
31:08إلغاء حظرك . لدي واحد
31:10باسم " J " ، لكن لا أعرف
31:12إن كنت أنت ذلك الشخص .
31:15>> أه ، سأبحث عنه وأرسل
31:17لك ما يظهر لي ، لكن لدي
31:19" mayor escal " ، وليس اسم
31:21المستخدم . هل هذا
31:24مفهوم ؟ آه ، حسناً .
31:26سأتحقق من الأمر إذن .
31:28>> تحقق منه وأخبرني . هل
31:44هناك أي شخص آخر هنا لم
31:46يتمكن من الدخول إلى
31:48تليجرام ؟ أه ، عذراً ،
31:58لكن هل أنشأت مجموعة
32:00أخرى كما ذكرت بالأمس ؟
32:02>> لا ، إنها نفسها .
32:03>> آه ، إنها نفسها . مفهوم .
32:06إذاً ، شكراً . لهذا
32:25أريد رؤية ذلك ، حسناً ،
32:27إذا رأيتم ، إذا كان
32:29لديكم أي سؤال بخصوص
32:32موضوع الفصل
32:33الافتراضي و هكذا نكون
32:37قد انتهينا
32:39>> آه ، هل ما كنت تعرضه
32:41للتو يمكن مشاهدته
32:43لاحقاً ؟ هل ستقوم
32:45برفعه لاحقاً أم أنه
32:47مقتصر على الفصل فقط ؟
32:50لا أعرف .
32:51>> سؤال .
32:52>> لأنني كنت أبحث عنه
32:53الآن في الفصل
32:54الافتراضي ولم أجد سوى
32:56ملفات PDF ، وما كنا
32:57نشاهده كان عرضاً
32:58تقديمياً من PowerPoint .
32:59>> نعم ، هو نفسه ، العرض
33:01التقديمي بصيغة PDF .
33:03>> حسناً . بمعنى ، ما
33:05تعرضه لنا هو أساساً
33:07ملخص لما في ملفات الـ
33:09PDF . هل هذا صحيح ؟ لا ،
33:11الأمر ليس نفسه . بدلاً
33:13من رفع عرض تقديمي ، هو
33:15موجود بصيغة PDF . حسناً .
33:22>> يا أستاذ . لقد أرسلت لك
33:24ما يظهر عندي . لا أعلم
33:25إن كان هذا هو المقصود .
33:29>> أه ؟ لا ، هذا ليس الاسم .
33:34هذا هو اسم المستخدم .
33:36أنا أحتاج إلى اسمك
33:38الحقيقي . كيف حالك ؟ هل
33:42أنت هكذا ؟ جون
33:43إسكالانتي ، أليس كذلك
33:45؟ أعني ، أنت لست
33:46محظوراً . لا ، يجب أن
33:48تكون قادراً على
33:49الدخول .
33:51>> بالطبع ، لدي نفس الاسم
33:53تقريباً ، لكن بدون
33:54الشرطة السفلية فقط .
33:56لكن لا .
33:58>> أريد الاسم ، لا اسم
33:59المستخدم . بالطبع ، لا ،
34:02لست مسجلاً لدي .
34:04بالطبع .
34:05>> أعني ، أنت لست محظوراً
34:06. هذا ما أقصده .
34:08>> حسناً ، سأحاول
34:09الانضمام مجدداً
34:10وسأخبرك بما سيحدث .
34:12>> لأنك لست محظوراً .
34:15محظور . أنا أستخدم نفس
34:19الحساب لأن لدي بعض
34:21الأشياء هناك ، سأخبرك
34:23ولا أجدك عندي . لهذا
34:28السبب . أعني الآخرين ،
34:35مثل أوليسيس
34:37وديلغاديو ، وشخص آخر
34:39دخل اليوم ، لقد
34:40أخبروني ودخلت حينها .
34:46>> نعم ، تمكنت من الدخول
34:48الآن . ها هو ذا . غريب ،
34:50لأنه في المرة الأولى
34:51التي حاولت فيها
34:53الدخول ، ظهر لي نفس
34:54الشيء الذي ظهر
34:55لزملائي .
34:56>> حسناً .
34:56>> تمكنت من الدخول .
34:58شكراً لك يا أستاذ .
34:59>> هل هناك أي شخص آخر لم
35:01يتمكن من الدخول ؟
35:06لننهي هذا الأمر . تم .
35:14حسناً ، جيد . حسناً ،
35:17بما أن يوم الإثنين
35:19عطلة ، سنتقدم قليلاً
35:21لنكمل يوم الأربعاء .
35:23يوم الأربعاء لدينا
35:25حصة . جيد . لأنه وبسبب
35:29العطلة يوم الإثنين ،
35:31للأسف يقصر الأسبوع يا
35:33شباب . آه . سنلقي نظرة
35:39سريعة على العلاقة بين
35:41القابلية للاختبار ،
35:43وأيضاً ما يخص التصحيح
35:45. جيد . آه ، عن ماذا
35:48نتحدث عندما نتحدث عن
35:50الجودة ؟ حسناً ، من
35:52الواضح أن اختبار
35:54البرمجيات يضيف جودة
35:55لها ، حسناً ، ولكن هناك
35:57بعض التعريفات لهذا
35:59الأمر . على سبيل
36:00المثال ، هناك ما تقوله
36:02الأكاديمية الملكية
36:03الإسبانية ( RAE ) . ماذا
36:04تقول ؟ تقول إن الجودة
36:07هي خاصية لشيء ما تسمح
36:11بمقارنته مع البقية
36:13والقول ما إذا كان
36:15يتمتع بجودة أقل أو
36:16مساوية أو أعلى . أي
36:21أنها سمة تسمح
36:23بالمقارنة ، لكنها لا
36:24تحدد أيّاً من الشيئين
36:26اللذين أقارنهما
36:28يتمتع بجودة أعلى من
36:30الآخر . حسناً ، لاحظ
36:32أنني أتحدث دائماً عن
36:34هذا المثال . لدينا هنا
36:36صورة لسيارة فيراري
36:38وسيارة هامر . ما رأيكم
36:41أنتم ؟ أيّهما يتمتع
36:43بجودة أعلى ؟ سيارة
36:46هامر أم فيراري ؟ ما
36:50الذي يبدو لكم ؟
36:52>> لا ، لا ، الأمر يعتمد
36:53على الغرض أيضاً .
36:57>> نعم ، ولكن إذا قلت لكم
36:59هذا ، فإحدى الإجابات
37:02صحيحة . حسناً ، ولكن
37:05السؤال هو ، لماذا
37:07يعتمد على ذلك ؟ حسناً ،
37:11الأمر يعتمد على
37:12السياق ، جيد . يعتمد
37:15على الغرض الذي تريد
37:16استخدامه من أجله .
37:18حسناً . لقد قلت ذلك ،
37:20الغرض هنا يأتي بكلمات
37:22أخرى . إذا كان للقيادة
37:24على الطريق السريع ،
37:26فمن الواضح أن
37:27الفيراري أفضل . أما
37:28إذا كنت سأقوم برحلة
37:30دفع رباعي ، فربما تكون
37:32الهامر أكثر ملاءمة لي
37:34. حسناً ، إذن أحد
37:37الاستنتاجات الأولى
37:39التي نصل إليها هو أن
37:41الجودة ذاتية ، وإذا لم
37:43تصدقوا ، فاسألوا
37:44أنفسكم . حسناً . ما هي
37:47السمات التي تقدرونها
37:49لكي تقولوا إن منتجاً
37:51ما يتمتع بجودة جيدة ؟
37:55واسألوا أنفسكم جيداً
37:57، اسألوا أنفسكم . من
37:59المؤكد أن الأشياء
38:01التي تقدرونها ستكون
38:02مختلفة . وهذا يحدث لنا
38:05أيضاً عندما نسأل
38:06شخصاً ما إذا كان
38:08راضياً عن ، على سبيل
38:09المثال ، منتجنا أو
38:11خدمتنا . ربما يجد
38:14شخصان لديهما نفس
38:16المنتج أو الخدمة
38:17مستويات مختلفة من
38:19الرضا لأن لديهما
38:20تصوراً مختلفاً لتلك
38:22الجودة . حسناً ، وهنا
38:28لدينا تعريف آخر
38:29لماهية الجودة ، لأنني
38:31ذكرت لكم للتو الجودة
38:33ولدينا تعريف آخر هنا .
38:35هذا التعريف مقدم من
38:37منظمة الأيزو ( ISO ) .
38:38حسناً . ويخبرنا أن
38:42الجودة هي الدرجة التي
38:44تفي بها مجموعة من
38:46الخصائص المتأصلة في
38:48شيء أو منتج أو خدمة أو
38:50عملية أو شخص أو منظمة
38:52أو نظام أو موارد
38:53بالمتطلبات . هذا
38:59التعريف يتوافق مع
39:00التعريف السابق ، لكنه
39:02يضيف أن الشيء يتمتع
39:04بالجودة إذا كان يلبي
39:06المتطلبات . إذن ، هذا
39:12ما كنا نقوله للتو ، أن
39:14جودة شيء ما ستعتمد
39:16على السياق ، وعلى
39:17المتطلبات ، وعلى
39:19الغرض منه ، وكيف ترتبط
39:21تلك الجودة بالاختبار .
39:28من ناحية ، أخبرتكم في
39:30البداية أن النظام
39:31الجيد يتطلب الامتثال
39:33للمتطلبات ، لأننا
39:35نقوم بعمليات التحقق
39:37والتدقيق لهذا الغرض .
39:41ولكن لكي يمتثل
39:43للمتطلبات ، لدينا هنا
39:45نقطة مشتركة . هناك
39:49الصورة الأولى التي
39:50تقول " المساهمة " . الهدف
39:53من الاختبار هو
39:54المساهمة في جودة
39:56النظام . سوف يوفر
39:59معلومات موضوعية حول
40:01تلك الجودة . هذا لا
40:05يعني أن الاختبار يضيف
40:07الجودة بحد ذاته .
40:09فمجرد إجراء الاختبار
40:11لا يعني أن النظام
40:13سيصبح ذا جودة . هناك
40:16الأيقونة الثانية ،
40:18التي تمثل فريقاً .
40:20حسناً ، جودة أفضل أو
40:23أعلى . الجودة هي
40:25مسؤولية الفريق
40:27بأكمله ، وليست
40:28مسؤولية ضمان الجودة (
40:30QA ) كما كان يحدث منذ
40:32سنوات عديدة حيث كانوا
40:34يأتون ويقولون : " أنت
40:36أخطأت وأنت المسؤول " .
40:39لا ، في يومنا هذا ،
40:40المسؤولية تقع على
40:42عاتق الفريق بالكامل .
40:44حسناً ، أنا أبلغك عن
40:46العيب ، أو الخطأ ، أو
40:48التحسين ، ولكن إذا لم
40:50يتم تصحيحه ، فأنا لا
40:52أضيف جودة بمجرد إجراء
40:54الاختبار . حسناً . ثم
40:58الصورة المجاورة ،
41:00الطبيب ، الاختبار هو
41:02طبيب ، يقوم بتشخيص
41:03حالة الأمور ، وكلما
41:05أجرينا اختباراً أفضل
41:07، حصلنا على تشخيص
41:09أفضل . ما يجب أن نتجنبه
41:12هو الاعتقاد بأننا
41:14نضيف الجودة من خلال
41:16الاختبار . ثم لدينا
41:20الأخير وهو الكوب .
41:22حسناً ، للنظام كما لو
41:24كنا نضيف السكر للشاي
41:26أو القهوة ، أو كيفما
41:28شئتم تسميته ، ولتكن
41:30القياس صحيحة ، أننا
41:32نقوم بذلك في النهاية
41:34من خلال الاختبار . إذن
41:37، ما نفعله هو تشخيص
41:39حالة النظام ، ولكن ليس
41:41بمجرد إجراء الاختبار
41:43أصبح نظامي الآن ذا
41:45جودة أفضل مما كان
41:46عليه من قبل . ربما لدي
41:49معلومات أكثر من ذي
41:51قبل ، ولكن إذا لم يتم
41:53تصحيح الأمور ، وإذا لم
41:55يتم تنفيذ التحسينات ،
41:57فلن أحصل على نظام
41:58بجودة أفضل . الآن ، كيف
42:01نساهم في الجودة ؟
42:03حسناً ، من ناحية نثبت
42:05وجود الأخطاء ومن
42:06ناحية أخرى نثبت أيضاً
42:08أن النظام يعمل بشكل
42:10جيد . إذا قمت بتنفيذ
42:12الاختبار مرات عديدة ،
42:13ونفذت حالات الاختبار
42:15مرات عديدة وقد نجحت
42:17تلك الاختبارات . لا
42:19يعني هذا أنني أضعت
42:21وقتي لمجرد إجراء
42:23الاختبار ، وعدم
42:24العثور على عيوب . على
42:26العكس ، ما أفعله هو
42:28زيادة الثقة في ذلك
42:29النظام . حسناً ، إذن
42:35سننتقل الآن إلى
42:37التالي الذي في شركات
42:42الأنظمة المختلفة
42:43يوجد بالطبع ما يسمى
42:45بقسم ضمان الجودة ،
42:46ولكن ليس كل من يعمل في
42:48ذلك القسم أو تلك
42:49المناطق يُطلق عليهم
42:51موظفي ضمان الجودة .
42:52وأجد هذا مثيراً
42:54للاهتمام ، فهناك فرق ،
42:56ولا يوجد تساوي بين ما
42:57هو ضمان الجودة ( QA ) ،
42:59ومراقبة الجودة ( QC ) ،
43:01والاختبار ( Testing ) . يشير
43:03QA إلى Quality Assurance ، وهو
43:06ضمان الجودة . QC يعني
43:08Quality Control ، وهو مراقبة
43:11الجودة ، وهناك أيضاً
43:13الاختبار ( Testing ) . الآن
43:18سنرى كيف يترابط كل
43:20هذا ، لأنني أوضحت لكم
43:22بالتفصيل الفرق بين
43:24هذه المفاهيم . حسناً ،
43:34في المقام الأول يأتي
43:36Quality Management ، وهو
43:38مجموعة الأنشطة
43:39المتعلقة بالإدارة
43:41والتنسيق ، حيث توجد
43:43العمليات والمنهجية
43:44والمقاييس . لاستخراج
43:54هذا ، سنرى لاحقاً
43:56مقاييس مختلفة لتقييم
43:58جودة البرمجيات . إذن ،
44:08إدارة الجودة ( QM ) هي
44:10التي تضع التوجيهات ،
44:12وتنشئ السياسات
44:13والإجراءات والمعايير
44:15وأهداف الجودة تحت
44:17مظلتها في هذه
44:18المجالات الأربعة . من
44:23ناحية ، هناك تخطيط
44:25الجودة ( Quality Planning ) ،
44:27وهو QP . وهو مجموعة
44:30الأنشطة المتعلقة
44:31بتخطيط تلك الأهداف
44:33وسياسات الجودة . كيف
44:40سننفذ هذا ؟ ما هي
44:42الموارد التي نحتاجها
44:43؟ ما هي المعايير التي
44:45يجب أن نلتزم بها ؟ ما
44:46هي المخاطر التي
44:48نواجهها ؟ ما هي
44:49الأنشطة التي سنقوم
44:50بها ؟ عند تنفيذ أي
44:52نشاط ، يجب أن نفكر
44:54دائماً في تحليل
44:56التكلفة والعائد ،
44:57والقياس المقارن (
44:59Benchmarking ) ، وإعداد الخطط
45:01، وتحديد معايير
45:02النجاح لقياس ما قمنا
45:04به والتأكد من جدواه .
45:09من ناحية أخرى ، لدينا
45:11ضمان الجودة ( Quality
45:13Assurance ) ، وهو مجموعة
45:15أنشطة متابعة وتدقيق
45:17الجودة . حول العمليات
45:23وهذا هو الاختلاف
45:27الرئيسي بين QA و QC . حيث
45:31يهتم QA بالعمليات .
45:38قلنا إن أفضل طريقة
45:40للقيام بذلك هي من
45:42خلال إنزال الأهداف من
45:44إدارة الجودة ( QM ) .
45:50حسناً ، و بالطبع ، هو
46:00يقوم أيضاً بتقييم
46:02التطبيق الصحيح
46:03للعملية ، ولا يكتفي
46:05بالتحقق مما نفعله
46:06وفقاً لما خططنا له ،
46:08بل نسعى للتحسين
46:10بإزالة المهام غير
46:12الضرورية ، وتقييم
46:13أسباب المشكلات
46:15المتكررة . وذلك لنرى
46:21كيف يمكننا استئصالها
46:23من الجذور . نرى كيف
46:26يمكن الوقاية من
46:27المشكلات . من ناحية
46:32أخرى ، لدينا مراقبة
46:34الجودة ( Quality Control ) ، وهي
46:36مجموعة الأنشطة
46:38الخاصة بفحص جودة
46:40المنتج . حسناً ، وهو ما
46:43يسمى بـ QC ، وترجمته هي
46:48مراقبة الجودة . حسناً ،
46:51لاحظوا أننا تحدثنا
46:53للتو عن جودة العملية ،
46:55والآن نتحدث عن جودة
46:57المنتج . أحد الأنشطة
47:01التي سنقوم بها
47:03للمساهمة في جودة
47:04المنتج هو الاختبار ،
47:06ولكنه ليس النشاط
47:08الوحيد . حسناً ، عندما
47:14نتحدث عن منتج في
47:16حالتنا ، فنحن نتحدث
47:17بشكل عام عن منتج
47:19برمجي ، ولكن في المثال
47:21الذي ذكرته سابقاً عن
47:24أفضل طريقة لممارسة
47:25إدارة الجودة ... حسناً ،
47:28سابقاً قيمنا عملية
47:30البناء ، والآن نقوم
47:32بتقييم الجودة . إذن ،
47:40الاختبار هو أحد أنشطة
47:42مراقبة الجودة ، ولكنه
47:44ليس الوحيد ، فهناك
47:46أنشطة أخرى ، مثل
47:48عمليات الفحص ،
47:49والمراجعات ، والتحليل
47:51الساكن . على سبيل
47:55المثال ، يمكننا إجراء
47:57مراجعة لمواصفات
47:59المتطلبات ، وهذا
48:01سيضيف جودة ، لكنه لا
48:03يعد اختباراً . لهذا
48:06السبب قلت لكم في
48:08البداية إن مصطلح
48:09الاختبار مثقل
48:10بالمعاني ؛ لأننا
48:12غالباً ما نقول إننا
48:14نختبر المواصفات ، رغم
48:15أننا نعلم من تعريف
48:17التحقق الديناميكي أن
48:19ذلك ليس اختباراً
48:20بالمعنى الحرفي . حسناً
48:24. ومن ناحية أخرى ،
48:27لدينا ما يسمى بـ QI ،
48:29وهو الأخير ، أي تحسين
48:31الجودة ، وهو مجموعة
48:33الأنشطة الموجهة
48:34لتحسين العمليات
48:36الحالية ، وهو ببساطة
48:38ما قد تسمونه التحسين
48:40المستمر . كوننا نقوم
48:43بالأمور بشكل جيد لا
48:45يعني ، حسناً ، لا يعني
48:47أننا لا نستطيع القيام
48:49بها بشكل أفضل . يتطلب
48:51هذا اكتشاف وتحليل
48:53أوجه القصور واقتراح
48:55التحسينات ، وهذا أمر
48:56ضروري دائماً . إذن ،
48:59هذا هو الفرق الرئيسي
49:01بين الاختبار ، وضمان
49:03الجودة ، ومراقبة
49:04الجودة . في كثير من
49:09الأحيان في الشركات ،
49:10حسناً ، إيه يطلقون على
49:16الدور أحياناً اسم
49:18محلل أو مدرب . حسناً ،
49:20في حين أننا في الواقع
49:22لا نعمل على العمليات ،
49:24بل نقوم فقط بإجراء
49:26الاختبارات . حسناً ،
49:28هذا تطبيق خاطئ لهذا
49:32المسمى . إذن ، بشكل عام
49:36، الفرق الرئيسي هو أن
49:38ضمان الجودة يركز على
49:40جودة العمليات ،
49:41ومراقبة الجودة تركز
49:43على جودة المنتج ،
49:45والاختبار هو أحد
49:46الأنشطة العديدة التي
49:48يمكننا القيام بها
49:50كجزء من مراقبة الجودة
49:52. حسناً ، إيه ، هذا بشكل
49:58عام ، ما هو الفرق بين
50:00الواحد والآخر ؟
50:03لنتحدث قليلاً عما
50:05يسمى بنماذج الجودة .
50:07تُعرف نماذج الجودة
50:08أيضاً بنماذج التميز .
50:10هناك العديد من
50:11النماذج ، والمنظمات
50:13التي ترغب في تطبيق
50:15أحدها تختار النماذج
50:16التي تريد الالتزام
50:18بها . لكن هذه النماذج ،
50:24بالنسبة للمنظمات
50:26التي ترغب في تطبيقها ،
50:28حسناً ، إيه ، هي إطار
50:30مرجعي تقارن المنظمات
50:32نفسها به لمعرفة نقاط
50:34ضعفها ونقاط قوتها .
50:39تحديد بعض مسارات
50:41التحسين ، وهذه
50:42المقارنة هي عبارة عن
50:44تقييم ذاتي . تختلف
50:46المعايير عن ذلك .
50:49النموذج ليس معياراً .
50:51يضع المعيار مبادئ
50:53توجيهية يجب الالتزام
50:55بها وهي قابلة
50:56للاعتماد . على سبيل
50:58المثال ، شهادة ISO 9001
51:01التي تعتمد العمليات ،
51:04أو معيار 25,000 الذي
51:06يعتمد جودة البرمجيات .
51:09ولكن بالعودة إلى
51:11النماذج ، هناك نماذج
51:12مختلفة . على سبيل
51:15المثال ، نموذج " ديمنج "
51:17الذي طوره " إدوارد " في
51:19اليابان للمساهمة في
51:21تحسين القدرة
51:22التنافسية . يُفترض أنه
51:26بفضل هذا النموذج
51:29انتعشت الصناعة في
51:31اليابان . حسناً ، هناك
51:34نماذج أخرى ، مثل نموذج
51:36" مالكولم بالدريج "
51:37الذي أُنشئ في
51:38الولايات المتحدة
51:40لمنافسة الشركات
51:42اليابانية من خلال
51:43مفهوم الجودة الشاملة .
51:48نموذج آخر هو EFQM ، وهو
51:51المؤسسة الأوروبية
51:53لإدارة الجودة ، أو
51:55بالنسبة للجزء
51:56الأيبيري الأمريكي
51:58وهو " FUNDIBEQ " ، أعتقد أنها
52:01المؤسسة الأيبيرية
52:03الأمريكية لإدارة
52:05الجودة ، وهي تشبه
52:06السابقة لكنها مكيفة
52:09لأمريكا . حسناً ، على
52:13الرغم من أن لكل نموذج
52:14من هذه النماذج خصائص
52:16فريدة ، إلا أنها تشترك
52:18في مجموعة من الخصائص
52:20التي يمكنكم رؤيتها
52:21هنا في هذه الشريحة .
52:23النماذج ذات طبيعة
52:25طوعية ، أي أنه لا أحد
52:27يجبرنا على الالتزام
52:28بنموذج التميز . كل
52:30شركة تقرر ما إذا كانت
52:32تريد تطبيق نموذج أم
52:34لا . حسناً ، وأي نموذج
52:36ستقوم بتطبيقه .
52:37بالإضافة إلى ذلك ،
52:39بناء إطار مرجعي ،
52:40بالطبع ، من أجل
52:42التحسين المستمر . ولكن
52:44كما قلت لكم ، يمكن أن
52:46تكون النماذج عبارة عن
52:48متطلبات وتوصيات غير
52:50إلزامية ، فهي ليست
52:52ملزمة بالتنفيذ
52:53الحتمي ، بل هناك أمور
52:55يمكن للمرء تكييفها
52:57حسب احتياجاته . من
52:59ناحية أخرى ، يمكن
53:00تكييفها مع أي نوع من
53:02الشركات ، بغض النظر
53:03عما إذا كانت صغيرة أو
53:04متوسطة أو كبيرة أو
53:06محلية أو دولية ، وهي
53:07قابلة للتقييم الذاتي .
53:09أي أنني لا أحتاج إلى
53:10جهة اعتماد تأتي
53:11لتخبرني ما إذا كنت
53:12أقوم بالأمر بشكل جيد
53:14أو سيئ . وأخيراً ،
53:15ونتيجة لذلك ، فهي غير
53:17قابلة للاعتماد ، كما
53:19قلت لكم ، عكس المعايير
53:21التي هي قابلة
53:22للاعتماد . حسناً ، الآن
53:25سنرى مصطلح التنقيح أو
53:27تصحيح الأخطاء ( Debugging ) .
53:30ما هذا ؟ ما هو تصحيح
53:32الأخطاء ؟ أولئك الذين
53:35يعملون في البرمجة
53:37يعرفونه بالتأكيد ،
53:39وربما رآه البعض منكم
53:41في مسيرتكم الدراسية ،
53:43عذراً ، في دورات سابقة
53:45. تصحيح الأخطاء هو
53:48عملية تحديد سبب
53:49العيوب وتصحيحها .
53:51حسناً . وللقيام بذلك ،
53:54حسناً ، ما يتم القيام
53:56به هو تنفيذ محكوم
53:58للبرنامج . هذه العملية
54:02، عادة ما يقوم بها
54:04المطورون ، وهم لا
54:05ينفذونها مثلنا
54:07تماماً . حسناً ، هم
54:10ينفذونها بطريقة خاصة
54:12، إذ يضيفون أشياء
54:13تسمى نقاط التوقف (
54:15breakpoints ) لكي يتمكنوا من
54:17تتبعها . نقاط التوقف
54:19هي نقاط لقطع مسار
54:21التنفيذ . إذن ، بدلاً
54:23من تشغيل البرامج دفعة
54:25واحدة ، ستستمر
54:27البرامج في مسارها ؛
54:29ولكن حيثما وُضعت نقاط
54:31التوقف هذه ، ستتوقف
54:33لكي يتمكن المطور من
54:35رؤية تدفق البرنامج ،
54:37وحالة المتغيرات في
54:39تلك اللحظة ، وتفحص
54:41أسطر الكود المختلفة
54:43لتحليل سبب تلك العيوب
54:45، وبطبيعة الحال ،
54:47تصحيحها في النهاية .
54:50مصطلح " تصحيح الأخطاء " (
54:52debugging ) ، عند نقله إلى
54:53الإسبانية أو العربية
54:55، قد لا يكون مفهوماً
54:57بنفس القدر ، ولكن في
54:58الإنجليزية عندما
55:00نبلغ عن خطأ ، نقول
55:01إننا نبلغ عن " ثغرة " ( bug ) .
55:04حسناً ، إذن تصحيح
55:05الأخطاء هو إزالة
55:07الثغرات من ذلك
55:08البرنامج ، لنسمِّه
55:10هكذا . من ناحية أخرى ،
55:16الاختبار ( testing ) ، لقد
55:18تحدثت كثيراً عما
55:20أخبرتكم به حول
55:21الاختبار منذ يوم
55:23الإثنين . إذن ، ما هو
55:27الفرق الرئيسي بين
55:29الاختبار وتصحيح
55:30الأخطاء ؟ من ناحية ،
55:34يقوم بالاختبار مختص
55:36الجودة ( QA ) ، بينما يقوم
55:38بالتصحيح المطور ( dev ) ،
55:40ولكن من ناحية أخرى ،
55:41ما يفعله الاختبار هو
55:43كشف وجود العيوب ، ومن
55:45هناك يبحث ( التصحيح ) عن
55:47سببها ليتمكن من
55:49معالجتها . حسناً . من
55:54الواضح أن هناك سبع
55:56فوائد لإجراء اختبار
55:58البرمجيات واختبارات
55:59الجودة . ولماذا تعتبر
56:04هذه الاختبارات
56:06ضرورية ؟ حسناً ، نحن
56:10نريد ... شئنا أم أبينا ،
56:17في الوقت الحالي أصبح
56:19استخدام البرمجيات
56:21جزءاً من حياتنا
56:23اليومية ، في اللحظات
56:25التي أكتب فيها مثلاً ،
56:27أمامي شاشة ، وحاسوبي ،
56:29وهاتفي المحمول ، ولدي
56:31متصفحان وثماني
56:32علامات تبويب مفتوحة .
56:38حسناً ، باختصار ،
56:40أستطيع القول إن حياتي
56:42الإنتاجية تعتمد
56:43كلياً على عمل
56:45البرمجيات ، تماماً
56:47مثلكم . وأعلم أنني لست
56:49وحدي في هذا ، كما قلت
56:51لكم . أليس من المحبط
56:53عندما يتوقف برنامج
56:55تستخدمه فجأة عن العمل
56:57؟ هذا بالظبط . بالنسبة
56:59لي شخصياً ، إذا استغرق
57:01موقع ويب أو تطبيق
57:03جوال 3 ثوانٍ أو أكثر
57:05للتحميل ، فمن الطبيعي
57:06أن أشعر بالانزعاج .
57:08وأعتقد أنكم أيضاً
57:10تتشتتون . كونوا صادقين
57:12، نحن نعيش في عصر لا
57:14يتحلى فيه أحد بالصبر
57:16تجاه البرمجيات رديئة
57:18الجودة ، ولهذا السبب
57:20يجب أن يكون ضمان
57:22الجودة جزءاً لا يتجزأ
57:24من أي مشروع برمجيات .
57:27تكمن العلوم وراء
57:29اختبارات ضمان الجودة
57:31( QA ) في تحديد جودة
57:33البرمجيات بدقة ، بهدف
57:35التأكد من أنها تعمل
57:37كما هو متوقع وفي كل
57:39مرة . يشير المصطلح إلى
57:43طرق وعمليات مختلفة
57:45لاختبار البرمجيات
57:46وضمان جودتها . ولهذا
57:49السبب تعد اختبارات
57:51ضمان الجودة حليفك
57:52الأفضل ، من حيث نسبة
57:54التكلفة إلى الفائدة
57:56لضمان الحصول على
57:57برمجيات ذات جودة
57:59ممتازة . حسناً ، ولهذا
58:01السبب تقول النقطة
58:03الأولى إن ضمان الجودة
58:05يوفر عليك المال
58:06والكثير من المتاعب .
58:10كم من المال يكلفك
58:12مشروع برمجيات معيب ؟
58:17إنها تكلفك فقدان
58:19المستخدمين والعملاء ،
58:21ومن المعروف أنه كلما
58:23طالت مدة بقاء الخطأ
58:25في برمجياتك دون
58:26اكتشاف ، زادت صعوبة
58:28حله لاحقاً . حسناً ،
58:31النقطة الثانية ، ضمان
58:33الجودة يمنع الطوارئ
58:35المؤسسية الكارثية . مع
58:39برمجيات الشركات ،
58:41تكون المخاطر أكبر
58:43بكثير . يمكن أن تؤدي
58:45الأخطاء في برمجيات
58:47الشركات إلى تعطل
58:49النظام ، وفقدان
58:50البيانات ، وفشل
58:51الاتصالات . إذا كنت
58:54ستستخدم برمجيات في
58:56شركة أو لمعالجة
58:57معلومات حساسة ، فيجب
58:59عليك التأكد من أن
59:01البرنامج سيعمل
59:02تماماً كما يجب أن
59:04يعمل . لا يوجد مجال
59:07للخطأ . حسناً . النقطة
59:09الثالثة ، ضمان الجودة
59:11يلهم ثقة العملاء . من
59:13خلال إجراء اختبارات
59:15ضمان جودة البرمجيات ،
59:16تصبح لديكم أولوية
59:18واضحة في تطوير
59:19البرمجيات . أنتم
59:21ترسلون رسالة إلى
59:22عملائكم تفيد بأنكم
59:24تريدون لبرمجياتكم
59:25تحقيق أكبر قدر ممكن
59:27من النجاح . هذا أمر في
59:30غاية الأهمية عندما
59:31يتعلق الأمر بتقديم
59:33الجودة وبناء علاقات
59:35طويلة الأمد . حسناً ،
59:37النقطة الرابعة ، ضمان
59:40الجودة يحافظ على
59:41تجربة مستخدم رائعة .
59:44أصبح من الواضح بشكل
59:45متزايد أن تجربة
59:47المستخدم هي التي تجعل
59:49المنتج ينجح أو يفشل .
59:52إذا كان البرنامج
59:53معطلاً أو بطيئاً ،
59:55فإنه يقطع تجربة
59:56المستخدم مع المنتج .
59:59تؤدي تجربة المستخدم
1:00:00السيئة إلى عدم الرضا
1:00:02والإحباط . تجربة
1:00:05مستخدم جيدة . ما تحصل
1:00:11عليه عند اختبار منتج
1:00:13برمجي بدقة هو مستخدم
1:00:15راضٍ ، ومن المرجح أن
1:00:17يوصي بالمنتج وعملك
1:00:19للآخرين . حسناً ، ونقطة
1:00:24أخرى ، النقطة الخامسة
1:00:26، ضمان الجودة يجلب
1:00:28المزيد من الأرباح .
1:00:33إذا كنتم تنشئون
1:00:35برنامجاً لتسويقه أو
1:00:36بيعه ، فإن الاستثمار
1:00:38في ضمان الجودة يعني
1:00:40أنه يمكنكم بيع منتجكم
1:00:42بأسعار أعلى . حسناً ،
1:00:47لا شيء أسوأ من مستخدم
1:00:49غاضب دفع ثمن منتج لا
1:00:52يعمل . حسناً ، النقطة
1:00:56السادسة ، تزيد من رضا
1:00:58العملاء . بالارتباط
1:01:03بالنقطة الأولى ، تركز
1:01:05هذه الفائدة السادسة
1:01:06على سمعة رضا العملاء
1:01:08التي تقدمها الشركة .
1:01:13لا يقتصر الأمر على
1:01:14الربح فقط ، فتقديم
1:01:16برمجيات عالية الجودة
1:01:18تعمل متى وكيفما يرغب
1:01:20المستخدم سيعزز
1:01:21سمعتكم من خلال كسب
1:01:23رضا العملاء . لا
1:01:25تختبروا صبر العملاء
1:01:27النهائيين ببرمجيات
1:01:29معيبة ، حسناً ، تلك
1:01:30التي تتطلب إصلاحاً
1:01:32مستمراً لأن هذا النوع
1:01:34من البرمجيات مصيره
1:01:36الفشل . حسناً ، يجب
1:01:39توفير الجودة منذ
1:01:40البداية وسيكافئكم
1:01:42العملاء بولائهم .
1:01:45حسناً ، النقطة
1:01:49السابعة ، ضمان الجودة
1:01:51يعزز التنظيم
1:01:52والإنتاجية والكفاءة .
1:01:55بالتأكيد لا تريدون
1:01:57التعامل مع فوضى ناتجة
1:01:58عن برمجيات معيبة .
1:02:01حسناً ، لا تواصل محموم
1:02:03ولا إصلاحات متسرعة .
1:02:07يجب التنظيم
1:02:08لاختبارات مراقبة
1:02:09الجودة منذ بداية
1:02:11استراتيجية التطوير .
1:02:12عندما يتم التطوير ،
1:02:14سيسمح لكم ذلك بالعمل
1:02:16بسلام ، وتكونوا أكثر
1:02:18إنتاجية في وقتكم .
1:02:20سنرى هذا لاحقاً بشكل
1:02:22أكثر تفصيلاً . عند
1:02:25استخدام المنهجيات
1:02:27الرشيقة ( Agile ) ، حيث
1:02:28يقوم مطورو البرمجيات
1:02:30بإنشاء وتسليم أجزاء
1:02:32صغيرة من المنتجات في
1:02:34جدول زمني أوضح . يمكن
1:02:38البدء في اختبار
1:02:39البرمجيات أثناء
1:02:40إنشائها . بدلاً من
1:02:42الانتظار دائماً حتى
1:02:43النهاية . عندما تكون
1:02:46اختبارات البرمجيات
1:02:48جزءاً لا يتجزأ من
1:02:49استراتيجية البرنامج ،
1:02:51فأنتم الرابحون .
1:02:53عميلكم سيربح
1:02:54ومستخدموكم سيربحون
1:02:56أيضاً . لماذا ؟ لأن ذلك
1:03:00سيضيف قيمة للبرنامج .
1:03:03سيعتقدون أن هذا
1:03:04البرنامج يتمتع
1:03:06بالجودة . حسناً ، حسناً
1:03:10. آه ، هل هناك شكوك أو
1:03:13استفسارات حول هذا
1:03:15الجزء الثاني ؟
1:03:20>> كيفن فوينتس .
1:03:21>> بإضافة حرف " بي " ، ولكن
1:03:24نعم . أعني ، الاختبار
1:03:26يساعد في الجودة ، لكنه
1:03:28لا يضمن عدم وجود خطأ
1:03:30فادح لم يظهر أثناء
1:03:31تصحيح الأخطاء ( debug ) ، و
1:03:33،
1:03:34>> أعني ، هو لا ينقذك من
1:03:35ذلك ، لنقل ، أيضاً .
1:03:37>> لا ، لا . طوال الدورة
1:03:39التدريبية سنقوم
1:03:41برؤية هذا الأمر .
1:03:44سأتحدث معكم كثيراً
1:03:46حول هذا الموضوع ، لأنه
1:03:48، دعونا نرى ، الحالة
1:03:50الأولى تظهر لي ، وبعد
1:03:53ذلك سنرى كيف أن الدرس
1:03:55القادم سأعطيكم
1:03:56منهجية " أجايل "
1:03:58وسنتعمق قليلاً في
1:04:00الموضوع . في منهجية "
1:04:03أجايل " تسمى الدورات "
1:04:05سبرينت " ( sprints ) وتكون كل
1:04:07أسبوعين . خلال هذين
1:04:09الأسبوعين يتم
1:04:10التطوير وإجراء ضمان
1:04:12الجودة ( QA ) ، ثم ينتقل
1:04:13للإنتاج . وفي
1:04:14الأسبوعين التاليين
1:04:16يحدث الشيء نفسه .
1:04:17حسناً . آه ، عليكم
1:04:22اختبار كل شيء ،
1:04:23والتأكد من أن النظام
1:04:25يعمل ، وأن كل ما لم
1:04:27يلمسه المطور لا يزال
1:04:29يعمل بشكل جيد . حسناً .
1:04:32هناك ، من الواضح أن
1:04:33لديكم ، وسنرى ذلك
1:04:35لاحقاً خلال الدورة ،
1:04:36ولكن لكي تأخذوا فكرة ،
1:04:38هناك أنواع من
1:04:39الاختبارات التي يجب
1:04:40عليكم القيام بها ،
1:04:42والتي يجب أن تكون
1:04:43واضحة لكم بحيث تقولون
1:04:44: " حسناً ، سأقوم بهذا
1:04:46الاختبار ، وهذا
1:04:47الاختبار ، وهذا
1:04:48الاختبار " . لماذا ؟ لأن
1:04:52المطور عدّل هنا ، عدّل
1:04:54في النواة ، في جوهر
1:04:56العمل ، وهذا قد يؤدي
1:04:58إلى كسر كل شيء ، لذا
1:05:00يجب عليكم التخطيط
1:05:01خلال هذين الأسبوعين
1:05:03لكيفية اختبار كل شيء .
1:05:08حسناً . إيه ،
1:05:10>> لأنني كنت أسأل من
1:05:11جانب أنني أتخيل أن
1:05:13العديد من مختبري
1:05:14الجودة ( QA ) ليسوا
1:05:15مطورين ، لذا لا بد
1:05:16أنهم لا يعرفون
1:05:17البرمجة أيضاً . لكن
1:05:18الآن بعد أن أخبرتني
1:05:20عن التكرار وعن وجود
1:05:22منهجيات ، فمن الواضح
1:05:23أنكم ستختبرون كثيراً
1:05:25لدرجة أنه من الصعب
1:05:27جداً أن يفوتكم شيء ،
1:05:28سواء كنتم مطورين أم
1:05:30لا ؛ بل لأن العملية
1:05:32نفسها تدفعكم لتحسين
1:05:34الاختبار طوال الوقت ،
1:05:35لنقل . أتقصد أن يقوم
1:05:37مطور باختباره ،
1:05:39>> أليس كذلك ؟ أنا أعرف
1:05:41الفرق بين تصحيح
1:05:42الأخطاء ( debug )
1:05:43والاختبار ( test ) .
1:05:44>> أعلم أن هناك من ليسوا
1:05:46مبرمجين .
1:05:47>> من الواضح أن مختبري
1:05:48الجودة ليسوا مبرمجين .
1:05:49>> بالطبع ، الغالبية
1:05:51ليسوا كذلك .
1:05:52>> وقد ثبت ذلك ، سأخبرك ،
1:05:53لقد ثبت أن المطور ، من
1:05:55الواضح أن المطور يجب
1:05:57أن يسلمك اختبارات
1:05:58الوحدة ( unit tests ) وهي
1:06:00مختبرة بالفعل . حسناً ،
1:06:02اليوم بالذهاب أبعد
1:06:03قليلاً ، هي تلك التي
1:06:05يتم أتمتتها . سنرى هذا
1:06:06لاحقاً بشكل أكبر
1:06:08قليلاً ، لكنني سأعطيك
1:06:09إياه بشكل عام جداً .
1:06:11إيه إذا كان لدي 2 + 2 = 4 ،
1:06:16حيث يجب أن أدخل 2 و 2
1:06:18ويجب أن تكون النتيجة
1:06:20أربعة ، فما سيفعله
1:06:22المطور في اختبارات
1:06:24الوحدة هو إدخال 2 و 2 ،
1:06:27بينما سيقوم مختبر
1:06:29الجودة بإجراء مجموعة
1:06:31من الاختبارات . سيضع 1
1:06:34و 3 ليرى إن كانت ستعطي
1:06:364 ، أو سيضع 9 ، أو سيضع
1:06:39علامة نجمة . هذا ما يجب
1:06:41على مختبر الجودة
1:06:42اختباره . هذا هو الفرق
1:06:45الكبير . لا أعرف إذا
1:06:46كان هذا ما تقصده
1:06:48بسؤالك أو
1:06:50>> أنا أقصد أكثر ما إذا
1:06:51كان هناك خطأ كارثي لم
1:06:53يظهر أثناء الاختبار
1:06:55>> وهو مسؤولية مختبر
1:06:57الجودة .
1:06:58>> بالطبع ، لهذا السبب .
1:07:00لكن أتخيل أنها
1:07:00مسؤولية المطور أيضاً
1:07:02لأنه يجب أن يسلم ... لم
1:07:03أكن أعلم أنه يجب عليه
1:07:04أيضاً تسليم اختبارات
1:07:05الوحدة بجانب ...
1:07:06>> وهذا هو المنطقي .
1:07:07المطور يجب أن يسلم
1:07:09اختبارات الوحدة . أنت
1:07:11تطور البرمجيات .
1:07:12بالطبع ، أنا آتٍ من
1:07:13جانب البرمجة ولم أكن
1:07:15في جانب ضمان الجودة .
1:07:16>> بالطبع . حسناً ، انظر ،
1:07:18أنا أقول هذا كما لو
1:07:20كان العالم المثالي .
1:07:22كل شركة لها عالمها
1:07:24الخاص يا رفاق . أي ،
1:07:26>> لا ، بالإضافة إلى أن
1:07:27الشركات لا تعرف أيضًا
1:07:29، فهم لا يدركون ،
1:07:30ويسمون أي شيء "
1:07:31اختبارًا " ( testing ) ،
1:07:32ويسمون أي شيء "
1:07:33تطويرًا " ( dev ) أيضًا .
1:07:34>> نعم ، نعم ، نعم ، نعم .
1:07:36لهذا السبب ، يعني ،
1:07:38الكثير هنا يتعلمون
1:07:39جيدًا ، وهناك
1:07:41الكثيرون ممن كان هذا
1:07:43عملهم الأول دون معرفة
1:07:45أي شيء . هذا جيد ، لأن
1:07:46هناك الكثير من الشباب
1:07:49بدأوا في ضمان الجودة (
1:07:51QA ) . هنا جيد ، أنا
1:07:53أمنحكم الأساس ، حسنًا
1:07:55، بما أعطيكم إياه ،
1:07:57يمكنكم بكل هدوء البحث
1:08:00بعد انتهاء الدورة ،
1:08:02يمكنكم البحث عن وظيفة
1:08:04" مطور ضمان جودة مبتدئ "
1:08:06( QA Junior ) ،
1:08:09>> وستدركون ذلك ،
1:08:10ستلاحظون عندما ترون
1:08:12إعلانًا لـ " QA Junior " أنه
1:08:14نفس ما قدمته لكم في
1:08:16المادة ، وهو ما قمتم
1:08:18به في التدريب وما
1:08:20فعلتموه في
1:08:21الاختبارات الجزئية ،
1:08:23هو نفسه يا شباب . حسنًا
1:08:27، ستدركون ذلك . إذا
1:08:29كنتم تريدون البدء في
1:08:31مجال ضمان الجودة في
1:08:32الأنظمة ، فأنا أقول
1:08:34دائمًا إن هناك أمرين .
1:08:36إما الدخول في جزء
1:08:38الدعم الفني ، أو
1:08:39الدخول في جزء ضمان
1:08:41الجودة في عالم
1:08:42الأنظمة ، أو الدخول
1:08:44للدعم الفني في مجال
1:08:45تكنولوجيا المعلومات .
1:08:48بعد ذلك يمكن للمرء
1:08:50التنقل بين هذا وذاك .
1:08:53حسنًا ، لكن ضمان
1:08:55الجودة في الحقيقة من
1:08:57الجيد دخوله .
1:08:58>> بالتأكيد ، سؤالي كان
1:08:59من هذا الجانب لأنني
1:09:00معتاد على القيام
1:09:01بتنقيح الأخطاء ( debugging )
1:09:02، لكنني لا أتعامل مع
1:09:03كل الجانب الآخر ، لنقل
1:09:05.
1:09:05>> واضح ، واضح . حسنًا ،
1:09:07الآن ستعرف كل ما يحدث
1:09:09في الجانب الآخر . في
1:09:13الدورة ستعرف كل ما
1:09:14يحدث في الجانب الآخر .
1:09:17لنرى . ربما لا أعرف أين
1:09:19أنت ، وما مدى حجم
1:09:20الشركة ، وما هي
1:09:22العمليات والمنهجيات
1:09:23التي لديهم . أنا أحاول
1:09:25توضيح هذا في العالم
1:09:27المثالي .
1:09:27>> آه ، نعم ، إنها فوضى
1:09:30عارمة .
1:09:30>> حسنًا ، ونعم ، لهذا
1:09:32السبب أحاول التحدث عن
1:09:34العالم المثالي . كل
1:09:38الجوانب والمشاكل
1:09:40التي تواجهها الشركات
1:09:42، لن أخبركم بها ، هذا
1:09:44ستفعلونه أنتم لاحقًا .
1:09:47حسنًا ،
1:09:49>> لا ، لكن يثير اهتمامي
1:09:51أنه يمكن تحسين برنامج
1:09:54دون أن تكون مبرمجًا
1:09:55في قسم ضمان الجودة ،
1:09:57أي أنهم يستطيعون
1:09:58التحسين ، أتخيل أن
1:09:59المنهجيات
1:10:00والاختبارات هي ما
1:10:01تقودك إلى ذلك . هذا
1:10:03يثير اهتمامي من جانب
1:10:04التطوير .
1:10:05>> نعم ،
1:10:05>> لأنه إذا أردت القيام
1:10:07بشيء ما ، أقوم بإصلاحه
1:10:08، وأقوم بتنقيحه بنفسي
1:10:09وأصلحه . لكن من وجهة
1:10:10نظر شخص لا يبرمج ،
1:10:11يعجبني هذا الأمر ،
1:10:12وتجذب انتباهي
1:10:13الأدوات وكيفية
1:10:14التعامل معها ، وهو ما
1:10:15لم أره من قبل . إم ،
1:10:18وسنرى شيئاً لم أخبركم
1:10:20به . إم ، سنقوم بـ ما
1:10:27أفعله هو عرض مقاطع
1:10:29فيديو لكم . حسناً ، من
1:10:32الجيد وجود هذه الحصة
1:10:34لأن كل ما قدمته لكم في
1:10:36التدريب ، على الأقل
1:10:38أنا أعمل بما يسمى "
1:10:40جيرا " ( Jira ) . حسناً . إم ،
1:10:43لا أعرف إن كنتم
1:10:44تعرفونه ، إنه مدير
1:10:46مشاريع .
1:10:47>> حيث إم لديك جزء
1:10:51الاختبار الذي يتم
1:10:52إضافته ، ويمكن
1:10:54التعامل معه مثل " XRay "
1:10:56أو إضافة الاختبار
1:10:58التي تسمى " Zephyr " . هناك
1:11:00تتم دورة الاختبار
1:11:01بالكامل ، وتُحدد جميع
1:11:03تصاميم حالات
1:11:05الاختبار ، ولكن على أي
1:11:07حال ، سأريكم بعد ذلك
1:11:08فيديو حول كيفية إنشاء
1:11:10قصة مستخدم ، لكنني
1:11:12سأعطيكم ذلك في
1:11:13النهاية . حسناً . لماذا
1:11:16؟ لأنني إذا أعطيتكم
1:11:18إياه الآن ، فلن تفهموا
1:11:19حتى نصف الأشياء التي
1:11:21تتناولها تلك
1:11:22الفيديوهات . حسناً ،
1:11:24إنها فيديوهات أحتفظ
1:11:26بها للمبتدئين "
1:11:27الجونيور " ليدركوا
1:11:29كيفية القيام بالأمور .
1:11:32حسناً ، لنرى ، سنقوم
1:11:34برؤيتها لاحقاً خلال
1:11:36الدورة لأن الأمر طويل
1:11:38جداً للحديث عنه
1:11:39بالكامل الآن ، لكنكم
1:11:41ستطلعون عليه لاحقاً .
1:11:44حسناً ، حسناً . هل هناك
1:11:51أسئلة أو استفسارات ؟
1:11:55آه ، كان لدي سؤال . لقد
1:11:57ضعت في الجزء الذي
1:11:59شرحت فيه نموذج الجودة
1:12:01. لم أفهم ما كان يقصده
1:12:04كل جملة كانت مرقمة . لا
1:12:07أعرف إن كان بإمكانك
1:12:08إخباري أيضاً
1:12:10>> عن نموذج الجودة وأي
1:12:12جزء
1:12:14>> يمكنني إخبارك بكل شيء
1:12:16. لم أفهم منذ البداية ،
1:12:17لكن حسناً ، لا أعرف ،
1:12:18هل يمكنك إخباري بسرعة
1:12:20أو شيء من هذا القبيل
1:12:21أم أقرأه ؟ يجب أن يكون
1:12:22موجوداً هناك ، لا أعلم
1:12:24، لكنني أردت معرفة ما
1:12:25إذا كان بإمكانك
1:12:26إخباري بشيء .
1:12:27>> سأضع لك العرض
1:12:28التقديمي مرة أخرى
1:12:29لتراه . لكن لتقول لي أي
1:12:36جزء لم تفهمه ونقوم
1:12:38بمراجعته .
1:12:44>> يمكنني ذكر الخمسة ،
1:12:45لكن ذلك كان نموذجاً
1:12:47قياسياً للجودة . هناك
1:12:49نماذج مختلفة .
1:12:50>> بالطبع ، لكنني لا أعرف
1:12:52إن كنت تقصد ذلك أو
1:12:54شيئاً آخر .
1:12:56>> لا ، لا ، لا ، لا . إم ، لم
1:12:59أفهم لماذا تحدثت عن
1:13:01نموذج الجودة ، أعني ،
1:13:03بعد ذلك تحدثت عن
1:13:04الفوائد التي يجلبها ،
1:13:06أليس كذلك ؟ لأن
1:13:08>> سبعة .
1:13:09>> آها . من السبعة . وقبل
1:13:11ذلك لم أفهم لماذا قلت
1:13:12نموذج الجودة . أعني ،
1:13:14هذا ما يتضمنه نموذج
1:13:16الجودة . ما يجب أن
1:13:17يتضمنه هو خصائص
1:13:19إلزامية ، يمكن
1:13:20تكييفها مع أي نوع من
1:13:22الشركات ، شيء من هذا
1:13:23القبيل . بالطبع ، ما
1:13:25يحدث هو أنني أكرر لك
1:13:27مجدداً ، هذا هو العالم
1:13:28المثالي . حسناً . إه ،
1:13:31بعد ذلك ستكون هناك
1:13:32اختلافات بين واحد
1:13:34وآخر . أنا أتحدث معك عن
1:13:36العالم المثالي . إنه ،
1:13:38أعني ، ما تم شرحه حول
1:13:40نموذج الجودة هو بشكل
1:13:42عام ، ولكن هناك أنواع
1:13:44أخرى من النماذج
1:13:46>> التي ليست ، نعم ، أعني ،
1:13:48اعتماداً على الشركة ،
1:13:50الـ
1:13:51>> بالطبع ، هذا ما كنا
1:13:53نتحدث عنه . الآن أصبح
1:13:55التركيز موجهاً . هنا
1:13:57فهمتك . أعني ، إه ، نعم ،
1:13:59أعني ، سيكون لديك
1:14:01الكثير ، ولكن لكل منها
1:14:03نهجها الخاص ،
1:14:05>> مفهوم ؟ أعني ، أنا
1:14:07أخبرك بشيء عام ، أعني ،
1:14:09بعد ذلك سيختلف كل
1:14:11واحد .
1:14:11>> حسناً ،
1:14:12>> أفهم . نعم ، نعم ، هذا هو
1:14:14. ذلك ، ذلك ما كنت تريد
1:14:16القيام به . شكراً .
1:14:17>> نعم ، لهذا أكرر مرة
1:14:19أخرى ، أنا أقول لكم
1:14:21هذا بشكل عام ، حسناً .
1:14:23أعني ، إنه العالم
1:14:25المثالي ، المسار
1:14:27السعيد ، ولكن بعد ذلك ،
1:14:29أعني ، كل شركة تقوم
1:14:31بعملها الخاص ، يا شباب
1:14:33. أنا لا أتدخل في ذلك ،
1:14:35لا يمكنني التدخل .
1:14:37>> بالطبع ، بالإضافة إلى
1:14:38ذلك من منظور تقنية
1:14:39المعلومات ، لأنه لا
1:14:40يمكنك ، على سبيل
1:14:41المثال ، متجر أدوات مع
1:14:42مطعم ، لن يكون لديهما
1:14:44نفس
1:14:44>> نفس المعايير التي يجب
1:14:46اتباعها ولا ضوابط
1:14:47الجودة .
1:14:48>> لاحقاً سنرى درساً ،
1:14:50سأتحدث إليكم قليلاً
1:14:52عن الآيزو ، حسناً ، لكي
1:14:54تتمكنوا من رؤية ذلك
1:14:57جيداً ، وعما يدور .
1:15:00حسناً . أي سؤال ؟ كل شيء
1:15:08واضح ، سانتياغو .
1:15:10>> نعم ، كل شيء واضح .
1:15:14>> حسناً ، موضوع تليجرام
1:15:16، نحن جاهزون كل شيء
1:15:20على ما يرام . حسناً ،
1:15:23إذا لم يكن لديكم
1:15:24المزيد من الشكوك ،
1:15:26نلتقي يوم الأربعاء
1:15:27القادم . لكي أعطيكم
1:15:30الجزء الآخر ، يا شباب .
1:15:34و نواصل . حسناً ،
1:15:39>> حسناً ، حسناً .
1:15:41>> ممتاز يا أستاذ . شكراً .
1:15:43عطلة نهاية أسبوع
1:15:44سعيدة .
1:15:44>> حسناً ، عطلة نهاية
1:15:46أسبوع سعيدة . نلتقي
1:15:47يوم الأربعاء القادم ،
1:15:48يوم الاثنين عطلة .
1:15:51>> نراك . إلى اللقاء .