• هي عبارة عن sequential model
  • هي بتحاول تحل المشاكل اللي شوفناها في ال Waterfall Model فمشكلة من المشاكل مثلًا كانت الـ testing بيتأخر في ال lifecycle

Requirements

اتقسمت لنوعين ممكن نسميهم Business and technical

  • BRD Business requirements document
  • SRS Software requirements specification

BRD

  • high-level requirements talks about what are we developing?
    • Example: I need to develop an application that enables the user to sign up, order food, gives reviews, pay
  • Caring about What part
  • Caring about the client himself or the end customer, What will we deliver to him?
  • Done by the business analyst

SRS

  • Caring about the How part, How will we develop this functionality?
  • Caring about the development team
  • Done by the system analyst or the business analyst

Design

اتقسم جزئين Architecture and Detailed

Architectural

بتككلم عن الصورة العامة للمشروع وانك مثلًا لما تعمل sign in ايه اللي يظهرلك وكدا

Detailed

The detailed design is talking about each component or module on its own

Testing

  • We have 4 levels of testing to solve waterfall disadvantages.
  • Unit testing, Integration Testing, System Testing, Acceptance Testing

We will explain it in more details at Test levels (Draw)

Unit Testing

  • You test each component or unit individually
  • Anything that can be tested separately should be tested on its own
  • It’s the responsibility of the developer

Integration Testing

  • You test the integration between different components or units
  • It’s the responsibility of the developer

System Testing

  • You begin on testing the whole system
  • Most of the software tester tasks are in system testing

Acceptance Testing

  • It’s the last step of testing that ensures that the application is ready for deployment or for usage by the end user
  • It’s the responsibility of the client or the product owner or the business analyst

What is the job for tester?

  • لما بتبدأ تكتب الـrequirements في الأول خالص الـtester بيبدأ يراجع الـrequirements دي
    • ويتأكد ان مفيش ambiguity , contradiction تناقض ودا بنسميه static testing
    • وبنبدأ نعمل من خلالها ال Test Scenario أو Test Case وهنستخدمها لما البرنامج يبقا جاهز لمرحلة الـacceptance testing
  • عندنا نوعين من الـtesting اللي هما الـ static and dynamic
  • وبعدها برضو بتعمل review للـ SRS لما بيتكتب وتعمل برضو Test Scenario أو Test Case ودي اللي هنستخدمها في الـ system testing
  • وبتكمل على كدا انك بتشوف المرحلة اللي انت فيها وتراجع الشغل اللي اتعمل وتعمل test scenarios and test cases
  • في الـ SW testing عندنا حاجة اسمها analysis and design وحاجة اسمها execution بالنسبة للـ testing
  • اللي على شمال ال V هو دا analysis and design ان الحاجة بتتعمل وبتجيب أفكار والحاجات اللي هيتعملها testing وبنقول عليها Verification
    • Verification is the process of checking that software achieves its goal without any bugs.
    • Verification is simply known as Static Testing.
  • اللي عاليمين هي execution اني بدي input وبيطلعلي output وخد بالك دي بتتعمل من تحت لفوق انما التانية من فوق لتحت بالترتيب وبنقول عليها Validation
    • It is a validation of actual and expected products. Validation is simply known as Dynamic Testing.

Disadvantage

  • انه عبارة عن sequential model والعميل او الـ end user يقدر يشوف البرنامج مرة واحدة وممكن يبقا الوقت دا متأخر اننا نعمل أي تعديل
  • ولو العميل طلب تعديل بنبدأ تاني من المرحلة اللي باظت فيها