AIM Tech

AIM Tech We Code Your Aim In summary, we are a software company specialized in developing mobile phone applications and customized software solutions.

We also provide integrated technological solutions for companies to improve their performance and achieve success in their businesses. Our company is characterized by quality, innovation, and effective technical support for our clients

**"البج مش في الـ Feature الجديدة... لكن في ترتيب الخطوات!"**من أكثر أنواع المشاكل التي يتم تجاهلها أو حتي نسيانها أثناء...
04/06/2026

**"البج مش في الـ Feature الجديدة... لكن في ترتيب الخطوات!"**

من أكثر أنواع المشاكل التي يتم تجاهلها أو حتي نسيانها أثناء الاختبار:

**State Transition Bugs**

أغلبنا يختبر هل النظام ينفذ العملية أم لا ((شغال ولا لاء))

لكن السؤال الأهم أحيانًا:

**هل يسمح بتنفيذها في الوقت الصحيح فقط؟**

تخيل نظام طلبات يمر بالمراحل التالية:

Draft → Pending → Approved → Completed

طبيعي أن الطلب ينتقل من مرحلة لأخرى بالترتيب.

لكن ماذا لو استطاع المستخدم:

❌ الانتقال من Draft مباشرة إلى Completed؟

❌ تعديل الطلب بعد اعتماده؟

❌ إلغاء طلب مكتمل بالفعل؟

❌ إعادة الطلب إلى حالة غير منطقية؟

هنا المشكلة ليست في الوظيفة نفسها...

بل في السماح بانتقالات (Transitions) غير صحيحة بين الحالات.

عند اختبار أي Workflow اسأل نفسك دائمًا:

🔹 ما الحالات المسموح الانتقال بينها؟
🔹 ما الحالات الممنوع الانتقال بينها؟
🔹 هل الصلاحيات تختلف حسب الحالة؟
🔹 ماذا يحدث إذا حاول المستخدم تنفيذ Action في حالة غير متوقعة؟
🔹 هل الـ API تمنع الانتقال غير الصحيح أم أن المنع موجود فقط في الـ UI؟

كثير من الأنظمة تبدو مستقرة عند اختبار Happy Path...

لكنها تنهار عندما يجرب شخص الانتقال بين الحالات بطريقة لم يفكر فيها أحد.

ولهذا السبب، من أقوى الـ Test Cases التي يمكن أن تكتبها ليست:

"هل يعمل الزر؟"

بل:

(((هل يعمل الزر فقط عندما يجب أن يعمل؟)))

لو فادك موضوع النهارده استنى البوست الجاي هنكمل شرح دور ال API تيستنج وازاي بيكون خط الحماية الاخير وعلاقه ال business logic
ولحد البوست الجديد زور موقعنا واستفيد بكل المحتوي الموجود لافادتك ومساعدتك تغير من طريقة تفكيرك https://aimtech.online/posts

02/06/2026

**أحيانًا أكبر تحدي مش إنك تبدأ... التحدي الحقيقي إنك تكمّل.**

وده كان من أكتر الحاجات اللي فرقت مع ندى خلال رحلتها.

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

مش مجرد "صح وغلط"...
لكن فهم لطريقة التفكير، ونقاش للأفكار، وتوجيه يساعدها تعرف تدور وتبحث وتوصل للمعلومة بنفسها.

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

لأن الهدف في النهاية مش إنك تخلص كورس...
الهدف إنك تكتسب طريقة تفكير ومهارات تفضل معاك في الشغل الحقيقي. 🚀

ف لو أنت بتدور على تدريب عملي حقيقي ومحتوى مميز ، ومتابعة مستمرة، وفيدباك يساعدك تطور من مستواك خطوة بخطوة، فمستنينك في الراوند الجاية بإذن الله. 💙

📩 ابعتلنا رسالة على رسايل الصفحة او من خلال https://wa.me/201552790104 وهنبعتلك التفاصيل.

