خلينا متفقين ان مفيش سيستم ناجح الا لو كان فيه تيستنج سليم بيتعمل فيه
التيستنج مش بس هيجنبك ان اليوزر ياخد انطباع وحش عن السيستم بتاعك لا ده كمان هيجنبك خساره ممكن تحصل لو عندك حاجه فيها payment مثلا
عموما احنا انهارده مش جايين نتكلم عن اهميه التيستنج لآن كده كده دي حاجه مفروغ منها والي مش مقتنع بكده محتاج يراجع نفسه كويس ;)
تعالوا نبدآ بالموضوع من فوق شويه ونقول ان فيه عندنا حاجتين مهمين
- Manual Testing
طيب ايه ده بقي ؟ هقولك ان دي حاجه انت كده كده بتعملها وانت غالبا مش واخد بالك
ببساطه لو انت شغال ويب مثلا و شغال علي feature معينه او بتصلح bug فا انت بتكتب الكود بتاعك و بتظبط الستايل كمان
و طول مانتا شغال عينك علي البراوزر شايف الكود بتاعك ده ايه النتيجه بتاعته فا المفروض انك مش هتخلص شغل الا وانت واصل للنتيجه المطلوبه علي الآقل كا ui فا احب اقولك انت كده عملت نوع بسيط من المانيوال تيستنج فعلا !
نزود شويه كمان ؟ بتعمل login form و المفروض يبقي فيها 2 inputs مثلا email, password فا بعد ما بتخلص كا ui بتبدآ تحط مع نفسك test cases وتجربها
بالنسبه لل email input ممكن نقول انه
- charchters are shown
- cannot be empty
- @ should have
و ال password input
- charchters are hidden
- cannot be empty
- charchters length should be more than 6
كل الي فوق ده انت غالبا بتعمله دايما بس ممكن مكنتش تعرف ان ده مانيوال تيستنج
دلوقتي نتكلم عن تاني حاجه بقي
- Automated Testing
هنا انت بتكتب كود عشان ي تيست الكود بتاعك ! ايه بقي اللغبطه دي
استني هقولك لو عندنا فايل اسمه sum.js جواه function بسيطه كل الي بتعمله بتجمع رقمين
function sum(a, b) {
return a + b;
}
module.exports = sum;
هنعمل فايل جديد اسمه sum.test.js
const sum = require('./sum');
test('adds 1 + 2 to equal 3', () => {
expect(sum(1, 2)).toBe(3);
});
كده انت كتبت كود يعمل تيست للكود الي انت كاتبه ;)
المهم ان ال automated testing فيه اكتر من نوع
Unit Testing
هنا انت بتعمل تيست لكل بلوك لوحده و البلوك ده ممكن يكون function او component و عموما ده اكتر نوع بيستخدم
Integration Testing
هنا بتعمل تيست لمجموعه من ال building blocks مع بعض مجموعه من ال component مثلا
End-to-End Testing
في النوع ده بقي انت بتعمل تيست لسيناريو كامل ممكن مثلا من اول ما اليوزر يعمل اكونت جديد و ي login بيه و يفتح page معينه