بناء فريق الاختبار وقيادته

قيادة فريق الاختبار تعني أن تضمن امتلاك الفريق للمهارات والأشخاص وترتيبات العمل التي تكفي لاختبار المنتج جيداً، الآن وفي الأشهر القادمة. وهي الجانب البشري من دور إدارة الاختبار (Test Management Role): تحديد المهارات التي يحتاجها الفريق، واكتشاف الفجوات، وتوظيف المختبِرين وتأهيلهم (Onboarding) وتطويرهم، وتحديد طريقة عمل الفريق مع المطورين ومع المختبِرين من خارجه.

مثال ذلك: فريق مدفوعات سيطلق تطبيقاً للجوال في الربع القادم. ترى قائدة الاختبار (Test Lead) في مصفوفة المهارات (Skills Matrix) أن أحداً لا يستطيع بعدُ اختبار تطبيق جوال بمفرده. وتتحول هذه الملاحظة إلى قرار (تدريب أو توظيف أو استعانة بخبرة خارجية) قبل أشهر من أن تصبح عيباً لم يستطع أحد البحث عنه.

لماذا يهم

جودة الاختبار من جودة من يقومون به. فالفريق الذي يفتقر إلى مهارات اختبار API لا يختبر إلا عبر الشاشة، والفريق الذي يفهم فيه شخص واحد قواعد الاسترداد يتوقف حين يكون ذلك الشخص في إجازة. ونادراً ما تظهر هذه الفجوات في تقرير الاختبار؛ إنها تظهر عيوباً لم يكن أحد مؤهلاً للبحث عنها.

والموضوع يهمك قبل أن تقود أحداً: فالمختبِرون ذوو الخبرة يُجرون مقابلات المرشحين، ويؤهّلون الزملاء الجدد، ويوجّهون المبتدئين. وكما بيّن درس التواصل مع أصحاب المصلحة، فالخبر السيئ أثمن ما يكون حين يأتي مبكراً: فجوة المهارات التي تُطرح في التخطيط قرارٌ في تكوين الفريق، وإذا طُرحت في أسبوع الإصدار صارت عذراً.

المهارات التي يحتاجها الفريق ومصفوفة المهارات

تناول درس مهارات المختبِر ما يحتاجه المختبِر الواحد. أما الفريق فيحتاج إلى التغطية: كل مهارة يتطلبها المنتج ومخاطره، بالعمق المناسب، وألّا يحملها شخص واحد فقط. استخرج القائمة من استراتيجية الاختبار ومخاطر المنتج وخطته المستقبلية (Roadmap): فتطبيق مصرفي يحتاج إلى معرفة بمجال المدفوعات ووعي أمني، وبوابة حكومية تحتاج إلى اختبار إمكانية الوصول، ومنتج موجَّه أولاً إلى المستخدمين العرب يحتاج إلى اختبار الاتجاه من اليمين إلى اليسار (RTL) واختبار التوطين.

وتجعل مصفوفة المهارات هذه التغطية مرئية: المهارات على محور والأشخاص على المحور الآخر، وفي كل خلية مستوى على مقياس قصير مكتوب. واكتب لكل مهارة أيضاً ما يحتاجه الفريق، مثل «شخصان في المستوى ⁦2⁩ أو أعلى». يقيّم المختبِرون أنفسهم أولاً، ثم يعايِر القائد التقييمات في محادثات فردية، مستنداً إلى أدلة مثل عمل أنجزه الشخص وحده.

  • ⁦0⁩: لا خبرة بالمهارة.
  • ⁦1⁩: يتعلّم، وينجز المهمة بتوجيه.
  • ⁦2⁩: مستقل، وينجز المهمة وحده بمعيار الفريق.
  • ⁦3⁩: خبير، يراجع عمل الآخرين ويستطيع تعليم المهارة.
  • الفجوة هي كل مهارة يقل فيها عدد من بلغوا المستوى ⁦2⁩ عمّا يحتاجه الفريق. وللمهارة المستخدمة كل أسبوع اجعل الحاجة شخصين على الأقل، لأن المهارة التي يحملها شخص واحد نقطة إخفاق وحيدة (Single Point of Failure)، وتسميها بعض الفرق «عامل حافلة يساوي ⁦1⁩» (Bus Factor).

جرّبها: مولّد الاختبار المبني على المخاطر

مثال تطبيقي: قراءة مصفوفة المهارات