"هل فعلاً كل Requirement لازم يتكتب لها Test Case؟" 🤔في بداية أي مشروع، أول رد فعل عند كثير من الـ Testers:"يلا نكتب Tes...
31/05/2026

"هل فعلاً كل Requirement لازم يتكتب لها Test Case؟" 🤔

في بداية أي مشروع، أول رد فعل عند كثير من الـ Testers:

"يلا نكتب Test Cases لكل حاجة."

لكن مع الوقت تكتشف أن الموضوع مش بالبساطة دي

تخيل أن عندك Feature فيها:

10 حقول إدخال.
5 أنواع مستخدمين.
عشرات الاحتمالات المختلفة للبيانات.

لو حاولت تكتب Test Case لكل سيناريو ممكن...

قد تنتهي بمئات أو آلاف الـ Test Cases.

وفي النهاية؟

❌ وقت صيانة Maintenance ضخم

❌ تكرار كثير.

❌ صعوبة في مراجعتها وتحديثها.

الـ Tester القوي لا يفكر في عدد الـ Test Cases.

بل يفكر في قيمة الـ Test Cases

يسأل نفسه:

✅ ما السيناريوهات الأكثر خطورة على البزنس؟

✅ ما الأجزاء الأكثر عرضة للفشل؟

✅ ما الذي قد يسبب خسارة للمستخدم أو للشركة؟

✅ أين يجب أن أركز جهدي ووقتي؟

لهذا السبب ظهر مفهوم مهم جدًا هو:

Risk-Based Testing

بدل أن تعامل كل Requirement بنفس الأهمية...

تعطي الأولوية لما يحمل أكبر تأثير وأكبر احتمال للفشل.

في النهاية...

الهدف ليس أن تمتلك أكبر عدد من الـ Test Cases.

الهدف أن تمتلك Test Cases قادرة على اكتشاف المشاكل التي تهم فعلًا.

وده يودينا ل نقطة مهمة جدًا بيقع فيها كثير من الـ Testers:

التعامل مع كل Bugs وكأنها بنفس الخطورة.

تخيل السيناريوين دول:

🔹 زرار في صفحة الإعدادات غير محاذي بشكل صحيح.

🔹 المستخدم يستطيع إتمام عملية شراء بدون خصم الرصيد أو الدفع الفعلي.

الاتنين Bugs.

لكن هل الاتنين بنفس الأهمية؟

طبعًا لا.

الـ Tester القوي لا ينظر فقط إلى وجود المشكلة...

بل ينظر إلى تأثيرها على البزنس والمستخدم.

يسأل نفسه:

✅ هل المشكلة تمنع المستخدم من إكمال هدفه؟

✅ هل تؤثر على الإيرادات؟

✅ هل تسبب فقدان بيانات؟

✅ هل لها تأثير أمني؟

✅ كم عدد المستخدمين المتأثرين بها؟

أحيانًا Bug بسيط في الشكل لا يستحق تأخير الـ Release.

وفي المقابل...

Bug صغير جدًا في منطق العمل (Business Logic) قد يكلف الشركة آلاف أو ملايين.

لذلك أثناء الاختبار لا تركز فقط على اكتشاف المشاكل...

ركز أيضًا على فهم خطورتها وتأثيرها الحقيقي.

لأن قيمة الـ Tester لا تُقاس بعدد الـ Bugs التي يكتشفها فقط...

بل بقدرته على مساعدة الفريق في التركيز على ما يستحق الاهتمام أولًا.

لو عجبك موضوع النهارده كمل استفادتك بزيارة موقعنا https://aimtech.online/posts هتلاقي فيه محتوي يفيدك تطور من نفسك وتكون مميز في مجال السوفتوير تيستنج

Cache Invalidation: Why It’s One of the Hardest Problems in Softwareفي مقولة مشهورة جدًا وسط الـ Engineers بتقول:“There ...
21/05/2026

