كان حد سألني بستخدم الـ AI في شغلي كـ QA إزاي، فحبيت أكتب مقالة اوضح فيها .
أولا أنا ماعملتش حاجة خارقة، وأكيد أي حد يقدر يعمل أحسن مني. أنا بس بشرح تجربتي، ويمكن حد يستفيد من كلمة أو معلومة، وفي نفس الوقت أستفيد من آرائكم وتجاربكم.
في الأول خالص، حابب أشرح شوية عن المشروع اللي بشتغل عليه والأدوات اللي بستخدمها، عشان الصورة تكون واضحة.
التطبيق بتاعنا شغال بـ Ionic، يعني كود واحد بنطلع منه ٣ نسخ: واحدة Web واحدة لـ Android وواحدة لـ iOS. وجوه نفس المشروع موجود الكود بتاعى اللى بستخدم فيه Playwright في الـ E2E Tests. يعنى كود الـ Frontend كله معايا و موجود جواه الـ E2E Tests و بعدل و بضيف فيها و بشارك الديفيلوبرز نفس الكود اللى شغالين فيه.

أما باقي أدوات شغلي:
الـ Test Cases بنكتبها ونتابعها على Zephyr Scale.
الـ Tickets والـ Bugs بنسجلها ونتابعها على Jira.
والـ Designs بتوصلنا جاهزة من Figma.
يومى فى الشغل عادة بيمشى كالتالى :بفتح Jira و اشوف لو فيه Tickets جاهزة للتيستنج و لو فيه حاجة ابتدى اشتغل عليها سواء هى Bug اتصلحت او دى Feature جديدة ابتدى اعمل عليها تيست وهكذا.
بعمل تيست على الويب و الاندرويد و الـ ios
لو فيه Backend Ticket بشتغل عليها و بعمل تيست و اتأكد ان الدنيا فى الـFrontend & Backend شغالة تمام
كل فترة بنطلع Release فبنحتاج نعمل Regression Test
عشان نتأكد من ان كل حاجة تمام قبل البرودكشن على الويب و الاندرويد و الـ Ios و ابتدى اخد سكرين شوتس منهم كلهم و اضيفها لـ Report عشان ببعته للتيم فى الأخر و اقول احنا جاهزين و تمام نطلع برودكشن ولا لأ .بنعمل ميتنج للـ Features الجديدة و نتناقش فيها و نشوف الـ Designs و نسأل لو فيه حاجة مش مفهومة و غيره لحد ما نتأكد كلنا ان الـ Acceptance criteria
واضحة و تمام للتيم كله .
طب فين الصعوبات ؟
فيه جزء من الابلكيشن لازم يتعمل مانوال مش هينفع نعمله اوتوميشن عشان ده مرتبط بهاردوير فبحتاج اعمل الجزء ده مانوال كل مرة
مش هنعرف نعمل اتوميشن للموبايل لأن ionic مش بنقدر نحط فيها Unique ids للـ elements عشان كده الـ regression test
بعمله مانوال على الموبايل اندرويد و ايفون و بشوف نتايج الـE2e Tests اللى بتتعمل على الويب و كل ده بيساعدنى اخد القرار نطلع برودكشن ولا لأيبقى كده كل Test Case بنفذها ٣ مرات عشان اتأكد ان كل حاجة صح عشان مش معنى انها شغالة على الويب صح يبقى هتبقى شغالة على الباقى و خصوصا الـ UI بيختلف من موبايل للتانى عشان مثلا حجم الشاشات مختلف سواء كبير او صغير
لو حاولت اعمل Run للأبلكيشن على Simulators سواء للأندرويد او للـ Ios ماكنتش بتشتغل عشان مشاكل configuration خاصة بالديفيلوبرز اللى شغالين معايا على نفس الكود . يعنى ممكن احتاج اجرب اعمل تيست على اصدار جديد من الـ Ios على موبايل جديد زى Iphone 18 Pro Max و أشوف شكل الابلكيشن عليه ماكنتش بعرف اشغله والموبايل اللى معايا iphone 15 .
قبل ما أبدأ فى استخدام الـ Ai : فكرت في Claude إزاي؟
أنا مكنتش عايز Claude يبقى شات أسأله وأرجع أنسخ منه. كنت عايزه يشتغل جوه شغلي فعلًا. وهنا اتعرفت على فكرة الـ Skills.
الـ Skill ببساطة طريقة شغل محفوظة وثابتة. بدل ما أشرح لـ Claude من الأول كل مرة "افحص الـ Tickets" أو "اكتب Test Case" و أقعد أكرر نفس الكلام كل مرة اقوله يعمل حاجة لأ انا بكتب الخطوات والقواعد اللى يمشى عليها مرة واحدة، وبعد كده كل ما أحتاجها بتتنفذ بنفس الخطوات بالظبط وهى دى اللى اسمها Skill و هى عبارة عن md file كل مرة بتديله امر بيروح يدور فى الـ skills اللى متسجلة عنده الأول لو لقاها بينفذها زى ما متحدد له فيها هناك
بس عشان الفكرة دي تنفع، Claude لازم يبقى شايف أدواتي والحاجات اللى شغال بيها (شرحت الأدوات اللى بستخدمها فوق ) فكان لازم أجهز الـ Access الأول:
Zephyr Scale Token: عشان يقرأ ويكتب الـ Test Cases ويتابع تنفيذها.
Jira Token: عشان يقرأ الـ Tickets ويسجل الـ Bugs .
Figma Connection: عشان يشوف الـ Designs ويقارنها باللي في التطبيق.
من غير الخطوة دي، Claude كان هيفضل بيفهم كلام بس. معاها بقى يشتغل على نفس الأدوات اللي بشتغل عليها ويقدر يروح يقرأ الـ Tickets و يشوف الـ Designs بما ان بقى معاه access على كل الحاجات دى زيي انا .
(نصيحة صغيرة: الـ Tokens دي زي الباسورد، متتحطش في أي Screenshot أو بوست أو ملف يتعمله Share )
المرحلة 1: الفهم الأول
قبل ما أخلي أي حاجة تشتغل لوحدها و استخدم الـ Skills مباشرة ، كان لازم أخليه يجمع معلومات عن الابلكيشن ويفهم التطبيق صح . قعدنا نمشي جوه الـ Screens، نفهم كل Feature شغال إزاي، ونربط بين اللي بيحصل قدام المستخدم والـ Logic اللي وراه. المرحلة دي مكانتش عن انى اطلع نتايج بسرعة ، كانت عن إني أبني فهم حقيقي، عشان أي حاجة هنعملها بعد كده تتبني على أساس صح.
فطلبت من Claude انه يبتدى ياخد الـ test cases اللى كاتبها على Zephyer scale و يقرأ الـ Playwright E2E Tests و يدخل يشوف الكود بتاع المشروع و يكون معلومات عنه و عن الـ Features اللى موجودة فيه.
المرحلة 2: من الفهم لـ Skills
بعد ما بقى عنده فهم كويس عن المشروع و الـ Tests ، بدأت أحول كل حاجة كنت بعملها بإيدي يوميا لـ Skill بحيث اديهاله و هو يعمل Test بنفس الطريقة اللى بعملها و طلبت ان كل Skill من اللى هشرحهم تحت دول انه يدينى Report فى الأخر عشان اعرف نتيجة كل حاجة بطلبها منه و ده كان أول جيل من الـ Skills، وكله كان خاص بالـ Frontend.
و بقى عندى الـ Skills دى :
daily-board-Check
دى بتروح للـ Board بتاعتنا على Jira و تشوف لو فيه اى Tickets جديدة فى الـ Ready for testing و تبتدى تعمل تيست على اخر نسخة من الكود و تقولى هى Pass او Failed و تتأكد ان مفيش اى مشكلة موجودة اننا ننقلها للـ Done
write-test-cases
دى بتروح للـ Zephyer scale و تقدر تكتب Test cases بنفس طريقة كتابتى ليها لأى Feature جديدة و تقدر تعدل على اى Test case موجودة على حسب اى تعديل حصلfile-Jira-bug
و دى بتقدر تروح لـ Jira وتعمل Bug بنفس طريقة كتابتى لكل Bug report و تضيف كل العناصر المهمة اللى مطلوبة فى كل Report .
review-Figma-Design
verify-UI-Ticket
و دى بتقدر تروح لـ Figma وتشوف الـ Designs اللى موجودة هناك و تقارنها باللى الديفيلوبرز عملوه و تطلع اى مشكلة موجودة او عدم تطابق فى التنفيذ . و التانية لما بيكون فيه تعديل حصل للـ UIبتأكد ان ده ما أثرش على اى حاجة تانية فى الابلكيشن
كل الـ Skills اللى فوق دول ماكنتش هقدر اعملهم و انفذهم من غير ما اجهز الـ Tokens اللى تخليه يقدر يروح و يقرأ من هناك مباشرة اى حاجة اديهاله عشان كده وضحت ان ده مهم .
review-Figma-Design
و دى بتقدر تروح لـ Figma وتشوف الـ Designs اللى موجودة هناك و تقارنها باللى الديفيلوبرز عملوه و تطلع اى مشكلة موجودة او عدم تطابق فى التنفيذ .
maintain-playwright-tests
دى بتشوف الـ Test coverage لكل الفيتشرز فى الابلكيشن و لو فيه تعديل حصل بتعدل علي الكود و تتأكد انه مكتوب طبقا لأفضل design patterns و لو فيه فيتشر جديدة محتاجين نكتب لها test cases بتروح على zephyer scale و تكتبها و تربط التيست بالـ id بتاع الـ test case .
run-ios-simulator
run-android-simulator
دول خليتهم يقدروا يشغلوا الـ simulators على اى Platform انا عاوزها و بالـ configurations الخاصة بيا انا و باللاب بتاعى بحيث ماتأثرش على اى حاجة من اللى الديفيلوبرز عاملينها و اقدر كمان اتحكم انا عايز اشغلها على اى Environment
review-copy-wording
دى بتفتح الابلكيشن و تراجع على الكلمات بالانجليزى و الالمانى و تتأكد ان تحويل لغة الابلكيشن شغالة كويس و الكلمات مظبوطة مفيش فيها اى مشكلة
review-PR
طبعا بما اننا اكتر من واحد شغالين على نفس الكود بنحتاج نراجع اى تعديل هيحصل و حد يعمله approve و انا بستخدم دى لو حد من الـ developers عمل PR بحيث اتأكد انه اتبع نفس القوانين لكتابة الكود اللى متفقين عليها زى تسمية الـ variables مثلا و كمان اتأكد انه عامل Unit Tests للجزء اللى بيعدل الكود فيه
run-regression-cycle
دى وظيفتها انها تروح تفتح الابلكيشن مانوال و تمشى فى كل screen و تعمل تيست للأبلكيشن كله مانوال و تروح تعمل run لكل الـ E2E Test بتاعت playwright و بعدها تروح تعمل run simulators و تنفذ نفس التيست هناك و تطلع report فيه كل التفاصيل و تعدد كل المشاكل اللى موجودة و تروح على confluence تحط النتايج دى هناك و معاها سكرين شوت من كل حاجة سواء ويب او اندرويد او Ios و لو فيه bug تروح jira و تعمل create bug وتروح figma تراجع اخر ديزاين و تشوف لو فيه مشاكل ولا لأ و تتأكد ان تحويل اللغة فى الابلكيشن شغالة تمام و ان الكود الاخير اللى عمله الديفيلوبرز مكتوب له Unit tests و كلها Pass و فى الأخر يدينى الـ report ويقول احنا جاهزين نطلع release ولا لأ
لو واخد بالك احنا هنا جمعنا كل الـ skills اللى عملناها و استخدمناهم فى skill واحدة تشتغل و تطلع ريبوت فى الاخر وقت ما نكون عايزين