لدى فريق المدفوعات أربعة مختبِرين: هدى، قائدة الاختبار؛ وعمر وسارة، اللذان يعرفان المنتج جيداً؛ وأرجون، الذي انضم قبل ثلاثة أشهر قادماً من فريق يعمل على واجهات API. في الربع القادم تطلق الشركة تطبيقاً للجوال وواجهة API للشركاء، وتطلب استراتيجية الاختبار اختبار حمل (Load Test) قبل الإطلاق. تكتب هدى مع الفريق المهارات التي يحتاجها المنتج وهذه الخطط، ويتفقون على الحاجة لكل منها، ثم يملؤون المصفوفة.

مصفوفة مهارات لفريق من أربعة مختبِرين: تصميم الاختبار والمدفوعات والتوطين العربي تلبي الحاجة، بينما يعتمد اختبار API والأتمتة على شخص واحد لكلٍّ منهما، ولا يستطيع أحد بعدُ اختبار الجوال أو الأداء وحده.
المهارةهدىقائدة الاختبارعمرسارةأرجونانضم قبل ⁦3⁩ أشهرفي المستوى ⁦2⁩ فأعلىالمطلوب
تصميم الاختبار والاختبار الاستكشافي322132
المعرفة بمجال المدفوعات321022
التوطين العربي واتجاه RTL233032
اختبار API11031فجوة: شخص واحد2
أتمتة الاختبار (برمجة)10121فجوة: شخص واحد2
اختبار تطبيقات الجوال11100فجوة: لا أحد2
اختبار الأداء10010فجوة: لا أحد1
  • ⁦0⁩ لا خبرة
  • ⁦1⁩ يتعلّم بتوجيه
  • ⁦2⁩ مستقل
  • ⁦3⁩ خبير: يراجع ويعلّم
  • فجوة: عدد من في المستوى ⁦2⁩ فأعلى أقل من المطلوب

فريق توضيحي: المهارات والحاجة لكل منها تأتي من استراتيجية الفريق نفسه ومخاطره وخطة منتجه.

  • تصميم الاختبار والمدفوعات والتوطين تلبي الحاجة. وأرجون في المستوى ⁦0⁩ في المدفوعات، لكن هذا تأهيل لا فجوة: فهو يعمل مع عمر بأسلوب العمل الثنائي (Pairing) على قصص الاسترداد.
  • اختبار API والأتمتة يعتمد كلٌّ منهما على أرجون وحده. ولأن عمر سيتدرّب على اختبار الجوال وهدى تقود الفريق، تعمل سارة مع أرجون في ثنائي على قصص واجهة الشركاء، والهدف المستوى ⁦2⁩ بنهاية الربع، ويظهر ذلك حين تصمم اختبارات API لقصة بمفردها ويراجعها هو. وفي الأتمتة يدرّب أرجون هدى وسارة، وكلتاهما في المستوى ⁦1⁩، على حزمة اختبارات API المؤتمتة في وقت من السبرنت متفق عليه مع مالك المنتج.
  • اختبار الجوال: لا أحد في المستوى ⁦2⁩ والإطلاق قريب، فالتدريب وحده بطيء جداً. القرار: توظيف مختبِر لديه خبرة في تطبيقات الجوال، وتدريب عمر معه.
  • اختبار الأداء مطلوب مرة واحدة قبل الإطلاق. القرار: الاستعانة بمختص وإشراك أرجون معه، ليستطيع الفريق إعادة تشغيل الاختبار لاحقاً. فليست كل فجوة بحاجة إلى أن تصبح مهارة دائمة.
  • تحفظ هدى المصفوفة وخطة التدريب جدولين بصيغة Markdown في ويكي الفريق (Wiki)، وتراجعهما مع الفريق كل ربع سنة.
النسخة النصية
Skill                        Huda  Omar  Sara  Arjun  At 2+  Need
Test design / exploratory      3     2     2     1       3    2
Payments domain                3     2     1     0       2    2
Arabic / RTL localisation      2     3     3     0       3    2
API testing                    1     1     0     3       1    2   gap: one person
Test automation (code)         1     0     1     2       1    2   gap: one person
Mobile app testing             1     1     1     0       0    2   gap: nobody
Performance testing            1     0     0     1       0    1   gap: nobody

Levels: 0 none, 1 learning, 2 independent, 3 expert (reviews and teaches)
Gap: fewer people at level 2 or above than the team needs