Cache Invalidation: Why It’s One of the Hardest Problems in Software

في مقولة مشهورة جدًا وسط الـ Engineers بتقول:

“There are only two hard things in Computer Science: Cache Invalidation and naming things.”

ولسبب حقيقي جدًا

المشكلة مش إنك تعمل Cache

المشكلة:
إمتى تعرف إن الكاش بقت غلط؟

لأن أول ما الداتا الأصلية تتغير…
أي نسخة متخزنة منها تبدأ تتحول لخطر محتمل.

مثال عملي بسيط:

Product سعره = 1000
السعر متخزن في Cache لتسريع القراءة.

Admin غيّر السعر لـ 800.

لو الكاش ما اتمسحتش أو اتحدثتش فورًا
بعض المستخدمين هيشوفوا:

1000
وبعضهم 800

والأسوأ؟
ممكن يدفع بسعر
ويتحاسب بسعر تاني.

المشكلة بتكبر جدًا في الأنظمة الكبيرة

لأن الكاش مش Layer واحدة بس.

ممكن يكون عندك:

Browser Cache
CDN Cache
API Gateway Cache
Redis Cache
Mobile Local Cache

والسؤال المرعب:

مين فيهم محتاج يتحدث؟
وإمتى؟
وبأي ترتيب؟

سيناريو Production حقيقي جدًا:

User غيّر صورة البروفايل.

الداتا اتحدثت
الـ API بترجع الصورة الجديدة
لكن الـ CDN لسه كاش الصورة القديمة
والموبايل كمان عامل Local Cache

النتيجة؟

الويب شايف صورة
الموبايل شايف صورة
User تاني شايف صورة ثالثة 😅
ليه الموضوع صعب فعلًا؟

لأن عندك معادلة مستحيلة شوية:

كل ما الكاش تعيش أطول:
✔️ Performance أحسن
❌ البيانات أقدم

كل ما تحدث الكاش بسرعة:
✔️ البيانات أحدث
❌ ضغط أكبر على السيستم

فأنت طول الوقت بتوازن بين:
Performance vs Consistency

كـ Tester التفكير هنا مختلف

أنت مش بس بتسأل:
“هل الداتا اتغيرت؟”

أنت لازم تسأل:

مين لسه شايف النسخة القديمة؟
بعد قد إيه المفروض الكل يشوف التحديث؟
هل في Forced Refresh؟
هل الـ CDN عندها Purge؟
هل الـ Mobile Cache بتتمسح بعد الـ Update؟
🎯 نقطة ناس كتير بتنساها:

بعض Bugs الكاش
“بتختفي لوحدها”

وده أخطر نوع Bugs 👀

لأن:

التستر يفتح Bug
بعد 5 دقائق كل حاجة تبقى صح
الفريق يقفل البج “Cannot Reproduce”

بينما المشكلة الحقيقية:
كانت Delay في Invalidation.

القاعدة الذهبية:

الـ Cache مش Source of Truth.
هي مجرد Snapshot مؤقتة.

ولو السيستم نسي إمتى يمسح الـ Snapshot دي…
المستخدم هيعيش في نسخة قديمة من الواقع

لو عجبك موضوع النهاردة زور موقعنا https://aimtech.online/posts وكمل استفادتك في مجال السوفتوير تيستنج

19/05/2026

هل ينفع ترجع للمجال بعد غياب 5 سنين … وتبقى أقوى من الأول؟

إسراء كانت Front-End Developer
وبعدت عن المجال 5 سنين كاملة.
لما قررت ترجع… اختارت مجال الـ Testing.

جت عن طريق سيرش… واترشحنالها.
بس كان عندها تخوفين كبار:

💰 تكلفة الكورس
📚 إنها درست قبل كده نظري كويس… لكن عملي؟ شبه مفيش!

كانت خايفة تكرر نفس التجربة:
معلومات كتير… وتطبيق قليل.

