Full transcript
0:00يمكنكم القيام بذلك
0:01الآن إذا أردتم . بعد أن
0:07ننتهي من العرض
0:08التقديمي الذي سنراه
0:10اليوم ، تابعوا العمل
0:12على مشروعكم وأرسلوه
0:14لي عبر البريد
0:15الإلكتروني ، حسناً ؟
0:19لكي أقوم بتصحيحه لكم .
0:22الفكرة هي أن تتمكنوا
0:24من القيام به اليوم أو
0:25الأربعاء وترسلوه لي .
0:30حسناً ، حاولوا إرساله
0:32في موعد أقصاه يوم
0:34الأربعاء ، حتى أبدأ في
0:36الاطلاع عليه
0:37ومراجعته . سأرد فقط
0:44على الأشياء التي
0:45أجدها بحاجة إلى تحسين
0:48، وأخبركم بالأسباب
0:49إذا كان هناك خطأ ما ،
0:51حسناً . لذا ، سأرسل لكم
0:57الملاحظات لاحقاً . لقد
1:01تمكنت للتو من الدخول
1:03إلى الفصل الافتراضي .
1:05أمر غريب . حسناً ، آه ،
1:10على أية حال سأرسله
1:11لكم عبر البريد
1:12الإلكتروني . حسناً ،
1:14سنلقي نظرة سريعة على
1:16سمات الجودة ، ومبادئ
1:18الاختبار السبعة ،
1:20ومستويات الاعتمادية ،
1:22ثم سننتقل إلى موضوع
1:24المشروع . حسناً . آه ،
1:30سمات الجودة . تنقسم
1:34سمات الجودة إلى قسمين
1:36، القسم الأول هو
1:38السمات الوظيفية ،
1:39والتي تشمل الدقة
1:41والاكتمال . حسناً . أما
1:44السمات غير الوظيفية
1:46فتشمل الموثوقية ،
1:48وقابلية الاستخدام ،
1:50وكفاءة الأداء ،
1:51والأمان ، وقابلية
1:53الصيانة ، وقابلية
1:55النقل . و ما يجب أن
2:03نطلع عليه هنا هو
2:05موضوع معيار ISO 25010 وما
2:08يتناوله باختصار . بعض
2:14الشركات تحصل على
2:15شهادة الاعتماد ،
2:17والبعض الآخر لا .
2:19سأخبركم بماهية كل
2:20منها . حسناً . و لكي
2:27يكون لديكم تصور عام
2:29عنها . حسناً ، عن ماذا
2:33يتحدث معيار ISO 25010 ؟
2:36يتضمن معيار ISO 25010
2:38أقساماً عديدة ، أحدها
2:41يتعلق بجودة منتج
2:43البرمجيات . في البند
2:49الأول ، أي الملاءمة
2:51الوظيفية ، يمثل ذلك
2:52قدرة منتج البرمجيات
2:54على تلبية الاحتياجات
2:56عند استخدامه في ظروف
2:58محددة ، ويمكن تقسيمه
3:00إلى الاكتمال الوظيفي .
3:07الدقة الوظيفية
3:08والملائمة الوظيفية .
3:12آه ، بالنسبة للاكتمال
3:23الوظيفي ، فهو مجموعة
3:25الوظائف التي تغطي
3:27كافة مهام وأهداف
3:28المستخدمين المحددة ،
3:30أما الدقة فهي قدرة
3:32نظام المنتج على تقديم
3:34نتائج صحيحة بالدقة
3:36المطلوبة . حسناً ،
3:44بالنسبة للنتائج
3:46وملاءمتها ، فهي قدرة
3:48منتج البرمجيات على
3:50توفير مجموعة مناسبة
3:52من الوظائف لمهام
3:53وأهداف مستخدم محدد .
4:00ثم لدينا ما يسمى
4:01بكفاءة الأداء . حسناً ،
4:06هي تتعلق بكمية
4:07الموارد المستخدمة في
4:09ظل ظروف معينة . حسناً ،
4:14وتنقسم هذه إلى ما
4:15يعرف بالسلوك الزمني .
4:18فيمَ يتمثل ذلك ؟ إنها
4:21أوقات الاستجابة
4:23والمعالجة ، ومعدلات
4:25أداء النظام عند تنفيذ
4:27الوظائف في ظل ظروف
4:28محددة فيما يتعلق
4:30بالاختبارات . حسناً .
4:36بعد ذلك لدينا استخدام
4:43الموارد ، وهي كمية
4:45وأنواع الموارد
4:46المستخدمة عندما ينفذ
4:48البرنامج وظائفه في ظل
4:50ظروف محددة . لدينا
4:56أيضاً السعة ، وهي
4:58الحدود القصوى
4:59لمعايير منتج أو نظام
5:01برمجيات يلبي
5:02المتطلبات . ثم لدينا
5:08النقطة الثالثة ، وهي
5:10التوافقية . ما هي
5:12التوافقية ؟ حسناً ،
5:14التوافقية هي قدرة
5:16نظامين أو أكثر أو
5:18مكونات على تبادل
5:19المعلومات فيما بينها
5:21لتنفيذ وظائف معينة .
5:26حسناً ، وينقسم هذا إلى
5:28قسمين : قابلية التشغيل
5:30البيني ، وهي سهولة
5:32التواصل مع مكونات
5:34خارجية ، والتعايش ،
5:36وهو التواجد في سياق
5:38مع نظام آخر . على الرغم
5:43من أن الاثنين
5:44متشابهان ، إلا أن هناك
5:46فرقاً بينهما . بعد ذلك
5:52لدينا سهولة
5:53الاستخدام ، أي سهولة
5:55استخدام البرنامج ،
5:56وأن يكون جذاباً
5:58للمستخدم . وينقسم هذا
6:06إلى التعرف على
6:07الملاءمة ، وهي قدرة
6:09المنتج أو البرنامج
6:11التي تسمح للمستخدم
6:12بفهم ما هو مناسب له
6:14وللاحتياجات التي
6:16طُوّر من أجلها .
6:22القدرة على التعلم ،
6:24والتي ستسمح للمستخدم
6:26بالتعلم داخل التطبيق
6:28، وهو أمر قد يكون أكثر
6:30أو أقل سهولة . هناك
6:33برامج سهلة ، وهناك
6:35برامج أكثر تعقيداً .
6:38القدرة على التشغيل ،
6:40والتي تسمح للمستخدم
6:41بتشغيله والتحكم فيه
6:43بسهولة أو غير ذلك .
6:46الحماية من أخطاء
6:48المستخدم . حسناً . هنا
6:52القدرة التي سيحمي بها
6:54النظام المستخدمين
6:55داخلياً من تلك
6:56الأخطاء وتقديم
6:58ملاحظات حولها .
7:02الجماليات التي ستحظى
7:04بها واجهة المستخدم
7:06لتكون ممتعة ، وتلبي
7:07احتياجات المستخدم
7:09النهائي ليتم
7:10استخدامها . وموضوع مهم
7:16جداً اليوم هو سهولة
7:18الوصول ، وهي قدرة
7:19البرنامج على السماح
7:21باستخدامه من قبل
7:23مستخدمين ذوي خصائص
7:25وإعاقات معينة . سنتحدث
7:29لاحقاً وبشكل أوسع عما
7:31تعنيه سهولة الوصول .
7:34ثم لدينا العنصر الآخر
7:36وهو الموثوقية . ما هي
7:39الموثوقية ؟ حسناً ، هي
7:43عندما يتم تصميم نظام
7:45لوظائف محددة ،
7:46ويستخدم تحت ظروف أو
7:49فترات زمنية معينة .
7:54حسناً ، وهذه الخصائص
7:55تنقسم إلى النضج ، وهو
7:57قدرة النظام على تلبية
7:59احتياجات الموثوقية
8:01في الظروف العادية .
8:05وتوفر النظام ، أي أن
8:07يكون النظام جاهزاً
8:09للعمل ومتاحاً
8:10للاستخدام عند الحاجة
8:12إليه . هناك بعض
8:13الأنظمة التي يجب أن
8:14تعمل على مدار الساعة
8:15طوال أيام الأسبوع ،
8:16وأخرى لا . حسناً . إيه ،
8:19التسامح مع الأخطاء .
8:27إيه ، وهو القدرة على
8:28العمل كما هو متوقع في
8:30وجود أعطال ، سواء في
8:32البرمجيات أو الأجهزة
8:34، والقدرة على التعافي
8:36عند الحاجة لاستعادة
8:38البيانات المتأثرة أو
8:40إعادة النظام إلى حالة
8:42معينة مرغوبة بعد عطل
8:44ما ، أو مثلاً في حالة
8:45برامج الفدية ، حيث يجب
8:47استعادة النظام
8:49بالكامل . بعد ذلك
8:55لدينا ما يتعلق بالأمن
8:57. حسناً ، الأمن يعني أن
9:00تكون المعلومات
9:01والبيانات موثوقة
9:03ومحمية ، بحيث لا يتمكن
9:05مستخدمون غير مصرح لهم
9:07من قراءتها أو تعديلها
9:09. حسناً . وهنا يأتي
9:14مفهوم السرية ، أي
9:16التحكم في الوصول إلى
9:17البيانات أو
9:18المعلومات ، بحيث لا
9:20يتمكن مستخدمون
9:21معينون من الدخول
9:23إليها أو الوصول إليها
9:25عن طريق الخطأ . حسناً ،
9:30النزاهة وهي قدرة
9:31النظام على منع الوصول
9:38أو التعديلات غير
9:40المصرح بها للبيانات
9:42أو البرامج من قبل
9:43أطراف خارجية ، وعدم
9:45الإنكار ، وهو إثبات
9:47وقوع أحداث أو إجراءات
9:49معينة بحيث لا يمكن
9:51إنكارها لاحقاً . ما
9:55يتعلق بالمسؤولية ،
9:57وهي القدرة على تتبع
10:04إجراءات أي كيان بشكل
10:06لا لبس فيه ، وكذلك
10:08المصادقة . حسناً ،
10:12المصادقة هي القدرة
10:13على التحقق من هوية
10:15المستخدم للوصول إلى
10:17مورد معين والتأكد من
10:19أنه يرى ما يخصه فقط
10:20ولا يرى بيانات مستخدم
10:22آخر . ثم لدينا العنصر
10:26قبل الأخير ، وهو
10:27القابلية للصيانة .
10:30حسناً ، وهذا ينقسم إلى
10:35أربعة عناصر ، أولها
10:37الوحدوية ( النمطية ) .
10:43حسناً ، تطوير
10:44البرمجيات يجب أن
10:46يتكون من مكونات
10:47منفصلة تسمح بأن يكون
10:49لأي تغيير في أحد
10:51المكونات أقل تأثير
10:53ممكن على المكونات
10:54الأخرى ، وأن يكون
10:56قابلاً لإعادة
10:57الاستخدام . بما يسمح
11:05أيضاً باستخدامه من
11:07قبل برمجيات أخرى
11:09وتحقيق تفاعل بينها .
11:13حسناً ، إيه ، القابلية
11:20للتحليل هي سهولة
11:22تقييم تأثير تغيير
11:23معين على بقية
11:24البرمجيات ، وتشخيص
11:26أوجه القصور أو أسباب
11:28الأعطال والأخطاء
11:29الموجودة في البرنامج .
11:36القدرة على التعديل ،
11:38وهي قدرة المنتج التي
11:40تسمح بتعديله بشكل
11:42فعال وكفء ، دون إدخال
11:44عيوب أو تدهور في
11:45الأداء . والأخيرة هي
11:49القدرة على الاختبار .
11:55من الواضح وضع معايير
11:57للاختبار لنظام أو
11:58مكون معين ، والتي يمكن
12:00من خلالها إجراء
12:02اختبارات محددة
12:03لتحديد ما إذا كانت
12:05تفي بهذه المعايير أم
12:07لا ، وهو ما ندرسه نحن
12:09تماماً . حسناً ، ثم
12:13لدينا ما يسمى بقابلية
12:15النقل . وتنقسم
12:20القابلية للنقل إلى
12:22ثلاث خصائص : القدرة
12:24على التكيف ، التي تسمح
12:26بتكييفه بفعالية
12:28وكفاءة مع أنواع
12:29مختلفة من بيئات
12:31الأجهزة والبرمجيات ؛
12:33والقدرة على التشغيل ،
12:35والقدرة على التثبيت ،
12:37وهي سهولة تثبيت
12:39المنتج أو إلغاء
12:40تثبيته بنجاح . القدرة
12:48على الاستبدال . حسناً ،
12:50ما هذا ؟ هي قدرة
12:53المنتج على أنه بمجرد
12:55استخدامه ، توجد
12:57أحياناً برمجيات يجب
12:59تدميرها وإعادة بناء
13:01واحدة جديدة . حسناً ،
13:05إذاً هذه هي القدرة
13:06على الاستبدال . يجب
13:08إنهاء نظام لإدخال آخر
13:10بدلاً منه . هذا بشكل
13:13عام ، لن ندخل في
13:14تفاصيل دقيقة ، ولكن
13:16هذا ما يحدث أحياناً
13:18عندما يتعين على المرء
13:20الحصول على شهادة ISO
13:2225010 . ويقول : " حسناً ، ما
13:24هو دور ضمان الجودة ( QA )
13:26هنا ؟ " حسناً ، هذا هو
13:28دور ضمان الجودة .
13:29وأحياناً يأتي الدور
13:31بشكل غير مباشر . إذا
13:32سألتموني : " وما هي
13:34الشركات التي تطبق هذا
13:35؟ " إنها الشركات
13:37الكبرى ، لا أدري ،
13:38لأعطيكم مثالاً ، على
13:40سبيل المثال ، شركة YPF .
13:43حسنًا ، إذًا يجب توثيق
13:45هذا الأمر جيدًا ، ومن
13:47الواضح أنه في بعض
13:48الأحيان سيأتي دور
13:50كوبا ، وسيأتي أشخاص
13:52متخصصون في شهادة
13:54الأيزو للتحقيق وطرح
13:56الأسئلة وكل ما يتعلق
13:58بذلك ؛ لكنني أقدم لكم
14:00هذا ، فقط ضعوا في
14:01اعتباركم أنه لا يتم
14:03التوثيق دائمًا . حسنًا
14:06، ليست كل الشركات
14:08معتمدة في هذا الشأن .
14:13لماذا تعتبر
14:14الاختبارات ضرورية ؟
14:17حسنًا ، والآن أسألكم
14:19أنتم ، أخبروني ، من كل
14:21ما رأيناه ، لماذا
14:23تعتقدون أن
14:24الاختبارات ضرورية ؟
14:30>> باوتيستا .
14:31>> نعم يا أستاذ ، هل صوتي
14:33مسموع جيدًا ؟
14:34>> نعم . أود أن أقول إن
14:35أحد الأشياء الرئيسية
14:37هو تجربة المستخدم ،
14:39أليس كذلك ؟ أن يلبي
14:40تلك الحاجة ،
14:43>> وأن يحل المشكلة التي
14:45يسعى البرنامج
14:46لمعالجتها . إلياس ،
14:56>> مساء الخير يا أستاذ .
14:58أود أن أقول إنها
15:00بالأساس لكي يشعر
15:01المستخدم بالأمان ،
15:06>> ولكي يكون واثقًا ، في
15:09معلوماته .
15:11>> حسنًا ، من أيضًا ؟
15:20إلياس ، برونو ، يمكنكم
15:27التحدث . إيه ،
15:32>> يا أستاذ ، مساء الخير .
15:36إيه ، رأيي هو أنه من
15:38أجل تسريع الأوقات في
15:40تسليم ،
15:43>> في تسليم منتج
15:44البرنامج الذي نصنعه .
15:47>> حسنًا ، هناك العديد من
15:49الأسباب التي تجعل
15:50البرنامج بحاجة
15:51للاختبار ، وهو جزء مما
15:53كنا نتحدث عنه ، ولكن
15:55الأهم منها . مم . حسنًا .
16:04لتجنب المشاكل لاحقًا
16:06والحصول على المزيد من
16:08العمل لإصلاحها . قد
16:09يكون ذلك صحيحًا .
16:11>> ممتاز . حسنًا ، أحد
16:14الأسباب الرئيسية هو
16:16أن البرنامج يتم
16:17تصنيعه بواسطة البشر
16:18الذين يرتكبون أخطاء ،
16:20وأيضًا بواسطة الذكاء
16:22الاصطناعي . لا تعتقدوا
16:24أن الذكاء الاصطناعي
16:25سيقوم بكل شيء بشكل
16:27صحيح . و ، نقطة أخرى
16:32مهمة هي أنه عندما
16:33ينمو المشروع ، تزداد
16:35الضغوط على التسليمات
16:38، لأنكم يجب أن
16:39تتذكروا أن ضمان
16:41الجودة ( QA ) هو الحلقة
16:43الأخيرة ، هو الحلقة
16:44الأخيرة ، وإذا قالوا
16:46لكم " يجب تسليمه في
16:48اليوم العاشر " وكان
16:50التطوير قد تأخر ، أليس
16:52كذلك ؟ يجب على قسم
16:54ضمان الجودة ( QA ) التكيف
16:56وتسليمه في اليوم
16:57العاشر . لأنه لا مجال
16:59لتأجيل التسليم لليوم
17:00الخامس عشر . حسنًا ،
17:03هذا يجعل مسؤول ضمان
17:05الجودة كمن يضع خنجرًا
17:07في ظهره ، وعليه دائمًا
17:09الركض لضمان سير
17:11الأمور على ما يرام .
17:16وهنا تكمن أهمية
17:17استراتيجية الاختبار
17:19التي سنراها لاحقًا .
17:21حسنًا ، من الواضح أنني
17:23كنت أتحدث معكم عن
17:25المخاطر ، وهنا تكمن
17:26قضية المخاطر . لا
17:28يمكننا اختبار كل شيء .
17:33حسناً ، إذاً لا يوجد
17:35وقت للتحقق ويبدأ
17:37الافتراض بأن الأمور
17:39جيدة ، وهنا تقع
17:40الأخطاء ، أليس كذلك ؟
17:45هذا سيعمل بشكل جيد ،
17:47ونحن لا نعرف إن كان
17:49سيعمل جيداً لأنك لم
17:50تجربه . حسناً ، سنتحدث
17:53قليلاً عن ذلك لاحقاً .
17:59سبب آخر هو قياس
18:00استقرار النظام . حسناً
18:03، كيف يعمل ، ما هي
18:04الأمور الصحيحة وما هي
18:06الأمور الخاطئة . يعني ،
18:08قبل الإطلاق والإنتاج
18:10يجب يجب الاختبار .
18:16النقطة الأخرى هي
18:18إثبات أن البرنامج
18:19خالٍ من العيوب
18:21والأخطاء والثغرات ،
18:22وضمان أن ما نقوم به
18:24كفريق ضمان جودة يعمل
18:26بشكل جيد وصحيح .
18:31والنقطة الأخيرة هي
18:33لأن الأخطاء ، كما
18:37تعلمون ، لقد ذكرتم ذلك
18:39، لا أتذكر من ، يمكن أن
18:41تكون مكلفة . مكلفة نعم
18:44، وباهظة الثمن أيضاً .
18:47حسناً ، من الأرخص
18:49والأسرع العثور على
18:50العيوب قبل طرح النظام
18:52، سواء كان تطبيقاً أو
18:54أي شيء تودون تسميته .
18:58تخيلوا ، لا أعرف ، أنتم
19:02تطبيق شهير مثل "
19:03ميركادو باغو " وتقومون
19:06بالدفع ، فيُخصم نصف
19:08المبلغ الذي دفعتموه .
19:10تخيلوا ما هي المشكلة
19:11التي قد تحدث . كم سيكون
19:13ذلك خطيراً ، سيكون
19:14أمراً بالغ الخطورة .
19:16حسناً . إيه ، حالات
19:25الاختبار
19:26والسيناريوهات . حسناً
19:29، لا توجد صيغة واحدة
19:31تعمل لكل المشاريع .
19:35حسناً ، أو هذه الحالات
19:37لكل التطبيقات . مع أن
19:40أغلب الفرق اليوم ، كما
19:42أخبرتكم ، تستخدم
19:43منهجية " أجايل " ، مثل "
19:45سكرام " أو " كانبان " ،
19:47وهي عملية تطوير يُساء
19:49فهمها بالاعتقاد أنه
19:52نظراً لكونها منهجية
19:54أجايل ، فليس من
19:55الضروري كتابة حالات
19:57الاختبار . حسناً ،
20:02التطبيقات ، من ناحية
20:04التطوير ، تتقدم بسرعة
20:06، وبما أننا في نهاية
20:08ما يسمى بـ " السبرنتات "
20:10، نحصل على زيادة في
20:12التطبيق ، لذا فمن
20:13المهم جداً ضمان جودة
20:15تلك الزيادة . حسناً ،
20:20إنها أيضاً حقيقة أن
20:21الأوقات المتاحة
20:23لإنشاء حالات
20:24الاختبار ، والأتمتة ،
20:26والاختبار أصبحت أقل
20:28فأقل . لا يمكننا
20:30التوقف عن استخدام
20:31الأدوات التي تضمن لنا
20:33الجودة . حسناً ، السؤال
20:35هو : هل ننشئ حالات
20:37اختبار أم لا ؟ إذا
20:39كانت أي أداة تساعدنا
20:41في الحصول على منتج ذي
20:43جودة ، فيجب استخدامها .
20:45لكن كما قلنا من قبل ،
20:47أليس كذلك ؟ أحياناً لا
20:50نحتاج لإنشائها
20:52بالطريقة التقليدية
20:53التي كانت تُستخدم في
20:55تلك المنهجية . الآن في
20:59" أجايل " تغير الأمر
21:01وأصبح مختلفاً ، فهو
21:03أكثر تكرارية ، لذا
21:05يختلف كثيراً عما كان
21:07عليه الهيكل السابق .
21:13إذاً ، ما هو الفرق بين
21:14حالة الاختبار
21:15والسيناريو ؟ حالة
21:22الاختبار ، أو " test case " ،
21:24هي مجموعة من الشروط
21:26التي يتم من خلالها
21:28تحديد ما إذا كان جزء
21:30معين في تطبيق ويب
21:31يعمل وفقاً لما تنص
21:33عليه قصة المستخدم أو
21:35المتطلبات . حسناً ،
21:40لكتابة حالة اختبار
21:42يجب أن نحدد المتطلبات
21:44السابقة ، خطوات
21:46التنفيذ ، النتائج
21:48المتوقعة ، وبيانات
21:50الاختبار . حسناً ،
21:55علينا الجلوس
21:57والتركيز على هذا
21:58الأمر لربطه بالمهمة
22:00الأولى ( TP1 ) ، وهو أمر في
22:02غاية الأهمية . لكي
22:10تبدأوا في التفكير
22:12فيماهية سيناريوهات
22:13الاختبار . حسناً .
22:18طريقة لتقريب الفرق
22:20بين حالة الاختبار
22:22والسيناريو هي أن حالة
22:24الاختبار توضح " كيف "
22:26يجب أن يُختبر ، بينما
22:28السيناريو يوضح " ما "
22:30يجب أن يُختبر . حسناً ،
22:33بعد تقديم هذا التعريف
22:35لحالات الاختبار ،
22:37دعونا نرى الفرق بينها
22:39وبين السيناريوهات .
22:41السيناريوهات تصف فقط
22:43ما يجب القيام به .
22:46حسناً . يمكن كتابة
22:51سيناريوهات الاختبار
22:53في جملة واحدة ، جملة
22:55بسيطة . قد تكون ، لا
22:59أعلم ، عبارة ، هي عبارة
23:01قصيرة ، حسناً . لكنها
23:05الفكرة الأولى التي
23:07ستتبادر إلى أذهانكم .
23:12هي بمثابة عنوان لما
23:14يسمى بحالة الاختبار (
23:16test case ) . حالة الاختبار
23:21تكون أطول بطبيعتها .
23:26أكتب السيناريو أولاً
23:28، وهو العنوان ، ثم
23:29أكتب وصف حالة
23:30الاختبار ، وما المراد
23:33تنفيذه ، وبعدها أكتب
23:34الخطوات التفصيلية
23:36لكيفية إعادة إنتاجه .
23:41حسناً ، والنتيجة
23:43المتوقعة وبيانات
23:44الاختبار ، سنراها
23:46لاحقاً . اليوم سنركز
23:49على ما يخص السيناريو .
23:52حسناً . والسيناريو ،
23:56عندما تكون قواعد
23:57العمل معقدة ، يكون
23:59التفكير فيه أسهل من
24:01التفكير في النتيجة
24:03المتوقعة أو تدفق
24:04إجراءات معين يتطلب
24:06كتابة خطواته ، كما أنه
24:08أكثر فاعلية من حيث
24:10الوقت . حسناً ، عندما
24:15يتغير النظام من وقت
24:17لآخر ، يجب تحديث حالات
24:19الاختبار ومتابعتها
24:21مع مرور الوقت ، وتحديد
24:23أيها . أحياناً تكون
24:28نفس حالة الاختبار ،
24:29وأحياناً تصبح حالات
24:31الاختبار هذه غير
24:32مفيدة ويجب استبعادها .
24:35حسناً ، نقطة أخرى هي
24:37عندما تكون هناك
24:39احتمالات كثيرة
24:40لاختبار تطبيق معين .
24:43سنرى ذلك لاحقاً بقليل
24:45، حسناً ؟ لأن الموضوع
24:47يصبح أكثر تعقيداً في
24:49تلك الحالة . إي . في هذه
24:54الحالة ، حسنًا ، يجب
24:56كتابة عدد من حالات
24:57الاختبار لاختبار جزء
24:59واحد فقط من التطبيق .
25:02سيستغرق ذلك وقتًا
25:03طويلاً ، ومستوى
25:05تفصيليًا للتمييز بين
25:07حالة اختبار وأخرى ، في
25:09حين يمكن إعادة
25:10استخدام حالات
25:11الاختبار هناك . حسنًا ،
25:15سنرى ذلك لاحقًا . أقول
25:18دائمًا إن هذه الدورة
25:20التدريبية تشبه
25:21المروحة . تبدأ دائمًا
25:23بذكر العناوين ، ثم
25:25تتوسع هذه العناوين
25:27وتنفتح المروحة أكثر .
25:30عندما تنهون الدورة
25:31ستدركون سبب قولي لهذا
25:33. أه ، ما الذي تعنيه
25:38النقطة الثالثة هناك ؟
25:40ما الذي يجب مراعاته
25:41عند كتابة
25:42السيناريوهات ؟ حسنًا ،
25:44أولاً فهم النظام الذي
25:46تعمل عليه . الغرض من
25:48التطبيق ، وتحديد
25:50السيناريوهات الأكثر
25:52شيوعًا ، والتفكير
25:53دائمًا كما يفكر
25:54المستخدم النهائي .
25:56حسنًا ، المستخدم
25:58النهائي لا يفكر في
25:59الخطوات أو الشروط
26:01المسبقة ، بل يفكر فقط
26:02في النتيجة . نقطة . ما
26:04يهمه هو أن يعمل
26:06التطبيق بشكل جيد .
26:08حسنًا . أه ، أهداف
26:16الاختبارات . حسنًا ،
26:19الأهداف الأكثر أهمية
26:21هي كالتالي . أولاً ،
26:23اكتساب المعرفة . حسنًا
26:26، نحن نجري اختبارات
26:28لمعرفة العيوب ، حيث
26:30سيكون لديكم هدف
26:32للاختبار وسنصفها
26:33بطريقة تسهل تصحيحها .
26:37الهدف الآخر هو تأكيد
26:39الوظائف . من خلال
26:41الاختبارات سنتحقق من
26:43أن وظائف النظام قد تم
26:45تنفيذها كما هو محدد .
26:49إعداد التقارير . هنا
26:51سنقدم معلومات حول
26:53المخاطر المحتملة
26:54المتعلقة بالنظام قبل
26:56تسليمه للمستخدم
26:57النهائي . وهو ما أسميه
26:59التقرير النهائي
27:00للاختبارات التي يتم
27:01إجراؤها في كل دورة
27:03عمل ( Sprint ) . يجب على فريق
27:05ضمان الجودة ( QA ) القيام
27:06به لتقديمه لفريق
27:08العمل . حسنًا . وأخيرًا
27:11، الثقة ، وهي أمر في
27:13غاية الأهمية . سنكتسب
27:15الثقة ، لأننا نعلم أن
27:17النظام يلبي الوظائف
27:19المطلوبة . حسنًا ، ما
27:22الذي نريد تحقيقه ؟ هو
27:24أن يعمل النظام وفقًا
27:26لما طُلب منه . ما مقدار
27:31الاختبار اللازم ؟
27:37سؤال كبير ، اختبار
27:39جميع المجموعات أمر
27:41مستحيل بسبب ضيق الوقت
27:43. حسنًا ، انسوا أنكم
27:49ستختبرون النظام
27:50بالكامل لأنه لن يكون
27:52لديكم الوقت الكافي .
27:54إذن ستقولون لي ، "
27:55حسنًا ، ما هي الجودة
27:57التي أقدمها للنظام
27:59إذن ؟ " حسنًا ، إليكم
28:01جدول زمني يا رفاق . لقد
28:03أخبرتكم ، أن ضمان
28:05الجودة ( QA ) لديه مشكلة
28:07كبيرة وهي الوقت . وكما
28:10أقول دائماً هنا ،
28:11الوقت من ذهب ، حسناً ،
28:14ولهذا السبب يقال إن
28:15الوقت من ذهب . لا
28:18يمكننا تغيير الوقت .
28:20لدينا موعد نهائي ،
28:22تاريخ انتهاء ، وعلينا
28:24الالتزام به . لماذا ؟
28:26لأن هذا جزء من العمل
28:28يا رفاق . إذا تأخر
28:30التطوير ، حسناً ، لقد
28:32تأخر ، يا رفاق ، لا
28:34يمكننا فعل أي شيء .
28:40حسناً ، لتحديد متى
28:42تنتهي الاختبارات ،
28:44ستوجد كما ذكرت لكم من
28:46قبل ، المخاطر
28:47والأولويات . حسناً ،
28:53وهو أمر ذاتي جداً
28:55ويعتمد على كل مشروع ،
28:57وكل شركة ، وكل عالم .
29:00حسناً ، عدم العثور على
29:02مزيد من العيوب قد
29:04يكون معياراً لتحديد
29:06أنشطة الاختبار . ومع
29:07ذلك ، يجب أن تحتوي كل
29:09عملية اختبار على
29:11معايير خروج . عند
29:12الوصول إلى معايير
29:13الخروج هذه التي ستنهي
29:15أنشطة الاختبار ، وهي
29:17اثنان . أولاً ،
29:18الاختبارات القائمة
29:19على المخاطر . حسناً ،
29:21مستوى الخطر سيحدد
29:23الدرجة التي سيتم بها
29:24إجراء الاختبارات .
29:26والنقطة الثانية هي
29:27الاختبارات القائمة
29:28على المواعيد
29:29النهائية والميزانيات
29:31. حسناً ، توفر الموارد
29:33البشرية له وقت
29:35وميزانية محددة . والآن
29:41، دعونا ننتقل لرؤية
29:43ما هي مبادئ الاختبار .
29:46ما هي كبديهيات
29:47الاختبار ؟ هي أشياء
29:50تتحقق عموماً دائماً
29:51أو بشكل أو بآخر في ظل
29:53النماذج الحالية .
29:58حسناً ، المبدأ الأول
30:00للاختبار هو أنه يقول
30:02إن الاختبارات تبرز
30:03العيوب . كما رأينا في
30:09العبارة التي قالها
30:11ديكسترا أيضاً قبل
30:12بضعة أسابيع ،
30:13الاختبارات تثبت وجود
30:15عيوب ، لكنها لا تستطيع
30:17إثبات عدم وجود شيء .
30:20ستقلل الاختبارات من
30:22احتمالية بقاء عيوب
30:24خفية في البرنامج ، لكن
30:26عدم عثورنا عليها لا
30:27يعني أنها غير موجودة .
30:32حسناً ، يمكن أن تكون
30:34مخفية ، لذا لا يمكن
30:35إثبات أنه تم تحديد
30:37جميع العيوب . إذا قال
30:41لنا شخص ما : " لم نجد
30:43عيوباً " . أو إذا قلنا
30:45عند الانتهاء من دورة
30:46الاختبار ، أو السبرنت
30:48، إننا لم نجد مزيداً
30:50من العيوب . هذا لا يعني
30:52أن العيوب غير موجودة .
30:54انتبهوا لهذا ، لأنه قد
30:56تكون هناك عيوب . حسناً
30:59، نحن بسبب ضيق الوقت
31:01أحياناً لا نعثر عليها
31:03. حسناً ، المبدأ
31:07الثاني يقول إن
31:09الاختبار الشامل غير
31:11ممكن ، أي أن اختبار كل
31:13شيء ليس عملياً ،
31:14باستثناء الحالات
31:16البسيطة جداً وحتى ذلك
31:18يظل صعباً . ماذا نعني
31:20بكل هذا ؟ اعتماد جميع
31:23مجموعات الإدخال
31:25والإخراج واختبار
31:26الدورات عدة مرات
31:28لتغطية كل جزء من
31:29الكود . الاختبار هو
31:32عملية أخذ عينات بحكم
31:33التعريف . أختار حالات
31:35اختبار معينة لأنه لا
31:37يمكن اختبار كل شيء .
31:41يجب أن أختار دائمًا
31:42الحالات الأكثر أهمية
31:44وإثارة للاهتمام ، تلك
31:46التي ستقلل المخاطر
31:48وتزيد الثقة في النظام
31:50. إذا كان لدي نظام
31:53للتحصيل ، سأتحقق من أن
31:56الطرف الآخر يمكنه
31:57القيام بذلك ، أليس
31:59كذلك ؟ أن يتمكن المورد
32:02من الدفع ، فهذه ستكون
32:04الحالة الأكثر أهمية .
32:06لا يمكنني أن أدعي
32:07أنني أستطيع اختبار كل
32:09شيء . يجب أن أركز على
32:11إجراء تحليل للمخاطر
32:13وتحديد الأولويات
32:15لتقليل جهود الاختبار
32:16بشكل جيد . النقطة
32:19الأخرى هي الاختبار في
32:21المراحل المبكرة .
32:22الاختبار في المراحل
32:24المبكرة يعني إشراك
32:26الاختبار في بدايات
32:27المشروع ، أي عدم
32:29إضافته فقط أثناء
32:30مرحلة التطوير ، وهو ما
32:32كان يحدث ، ورغم أنكم
32:34قد لا تصدقون ذلك ، كان
32:36يحدث حتى وقت قريب . مع
32:38هذه المنهجية التي
32:40أذكرها لكم الآن ، لم
32:42يعد هذا يحدث ، لقد
32:44تغير الأمر . الأمر
32:45مختلف . لماذا ؟ لأن
32:50ضمان الجودة يتم
32:52إدراجه منذ البداية ،
32:54من حيث متى وكيف ، وما
32:56الذي تريده الشركة ،
32:58ونطاق وهدف البرنامج
33:00المراد تنفيذه . عندما
33:06تقرر مشاركتهم في
33:07الاجتماعات الأولية ،
33:09كما أخبركم ، فهذا
33:11سيساعد في التفكير في
33:13سيناريوهات الاختبار ،
33:15وعندما يبدأون في شرح
33:17طبيعة العمل ، ستفكرون
33:18في تلك السيناريوهات
33:20لأنكم ستتمكنون من
33:22العمل بالتوازي ، ولو
33:24كان ذلك من خلال تصميم
33:26الاختبارات . عندما يتم
33:28إشراك الاختبار في
33:30مراحل مبكرة ، يمكن طرح
33:32أسئلة لم يتخيلها أحد
33:34حول هذا النظام ، مما
33:36يدفعنا للتفكير
33:37ويجعلنا نضع تعريفات
33:39أكثر تحديداً
33:41وتفصيلاً . المبدأ
33:44الآخر هو تجميع العيوب
33:46. يستند هذا المبدأ إلى
33:48الإحصاءات . بشكل أساسي
33:50، يقول إن معظم العيوب
33:52تكون متركزة في عدد
33:53قليل من الوحدات
33:55البرمجية . أي أنه
33:57عندما نجد عيباً ، يجب
33:58أن نستمر في البحث
34:00لأننا قد نجد عيوباً
34:02أخرى بالقرب منه . وهذا
34:05يتحدث عما يسمى بكثافة
34:07العيوب ، وهو ما سنراه
34:09لاحقاً من خلال
34:10المقاييس والقياسات .
34:14مبدأ آخر هو مفارقة
34:15المبيد الحشري . كما
34:19تعلمون ، المبيد
34:20الحشري هو منتج
34:22كيميائي يكافح الآفات
34:24الضارة . ماذا يحدث
34:26لتلك الآفات ؟ آفات ،
34:28قلت آفات ، وليس لوحات .
34:31إذا استخدمنا دائماً
34:32نفس المبيد الحشري ،
34:34فإنها تعتاد عليه
34:35وتصبح أكثر مقاومة .
34:36جيد . مثال ، على سبيل
34:38المثال ، موضوع حمى
34:39الضنك . لاحظوا ، لا
34:41أعلم إن كنتم سمعتم أن
34:43، أي ، البخاخات وكل
34:45شيء ، أي ، أصبحت البعوض
34:47الآن أكثر مقاومة . حتى
34:49الآن لا أعرف ماذا حدث
34:51، لقد اختفت ، لكن على
34:53أية حال . نفس الشيء
34:55يحدث في الاختبار .
34:57حسناً ، إذا نفذنا
34:59دائماً نفس نوع
35:00الاختبار في نفس
35:02الحالة ، على سبيل
35:03المثال ، في اختبارات
35:05الانحدار ، في الأتمتة
35:07التي سنراها لاحقاً ،
35:09تقل احتمالية العثور
35:11على عيوب ، حسناً ،
35:12العثور على عيوب جديدة
35:14، لأن البرنامج يصبح
35:16مقاوماً لنفس
35:18الاختبار . إذن ، ما هو
35:21الاقتراح هنا ؟ حسناً ،
35:24مراجعة تلك
35:25الاختبارات التي
35:27نجريها بشكل متكرر
35:28دورياً . هناك اختبارات
35:33أخرى ، حسناً ، تعتمد
35:35على المشروع . حسناً ،
35:37وهذا بالنسبة لي هو
35:39المبدأ الأكثر أهمية
35:41لأنه لا يمكننا إجراء
35:42الاختبار في جميع
35:44المشاريع بنفس
35:45الطريقة . ليس الأمر
35:47نفسه العمل في فرق من
35:49شخصين أو من 10 أشخاص .
35:51ليس الأمر نفسه اختبار
35:53نظام تقارير أو تطوير
35:55برمجيات تقليدي . لن
35:58نختبر بنفس الطريقة
36:00تطبيق هاتف محمول
36:02وتطبيق ويب أو سطح
36:03مكتب . حسناً ، لذا بما
36:06في ذلك ، اه اه في نفس
36:10المشروع ربما مرحلتان
36:12مختلفتان ، حسناً ،
36:14أهداف الاختبار تكون
36:16مختلفة . حسناً ، إذن ما
36:19الذي يجب أن نطالب به
36:21أنفسنا . حسناً ،
36:23التفكير فيما ستكون
36:25عليه استراتيجية
36:26الاختبار الخاصة بنا
36:28عند بدء المشروع . سنرى
36:30ذلك لاحقاً لأنه توجد
36:32خطة اختبار . ماذا
36:34سنفعل لتعريف
36:35استراتيجية الاختبار
36:37هذه لهذا المشروع
36:38بالتحديد ؟ حسناً ، في
36:41الأسابيع القادمة
36:42سنرى ذلك بشكل رئيسي
36:44في قسم أنواع
36:45الاختبارات . حسناً ،
36:50وأخيراً لدينا ما يسمى
36:53بـ " مغالطة " غياب
36:54الأخطاء . جميعنا نريد
36:58برنامجاً يتكيف مع
37:00المتطلبات التي يحبها
37:01المستخدم ، ولا يحتوي
37:03على أخطاء ، ولكن كما
37:05قلنا بالفعل ،
37:06الاختبارات تظهر وجود
37:08الأخطاء ، لا غيابها .
37:11إذن ، بالنتيجة ، لا
37:12يمكننا القول إن
37:14البرنامج لا يحتوي على
37:16أخطاء . حسناً ، أؤكد
37:20لكم مرة أخرى مرات
37:21عديدة أنه لا يجب
37:23القول إن البرنامج لا
37:25يحتوي على أخطاء لأنكم
37:27عملياً تضحون بأنفسكم .
37:31في أي تطوير ، حسناً ،
37:33للبرمجيات ، توجد
37:37تضارب في المصالح بين
37:39الأدوار التي تشارك في
37:41بناء ذلك البرنامج .
37:43قلت ، حسناً ، يجب أن
37:44يكونوا فريقاً واحداً
37:46، يجب أن يكونوا على
37:47تواصل ، لقد تحدثنا عن
37:49هذا بالفعل ، ولكن ،
37:50حسناً ، دائماً توجد
37:51مصالح . يشعر المطورون ،
37:53من ناحية ، بفخر كبير
37:55بمنتجهم ويريدون
37:57إثبات أن ما صنعوه هو
37:59الأفضل ، وأنه يعمل
38:00بشكل جيد ، وأنه خالٍ
38:02من الأخطاء . هذا أمر
38:04منطقي . لذلك عندما
38:06يُطلب منهم اختبار شيء
38:08ما ، عادة لا يكون
38:09الاختبار فعالاً .
38:11حسناً . وهذا المستوى
38:15الأول من الاستقلالية
38:17هو الأقل رغبة على
38:18الإطلاق . حسناً . ذات
38:22مرة قيل لي منذ زمن
38:24طويل ، عندما كنت أعمل
38:25في ضمان الجودة ( QA ) ، إن
38:27الإبلاغ عن خلل في
38:28التطوير يشبه إخبار
38:30الأب أن ابنه قبيح .
38:31بالطبع ، لن يقول الأب
38:33إن ابنه قبيح ، ولن
38:35يقول المطور إن المنتج
38:37الذي أنشأه به أخطاء
38:38أو عيوب . وهنا أتذكر
38:40دائماً مؤلف " الأمير
38:42الصغير " الذي قال إنه
38:44من الأصعب بكثير الحكم
38:46على نفسك مقارنة
38:47بالحكم على الآخرين .
38:51هذا انعكاس لما أخبركم
38:53به . من الأسهل العثور
38:56على عيوب في برمجيات
38:58الآخرين مقارنة بتلك
39:00التي بنيتها للتو .
39:02حسناً ، لأن المرء لديه
39:04انحياز تأكيدي . ما
39:07يبحث عنه هو تأكيد أن
39:09ما فعلته يعمل بشكل
39:11جيد . لذا ، انظروا إلى
39:15تلك الصورة حيث يقول
39:17المبرمج هناك : " لقد
39:18صنعت برنامجاً رائعاً "
39:20. حسناً ، لقد اجتاز
39:23جميع اختبارات الوحدة
39:25، والتي سنراها لاحقاً
39:26، وهي الاختبارات التي
39:28يجب أن يقوم بها
39:29المطور . هل هذا جاهز ؟
39:31يذهب مباشرة إلى
39:33الإنتاج . الآن ، مستوى
39:35الاختبار التالي هو
39:36عندما يختبره مطور غير
39:38الذي قام بتطويره ،
39:40والذي على الرغم من
39:42تمتعه باستقلالية
39:44أكبر ، إلا أنه ليس
39:45متخصصاً في الاختبار .
39:50حسناً ، هناك يقول : "
39:52يبدو أنه يعمل " ، لكن
39:54المواصفات تقول إن
39:56التسجيل مخصص فقط لمن
39:59هم فوق 18 عاماً ؛ أي أنه
40:01يجد خطأً ، ويعيده إلى
40:03المطور الأصلي ليصححه
40:05، ثم يعيده مرة أخرى
40:07إلى بيئة الاختبار .
40:12ولاحظوا موقف المطور ،
40:14فأول شيء يفعله هو
40:15اتخاذ موقف دفاعي
40:17وإلقاء اللوم على
40:18الآخر . أمر غريب ، أليس
40:20كذلك ؟ أنا لا يمكن أن
40:22أخطئ في هذا . لا بد أنه
40:24كان هناك تغيير في
40:25اللحظة الأخيرة . الآن
40:27نعم ، الآن سأرسله ،
40:29وهذا المختبر ( QA ) الذي
40:31يختبره هو المستوى
40:32الثالث من
40:33الاستقلالية ، أليس
40:35كذلك ؟ أن يختبره متخصص
40:37في الاختبار ، أن
40:39يختبره المختبر نفسه .
40:41لاحظوا أن المتخصص
40:43يقول إنه يطبق تقنية
40:44القيم الحدية . سنرى
40:47لاحقاً ما تدور حوله
40:49تلك التقنية . لقد
40:50اكتشف أنه في سن 18 ، لا ،
40:53في سن 18 لا يسمح لهم
40:56بالتسجيل . بالإضافة
40:58إلى ذلك ، اختبروه على
40:59متصفحات مختلفة ،
41:01حسناً ، لا أعرف ، إيدج ،
41:03موزيلا ، فايرفوكس ، أي
41:04اسم تريدون إطلاقه
41:06عليها . أرى أيضًا أن
41:08الحقول غير محاذية ، أي
41:10أن ، هذا بحد ذاته يشير
41:14إلى وجود تقنية . لديه
41:16تقنية ، وطريقة معينة
41:18لإجراء الاختبارات .
41:23تطرأ عليه أفكار
41:24مختلفة مثل التوافقية
41:26بين المتصفحات ،
41:28وصولاً إلى اقتراح
41:29تحسينات من منظور
41:31المستخدم . وأخيراً ،
41:37مستوى الاستقلالية
41:39الأخير يكون عندما يتم
41:41الاختبار بواسطة شركة
41:43خارجية غير تلك التي
41:44طورت البرنامج . أتفهم
41:54أنكم ، لا أعلم ، شركة
41:56مساهمة ، أو لنفترض
41:57أنكم معتادون على
41:59استخدام نموذج معين
42:01للإبلاغ عن خطأ ، لكن
42:03انتبهوا إلى أن
42:04التقرير يفتقر إلى كل
42:06المعلومات التي طلبها
42:08العميل ، لذا قد تتكون
42:10لديهم رؤية متطرفة أو
42:12بعيدة بعض الشيء . هنا
42:16أيضاً يوجد تضارب في
42:18المصالح ، لأنه في كثير
42:20من الأحيان يتم
42:22التعاقد مع شركة
42:23لإجراء الاختبارات ،
42:25ويتم تقييمها بناءً
42:27على الأخطاء التي
42:28تجدها ، وهنا يظهر
42:30تضارب المصالح . أن
42:33تقول ، حسناً ، يجب أن
42:35أجد حتى أدق التفاصيل
42:37لأنهم يدفعون لي بناءً
42:39على ذلك ، الأمر ببساطة
42:42هكذا . سنتناول منهجيات
42:47" أجايل " ( Agile ) ، وفكرة
42:49العمل كفريق واحد ،
42:51وكيف تؤثر تضاربات
42:53المصالح في ذلك . ضعوا
42:58في اعتباركم ، لقد
42:59أخبرتكم سابقاً أنه في
43:01بعض الأحيان ، وهذا
43:02بالنسبة لي أسوأ ما
43:04يمكن أن يحدث ، لكنه
43:05يحدث عندما يقوم مزود
43:07بعملية التطوير وشركة
43:09أخرى ... المزود " أ " يقوم
43:12بالتطوير والمزود " ب "
43:14يقوم بالاختبار . هذه
43:16مشكلة لأنه لا يوجد
43:18تواصل ، ولا يعرفون
43:20كيفية الإبلاغ عن
43:21الأخطاء ، وليسوا في
43:23نفس الشركة ، وأحياناً
43:25يصبح الأمر معضلة
43:26حقيقية . حسناً ، هذا
43:28بالنسبة لي مهم جداً ،
43:33موضوع التواصل وتحديد
43:35الأدوار بوضوح ، أي أن
43:37يكون هناك تنسيق فوري ،
43:39لكن أحياناً لا يحدث
43:41ذلك ويكون بمثابة حاجز
43:43في المنتصف . باختصار ،
43:49عندما نتحدث عن
43:50مستويات استقلالية
43:52الاختبار ، نصادف
43:54أربعة مستويات .
43:58الاختبارات التي
44:00يصممها نفس الأشخاص
44:02الذين ينشئون
44:03البرنامج ، وهو مستوى
44:05استقلالية منخفض ، حيث
44:07يقوم المطور بإجراء
44:08اختبارات الوحدة . يجب
44:12على المطور دائماً
44:16إجراء اختبارات
44:18الوحدة . حسناً .
44:22الاختبارات التي
44:24يصممها طرف ثالث ، كما
44:26أخبرتكم ، على سبيل
44:28المثال ، عضو آخر في
44:30فريق التطوير ، قد يكون
44:32مطوراً أو قد يكون له
44:34دور آخر . حسناً ،
44:40الاختبارات التي
44:41يصممها شخص من قسم آخر
44:43في المنظمة أو من دور
44:45آخر مثل قسم النصوص ،
44:47والاختبارات التي
44:49يصممها أشخاص من منظمة
44:51أخرى . حسناً . آه ، هذا ،
44:57كما أخبرتكم من قبل ،
44:59أكثر إثارة للجدل ،
45:01لأنه في بعض الأحيان
45:03يكون عليكم ... هناك
45:05حواجز معينة ، ولا يوجد
45:08تواصل ، وأحياناً ، أنا
45:11، حدث معي هذا من واقع
45:13تجربتي ، يمكنني
45:15إخباركم ، حيث كانت
45:16هناك شركة تتولى
45:18التطوير ، ونحن نقوم
45:19بضمان الجودة ( QA ) قبل
45:21سنوات عديدة ،
45:22وأحياناً كنا نبلغ عن
45:24خطأ ، ولا يعمل النظام ،
45:26وكان الأمر ذهاباً
45:28وإياباً ، وربما كنا
45:30نتوقف لثلاث ساعات ،
45:31وحسناً ، هذه مشكلة .
45:33المثالي هو أن نكون
45:35جميعاً في نفس الشركة ،
45:37لكن أحياناً لا يختار
45:39المرء ذلك وعليه أن
45:40يتقبله . حسناً ، هل
45:44هناك أسئلة ؟ أنا أسمع
45:48أسئلتكم . نعم يا أستاذ
45:54، كان لدي سؤال حول
45:55مستويات التبعية
45:57الأربعة ، والتي ستكون
45:58السياقات المختلفة
46:00التي يتم فيها
46:01الاختبار .
46:03>> آه ، الاختبار كلمة
46:10كبيرة جداً . إي سوف
46:13نراها تدريجياً خلال
46:15الدورة الدراسية .
46:17حسناً ، أي ، آه هي
46:19أربعة مستويات من
46:20التبعية التي سنقوم
46:22الآن ، من هذه اللحظة ،
46:24بتفكيكها . حسناً . آه ،
46:27الاختبارات بالطبع
46:29يجب أن تكون ، أي ،
46:31دعونا نرى ، يجب أن
46:33تكون مصممة ، يجب
46:35اختبارها ، يجب أن يكون
46:37هناك تغذية راجعة ، آه ،
46:39لكن هذه المستويات
46:41الأربعة الآن ، من الآن
46:43فصاعداً ، سنقوم
46:45بتفكيكها .
46:48>> حسناً .
46:52>> نعم . آه ، أحياناً لا
47:04يمكن أن يكون الأمر ،
47:06على سبيل المثال ، أن
47:08تكون أنت في شركة ،
47:10حسناً ، وتسلم الأمر
47:12لشركة استشارية ،
47:13حسناً ، " خوان " ، " خوان "
47:15يسبب لك المشكلة التي
47:18أتحدث عنها أحياناً .
47:20إذن ، المورد " خوان " ،
47:22حسناً ، يقوم بتطوير
47:24البرنامج لك ، وأنت
47:25كشركة يسلمه لك ، حسناً
47:28، وكأنه يقول : " يا
47:29صديقي ، هذا جاهز وعليك
47:31إجراء الاختبار عليه " .
47:36آه ، بالنسبة لي ، أنا
47:38غالباً لا أريد أن
47:39أكون فلسفياً ، لكن
47:41بالنسبة لي إذا لم
47:43يكونوا جميعاً يعملون
47:45معاً ، فإن المنهجية
47:46تنهار . شش . أعتقد أن
47:50هذا لا يعمل وفقاً
47:52لمنهجية " أجايل " . دعونا
47:54نرى ، لديهم اجتماعات ،
47:56وكل شيء كما تشير
47:57المنهجية ، لكنهما
47:59ليسا في نفس الشركة .
48:01حسناً . وبالنسبة لي
48:03هذه مشكلة . أي ، لقد قلت
48:05ذلك دائماً ، آه ،
48:06يقولون لك : " حسناً ،
48:08سنقوم بتطويره لطرف
48:10ثالث ، ولكن بعد ذلك
48:12عندما يسلمونه لك ، لا
48:14يعمل مع قاعدة
48:15البيانات ، ولا يتكامل
48:17مع نظامك . إنها مشكلة
48:20يا شباب ، للأسف ، أي ،
48:21يجب أن أقولها لكم .
48:23أحيانًا لا أرغب في
48:25اختيار ذلك النظام ،
48:26ولكن أحيانًا ، لا أعلم
48:28، يجب أن يخرج العمل
48:29بسرعة . المطورون
48:30مشغولون ، هذه الأمور
48:32تحدث . حسنًا ، إنها
48:40نفسها . إنها نفسها . أي
48:42أنك ستقوم بالاختبار
48:44على النظام الذي تم
48:46تطويره . إيه ، لاحقًا
48:49عندما أرسل لكم
48:51الفيديوهات ، أليس
48:52كذلك ؟ أي ، دعونا نرى ،
48:54شركتي تعمل بالكامل
48:56على نفس المنصة وتعمل
48:58أحيانًا ؛ أي أنك لن
49:00تمتلك ، تخيل أنك لن
49:02تملك قصة المستخدم
49:04لتصميم حالة الاختبار .
49:06ربما سيعطونك المشروع
49:08، لذا لا يمكنك إنشاء
49:09سيناريو هناك . إذًا ،
49:11هنا تكمن المشكلة . هل
49:13تفهمون ما أقصده ؟ يعني
49:15، تصبح المسألة معقدة
49:19عندما يطورها لك طرف
49:21ثالث . حسنًا ، هل فهمتم
49:24الأمر ، أليس كذلك ؟
49:27حسنًا ، لكن نعم ، لا
49:30أريد التعمق في هذا
49:32الموضوع . حسنًا ،
49:33لنفترض دائمًا ، لا
49:35أعرف إذا كان أي منكم
49:37هنا يعمل ويتم التطوير
49:39له من الخارج وعليه
49:40القيام بـ QA . يبدو لي
49:42أنه لا يوجد هنا أحد في
49:44QA ، لكن أحيانًا يجب
49:46على هذا المطور تسليمه
49:48، يبدو لي أن هناك
49:50مطورين وعليهم تسليمه
49:52لشركة طرف ثالث . الـ QA .
49:55وأحيانًا إذا لم يكن
49:56الـ QA موجودًا هناك ،
49:58فمن المحتمل أن يقوم
49:59المستخدم النهائي
50:01بالـ QA . لا ندخل في
50:03تفاصيل دقيقة في هذه
50:05الأمور لأنني لا أريد
50:07الذهاب إلى ذلك المسار
50:09، لكن هذا لاحقًا
50:14سنركز على أننا سنكون
50:16وكأننا مع المطورين .
50:19حسنًا ، أسئلة ، تفضلوا .
50:36يمكنكم طرح المزيد من
50:38الأسئلة . هل يمكنكم
50:41السؤال ؟
50:42>> لدي سؤال . بخصوص عروض
50:45البوربوينت ، أريد
50:46الحصول عليها ، هل
50:47يمكننا توفيرها ؟ لا ،
50:49>> إنها موجودة في الفصل
50:50الافتراضي .
50:51>> لم أرها منذ قليل
50:52عندما بحثت عنها .
50:54>> بلى ، كانت موجودة هناك
50:56. إيه ، بصيغة PDF . هذه هي
51:03المراجع الاثنان . ينقص
51:05الثالث الخاص باليوم ،
51:07>> أليس كذلك ؟ لا ، إنه
51:09موجود في القسم
51:10المكتوب عليه العروض
51:12الأسبوعية .
51:12>> رائع .
51:13>> ما قمت به في الأسبوع
51:15الثالث موجود هناك .
51:16>> كلها موجودة في الأسفل
51:17. ممتاز . لا ، كنت أبحث
51:19عنها حسب القسم . شكرًا .
51:21>> لا ، وضعتها كلها معًا
51:23حتى لا أقوم بإنشاء كل
51:26>> فئة . أنا ظننت أنها
51:28كانت مقسمة أسبوعًا
51:29بأسبوع ، لا كلها معًا .
51:31إنها كلها موجودة . كنت
51:33أنوي القيام بذلك ، لكن
51:34الكثيرين قالوا لي : " لا
51:36، اتركها كلها معًا
51:38لأن ذلك أسهل . " إضافة
51:39إلى أنها موجودة هناك ،
51:41هذا ،
51:42>> رائع ،
51:43>> يمكنكم رؤية كل شيء .
51:45لذا
51:47>> رائع . أحياناً أحتاج
51:49إلى دليل ، فالمعلومات
51:51كثيرة لدرجة أنني
51:52أحتاج إلى مرجع .
51:57>> من أيضاً ؟ أستاذ ، لدي
52:01سؤال . هل لديك أي وثيقة
52:05أو شيء تطلعه لنا حول
52:07كيف تبدو الوثائق التي
52:09يتم تقديمها أو طلبها
52:10في الواقع ؟
52:15>> سأقدم لكم الأمثلة
52:17لاحقاً خلال الدورة .
52:19حسناً . الفكرة هي أن
52:22تستوعبوا الجانب
52:24النظري بشكل جيد . أما
52:27الجانب العملي ، وكما
52:29قلت لكم ، إذا أريتكم
52:31شيئاً هكذا ، فقد لا
52:33ترونه أبداً لأنه لن
52:35يُقدم لكم بهذه
52:36الطريقة ، بل بطريقة
52:38أخرى . حسناً ، لا تظنوا
52:43أنني لا أريد تزويدكم
52:45به ، لكننا سنرى خلال
52:47الدورة بعض الأشياء
52:49التي سأعرضها لكم ،
52:51وستظهر لكم تباعاً . في
52:54النهاية سأرسل لكم
52:56مقاطع فيديو ، ثم سنرى
52:58تصميم حالات الاختبار
53:00، وستقومون بالعمل على
53:02المهام ، وهناك
53:03ستدركون الأمر . حسناً ،
53:05لا تفكروا في السبب ،
53:07لكن عليّ أن أقدم لكم
53:09الجانب النظري أولاً .
53:11حسناً ، لدي استفسار .
53:17أليس من المثالي أن
53:18تحدث كل هذه
53:19الاعتمادات في نفس
53:21الوقت ، أليس كذلك ؟ أي
53:22أن نقوم باختباراتنا
53:24الخاصة ، ونستعين
53:26أيضاً باختبارات
53:27خارجية ليكون كل ما
53:29نقوم به قوياً ، أليس
53:31كذلك ؟
53:33>> انظر ، يجب على المطور
53:35تسليم الاختبارات
53:36الوحدة . أقول لكم
53:38دائماً ، وأكرر ، أنا
53:40أعطيكم الحالة
53:41المثالية دائماً .
53:43حسناً ، أحياناً
53:44اعتقدوا أن الأمر ليس
53:46كذلك تماماً . الأمر
53:51مختلف ؛ يجب على المطور
53:53تسليم اختبارات
53:54الوحدة ، وعليكم أنتم
53:56صياغة السيناريو
53:58وتصميم حالات
53:59الاختبار وتنفيذها .
54:09حسناً ، لهذا أربط
54:11الأمر دائماً
54:12بالبداية ، فهذا ليس
54:14جزءاً من نظام محدد ،
54:16بل هو جزء عام جداً مما
54:18تحدثت إليكم عنه بخصوص
54:20سيناريوهات الاختبار .
54:26حسناً . ومم تتكون
54:28سيناريوهات الاختبار
54:30هذه ؟ حسناً ، يوجد
54:32تمرين هنا . عن ماذا
54:35سيتحدث هذا ؟ الفكرة هي
54:37ممارسة سيناريو
54:38اختبار من الحياة
54:39اليومية . حسناً ، سأرسل
54:42لكم ملف إكسل هنا . وعن
54:45ماذا سيتحدث هذا ؟
54:47حسناً ، اعتبروا أن هذا
54:50تطوير ، أو متطلب ، أو
54:52قصة . حسناً ، بعد ذلك
54:55سنرى ابتداءً من
54:56الأسبوع القادم ما
54:58نسميه قصص المستخدم .
55:01ماذا يعني هذا ؟ يعني
55:04أنه يجب أن أصل إلى
55:05المكتب منذ لحظة
55:07استيقاظي من السرير .
55:11حسناً ، إذن أنا أعطيكم
55:13السيناريو الأول .
55:15العنوان سيكون هو
55:16السيناريو . ما هو
55:18السيناريو ؟ حسناً ،
55:20أولاً أن يرن منبه
55:21الهاتف المحمول . حسناً
55:23، سيكون إطفاء منبه
55:24الهاتف المحمول . ما هي
55:26بيانات الاختبار ؟
55:28حسناً ، امتلاك هاتف
55:29محمول مع تفعيل المنبه
55:31. ما هي الخطوات
55:33التفصيلية ؟ حسناً ،
55:35الخطوات ستكون
55:37الاستيقاظ ، والنقطة
55:39الثانية ، الخطوة
55:40التالية ، أخذ الهاتف
55:42وإيقاف المنبه . ما هي
55:45النتيجة المتوقعة
55:46لسيناريو الاختبار
55:48هذا ؟ ستكون تعطيل
55:49المنبه ليتوقف عن
55:51الرنين . حسناً ، ما
55:55عليكم فعله هو الإكمال
55:57حتى سيناريو رقم 11 ،
55:59حيث السيناريو الأخير
56:01هو الوصول إلى المكتب .
56:06حسناً ، ما يجب عليكم
56:08تحقيقه هو الاستيقاظ
56:10للقيام بذلك ، ولهذا
56:11السبب أعطيكم دائماً
56:13سيناريو من الحياة
56:15الواقعية ، وبعد ذلك
56:17سننتقل إلى الأنظمة .
56:19حسناً ، سأضع عنواناً ،
56:21سأعطيكم مثالاً
56:22ثانياً ، لا أدري ،
56:24النقطة الثانية ، ما هو
56:26سيناريو الاختبار ؟
56:28تناول الإفطار . حسناً .
56:30ما هي بيانات الاختبار
56:32؟ حسناً ، تحضير
56:36الإفطار ، حسناً ،
56:37الخطوات التفصيلية ،
56:39لا أدري ، شرب الشاي ،
56:41حسناً ، غلي الماء ،
56:43تحضير كيس الشاي ،
56:45تحضير الكوب . حسناً ،
56:49هذه ستكون الخطوات ،
56:51لكن أريدكم أن تقوموا
56:53بها بأنفسكم
56:54لتستوعبوا الأمر ،
56:55والنتيجة المتوقعة هي
56:57الانتهاء من تناول
56:58الإفطار . هل هذا مفهوم
57:00؟ نعم يا أستاذ .
57:05>> نعم .
57:09>> نعم . المسار السليم ،
57:11وما سأطلبه منكم لأنني
57:13أنبه دائماً ، هو ألا
57:15تضعوا السيناريو
57:16الثاني ركوب الحافلة
57:18والسادس تناول
57:19الإفطار . أعني ، يجب أن
57:22يكون هناك تسلسل يا
57:24شباب . حسناً . أعني ، يجب
57:26أن يكون هناك تسلسل .
57:28لقد أرسلته لكم للتو
57:30عبر البريد
57:31الإلكتروني . حسناً ،
57:33تحققوا مما إذا كان قد
57:34وصلكم أم لا . فكرة هذا
57:39هي أن تقوموا به يوم
57:41الأربعاء ، نعم يوم
57:43الأربعاء ، أو إذا
57:44أردتم يمكنكم القيام
57:46به اليوم وإرسال ملف
57:48الإكسل كاملاً لي عبر
57:50البريد لأتمكن من
57:51رؤيته . أكرر مجدداً ،
57:57سأرد فقط على من أرى
57:59أنهم ارتكبوا خطأ ما .
58:02حسناً ، البقية لن أرد
58:05عليهم . إذا كان كل شيء
58:06على ما يرام ، لن أرد
58:08عليهم . حسناً ، هل هناك
58:11أسئلة أو استفسارات ؟
58:15>> مرحباً يا أستاذ . هل
58:17أرسلته بالفعل ؟
58:18>> نعم ، لقد أرسلته
58:19بالفعل .
58:20>> لا ، لا ، لم يصلني شيء .
58:25لم يصلك ؟ ما هو بريدك
58:26الإلكتروني ؟
58:31>> هل وصلك رابط " ميت " ( Meet )
58:33؟
58:33>> آه ، لا ، لم يصلني ذلك
58:36أيضاً .
58:36>> حسناً . متى سجلت إذاً ؟
58:40>> أنا ، آه ... في ... في ...
58:44الثاني من أغسطس ، على
58:46ما أعتقد .
58:47>> حسناً ، وما هو بريدك
58:49الإلكتروني ؟ سأضعه في
58:51دردشة المجموعة هنا .
58:57كيف أنت مسجل ؟ ما أراه
59:00هو أنني آخذ رسائل
59:01البريد الإلكتروني
59:03التي سجلتم بها في
59:04الدورة . دائماً تصلني
59:06رسائل البريد
59:07الإلكتروني هناك ، لا
59:08أعرف لماذا لم تصلني .
59:10هذا هو البريد
59:10الإلكتروني الذي
59:11أملكه . إنه موجود هنا
59:13في الدردشة .
59:15>> ما هو لقبك ؟ أنا أنظر ،
59:17هل تعلم ؟ لست أرى
59:19الدردشة الخاصة بك .
59:20>> أراوخو .
59:22>> أراوخو .
59:23>> Araujo-facundo 2010 @ hotmail .
59:28>> آه ، نعم ، نعم . أنت
59:30تستخدم الحساب الآخر .
59:32>> حسناً ، عليك أن تغيره
59:34أنت حتى ينعكس ذلك .
59:36>> تحقق هناك مما إذا كان
59:38قد وصلك .
59:39>> حسناً . شكراً جزيلاً .
59:41>> تم . حسناً . هل هناك أي
59:44شخص آخر لم يصل إليه ؟
59:46تذكروا دائماً أنكم
59:48تستخدمون نفس البريد ،
59:50حسناً ، أنا أرسلها إلى
59:52هناك . تجربة ، تجربة .
1:00:05>> فرانسيسكو ،
1:00:06>> يا أستاذ ، هل صوتي
1:00:08مسموع ؟
1:00:09>> نعم ،
1:00:09>> نعم . أنا أيضاً لم
1:00:11يصلني شيء . هل يمكنني
1:00:13إعطاؤك بريدي
1:00:13الإلكتروني أيضاً ؟ آه
1:00:15، سأعطيكم إياها ،
1:00:17تحققوا منها جيداً ،
1:00:19لأنني إذا لم أفعل ،
1:00:20علي أن أبحث عن مكان
1:00:22وجودك .
1:00:23>> حسناً . نعم ، نعم ،
1:00:26>> فيلافي ، بل إن لديك
1:00:30شيئاً خاطئاً لأن ...
1:00:35لنرى ، فيلاف ، كيف حالك
1:00:38مع ؟ آه ، لا ، فيليغ . آه ،
1:00:40نعم ، أدور ، عذراً ،
1:00:42أدورنو هو لقبي الأول .
1:00:45فيلافاني ، اللقب
1:00:46الثاني . فيل ، لا أراك .
1:00:55>> لا ، نعم ، لدي ، لا أعرف
1:00:57إن كنت تريد مني أن
1:00:59أحكي ذلك الآن حتى لا
1:01:00نأخذ الكثير من الوقت ،
1:01:02لكنني انتقلت من تحليل
1:01:04النظم إلى تطوير
1:01:05البرمجيات وفي وقت
1:01:07التسجيل كانت هناك
1:01:08مشكلة . وقد استشرت
1:01:10مكتب الشؤون الإدارية .
1:01:12النظام لم يسمح لي
1:01:13بالتسجيل لأنه يقول
1:01:14إنه يجب أن يكون لدي
1:01:16حالة الانتظام
1:01:17والترقية ، وقد حدث هذا
1:01:19مع حالة أخرى . حسناً ،
1:01:20أعطني البريد
1:01:21الإلكتروني لكي أعيد
1:01:24إرساله إليك .
1:01:25>> شكراً .
1:01:27>> أعطني البريد
1:01:28الإلكتروني .
1:01:29>> أنا أكتبه الآن .
1:01:32>> هل هناك أي استفسار أو
1:01:34سؤال ؟
1:01:37>> إنه موجود هناك في
1:01:38الدردشة . هل هناك أي
1:01:47شخص آخر يا شباب ؟
1:01:54>> لا ، في الوقت الحالي
1:01:56>> لا .
1:01:57>> لا ، ليس الآن .
1:01:59>> حسناً ، جيد جداً .
1:02:01سأترككم ، سأترككم
1:02:05لتنشغلوا بالعمل .
1:02:10سأفعل رابطاً في
1:02:12القاعة لنقوم
1:02:13بالتسليم .
1:02:15>> امم ، ردوا علي عبر
1:02:17البريد الإلكتروني .
1:02:18>> آه ، رائع . ها أنا ذا .
1:02:33هنا ، لقد انتهى الأمر .
1:02:35تم الإرسال . أقوم
1:02:42بإعادة إرسالها إليكم
1:02:43الآن . امم ، غوزمان ،
1:02:50لقد أصبح لديك الآن يا
1:02:52فرانسيسكو . غوزمان ،
1:02:55غوزمان ، سأتحقق ، لست
1:03:01موجوداً لدي . أو
1:03:05توريكو ، هل أنت هناك ؟
1:03:07لأنه أحياناً يكون
1:03:09لديكم لقبان ولا أعرف
1:03:10أياً منهما ... لا ، لست
1:03:14موجوداً لدي . إذا أردت
1:03:16، يا لوكاس ، تحدث معي .
1:03:19>> مرحباً .
1:03:21>> لقد غيرت تخصصي . وسجلت
1:03:23في المادة . أنا أيضاً
1:03:25قادم من تخصص النظم .
1:03:27>> حسناً ، أعطني بريدك
1:03:29الإلكتروني .
1:03:30>> حسناً ، لكي أرسله لك
1:03:36هناك . هل هناك أي شخص
1:03:40آخر في نفس الموقف ؟
1:03:48حسناً يا شباب ، إذا
1:03:49أردتم يمكنكم
1:03:50الانصراف ، أنتم
1:03:52تعرفون ما عليكم
1:03:53القيام به . إذا أردتم
1:03:55القيام به الآن ، فلا
1:03:56توجد مشكلة . لكي هذا
1:04:00يوم الأربعاء امم
1:04:03الفكرة هي أن تتمكنوا
1:04:04من فعله اليوم إذا
1:04:06أردتم ، أو يوم
1:04:07الأربعاء . لذا ، الأمر
1:04:08متروك لكم يا شباب
1:04:10كيفما تريدون . إذا
1:04:13فعلتموه اليوم ،
1:04:14أرسلوه لي اليوم . جيد ،
1:04:17>> مثالي .
1:04:19>> لقد أرسلته لكما ،
1:04:20لكلاكما اللذين
1:04:22أخبراني . جيد ،
1:04:24>> يا أستاذ ، نعم ، سؤال
1:04:27واحد . امم لا ، لم يصلني
1:04:29شيء ،
1:04:32>> لقد أرسلته للتو . آه ،
1:04:35هذا مثالي ، مثالي . كنت
1:04:38أحدث الصفحة ، امم ،
1:04:39ربما وصل الآن . امم ،
1:04:41شكراً جزيلاً .
1:04:42>> جيد . حسناً ، امم ، لا
1:04:47شيء آخر يا شباب ، هذا
1:04:49كل شيء . أرسلوه لي ،
1:04:50ردوا علي عبر البريد
1:04:52وأرسلوا لي ما فعلتموه
1:04:54وانتهى الأمر . هذا كل
1:04:56شيء .
1:04:57>> إلى يوم الاثنين .
1:04:58>> إلى يوم الاثنين .
1:04:59نراكم .
1:05:02>> تحياتي . لا .