جرّبها: منسّق Markdown جرّبها: تحويل Markdown إلى PDF

التوظيف والتأهيل ومساعدة المختبِرين على النمو

وظّف لسد الفجوة التي تظهرها المصفوفة، لا وفق إعلان وظيفي عام. ففي المقابلة المنظَّمة (Structured Interview) يحصل كل مرشح على الأسئلة نفسها والمهمة العملية القصيرة نفسها، وتُقيَّم الإجابات وفق معايير متفق عليها مسبقاً، لتمكن المقارنة بين المرشحين بإنصاف. ومهمة مثل كتابة أفكار اختبار وأسئلة مفتوحة لمتطلب من فقرة واحدة تكشف أكثر من أسئلة التعريفات. ولا تطلب أبداً عملاً غير مدفوع على منتجك الحقيقي، وأشرك مطوراً في لجنة المقابلة.

والتأهيل يحدد متى يبدأ المختبِر الجديد بالإسهام. جهّز الوصول إلى البيئات والأدوات وبيانات الاختبار قبل اليوم الأول، وعيّن له زميلاً مرافقاً (Buddy)، واشرح له المنتج واستراتيجية الاختبار وأهم المخاطر، ثم سلّمه مهاماً حقيقية تزداد فيها استقلاليته: جزء من حزمة الانحدار، ثم جلسة استكشافية مع زميل، ثم اختبار قصة صغيرة. وتضع فرق كثيرة أهدافاً لأول ⁦30⁩ و⁦60⁩ و⁦90⁩ يوماً.

  • خطة التدريب: سطر لكل فجوة فيه الشخص والمستوى المستهدف والطريقة (العمل الثنائي، أو جلسة داخلية، أو دورة، أو مشروع تدريبي) والموعد والدليل على بلوغ المستوى. احجز الوقت لها في تخطيط السبرنت، وإلا فلن تُنفَّذ.
  • التحفيز: يبقى الناس متحمسين حين يرون أثر عملهم، ويتولّون مجالاً بأنفسهم، ويكون لهم رأي في طريقة اختبارهم ووقت للتعلّم.
  • التقدير: امدح السلوك الذي تريده بتحديد وعلانية: «سؤال سارة في جلسة التنقيح (Refinement) أزال عيباً في الاسترداد قبل البرمجة». ولا تكافئ أبداً عدد العيوب، فذلك يكافئ التقارير المكررة والتافهة ويضع المختبِرين في مواجهة المطورين.
  • المسارات المهنية: قدّم مسار تخصص يعمّق مهارة مثل الأتمتة أو الأداء أو الأمن أو إمكانية الوصول حتى الأدوار العليا (Senior وPrincipal)، ومسار قيادة يؤدي إلى قائد الاختبار ثم مدير الاختبار (Test Manager). وتختلف المسميات بين الشركات، والمهم ألّا يتطلب النمو أن يصبح الشخص مديراً.

تكوين الفريق والاستقلالية والمختبِرون الخارجيون

عرّف درس عقلية الاختبار وسيكولوجيته درجات الاستقلالية في منهج ISTQB للمستوى التأسيسي v4.0، من أن يختبر الكاتب عمله بنفسه إلى مختبِرين من خارج المؤسسة. والقائد يحوّلها إلى تصميم للفريق. ومن التصاميم الشائعة: يختبر المطورون مكوّناتهم، ويختبر مختبِرون مدمجون في كل فريق تطوير القصص والنظام، ويغطي طرف خارجي ما يحتاج إلى استقلالية عالية جداً أو مهارة نادرة، مثل تقييم أمني. والاستقلالية تجلب وجهات نظر مختلفة وتتحدى الافتراضات التي وُضعت أثناء كتابة المواصفات والتنفيذ؛ ومن عيوبها العزلة عن المطورين، وأن يُنظر إلى المختبِرين بوصفهم عنق زجاجة أو يُلاموا على تأخير الإصدار، وأن يشعر المطورون بمسؤولية أقل عن الجودة. فاختر الدرجة لكل مستوى اختبار ولكل خطر.