لكن أول ما بدأت التدريب، اكتشفت الفرق 👇
مش مجرد شرح…
ولا فيديوهات تتشاف وخلاص…

✔️ تطبيق عملي فعلي
✔️ Tasks بتتحل بإيده
✔️ Feedback تفصيلي على كل خطوة
✔️ طريقة تفكير بتتبني من أول وجديد

النتيجة؟
تفكيرها اتغير تماما.
بقت فاهمة هى بتعمل إيه وليه.
والأهم… الناس بقت موثوق فيها
وبدأ يتسند لها Projects حقيقية تشتغل عليها 👏

الفرق مش في إنك تاخد معلومات جديدة…
الفرق في إنك تتعلم تشتغل صح.

لو إنت مكان إسراء…
وعندك نفس القلق…
يمكن دي تكون الإشارة اللي مستنيها 💙

📩 ابعت كلمة "جاهز" على رسايل الصفحة او من خلال https://wa.me/201552790104 وهنبعتلك التفاصيل.

Caching Bugs vs Real Data: لما السيستم يقولك “أنا صح” وهو مش شايف الحقيقةأحيانًا السيستم بيرد عليك بثقة كاملة…لكن هو بير...
14/05/2026

Caching Bugs vs Real Data: لما السيستم يقولك “أنا صح” وهو مش شايف الحقيقة

أحيانًا السيستم بيرد عليك بثقة كاملة…
لكن هو بيرد من الكاش.
مش من الداتا الحقيقية.

والفرق ده ممكن يعمل Production Incident محترم 👀

🧠 المشكلة فين؟

الكاش معمول عشان:

يسرّع القراءة
يقلل الضغط على الداتا بيز
يحسّن الأداء

بس لو الكاش ما اتحدثتش في الوقت الصح…
هتبدأ تشوف “نسخة قديمة من الحقيقة”.

🎯 مثال عملي:

يوزر عدّل اسمه.
الـ Update نجح.

لكن لما دخل بروفايله…
الاسم القديم لسه ظاهر.

ليه؟

لأن:

الداتا اتحدثت
لكن الـ Cache لسه محتفظة بالقيمة القديمة
أو الـ TTL لسه ما خلصش

السيستم مش غلطان.
هو بس شايف صورة قديمة.

🎯 مثال أخطر:

Admin عطّل حساب مستخدم.

المفروض ميقدرش يعمل Login.

لكن لو:

الـ Session متخزنة في Cache
أو Status الحساب متخزن

المستخدم ممكن يفضل يدخل عادي
لحد ما الكاش تتحدث.

ده مش UI Bug.
ده Cache Invalidation Issue.

🧨 المشكلة الأكبر؟

لما التستر يختبر بسرعة:

يعمل Update
يعمل Refresh فورًا
يشوف القيمة القديمة
يفتح Bug

أحيانًا ده مش Bug…
ده سلوك كاش طبيعي.

لكن أحيانًا
يبقى Invalidation Logic ناقص.

والفرق بينهم لازم يتفهم.

🧠 كـ Tester لازم تسأل:
هل في Cache Layer؟ (Redis؟ CDN؟ Browser Cache؟)
الـ TTL قد إيه؟
هل في Cache Invalidation بعد الـ Update؟
هل القراءة جاية من نفس المصدر؟
هل في اختلاف بين Web و Mobile بسبب الكاش؟
🎯 تمرين عملي:

اعمل Update.
استني دقيقة.
اعمل Refresh.

لو النتيجة اتغيرت بعد وقت…
يبقى عندك Caching Behavior.

لو مفيش تغيير خالص…
ممكن يكون عندك Bug حقيقي.

القاعدة الذهبية:

الـ Cache مش مجرد تحسين أداء…
دي نسخة مؤقتة من الحقيقة.

ولو ما فهمتش النسخة دي بتتحدث إزاي
ممكن تفتح Bug غلط…
أو تفوت Bug أخطر 👀🔥

