Course / دورة
Software testingاختبار البرمجيات
Find the problem before the people using it do
اعثر على المشكلة قبل أن يجدها من يستخدمون البرنامج
beginner 16 lessons 5 chapters 10 hours
Before you start / قبل أن تبدأ: How the web works
0 / 16 lessons completed / دروس مكتملة
What you will be able to do / ماذا ستستطيع أن تفعل
- Write a test case someone else can follow and get the same result تكتب حالة اختبار يتبعها غيرك فيصل إلى النتيجة نفسها
- Find the inputs most likely to break something, instead of guessing تجد المدخلات الأرجح أن تكسر شيئًا، بدل التخمين
- Write a bug report a developer can act on without asking you anything تكتب تقرير خطأ يتصرّف بناءً عليه المطوّر دون أن يسألك شيئًا
- Say what to retest after a fix, and why تحدد ما يجب إعادة اختباره بعد الإصلاح، ولماذا
1 What testing isما الاختبار 3
-
1
What testing actually is / ما الاختبار في حقيقته
Testing is not proving that software works. Nobody can prove that. It is the far more useful business of finding, on purpose and before anyone else does, the places where it does not.
الاختبار ليس إثبات أن البرنامج يعمل. لا أحد يستطيع إثبات ذلك. بل هو أمر أنفع كثيرًا: أن تجد عن قصد، وقبل أن يجدها غيرك، المواضع التي لا يعمل فيها.
-
2
Why software breaks / لماذا تنكسر البرمجيات
Bugs are not random misfortune. They cluster in a small number of predictable places, and knowing where those places are is most of what separates a fast tester from a thorough one.
الأخطاء ليست سوء حظ عشوائيًا. بل تتجمّع في مواضع قليلة يمكن توقّعها، ومعرفة تلك المواضع هي معظم ما يفصل المختبِر السريع عن المختبِر الدقيق.
-
3
The kinds of testing, and which are yours / أنواع الاختبار، وأيّها لك
The vocabulary is large and most of it is other people's job. Here is the map, so you can read a job advert or a test plan and know which words describe work you will actually be doing.
المفردات كثيرة ومعظمها عمل غيرك. وهذه هي الخريطة، لتقرأ إعلان وظيفة أو خطة اختبار فتعرف أيّ الكلمات تصف عملًا ستؤديه أنت فعلًا.
2 Test casesحالات الاختبار 4
-
4
What a test case is / ما حالة الاختبار
A test case is not a note to yourself. It is an instruction precise enough that a stranger can follow it, six months from now, and know without asking whether the result was right.
حالة الاختبار ليست ملاحظة تكتبها لنفسك. بل تعليمة دقيقة بما يكفي أن يتبعها غريب بعد ستة أشهر فيعرف دون أن يسأل أحدًا: أكانت النتيجة صحيحة أم لا.
-
5
Writing steps somebody else can follow / كتابة خطوات يستطيع غيرك اتّباعها
The gap between a step you understand and a step anyone understands is where test cases quietly rot. Here is how to close it, and how to tell when you have not.
الفجوة بين خطوة تفهمها أنت وخطوة يفهمها أي أحد هي حيث تتعفّن حالات الاختبار بهدوء. وهذه كيفية إغلاقها، وكيف تعرف أنك لم تغلقها.
-
6
Choosing the data / اختيار البيانات
Most testers type
asdasdand move on. The data you choose is the test — the steps are only how you deliver it — and there are a handful of values that break more software than everything else combined.معظم المختبِرين يكتبون
asdasdويمضون. والبيانات التي تختارها هي الاختبار — وما الخطوات إلا كيفية تسليمها — وثمّة قيم قليلة تكسر من البرمجيات أكثر مما يكسره كل ما عداها مجتمعًا. -
7
Keeping a suite alive / إبقاء مجموعة الاختبارات حيّة
A hundred test cases nobody runs is not an asset, it is a filing cabinet. What makes a suite useful is the order you can pull cases out of it in, and the discipline to delete the ones that have stopped earning their place.
مئة حالة اختبار لا يجريها أحد ليست أصلًا، بل خزانة ملفات. وما يجعل المجموعة نافعة هو الترتيب الذي تستطيع سحب الحالات به منها، والانضباط في حذف ما لم يعد يستحق مكانه.
3 Finding the bugsالعثور على الأخطاء 4
-
8
Exploring on purpose / الاستكشاف عن قصد
Testing without a script is not testing without a plan. Exploratory testing is a technique with a charter, a clock and notes — and it finds the bugs your written cases were never going to, because your written cases only know what you already suspected.
الاختبار بلا نص مكتوب ليس اختبارًا بلا خطة. فالاختبار الاستكشافي أسلوب له تكليف وساعة وملاحظات — وهو يجد الأخطاء التي ما كانت حالاتك المكتوبة لتجدها، لأن حالاتك المكتوبة لا تعرف إلا ما اشتبهت فيه أصلًا.
-
9
Boundaries, where the bugs are / الحدود، حيث تكمن الأخطاء
If you only learn one technique from this course, learn this one. Almost every rule in software is a comparison, every comparison has an edge, and the edge is where somebody wrote
<when they meant<=.إن لم تتعلّم من هذه الدورة إلا أسلوبًا واحدًا فتعلّم هذا. فكل قاعدة في البرمجيات تقريبًا مقارنة، ولكل مقارنة حافة، والحافة هي حيث كتب أحدهم
<وهو يقصد<=. -
10
Testing one thing instead of a thousand / اختبار شيء واحد بدل ألف
If 5, 6, 7 and 8 all travel the same road through the code, testing all four is testing once and paying four times. Partitioning is how you find which values are genuinely different — and it is what makes a small suite defensible rather than merely small.
إذا كانت 5 و6 و7 و8 تسلك الطريق نفسه في الكود، فاختبارها كلها اختبارٌ مرة ودفعٌ أربع مرات. والتقسيم هو كيف تجد القيم المختلفة حقًا — وهو ما يجعل المجموعة الصغيرة قابلة للدفاع عنها لا صغيرة فحسب.
-
11
Testing what should not be allowed / اختبار ما لا ينبغي السماح به
Every rule in a product is a promise to refuse something. Those refusals are written last, tested least, and are where the serious problems hide — because a system that fails to refuse does not look broken, it looks generous.
كل قاعدة في المنتج وعدٌ برفض شيء. وتلك الرفوض تُكتب آخرًا وتُختبر أقل شيء، وفيها تختبئ المشكلات الجادّة — لأن النظام الذي يعجز عن الرفض لا يبدو معطوبًا، بل يبدو كريمًا.
4 Reporting a bugالإبلاغ عن الخطأ 3
-
12
A bug report is a request for someone's time / تقرير الخطأ طلبٌ لوقت أحدهم
The bug you found is worth nothing until somebody fixes it, and whether they fix it depends almost entirely on how much work your report saved them. This is the lesson that decides whether you are useful to a team.
الخطأ الذي وجدته لا يساوي شيئًا حتى يصلحه أحد، وأن يصلحه يتوقف كلَّه تقريبًا على مقدار ما وفّره تقريرك عليه من عمل. وهذا هو الدرس الذي يقرر: أنافع أنت لفريق أم لا؟
-
13
Steps to reproduce / خطوات إعادة الإنتاج
A bug that cannot be reproduced gets closed, however real it was. Reproducing is a skill with a method: find the shortest path back to the failure, from a starting point anyone can reach.
الخطأ الذي لا يمكن إعادة إنتاجه يُغلق، مهما كان حقيقيًا. وإعادة الإنتاج مهارة لها منهج: أن تجد أقصر طريق يعود إلى الإخفاق، من نقطة بداية يبلغها أي أحد.
-
14
Severity and priority are not the same thing / الخطورة والأولوية ليستا الشيء نفسه
One says how bad the effect is. The other says how soon it should be fixed. They are set by different people for different reasons, and confusing them is why every bug in some projects is marked critical.
إحداهما تقول كم الأثر سيئ. والأخرى تقول متى ينبغي إصلاحه. ويحدّدهما أشخاص مختلفون لأسباب مختلفة، والخلط بينهما هو سبب وسم كل خطأ في بعض المشاريع بأنه حرج.
5 In a real projectفي مشروع حقيقي 2
-
15
After the fix / بعد الإصلاح
A fix is new code, and new code is where new bugs are. Checking the fix worked is the easy half; working out what else that change could have broken is the half that keeps products stable.
الإصلاح كود جديد، والكود الجديد موطن الأخطاء الجديدة. والتأكد من نجاح الإصلاح هو النصف السهل؛ أما استنتاج ما الذي قد يكون ذلك التغيير قد كسره أيضًا فهو النصف الذي يُبقي المنتجات مستقرة.
-
16
Project: test a real feature properly / مشروع: اختبر ميزة حقيقية كما ينبغي
Everything in this course, once, on one real feature: partition it, find its boundaries, explore it, report what you find, and say what you did not cover. This is the piece of work you can show someone.
كل ما في هذه الدورة، مرة واحدة، على ميزة حقيقية واحدة: قسّمها، وجد حدودها، واستكشفها، وأبلغ عمّا تجد، وقل ما لم تغطّه. وهذا هو العمل الذي تستطيع أن تُري أحدًا إياه.