ناس كتير فاكرة الـ Testing إنك تقعد تدوس على التطبيق لحد ما يبوظ.
الـ Tester شغلته يلاقي المشكلة قبل ما العميل يلاقيها، وده ليه طريقة وخطوات، مش دوس عشوائي. وعلشان تتعلمه صح فيه ترتيب: أساسيات الاختبار، وبعدها تفهم المواقع معمولة إزاي، وبعدين Postman، وبعدها الـ Automation بـ Playwright، وفي الآخر الـ Performance testing.
علّم على كل حاجة تخلصها وانت ماشي، علشان تعرف انت فين، وترجع تكمّل من نفس المكان.
قبل ما تبدأ
- ذاكر كل يوم، حتى لو شوية. المدد هنا محسوبة على ساعتين في اليوم. لو وقتك أقل هتاخد وقت أطول، وده عادي.
- المدد تقريبية. في ناس هتخلص أسرع وناس أبطأ. عدّي المرحلة لما تبقى جاهز فعلًا، مش لما الوقت يخلص.
- كل مرحلة فيها مشروع. متعديش للمرحلة اللي بعدها قبل ما تعمله بإيدك. واتمرن على مواقع متعملة مخصوص للتمرين، مش على مواقع ناس شغالة.
المرحلة 1 من 5
أساسيات الاختبارTest case و Bug report
المدة: 3 لـ 4 أسابيع
ابدأ بأساسيات الاختبار: تكتب Test case، يعني سيناريو بخطوات واضحة والنتيجة اللي المفروض تطلع. وتكتب Bug report يخلي المبرمج يكرر المشكلة عنده من أول مرة.
دول أهم حاجتين في الشغلانة كلها، وهتفضل تكتبهم كل يوم مهما اتعلمت أدوات بعد كده. وهنا كمان بتبدأ تبني عقلية الـ Tester، والسؤال اللي هيفضل معاك: إيه اللي ممكن يبوظ هنا؟
هتتعلم إيه
0 من 12اعمل بإيدك
اختبر صفحة تسجيل في موقع تمارين. خد صفحة الـ login والتسجيل في موقع متعمل للتمرين زي Practice Software Testing، واكتب 15 test case على الأقل: حالات صح، وحالات غلط، وحدود زي أقل وأكتر عدد حروف. نفّذهم، واكتب bug report لكل مشكلة تلاقيها.
تعدّي للمرحلة اللي بعدها لما
- تقدر تكتب test case أي حد تاني ينفذه من غير ما يسألك
- الـ bug report بتاعك فيه خطوات بتكرر المشكلة من أول مرة
- بتفكر في الحالات الغلط والحدود من غير ما حد يفكرك
المرحلة 2 من 5
الويب من جوهالمواقع معمولة إزاي
المدة: 3 لـ 4 أسابيع
بعدها تفهم المواقع معمولة إزاي، بشكل بسيط. مش هتبقى مبرمج، بس لازم تعرف إيه اللي بيحصل ورا الشاشة، علشان لما تلاقي bug تعرف هو جاي منين.
الـ Tester اللي بيفتح تاب Network ويقول «الـ request ده رجع 500» بيوفّر على المبرمج وقت كتير، وبيخلي الـ bug يتصلّح أسرع.
هتتعلم إيه
0 من 11اعمل بإيدك
تشريح موقع بالـ DevTools. افتح موقع تمارين، واعمل login وضيف حاجة للسلة، وتابع من تاب Network كل request اتبعت: الـ method، والـ status code، والـ JSON اللي رجع. واكتب صفحة بتشرح فيها اللي حصل خطوة بخطوة، وأي error ظهر في الـ Console.
تعدّي للمرحلة اللي بعدها لما
- تقدر تقول المشكلة في الـ frontend ولا الـ backend من تاب Network
- فاهم معنى أي status code مشهور من غير ما تدوّر
- بتحط في الـ bug report الـ request اللي فشل والـ error اللي في الـ Console
المرحلة 3 من 5
Postmanتختبر السيرفر من غير شاشة
المدة: 3 لـ 4 أسابيع
بعد كده Postman، ودي أداة بتختبر بيها السيرفر اللي التطبيق بيكلمه، من غير شاشة. الشاشة ممكن تبان سليمة والمشكلة في الـ API اللي وراها، والعكس.
وهنا هتكتب أول سطور كود ليك: الـ tests في Postman بتتكتب بـ JavaScript. سطور بسيطة، بس هي اللي هتجهزك للمرحلة اللي بعدها.
هتتعلم إيه
0 من 11اعمل بإيدك
Collection كاملة لـ API تمارين. خد API متعمل للتمرين زي Restful Booker، واعمل collection فيها: login وتاخد الـ token، وتعمل حجز، وتجيبه، وتعدّله، وتمسحه. وكل request عليه tests بتتأكد من الـ status code والبيانات، ومعاهم حالات غلط. وشغّلها كلها مرة واحدة.
تعدّي للمرحلة اللي بعدها لما
- تقدر تختبر API من الـ documentation بتاعه بس، من غير أي شاشة
- كل request عندك عليه test، مش بس بتبص على الـ response بعينك
- كتبت سطور JavaScript في الـ tests وفاهم كل سطر بيعمل إيه
المرحلة 4 من 5
Automationكود يعمل الاختبار بدالك
المدة: 8 لـ 12 أسبوع
وبعدها Automation بأداة زي Playwright، يعني تكتب كود يعمل الاختبار بدالك كل مرة. نفس الـ test cases اللي كنت بتنفذها بإيدك، بتتنفذ لوحدها في دقايق مع كل تعديل في الكود.
دي أطول مرحلة، لأنك محتاج أساسيات برمجة الأول. هنمشي بـ JavaScript، لأنها اللغة اللي بدأت بيها في Postman، و Playwright بيدعمها من الأساس.
هتتعلم إيه
0 من 12اعمل بإيدك
Automation لمتجر تجريبي. خد موقع متعمل للتمرين زي Sauce Demo، واكتب tests للـ login الصح والغلط، وإضافة منتج للسلة، والـ checkout لحد الآخر. استخدم Page Object Model، وارفع المشروع على GitHub، وخلي الـ tests تشتغل لوحدها مع كل push.
تعدّي للمرحلة اللي بعدها لما
- الـ tests بتاعتك بتنجح كل مرة، مش مرة آه ومرة لأ
- لما test يفشل، بتعرف من الـ trace فشل ليه
- المشروع على GitHub، ومعاه README بيقول يتشغّل إزاي
المرحلة 5 من 5
Performance Testingيستحمل كام مستخدم في نفس اللحظة
المدة: 3 لـ 4 أسابيع
وفي الآخر Performance testing، يعني السيستم يستحمل كام مستخدم في نفس اللحظة. الموقع ممكن يشتغل تمام مع مستخدم واحد، ويقع لما ناس كتير يدخلوا مرة واحدة وقت عرض أو نتيجة.
هنستخدم k6، وبتكتب فيه الـ test بـ JavaScript برضه. وقاعدة مهمة: متعملش load test غير على سيستم بتاعك، أو معاك إذن صريح بيه. الحمل ده ممكن يوقّع موقع حد تاني، وساعتها بيتحسب هجوم عليه.
هتتعلم إيه
0 من 12اعمل بإيدك
Load test على QuickPizza. ده تطبيق صغير عاملاه Grafana، الشركة اللي ورا k6، علشان الناس تتمرن عليه. شغّله على جهازك بـ Docker زي ما الـ README بتاعه بيقول، واكتب script بيبدأ بـ 5 مستخدمين ويزوّد بالتدريج لحد ما الـ response time يبوظ، وحط thresholds. وفي الآخر اكتب تقرير صغير: استحمل كام، وبدأ يقع فين، بالأرقام.
تعدّي للمرحلة اللي بعدها لما
- تقدر تقول السيستم بيستحمل كام مستخدم قبل ما يعدّي الحد اللي حطيته
- فاهم ليه
p95بيقولك أكتر من المتوسط - التقرير بتاعك فيه أرقام ونتيجة، مش «السيستم بطيء» وخلاص
سلم المشاريع
المشاريع هي اللي بتعلمك بجد، وهي اللي هتوريها لأي حد عايز يشغّلك. دول 5 مشاريع، كل واحد أصعب شوية من اللي قبله. أول 4 عملتهم في المراحل فوق، والخامس بيجمعهم في مكان واحد.
Test cases و bug reports
Test design و Bug reports
صفحة login وتسجيل في موقع تمارين: 15 حالة على الأقل، و bug report لكل مشكلة.
Postman collection
Postman و JavaScript و API
API كامل من الـ login للمسح، وكل request عليه tests، وحالات غلط.
Automation بـ Playwright
Playwright و Page Object Model و GitHub Actions
متجر تجريبي من الـ login لحد الـ checkout، والـ tests بتشتغل لوحدها مع كل push.
Load test بـ k6
k6 و Thresholds
تطبيق شغال على جهازك، وتعرف بالأرقام بيستحمل كام وبيقع فين.
مشروع الـ portfolio
كل اللي فات و GitHub
جمّع شغلك في repository واحد: الـ test cases، وأحسن bug reports كتبتها، والـ Postman collection، والـ Playwright tests شغالة لوحدها، وتقرير الـ load test. واكتب README بيشرح انت اختبرت إيه وليه، مش بس بأنهي أداة. ده اللي بيوري عقليتك.
مصادر مجانية
كل دول مجانيين، أو فيهم جزء مجاني يكفيك. متجمعش مصادر كتير: اختار مصدر أساسي واحد لكل مرحلة وكمّل بيه، والباقي ارجعله لما تقف في حتة.
أساسيات الاختبار
- ISTQB Foundation Level (بيفتح في تاب جديدة)صفحة الشهادة المعروفة في المجال، ومنها تنزّل الـ syllabus، وفيه كل المصطلحات الأساسية.
- Ministry of Testing (بيفتح في تاب جديدة)مجتمع للـ testers، فيه مقالات وكورسات ونقاشات.
مواقع تتمرن عليها
- Practice Software Testing (بيفتح في تاب جديدة)متجر تجريبي متعمل علشان تتمرن عليه: تسجيل، ومنتجات، وسلة.
- The Internet (بيفتح في تاب جديدة)صفحات صغيرة فيها حالات صعبة زي الـ alerts والـ frames ورفع الملفات.
- Sauce Demo (بيفتح في تاب جديدة)متجر تجريبي صغير، مشهور في تمارين الـ automation.
- Restful Booker (بيفتح في تاب جديدة)API متعمل علشان تتمرن عليه، ومعاه documentation كاملة.
الويب
- MDN: An overview of HTTP (بيفتح في تاب جديدة)شرح الـ HTTP من الأول: الـ requests والـ responses والـ headers.
- MDN: HTTP status codes (بيفتح في تاب جديدة)كل الـ status codes ومعنى كل واحد.
- Chrome DevTools: Network (بيفتح في تاب جديدة)الشرح الرسمي لتاب Network.
- SQLBolt (بيفتح في تاب جديدة)دروس SQL قصيرة وتفاعلية في المتصفح.
Postman
- Postman Learning Center (بيفتح في تاب جديدة)الشرح الرسمي لكل حاجة في Postman، من أول request لحد الـ tests.
- Postman Academy (بيفتح في تاب جديدة)كورسات رسمية من Postman خطوة بخطوة.
Automation
- javascript.info (بيفتح في تاب جديدة)شرح JavaScript بالتفصيل، خد منه الأساسيات و
asyncوawait. - Playwright Docs (بيفتح في تاب جديدة)الشرح الرسمي لـ Playwright، مكتوب كويس ومليان أمثلة. ابدأ بيه قبل أي كورس.
- Test Automation University (بيفتح في تاب جديدة)كورسات automation مجانية في أدوات ولغات كتير.
Performance Testing
- k6 Docs (بيفتح في تاب جديدة)الشرح الرسمي لـ k6، من أول script لحد الـ thresholds والـ scenarios.
- QuickPizza (بيفتح في تاب جديدة)التطبيق اللي هتعمل عليه الـ load test، ومعاه أمثلة k6 جاهزة.
- Apache JMeter (بيفتح في تاب جديدة)الموقع الرسمي لـ JMeter، والـ documentation بتاعته.
أكتر الأخطاء اللي بشوفها
- إنك تجري ورا الأدوات وتنسى السؤال الصح. ورأيي إن عقلية الـ Tester أهم من الأدوات. الأداة بتتغير، لكن السؤال الصح بيفضل زي ما هو: إيه اللي ممكن يبوظ هنا؟ ومين هيتأذي لو باظ؟ اللي حافظ أداة ومش عارف يسأل، هيكتب automation لحاجات ملهاش لازمة.
- إنك تختبر بالدوس العشوائي. الدوس العشوائي بيلاقي bugs بالصدفة، ومتقدرش تكرره. الـ test cases والـ exploratory testing بهدف بيلاقوها عن قصد.
- إنك تكتب bug report محدش يقدر يكرره. «الزرار مش شغال» مش bug report. اكتب الخطوات، والبيانات، والمتصفح، والمتوقع، واللي حصل، وحط screenshot. لو المبرمج كرر المشكلة من أول مرة، انت عملت شغلك صح.
- إنك تختبر الطريق السهل بس. المستخدم مش هيمشي على السيناريو اللي في دماغك. جرب البيانات الغلط، والحقول الفاضية، والحدود، والضغط على الزرار مرتين.
- إنك تعمل automation لكل حاجة. الـ automation للحاجات اللي بتتكرر كتير وثابتة. الحاجات الجديدة والمتغيرة بتحتاج عين بني آدم الأول.
بعد كده
لما تخلص الخطة دي ويبقى عندك مشروع الـ portfolio، دي الخطوات اللي بعدها:
- Mobile testing: تطبيقات الموبايل ليها مشاكلها: شاشات وأنظمة مختلفة، ونت بيقطع، وإشعارات. وفيه أدوات automation ليها زي Appium.
- Security testing: تبدأ بـ OWASP Top 10، ودي قايمة بأشهر أنواع الثغرات في تطبيقات الويب، وإزاي تدوّر عليها.
- شهادة ISTQB Foundation: لو حابب تثبت الأساسيات على ورق. والـ syllabus بتاعها ينفعك تقراه حتى لو مش هتمتحن.
احفظ الصفحة دي، وارجعلها كل ما تخلص حاجة وعلّم عليها. ولو وقفت في مرحلة ومش فاهم، ارجع للي قبلها، غالبًا المشكلة هناك.