ولأن الموضوع ده مهم استنوا بوست تاني هنتكلم فيه بشكل أكبر واعمق بس استنى ممكن خلال الوقت ده تزور موقعناhttps://aimtech.online/posts هتلاقي فيه معلومات أكتر وأفيد تساعدك تكون تستر فاهم الكونسبت مش مجرد بتست اللي قدامك 💪

12/05/2026

في فرق كبير بين إنك تاخد كورس…
وبين إنك تتعلم بطريقة تغيّر تفكيرك فعلًا.

سارة في الفيديو ده بتحكي عن رحلتها معانا،
وإزاي الدبلومة ما كانتش مجرد محتوى،
لكن تجربة كاملة فيها متابعة يومية حقيقية
وـ Detailed Feedback على كل خطوة.
خلّاها تشوف نفسها بشكل أوضح وتطور من أدائها خطوة بخطوة.

الفرق الحقيقي حصل لما بدأت تطبق اللي بتتعلمه فورًا في شغلها العملي 👩‍💻
مش بس تفهم… لكن تنفذ وتلاحظ الفرق بنفسها.

الدبلومة هدفها مش إنك “تخلص محتوى”
هدفها إنك تخرج بعقلية مختلفة وطريقة شغل أقوى.

🚀 لو حابب تكون قصتك هي الفيديو الجاي…
ابعتلنا رسالة على رسائل الصفحة أو https://wa.me/201552790104 واعرف تفاصيل الراوند الجديدة.

Eventual Consistency: لما السيستم يبقى “صح”… بس مش دلوقتيفي أنظمة كتير حديثةالـ Data مش بتبقى متزامنة لحظيًا.وده مش Bug....
10/05/2026

Eventual Consistency: لما السيستم يبقى “صح”… بس مش دلوقتي

في أنظمة كتير حديثة
الـ Data مش بتبقى متزامنة لحظيًا.

وده مش Bug.
ده Design Choice.

بس المشكلة؟
ناس كتير بتختبرها كأنها Strongly Consistent 👀

🧠 يعني إيه Eventual Consistency؟

يعني:

الداتا هتبقى صح…
لكن بعد شوية وقت.

مش فورًا.

🎯 مثال عملي:

User عدّل اسمه في الموبايل.
الموبايل بعته للـ API.
الـ API حدثت قاعدة البيانات الأساسية.

لكن:

في Cache لسه فيها الاسم القديم
في Read Replica لسه متزامنتش
في Search Index لسه متحدثش

اليوزر يدخل بروفايله من الويب…
يشوف الاسم القديم.

هو مش Bug تقليدي.
هو تأخير في الانتشار.

🎯 مثال أخطر:

User عمل Order.
الـ Payment نجحت.
الأوردر اتحفظ.

لكن صفحة “My Orders” بتقرأ من Read Replica
لسه ماخدتش التحديث.

اليوزر يشوف “مفيش أوردر”.

يعمل الطلب تاني.

هنا المشكلة مش في الدفع.
المشكلة في إن القراءة والكتابة مش من نفس المصدر.

🧨 ليه ده خطير في التستنج؟

لأنك ممكن:

تفتكري في Bug
أو تفوت Bug حقيقي
أو تعيد العملية مرتين

من غير ما تفهمي إن المشكلة Timing بين Nodes.

🧠 كـ Tester لازم تسأل:
هل القراءة والكتابة من نفس الداتا سورس؟
هل في Caching Layer؟
هل في Replication Delay؟
إيه الزمن المتوقع للتزامن؟
هل UI بيعرض Pending State؟

🎯 تمرين عملي:

اعمل Action
وبعدين اعمل Refresh بسرعة جدًا.

لو النتيجة اختلفت بين أول مرة وتاني مرة
يبقى عندك Consistency Behavior محتاج تفهمه.

القاعدة الذهبية:

في أنظمة Distributed
“الصح” مش دايمًا يعني “فوري”.