لحد هنا كل حاجة تمام و الدنيا بقت أسرع و بتدى نتايج دقيقة جدا و بقيت أقدر أخلص شغل يوم فى ساعة واحدة بالكتير .. لكن فيه مشكلة وحدة .. كل ده على مستوى الـ Frontend بس مفيش اى تفاعل مع الـ Backend خالص
المرحلة 3: الدمج مع الـ Backend
شغل الـ QA مش Frontend بس، فيه جزء كبير بيعتمد على الـ Backend. ولو ماجربتش قبل كده .. VS code فيه حاجة اسمها Workspace بحيث تقدر تضيف اكتر من فولدر/مشروع فى نفس المكان تحت بعض و كل واحد هيبقى منفصل بأدواته عادى فأنا عملت workspace و جمعت الـ Frontend مع الـ Backend Services في Workspace بما انى معايا كود الباك اند اللى كان متقسم على مشروعين أصلا ، ووسعت نفس فكرة الـ Skills عشان تغطي الـ Backend كمان بدل ما كانت frontend بس لأ خليته بقى fullstack و بقينا نعمل test للـ Frontend و فى نفس الوقت نتأكد ان الباك اند شغال مظبوط و الداتا بيحصلها ابديت او تغيير على حسب كل Test case عندى و كمان خليت playwright يشوف اى جزء منهم نقدر نضيفه معانا فى الـ E2E Tests بحيث نطمن من الـ.Apis ان كل حاجة شغالة كويس و فى كل مشروع فى الباك اند قدر يروح يضيف Test cases جديدة على zephyer scale و يعمل verify backend tickets و كل حاجة كنا بنعملها فى الـ frontend تتعمل على الـBackend