أما المختبِرون من خارج فريقك، في منطقة زمنية أخرى أو لدى مزوّد خدمة أو ضمن حشد، فيحتاجون إلى هيكلة أوضح. ويقارن دليل فريق ضمان الجودة الداخلي مقابل الاستعانة بمصادر خارجية بين نماذج التوظيف؛ وأياً كان النموذج، فالقائد هو من يجعله ينجح:

  • المختبِرون الموزَّعون: اتفق معهم على ساعات عمل مشتركة للأسئلة وفرز العيوب، واعتمد تسليماً يومياً مكتوباً وقصيراً (ما اختُبر، وما توقّف بسبب عائق، وما التالي)، واحفظ القرارات في أداة التتبع لا في المحادثات الخاصة.
  • المختبِرون الخارجيون (Outsourced): ثبّت النطاق والمخرجات ومقاييس النتائج كتابةً، واحفظ مواد الاختبار في أنظمة تملكها شركتك، واجعل أحد أعضاء الفريق يراجع تقاريرهم في كل دورة.
  • مختبِرو الحشد (Crowdtesting): عدد كبير من المختبِرين المستقلين على أجهزتهم الخاصة لدورة قصيرة، وهذا مفيد لتغطية الأجهزة واللغات. وهم يفتقرون إلى سياق المنتج، فأعطهم نطاقاً دقيقاً ومواثيق اختبار (Charters)، وتوقّع تقارير مكررة وغير صالحة، وافرزها داخل الفريق. وإن كان يُدفع لهم مقابل كل عيب مقبول، فحدّد مسبقاً ما الذي يُحتسب.
  • في كل نموذج: بيانات اختبار اصطناعية أو مقنَّعة، ووصول محدود النطاق يُلغى في النهاية. ويجب ألّا يرى المختبِرون من خارج الشركة البيانات الشخصية لعملاء حقيقيين.

مدير الاختبار في بيئة Agile بنهج الفريق الكامل

في نهج الفريق الكامل (Whole-Team Approach) يتحمل الجميع مسؤولية الجودة، ويصف دليل Scrum لعام ⁦2020⁩ فرق Scrum بأنها ذاتية الإدارة: تقرر داخلياً من يفعل ماذا، ومتى، وكيف. لذلك لا يوزّع مدير الاختبار مهام الاختبار اليومية داخل الفريق. ويذكر منهج ISTQB للمستوى التأسيسي أن الفريق في تطوير Agile قد يتولى بعض مهام إدارة الاختبار، بينما قد يتولى مديرو اختبار من خارج الفريق المهام التي تمتد عبر عدة فرق أو عبر المؤسسة كلها. وهذا العمل العابر للفرق هو جوهر الدور:

  • الاستراتيجية والمعايير: استراتيجية اختبار مشتركة، وتعريفات موحدة للخطورة، ونهج مشترك للأتمتة وبيئات الاختبار، يكيّفه كل فريق.
  • الأشخاص: التوظيف، ومصفوفة المهارات عبر الفرق، والتوجيه، ومحادثات المسار المهني للمختبِرين الموزَّعين على فرق مختلفة.
  • المجتمع: لقاء منتظم يتبادل فيه مختبِرو الفرق المختلفة التقنيات والأدوات والمشكلات، وتسميه بعض المؤسسات Guild أو Chapter.
  • الجودة عبر الفرق: مخاطر التكامل والاختبار من طرف إلى طرف التي لا يملكها فريق واحد، والتقارير على مستوى الإصدار، وتصعيد المشكلات النظامية (Systemic) مثل بيئة مشتركة غير مستقرة.
  • توجيه الفريق كله: مساعدة المطورين على تقوية اختبارات الوحدة، ومالكي المنتج على كتابة معايير قبول قابلة للاختبار، حتى لا تعتمد الجودة على المختبِرين وحدهم.

أخطاء شائعة

  • بناء مصفوفة المهارات مرة واحدة ثم تركها في ملف. الاحتياجات تتغير مع خطة المنتج، فراجعها كل ربع سنة.
  • استخدام المصفوفة لترتيب الأشخاص في تقييمات الأداء: فتتضخم التقييمات وتختفي منها الفجوات الحقيقية.
  • توظيف نسخة من أقوى مختبِر حالي بدلاً من المهارة التي يفتقدها الفريق.
  • تأهيل المنضم الجديد بإرسال الوثائق والانتظار: فبلا وصول ولا زميل مرافق ولا مهام حقيقية يستغرق وقتاً أطول بكثير ليبدأ الإسهام.
  • مكافأة عدد العيوب، مما يولّد تقارير مكررة وتافهة ويحوّل المطورين إلى خصوم.
  • تسليم العمل لمختبِرين خارجيين أو لمختبِري الحشد دون نطاق أو قواعد للبيانات أو عضو في الفريق يراجع نتائجهم.