ولو إنت بتختبريعلى افتراض إن كل حاجة لحظية
هتضيع نص الصورة 👀🔥

لو عجبك موضوعنا النهارده ما تنساش تزور موقعنا https://aimtech.online/posts وكمل استفادتك واستنى موضوعنا الجاي هنكمل فيه شرح مفاهيم تساعدك تغير من طريقة تفكيرك وتفهم بشكل اكبر واعمق مجال السوفتوير ككل

🔥 Timezone Nightmares…(Context)  الوقت مش رقم… الوقت سياق 😅واحد من أخطر أنواع البجزاللي بتعدي في التستنج عادي جدًا…وبعدي...
07/05/2026

🔥 Timezone Nightmares…(Context) الوقت مش رقم… الوقت سياق 😅

واحد من أخطر أنواع البجز
اللي بتعدي في التستنج عادي جدًا…
وبعدين تظهر أول ما اليوزر يغيّر البلد.

المشكلة اسمها:
Timezone Handling

🧠 المشكلة فين؟

السيرفر غالبًا شغال بـ UTC.
الموبايل شغال بتوقيت الدولة.
الويب ممكن يعتمد على Browser Time.

ولو مفيش اتفاق واضح…
كل واحد بيحسب بطريقته.

🎯 مثال عملي جدًا:

API بترجع تاريخ بداية الاشتراك:

2026-05-01T00:00:00

السؤال 👀
ده UTC؟
ولا Local Time؟
ولا مفيش Timezone أصلاً؟

لو مفيش Z أو Offset واضح
الموبايل هيفسره حسب توقيته.

نتيجة؟
يوزر في مصر يشوف الاشتراك بدأ 1 مايو.
يوزر في السعودية يشوفه 30 أبريل مساءً.
يوزر في أمريكا يشوفه 30 أبريل الصبح!

نفس الداتا…
3 تواريخ مختلفة.

🎯 مثال أقوى (بيحصل فعلًا):

Flash Sale تبدأ 1 مايو الساعة 00:00.

السيرفر مخزنها UTC.
الفرونت بيقارنها بوقت الجهاز.

يوزر في +3 timezone
يشوف العرض بدأ بدري 3 ساعات.

يوزر في -5
يشوفه متأخر 5 ساعات.

والكارثة؟
مفيش Error ظاهر.

🎯 مثال تقيل شوية:

تقرير مبيعات “ليوم 1 مايو”.

لو الاستعلام بيعمل:

WHERE date = '2026-05-01'

من غير تحديد timezone

النتيجة تختلف حسب:

السيرفر فين
الداتا متخزنة بإيه
المستخدم فين

ممكن أوردر الساعة 11:30 مساءً
يتحسب في يوم مختلف تمامًا.

🧨 المشكلة الأخطر:

لما التوقيت يتغير بسبب:

Daylight Saving Time
تغيير البلد
تغيير Timezone في الموبايل يدويًا

Features زي:

OTP Expiry
Subscription Expiry
Session Timeout

تبدأ تتصرف بغرابة.

💡 كـ Tester لازم تسأل:
هل التواريخ مخزنة بـ UTC؟
هل الـ API بترجع Offset واضح؟ (+02:00 مثلًا)
هل الفرونت بيحوّل التوقيت صح؟
هل في مقارنة بين وقتين من مصدرين مختلفين؟
هل جربت تغير Timezone الجهاز؟

🎯 تمرين احترافي:

وأنت بتست أي API فيها تاريخ
اعمل 3 حاجات:

1️⃣ غير Timezone الجهاز
2️⃣ ابعت Request بإيدك بتوقيت مختلف
3️⃣ قارن الرد على جهازين في بلدين مختلفين

لو النتيجة اختلفت…
عندك Timezone Bug مستني يتكشف 👀🔥

الوقت مش مجرد رقم…
الوقت Context.