اللى فى الصورة فوق ده مثال انك تقدر تدمج اكتر من مشروع فى نفس المكان و تشتغل عليهم كأنهم حاجة واحدة و فى نفس الوقت تقدر تتعامل مع كل مشروع بشكل منفصل ومايبقاش فيه اى conflicts بينهم .. انا كان عندى ٣ مشاريع ١ فرونت و ٢ باك اند انت تقدر تضيف براحتك لو عامل مشروع selenium مع جافا و مشروع تانى playwright و معاهم مشروع تالت Rest assured و هكذا ضيف براحتك ماتقلقش مش هيحصل اى مشكلة من انهم مختلفين عن بعض .. هسيب لينكات تحت تشرح الـ. workspace و تقدر تعملها ازاى عشان تساعد claude انه يعمل الـ. skills بتاعته على مستوى الـ workspace كلها .

المرحلة 4: بقت جزء من شغلي اليومي
دلوقتي الـ Skills دي مش تجربة، دي جزء أساسي من يومي: فحص الـ Tickets، الـ Regression قبل أي Release، مراجعة الـ Pull Requests، تسجيل الـ Bugs ، وكتابة الـ Test Cases. كله بقى له طريقة ثابتة أعتمد عليها.
وبالأرقام، عندي دلوقتي أكتر من 30 Skill موزعين كده:
9 للـ Regression والـ Reports
8 للـ Backend Testing
6 لتسجيل ومتابعة الـ Tickets
4 للمراجعات (Design / PR / نصوص)
4 لـ Build وتشغيل الـ App
بستخدمها إزاي كل يوم؟
مفيش Commands معقدة، بس جملة عادية والباقي بيحصل لوحده:
بكتب جملة عادية، زي "افحص الـ Board" أو "شغل Regression " أو "راجعلي الـ PR ده".
الـ Skill المناسبة بتشتغل بنفس الخطوات ونفس الجودة كل مرة.
بطلع بنتيجة واضحة وجاهزة: Report، أو Ticket في Jira، أو Test Case في Zephyr.
قواعد مابتتغيرش
أي Skill لازم تكون Safe قبل ما تكون سريعة، فحطيت حدود واضحة من أول يوم:
مفيش أي لمسة على الـ Production أبدًا. الشغل كله على بيئات الـ Testing بس.
حذف أي Account أو بيانات حقيقية ممنوع خالص، تحت أي ظرف.
أي حاجة هتتنشر أو تتسجل (Ticket، Comment، Report عام) لازم موافقتي الأول.
كل خطوة بتتعمل بتسيب Report واضح، مفيش حاجة بتحصل "في الضلمة".
دي كانت تجربتي، وأكيد لسه فيها حاجات كتير أتحسن فيها. لو انت بتستخدم الـ AI في شغلك كـ QA، أو عندك فكرة تحسن اللي عملته، يا ريت تشاركني . هستفيد جداً من رأيك وتجربتك.
----------------------
لينكات :
١- شرح الـ workspaces و تعملها ازاى فى VS code