من منظور ضمان الجودة

لا تحتاج إلى المسمى الوظيفي لتقوم بهذا العمل. فالمختبِرون ذوو الخبرة يُجرون المقابلات ويؤهّلون المنضمين الجدد، وكثيراً ما يكونون أول من يلاحظ أن شخصاً واحداً فقط يفهم وحدة ما من النظام. اطرح ذلك كما تطرح خطراً على المنتج، بدليل ومقترح: «لا يستطيع أحد غير أرجون اختبار واجهة الشركاء دون توجيه. إن غاب في أسبوع الإطلاق توقف اختبار API. أقترح أن تعمل سارة معه في ثنائي على القصتين التاليتين».

وبصفتك قائداً، احفظ المصفوفة وخطة التدريب وقراراتك بشأن الاستقلالية والمختبِرين الخارجيين بجوار استراتيجية الاختبار، وراجعها مع الفريق كل ربع سنة، وأبلِغ عن فجوات المهارات بوصفها مخاطر مشروع في التخطيط: من ينقص، وعلامَ يؤثر ذلك، وما الذي تقترحه.

تمرين عملي

ابنِ مصفوفة مهارات وخطة تدريب

المطلوب

تقود ثلاثة مختبِرين في متجر إلكتروني. في الربع القادم يفتح المتجر واجهة REST API عامة للبائعين في السوق الإلكترونية، ويجب أن يستوفي متطلبات إمكانية الوصول في عقد حكومي. رانيا قوية في الاختبار الاستكشافي وقواعد إتمام الشراء، وتختبر واجهات API بتوجيه. خالد يكتب أتمتة واجهة المستخدم لإتمام الشراء بنفسه، ويعرف قواعده جيداً، وجرّب اختبار API مرة واحدة. ميرا انضمت الشهر الماضي بعد سنتين من اختبار تطبيقات مصرفية للجوال، شملت فحوص قارئ الشاشة، والتسوق الإلكتروني جديد عليها.

ابنِ مصفوفة المهارات للربع القادم، وحدّد الفجوات، واكتب خطة تدريب بسطر لكل فجوة. وقرّر لكل فجوة: التدريب أم التوظيف أم الاستعانة بخبرة خارجية.

الخطوات
  1. اكتب من أربع إلى ست مهارات من خطط الربع القادم ومخاطره.
  2. قيّم كل مختبِر من ⁦0⁩ إلى ⁦3⁩ على مقياس هذا الدرس، واكتب الحاجة لكل مهارة.
  3. حدّد كل مهارة يقل فيها عدد من بلغوا المستوى ⁦2⁩ عن الحاجة، بما فيها المهارات التي يحملها شخص واحد.
  4. اكتب لكل فجوة الشخص والمستوى المستهدف والطريقة والموعد والدليل، وقرّر: تدريب أم توظيف أم استعانة بخبرة خارجية.
إظهار الإجابة النموذجية
الإجابة النموذجية

المصفوفة (رانيا، خالد، ميرا ← الحاجة): الاختبار الاستكشافي وتصميم الاختبار ⁦3⁩، ⁦2⁩، ⁦2⁩ ← ⁦2⁩؛ مجال إتمام الشراء ⁦3⁩، ⁦2⁩، ⁦0⁩ ← ⁦2⁩؛ اختبار API ⁦1⁩، ⁦1⁩، ⁦0⁩ ← ⁦2⁩؛ اختبار إمكانية الوصول ⁦0⁩، ⁦0⁩، ⁦2⁩ ← ⁦2⁩؛ أتمتة واجهة المستخدم ⁦0⁩، ⁦2⁩، ⁦0⁩ ← ⁦2⁩. وتقييمات أخرى مقبولة إن كان الوصف يبررها.

الفجوات: اختبار API (لا أحد في المستوى ⁦2⁩)، وإمكانية الوصول (ميرا وحدها)، والأتمتة (خالد وحده). أما ميرا في المستوى ⁦0⁩ في مجال إتمام الشراء فهذا تأهيل: تعمل مع رانيا في ثنائي على قصص إتمام الشراء.