ولو السيستم مش فاهم الـ Context
هيحسبه غلط بثقة كاملة 😌
لو عجبك موضوعنا النهارده ماتنساش تزور موقعناhttps://aimtech.online/posts وخدلك لفة في محتوي يساعدك تكون سابق بخطوة 💪

🔥 From Value Boundaries to Time Boundaries: The Missing Dimension in Testingفي بوست فات اتكلمنا إن البجز بتحب تختبئ عند ...
05/05/2026

🔥 From Value Boundaries to Time Boundaries: The Missing Dimension in Testing

في بوست فات اتكلمنا إن البجز بتحب تختبئ عند حدود الـ values… وازي مهم تختبر ال Boundaries والنهارده هنشوف إن في نوع أخطر من الحدود: حدود الزمن نفسه ⏳

إنت ممكن تختبر كل السيناريوهات صح…بس تنسى حاجة واحدة:

الوقت.

والوقت في السيستم مش ثابت.
بيتغير… وبيكسر الدنيا 👀

🧨 ليه الـ Time Bugs خطيرة؟

لأنها:

مش دايمًا تتكرر
بتحصل في تواريخ معينة
أو ساعات معينة
أو عند انتقالات زمنية

وأحيانًا… تظهر مرة في السنة بس!

🎯 مثال بسيط لكنه قاتل:

Feature اشتراك ينتهي بعد 30 يوم.

السؤال:
30 يوم من إمتى؟

من لحظة الدفع؟
من بداية اليوم؟
حسب UTC؟
حسب توقيت جهاز المستخدم؟

لو اليوزر في مصر
والسيرفر UTC
والتاريخ اتحسب غلط

ممكن الاشتراك ينتهي بدري…
أو يفضل شغال زيادة.

🎯 مثال أقوى:

حجز فندق من 1 مايو لـ 3 مايو.

هل يوم 3 محسوب؟
ولا الخروج صباحًا؟
ولا لحد 11:59 مساءً؟

فرق بسيط في التفسير
= ليلة زيادة أو ناقصة.

🎯 مثال Production حقيقي بيتكرر كل سنة:

سيستم بيحسب العمر تلقائيًا.

شخص مولود 29 فبراير 👀
في سنة مش كبيسة…
يتحسب عمره إزاي؟

28 فبراير؟
1 مارس؟
ولا يحصل Error؟

🎯 مثال أخطر في السيستمات الكبيرة:

Flash Sale تبدأ الساعة 12:00.

موبايل اليوزر الساعة 11:59
السيرفر 12:00
CDN متأخر ثواني

ناس تشوف العرض شغال
ناس تشوفه مقفول
ناس تدفع ويتخصم منها
والأوردر يترفض.

ده مش Bug Validation.
ده Bug توقيت.

🧠 كـ Tester اسأل:
السيستم بيستخدم أي Time Zone؟
هل بيتم التخزين بـ UTC؟
هل في اختلاف بين وقت السيرفر والعميل؟
هل في Caching مرتبط بالوقت؟
إيه اللي يحصل عند Midnight؟
إيه اللي يحصل آخر الشهر؟
إيه اللي يحصل نهاية السنة؟

🎯 أهم قاعدة:

أي Feature مرتبطة بـ:

Expiry
Subscription
Booking
Offer
OTP
Reports

لازم تختبرها على “حافة الوقت”.

لأن البج مش بيظهر الساعة 2 الضهر…
هو بيستنى الساعة 11:59 👀🔥

البوست الجاي هنتعمق أكتر ف كونسبت الوقت وازاي الوقت مش مجرد رقم .. ده بيختلف ع حسب السياق
بس لحد البوست الجاي ما توقفش .. زور موقعنا https://aimtech.online/posts وكمل رحلتك في فضاء السوفتوير تيستنج 🚀

Address

Cairo
Cairo

Alerts

Be the first to know and let us send you an email when AIM Tech posts news and promotions. Your email address will not be used for any other purpose, and you can unsubscribe at any time.

Share