اختبار API: درّب رانيا وخالد، وكلاهما في المستوى ⁦1⁩، بالعمل في ثنائي مع مطور على أولى قصص واجهة البائعين؛ والهدف المستوى ⁦2⁩ بنهاية الربع؛ والدليل أن يصمم كلٌّ منهما اختبارات API لقصة يراجعها مطور. وإن أُطلقت الواجهة في بداية الربع، فاستعن بمختبِر API متمرّس للإصدار الأول.

إمكانية الوصول: تعمل ميرا مع رانيا في ثنائي على فحوص لوحة المفاتيح وقارئ الشاشة في صفحات إتمام الشراء وفق مستوى WCAG الذي يحدده العقد (مثل WCAG ⁦2.2⁩ بالمستوى AA)؛ والهدف أن تبلغ رانيا المستوى ⁦2⁩ بنهاية الربع؛ والدليل أن تفحص رانيا صفحة جديدة وحدها فلا تجد ميرا في مراجعتها مشكلة فاتتها. ولأن عقداً يعتمد على ذلك، فكّر أيضاً في تدقيق خارجي لإمكانية الوصول قبل الإطلاق: استقلالية عالية جداً لا يستطيع الفريق أن يوفرها لنفسه.

الأتمتة: يدرّب خالد ميرا على حزمة اختبارات واجهة المستخدم؛ والهدف المستوى ⁦1⁩ بنهاية الربع والمستوى ⁦2⁩ في الربع الذي يليه؛ والدليل اختبارات واجهة تضيفها ميرا بتوجيه خالد وتجتاز مراجعته للشيفرة. وحتى ذلك الحين تبقى الفجوة مفتوحة، فسجّلها خطراً. ولا حاجة إلى التوظيف بعد: فلكل فجوة شخص في المستوى ⁦2⁩ أو مطور يمكن التعلّم منه. وإن نمت واجهة البائعين لتصبح منتجاً قائماً بذاته، فوظّف مختبِراً لديه مهارات API والأتمتة.

أسئلة شائعة

هل مصفوفة المهارات هي نفسها تقييم الأداء؟

لا. مصفوفة المهارات تبيّن أين يكون الفريق مكشوفاً، وما الذي يجب التدريب عليه أو التوظيف له. وإذا أثّرت التقييمات في الراتب أو الترقية، ضخّمها الناس، فتختفي الفجوات من الجدول لا من الفريق. اجعلها أداة تخطيط يناقشها الفريق علناً.

كم مختبِراً يحتاج الفريق لكل مطور؟

لا توجد نسبة صحيحة. فالأمر يعتمد على مخاطر المنتج، ومقدار الاختبار الذي يجريه المطورون، ومستوى الأتمتة، ودرجة الاستقلالية التي يتطلبها السياق. ابدأ من العمل الوارد في استراتيجية الاختبار وفي التقديرات، وراقب مؤشرات مثل تحوّل الاختبار إلى عنق زجاجة، أو تسرّب العيوب من مناطق لم يجد أحد وقتاً لاختبارها.

هل ما زال لمدير الاختبار دور في مؤسسة تعمل بـAgile؟

نعم، لكن الدور يتغير. داخل الفريق ذاتي الإدارة يقرر الفريق كيف يختبر، ويعمل مدير الاختبار عبر الفرق على الاستراتيجية والأشخاص ومجتمع المختبِرين ومخاطر الجودة التي لا يملكها فريق واحد. وفي الشركات الصغيرة كثيراً ما يؤدي هذا العمل مختبِر ذو خبرة أو مدير الهندسة دون المسمى.

هل يمكن أن يحل اختبار الحشد محل فريق الاختبار؟

نادراً. اختبار الحشد يضيف اتساعاً لفترة قصيرة، أجهزة ولغات كثيرة وعيوناً جديدة، لكنه لا يبني معرفة بالمنتج، ولا يختبر باستمرار، ويعتمد على فريقك في تحديد نطاقه وفرز نتائجه. استخدمه مكمّلاً للفريق لا بديلاً عنه.

المراجع

تدرّب بأدوات متقن

توحيد تنسيق Markdown (العناوين والقوائم والجداول والتأكيد) ومعاينة النتيجة المعروضة.

التنسيق

حوّل ملفات Markdown (md.) إلى PDF في متصفحك: العناوين والقوائم والجداول وكتل الشيفرة والاقتباسات والروابط والصور منسّقة بخطوط مضمّنة.

تحويل PDF

للتعمّق أكثر

تقدّمك في هذا الموضوع

جزء من مسار تعلم ضمان الجودة