SlideShare a Scribd company logo
1 of 35
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e
(McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 1
Chapter 22
■ Software Testing Strategies
Slide Set to accompany
Software Engineering: A Practitioner’s Approach, 8/e
by Roger S. Pressman and Bruce R. Maxim
Slides copyright © 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman
For non-profit educational use only
May be reproduced ONLY for student use at the university level when used in conjunction
with Software Engineering: A Practitioner's Approach, 8/e. Any other reproduction or use is
prohibited without the express written permission of the author.
All copyright information MUST appear if these slides are posted on a website for student
use.
‫االختبار‬ ‫استراتيجيات‬ ‫برنامج‬
2
Software Testing
Testing is the process of exercising a program with
the specific intent of finding errors prior to delivery
to the end user.
‫المستخدم‬ ‫إلى‬ ‫تسليمها‬ ‫قبل‬ ‫األخطاء‬ ‫إليجاد‬ ‫محددة‬ ‫نية‬ ‫مع‬ ‫برنامج‬ ‫ممارسة‬ ‫عملية‬ ‫هو‬ ‫االختبار‬
‫النهائي‬
3
What Testing Shows
errors
requirements conformance
performance
an indication
of quality
‫اختبار‬ ‫يظهر‬ ‫ما‬
errors ‫أخطاء‬
requirements conformance ‫التوافق‬ ‫متطلبات‬
performance ‫أداء‬
an indication ‫مؤشر‬
of quality ‫الجودة‬
Strategic Approach ‫االستراتيجي‬ ‫النهج‬
■ To perform effective testing, you should
conduct effective technical reviews. By doing
this, many errors will be eliminated before
testing commences.
■ Testing begins at the component level and
works "outward" toward the integration of the
entire computer-based system.
■ Different testing techniques are appropriate
for different software engineering approaches
and at different points in time.
■ Testing is conducted by the developer of the
software and (for large projects) an
independent test group.
■ Testing and debugging are different activities,
but debugging must be accommodated in
any testing strategy.
•
،‫الفعلي‬ ‫االختبار‬ ‫ألداء‬
‫مراجعات‬ ‫إجراء‬ ‫يجب‬
‫الفعالة‬ ‫التقنية‬
.
‫وبذلك‬
،
‫العد‬ ‫على‬ ‫القضاء‬ ‫سيتم‬
‫يد‬
‫بدء‬ ‫قبل‬ ‫األخطاء‬ ‫من‬
‫االختبار‬
.
•
‫مست‬ ‫على‬ ‫االختبار‬ ‫يبدأ‬
‫وى‬
‫وتعمل‬ ،‫العنصر‬
"
‫الخارج‬
"
‫القائم‬ ‫النظام‬ ‫تكامل‬ ‫نحو‬
‫بالكام‬ ‫الكمبيوتر‬ ‫على‬
‫ل‬
.
•
‫المخت‬ ‫االختبار‬ ‫تقنيات‬
‫لفة‬
‫النه‬ ‫لمختلف‬ ‫مناسبة‬ ‫هي‬
‫ج‬
‫وعند‬ ‫البرمجيات‬ ‫هندسة‬
‫الوقت‬ ‫في‬ ‫مختلفة‬ ‫نقاط‬
‫المناسب‬
.
•
‫قبل‬ ‫من‬ ‫اختبار‬ ‫ويجري‬
‫البرنامج‬ ‫مطور‬
‫و‬
(
‫الكبيرة‬ ‫للمشاريع‬
)
‫مستقلة‬ ‫اختبار‬ ‫مجموعة‬
.
•
‫والتصحيح‬ ‫االختبار‬
‫ال‬ ‫ولكن‬ ،‫مختلفة‬ ‫وأنشطة‬
‫التصح‬ ‫استيعاب‬ ‫من‬ ‫بد‬
‫يح‬
‫استراتيجية‬ ‫أي‬ ‫في‬
‫االختبار‬
.
5
V & V
■ Verification refers to the set of tasks that ensure that
software correctly implements a specific function.
■ Validation refers to a different set of tasks that ensure that
the software that has been built is traceable to customer
requirements. Boehm [Boe81] states this another way:
■ Verification: "Are we building the product right?"
■ Validation: "Are we building the right product?"
‫التحقق‬
.
‫صحيح‬ ‫بشكل‬ ‫محددة‬ ‫وظيفة‬ ‫ينفذ‬ ‫البرنامج‬ ‫هذا‬ ‫تضمن‬ ‫التي‬ ‫المهام‬ ‫من‬ ‫مجموعة‬ ‫إلى‬ ‫يشير‬
.
‫صحة‬ ‫من‬ ‫التحقق‬
‫العم‬ ‫لمتطلبات‬ ‫عزوها‬ ‫يمكن‬ ‫بناؤها‬ ‫تم‬ ‫التي‬ ‫البرامج‬ ‫أن‬ ‫تضمن‬ ‫التي‬ ‫المهام‬ ‫من‬ ‫مختلفة‬ ‫مجموعة‬ ‫إلى‬ ‫يشير‬
‫الء‬
.
‫بوهم‬
[
Boe81]
‫أخرى‬ ‫طريقة‬ ‫هذه‬ ‫دول‬
:
‫التحقق‬
:
"
‫المنتج؟‬ ‫حق‬ ‫على‬ ‫بناء‬ ‫نحن‬ ‫هل‬
"
‫التحقق‬
‫الصحة‬ ‫من‬
:
"
‫المناسب؟‬ ‫المنتج‬ ‫على‬ ‫بناء‬ ‫نحن‬ ‫هل‬
"
Software testing is part of group of activities called
verification and validation that are involved in software
quality
Verification (Are the algorithms coded correctly?)
The set of activities that ensure that software correctly
implements a specific function or algorithm
Verification and Validation
Who Tests the Software?
developer independent tester
Understands the system
but, will test "gently"
and, is driven by
"delivery"
Must learn about the system,
but, will attempt to break it
and, is driven by quality
‫اختبارات‬ ‫يعملون‬ ‫الذين‬ ‫من‬
‫البرنامج؟‬
‫النظام‬ ‫يدرك‬
‫واختبار‬ ،‫ولكن‬
"
‫بلطف‬
"
‫يقودها‬ ،‫و‬
"
‫التسليم‬
"
‫مستقل‬ ‫اختبار‬
‫مطور‬
‫تعلم‬ ‫أن‬ ‫يجب‬
،‫النظام‬ ‫حول‬
‫ومحاولة‬ ،‫ولكن‬
‫كسرها‬
‫الجودة‬ ‫يقودها‬ ،‫و‬
7
Testing Strategy
‫االختبار‬ ‫استراتيجية‬
System engineering
‫هندسة‬
‫النظم‬
Analysis modeling
‫نماذج‬
‫تحليل‬
Design modeling
‫التصميم‬ ‫نماذج‬
Code generation
‫رمز‬
‫جيل‬
Unit test
‫اختبار‬
‫وحدة‬
Integration test
‫اختبار‬
‫التكامل‬
Validation test
‫صحة‬ ‫من‬ ‫التحقق‬ ‫اختبار‬
System test
‫النظام‬ ‫اختبار‬
Code generation
Design modeling
Analysis modeling
System Engineering
Unit Testing
Integration Testing
Validation Testing
System Testing
Testing Strategy
■ We begin by ‘testing-in-the-small’ and move toward ‘testing-
in-the-large’
■ For conventional software
■ The module (component) is our initial focus
■ Integration of modules
■ For OO software
■ our focus when “testing in the small” changes from an individual
module (the conventional view) to an OO class that encompasses
attributes and operations and implies communication and
collaboration
‫االختبار‬ ‫استراتيجية‬
‫نبدأ‬
"
‫صغيرة‬ ‫داخل‬ ‫في‬ ‫اختبار‬
'
‫نحو‬ ‫والتحرك‬
"
‫كبيرة‬ ‫داخل‬ ‫في‬ ‫اختبار‬
"
‫للحصول‬
‫التقليدي‬ ‫البرنامج‬ ‫على‬
‫وحدة‬
(
‫عنصر‬
)
‫األساسي‬ ‫تركيزنا‬ ‫هو‬
‫دمج‬
‫يتبع‬ ‫وحدات‬
‫للحصول‬
‫البرنامج‬ ‫على‬
OO
‫عند‬ ‫تركيزنا‬
"
‫الصغيرة‬ ‫في‬ ‫اختبار‬
"
‫فردية‬ ‫وحدة‬ ‫من‬ ‫التغييرات‬
(
‫التقليدية‬ ‫النظر‬ ‫وجهة‬
)
‫الدرجة‬ ‫إلى‬
OO
‫والعمليات‬ ‫الصفات‬ ‫تشمل‬ ‫التي‬
‫والتعاون‬ ‫التواصل‬ ‫ويعني‬
Strategic Issues ‫القضايا‬
‫االستراتيجية‬
■ Specify product requirements in a quantifiable manner long before testing
commences.
■ State testing objectives explicitly.
■ Understand the users of the software and develop a profile for each user
category.
■ Develop a testing plan that emphasizes “rapid cycle testing.”
■ Build “robust” software that is designed to test itself
■ Use effective technical reviews as a filter prior to testing
■ Conduct technical reviews to assess the test strategy and test cases
themselves.
■ Develop a continuous improvement approach for the testing process.
•
‫االختبار‬ ‫يبدأ‬ ‫طويلة‬ ‫فترة‬ ‫قبل‬ ‫الكمي‬ ‫للقياس‬ ‫قابلة‬ ‫بطريقة‬ ‫المنتج‬ ‫متطلبات‬ ‫تحديد‬
.
•
‫صريح‬ ‫بشكل‬ ‫للدولة‬ ‫اختبار‬ ‫أهداف‬
.
•
‫المستخدم‬ ‫فئة‬ ‫لكل‬ ‫صورة‬ ‫ووضع‬ ‫للبرنامج‬ ‫المستخدمين‬ ‫فهم‬
.
•
‫تؤكد‬ ‫التي‬ ‫االختبارات‬ ‫خطة‬ ‫وضع‬
"
‫السريع‬ ‫دورة‬ ‫اختبار‬
."
•
‫بناء‬
"
‫قوي‬
"
‫نفسه‬ ‫الختبار‬ ‫تصميمها‬ ‫تم‬ ‫التي‬ ‫البرامج‬
•
‫االختبار‬ ‫قبل‬ ‫تصفية‬ ‫كعامل‬ ‫الفعالة‬ ‫الفنية‬ ‫االستعراضات‬ ‫استخدام‬
•
‫أنفسهم‬ ‫االختبار‬ ‫وحاالت‬ ‫اختبار‬ ‫استراتيجية‬ ‫لتقييم‬ ‫فنية‬ ‫استعراضات‬ ‫إجراء‬
.
•
‫االختبار‬ ‫لعملية‬ ‫المستمر‬ ‫التحسين‬ ‫نهج‬ ‫وضع‬
.
10
Unit Testing
module
to be
tested
test cases
results
software
engineer
‫البرمجيات‬
‫مهندس‬
‫وحدة‬
‫تكون‬ ‫أن‬
‫اختبار‬
‫النتائج‬
‫االختبار‬ ‫حاالت‬
11
Unit Testing ‫اختبار‬ ‫وحدة‬
interface
local data structures
boundary conditions
independent paths
error handling paths
module
to be
tested
test
cases
‫البيني‬ ‫السطح‬
‫المحلية‬ ‫البيانات‬ ‫هياكل‬
‫الحدود‬ ‫شروط‬
‫مستقلة‬ ‫مسارات‬
‫األخطاء‬ ‫معالجة‬ ‫مسارات‬
‫وحدة‬
‫أن‬
‫تكون‬
‫اختبار‬
‫االختبار‬ ‫حاالت‬
12
Unit Test Environment ‫البيئة‬ ‫وحدة‬ ‫اختبار‬
Module
stub stub
driver
RESULTS
interface
local data structures
boundary conditions
independent paths
error handling paths
test
cases
‫المحلية‬ ‫البيانات‬ ‫هياكل‬
‫الحدود‬ ‫شروط‬
‫مستقلة‬ ‫مسارات‬
‫األخطاء‬ ‫معالجة‬ ‫مسارات‬
‫الواجهة‬
‫الحركة‬ ‫ناقل‬
13
Integration Testing Strategies
Options:
• the “big bang” approach
• an incremental construction strategy
‫التكامل‬ ‫اختبار‬ ‫استراتيجيات‬
‫خيارات‬
:
•
‫نهج‬
"
‫الكبير‬ ‫االنفجار‬
"
•
‫اإلضافية‬ ‫البناء‬ ‫استراتيجية‬
14
Top Down Integration
top module is tested with
stubs
stubs are replaced one at
a time, "depth first"
as new modules are integrated,
some subset of tests is re-run
A
B
C
D E
F G
‫أسفل‬ ‫إلى‬ ‫أعلى‬ ‫تكامل‬
‫أعلى‬ ‫مع‬ ‫وحدة‬ ‫اختبار‬ ‫يتم‬
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e
(McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 15
Bottom-Up Integration
drivers are replaced one at a
time, "depth first"
worker modules are grouped into
builds and integrated
A
B
C
D E
F G
cluster
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e
(McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 16
Sandwich Testing
Top modules are
tested with stubs
Worker modules are grouped into
builds and integrated
A
B
C
D E
F G
cluster
17
Regression Testing
■ Regression testing is the re-execution of some subset of tests that have
already been conducted to ensure that changes have not propagated
unintended side effects
■ Whenever software is corrected, some aspect of the software
configuration (the program, its documentation, or the data that support it)
is changed.
■ Regression testing helps to ensure that changes (due to testing or for
other reasons) do not introduce unintended behavior or additional errors.
■ Regression testing may be conducted manually, by re-executing a
subset of all test cases or using automated capture/playback tools.
‫االنحدار‬ ‫اختبار‬
•
‫االنحدار‬ ‫اختبار‬
‫ا‬ ‫أن‬ ‫لضمان‬ ‫بالفعل‬ ‫أجريت‬ ‫التي‬ ‫االختبارات‬ ‫من‬ ‫فرعية‬ ‫لبعض‬ ‫التنفيذ‬ ‫إعادة‬ ‫هو‬
‫لم‬ ‫لتغييرات‬
‫المقصودة‬ ‫غير‬ ‫الجانبية‬ ‫اآلثار‬ ‫نشر‬
•
‫التكوين‬ ‫برامج‬ ‫جوانب‬ ‫بعض‬ ‫تغيير‬ ‫يتم‬ ،‫البرنامج‬ ‫تصحيح‬ ‫يتم‬ ‫كلما‬
(
‫ا‬ ‫أو‬ ،‫وثائقها‬ ،‫البرنامج‬
‫تدعم‬ ‫التي‬ ‫لبيانات‬
‫ذلك‬
.)
•
‫التغييرات‬ ‫أن‬ ‫ضمان‬ ‫على‬ ‫يساعد‬ ‫االنحدار‬ ‫اختبار‬
(
‫أخرى‬ ‫ألسباب‬ ‫أو‬ ‫اختبار‬ ‫بسبب‬
)
‫الس‬ ‫يعرض‬ ‫ال‬
‫غير‬ ‫لوك‬
‫إضافية‬ ‫أخطاء‬ ‫أو‬ ‫مقصودة‬
.
•
‫تنفيذ‬ ‫إعادة‬ ‫خالل‬ ‫من‬ ،‫يدويا‬ ‫االنحدار‬ ‫اختبار‬ ‫إجراء‬ ‫ويمكن‬
-
‫أ‬ ‫االختبار‬ ‫حاالت‬ ‫جميع‬ ‫من‬ ‫فرعية‬ ‫مجموعة‬
‫و‬
‫على‬ ‫القبض‬ ‫أدوات‬ ‫باستخدام‬
/
‫اآللي‬ ‫تشغيل‬
.
18
Smoke Testing
■ A common approach for creating “daily builds” for product software
■ Smoke testing steps:
■ Software components that have been translated into code are integrated into
a “build.”
• A build includes all data files, libraries, reusable modules, and engineered
components that are required to implement one or more product functions.
■ A series of tests is designed to expose errors that will keep the build from
properly performing its function.
• The intent should be to uncover “show stopper” errors that have the highest
likelihood of throwing the software project behind schedule.
■ The build is integrated with other builds and the entire product (in its current
form) is smoke tested daily.
• The integration approach may be top down or bottom up.
•
‫نهج‬
‫إلنشاء‬ ‫مشترك‬
"
‫يوميا‬ ‫يبني‬
"
‫المنتج‬ ‫للبرمجيات‬
•
‫الخطوات‬ ‫اختبار‬ ‫التدخين‬
:
•
‫إلى‬ ‫رمز‬ ‫إلى‬ ‫ترجمت‬ ‫التي‬ ‫البرامج‬ ‫مكونات‬ ‫تتكامل‬
"
‫بناء‬
."
•
‫لتن‬ ‫المطلوبة‬ ‫الهندسية‬ ‫والمكونات‬ ،‫االستخدام‬ ‫إلعادة‬ ‫قابلة‬ ‫وحدات‬ ،‫والمكتبات‬ ‫البيانات‬ ‫ملفات‬ ‫كافة‬ ‫بناء‬ ‫ويشمل‬
‫أكثر‬ ‫أو‬ ‫واحد‬ ‫فيذ‬
‫المنتج‬ ‫الوظائف‬ ‫من‬
.
•
‫صح‬ ‫بشكل‬ ‫وظيفتها‬ ‫أداء‬ ‫من‬ ‫البناء‬ ‫على‬ ‫الحفاظ‬ ‫شأنها‬ ‫من‬ ‫التي‬ ‫األخطاء‬ ‫لكشف‬ ‫االختبارات‬ ‫من‬ ‫سلسلة‬ ‫تصميم‬ ‫تم‬
‫يح‬
.
•
‫األخطاء‬ ‫عن‬ ‫للكشف‬ ‫القصد‬ ‫يكون‬ ‫أن‬ ‫وينبغي‬
"
‫سدادة‬ ‫عرض‬
"
‫ال‬ ‫وراء‬ ‫البرمجيات‬ ‫مشروع‬ ‫رمي‬ ‫احتمال‬ ‫أعلى‬ ‫لديها‬ ‫التي‬
‫جدول‬
‫الزمني‬
.
•
‫كامل‬ ‫والمنتج‬ ‫يبني‬ ‫بناء‬ ‫اآلخر‬ ‫مع‬ ‫ويتكامل‬
(
‫الحالي‬ ‫بشكله‬
)
‫يوميا‬ ‫الدخان‬ ‫اختبار‬ ‫هو‬
.
•
‫أعلى‬ ‫إلى‬ ‫أسفل‬ ‫من‬ ‫أو‬ ‫أسفل‬ ‫إلى‬ ‫أعلى‬ ‫التكامل‬ ‫نهج‬ ‫يكون‬ ‫قد‬
.
19
General Testing Criteria
■ Interface integrity – internal and external module interfaces are tested as
each module or cluster is added to the software
■ Functional validity – test to uncover functional defects in the software
■ Information content – test for errors in local or global data structures
■ Performance – verify specified performance bounds are tested
‫عامة‬ ‫اختبار‬ ‫معايير‬
‫واجهة‬
‫سالمة‬
-
‫يضاف‬
‫البرمجيات‬ ‫من‬ ‫مجموعة‬ ‫أو‬ ‫وحدة‬ ‫كل‬ ‫أن‬ ‫حيث‬ ‫وخارجية‬ ‫داخلية‬ ‫وحدة‬ ‫واجهات‬ ‫اختبار‬ ‫يتم‬
-
‫وظيفي‬ ‫صحة‬
-
‫البرنامج‬ ‫في‬ ‫وظيفية‬ ‫عيوب‬ ‫عن‬ ‫للكشف‬ ‫اختبار‬
‫المعلومات‬ ‫محتوى‬
-
‫العالمية‬ ‫أو‬ ‫المحلية‬ ‫البيانات‬ ‫هياكل‬ ‫في‬ ‫األخطاء‬ ‫عن‬ ‫اختبار‬
‫محددة‬ ‫أداء‬ ‫حدود‬ ‫من‬ ‫التحقق‬ ‫اختبار‬ ‫ويتم‬
-
‫األداء‬
20
Object-Oriented Testing ‫الشيئية‬ ‫اختبار‬
■ begins by evaluating the correctness and
consistency of the analysis and design models
■ testing strategy changes
■ the concept of the ‘unit’ broadens due to encapsulation
■ integration focuses on classes and their execution
across a ‘thread’ or in the context of a usage scenario
■ validation uses conventional black box methods
■ test case design draws on conventional methods,
but also encompasses special features
•
‫النماذج‬ ‫وتصميم‬ ‫تحليل‬ ‫واتساق‬ ‫صحة‬ ‫تقييم‬ ‫يبدأ‬
•
‫اختبار‬ ‫استراتيجية‬ ‫تغييرات‬
•
‫مفهوم‬
'
‫وحدة‬
'
‫التغليف‬ ‫أن‬ ‫المقرر‬ ‫يوسع‬
•
‫عبر‬ ‫وتنفيذها‬ ‫الطبقات‬ ‫على‬ ‫التكامل‬ ‫ويركز‬
'
‫الموضوع‬
'
‫االستخدام‬ ‫سيناريو‬ ‫سياق‬ ‫في‬ ‫أو‬
•
‫التقليدية‬ ‫األسود‬ ‫الصندوق‬ ‫صحة‬ ‫من‬ ‫التحقق‬ ‫أساليب‬ ‫يستخدم‬
•
‫خاصة‬ ‫ميزات‬ ‫أيضا‬ ‫تشمل‬ ‫ولكنها‬ ،‫التقليدية‬ ‫األساليب‬ ‫على‬ ‫يرسم‬ ‫اختبار‬ ‫حالة‬ ‫تصميم‬
21
Broadening the View of “Testing”
It can be argued that the review of OO analysis and design models
is especially useful because the same semantic constructs (e.g.,
classes, attributes, operations, messages) appear at the analysis,
design, and code level. Therefore, a problem in the definition of
class attributes that is uncovered during analysis will circumvent
side effects that might occur if the problem were not discovered
until design or code (or even the next iteration of analysis).
‫نظر‬ ‫وجهة‬ ‫توسيع‬
"
‫اختبار‬
"
‫تحليل‬ ‫استعراض‬ ‫أن‬ ‫القول‬ ‫ويمكن‬
OO
‫الداللية‬ ‫البنى‬ ‫نفس‬ ‫ألن‬ ‫خصوصا‬ ‫مفيد‬ ‫تصميم‬ ‫ونماذج‬
(
‫سبي‬ ‫على‬
‫ل‬
‫الرسائل‬ ،‫والعمليات‬ ،‫والصفات‬ ،‫والطبقات‬ ،‫المثال‬
)
‫التع‬ ‫ومستوى‬ ،‫والتصميم‬ ‫التحليل‬ ‫في‬ ‫تظهر‬
‫البرمجية‬ ‫ليمات‬
.
‫ال‬ ‫اآلثار‬ ‫وااللتفاف‬ ‫تحليل‬ ‫خالل‬ ‫كشفت‬ ‫التي‬ ‫الصفات‬ ‫الطبقة‬ ‫تعريف‬ ‫في‬ ‫المشكلة‬ ‫فإن‬ ،‫ولذلك‬
‫تحدث‬ ‫قد‬ ‫التي‬ ‫جانبية‬
‫رمز‬ ‫أو‬ ‫تصميم‬ ‫حتى‬ ‫المشكلة‬ ‫اكتشاف‬ ‫يتم‬ ‫لم‬ ‫إذا‬
(
‫التحليل‬ ‫من‬ ‫التالي‬ ‫التكرار‬ ‫حتى‬ ‫أو‬
.)
22
Testing the CRC Model
1. Revisit the CRC model and the object-relationship model.
2. Inspect the description of each CRC index card to determine if a delegated
responsibility is part of the collaborator’s definition.
3. Invert the connection to ensure that each collaborator that is asked for service
is receiving requests from a reasonable source.
4. Using the inverted connections examined in step 3, determine whether other
classes might be required or whether responsibilities are properly grouped
among the classes.
5. Determine whether widely requested responsibilities might be combined into
a single responsibility.
6. Steps 1 to 5 are applied iteratively to each class and through each evolution
of the analysis model.
‫نموذج‬ ‫اختبار‬CRC
1
.
‫العالقة‬ ‫كائن‬ ‫ونموذج‬ ‫الطفل‬ ‫حقوق‬ ‫اتفاقية‬ ‫نموذج‬ ‫في‬ ‫النظر‬ ‫إعادة‬
.
2
.
‫القياسي‬ ‫الرقم‬ ‫بطاقة‬ ‫كل‬ ‫وصف‬ ‫في‬ ‫فحص‬
CRC
‫و‬ ‫متعاون‬ ‫التعريف‬ ‫من‬ ‫جزء‬ ‫تفويض‬ ‫مسؤولية‬ ‫إذا‬ ‫ما‬ ‫لتحديد‬
.
3
.
‫معقول‬ ‫مصدر‬ ‫من‬ ‫طلبات‬ ‫يتلقى‬ ‫للخدمة‬ ‫يطلب‬ ‫أن‬ ‫متعاون‬ ‫كل‬ ‫أن‬ ‫لضمان‬ ‫االتصال‬ ‫عكس‬
.
4
.
‫الخطوة‬ ‫في‬ ‫درست‬ ‫مقلوب‬ ‫االتصاالت‬ ‫طريق‬ ‫عن‬
3
‫المسؤوليا‬ ‫تجميع‬ ‫يتم‬ ‫كان‬ ‫إذا‬ ‫ما‬ ‫أو‬ ‫مطلوبة‬ ‫تكون‬ ‫قد‬ ‫األخرى‬ ‫الطبقات‬ ‫كانت‬ ‫إذا‬ ‫ما‬ ‫تحديد‬ ،
‫ت‬
‫الطبقات‬ ‫بين‬ ‫صحيح‬ ‫بشكل‬
.
5
.
‫واحدة‬ ‫مسؤولية‬ ‫دمجها‬ ‫يمكن‬ ‫واسع‬ ‫نطاق‬ ‫على‬ ‫المطلوبة‬ ‫المسؤوليات‬ ‫كانت‬ ‫إذا‬ ‫ما‬ ‫تحديد‬
.
6
.
‫خطوات‬
1
-
5
‫التحليل‬ ‫نموذج‬ ‫تطور‬ ‫كل‬ ‫وخالل‬ ‫فئة‬ ‫لكل‬ ‫متكرر‬ ‫بشكل‬ ‫تطبيقها‬ ‫يتم‬
.
OO Testing Strategy
■ class testing is the equivalent of unit testing
■ operations within the class are tested
■ the state behavior of the class is examined
■ integration applied three different strategies
■ thread-based testing—integrates the set of classes required to
respond to one input or event
■ use-based testing—integrates the set of classes required to respond
to one use case
■ cluster testing—integrates the set of classes required to demonstrate
one collaboration
‫وحدة‬ ‫اختبار‬ ‫يعادل‬ ‫ما‬ ‫هو‬ ‫الطبقة‬ ‫اختبار‬
‫الطبقة‬ ‫داخل‬ ‫عمليات‬ ‫اختبار‬ ‫ويتم‬
‫الطبقة‬ ‫من‬ ‫الدولة‬ ‫سلوك‬ ‫فحص‬ ‫يتم‬
‫مختلفة‬ ‫استراتيجيات‬ ‫ثالث‬ ‫تطبيق‬ ‫دمج‬
‫الحدث‬ ‫أو‬ ‫واحد‬ ‫مدخل‬ ‫على‬ ‫للرد‬ ‫المطلوبة‬ ‫الطبقات‬ ‫من‬ ‫مجموعة‬ ‫يدمج‬ ‫االختبار‬ ‫موضوع‬ ‫على‬ ‫القائم‬
‫واحد‬ ‫استخدام‬ ‫حالة‬ ‫على‬ ‫للرد‬ ‫المطلوبة‬ ‫الطبقات‬ ‫من‬ ‫مجموعة‬ ‫يدمج‬ ‫االختبار‬ ‫المستندة‬ ‫استخدام‬
‫احدة‬ ‫التعاون‬ ‫إلثبات‬ ‫المطلوبة‬ ‫الطبقات‬ ‫من‬ ‫مجموعة‬ ‫يدمج‬ ‫االختبار‬ ‫مجموعة‬
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e
(McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 24
WebApp Testing - I
■ The content model for the WebApp is reviewed to
uncover errors.
■ The interface model is reviewed to ensure that all
use cases can be accommodated.
■ The design model for the WebApp is reviewed to
uncover navigation errors.
■ The user interface is tested to uncover errors in
presentation and/or navigation mechanics.
■ Each functional component is unit tested.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e
(McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 25
WebApp Testing - II
■ Navigation throughout the architecture is tested.
■ The WebApp is implemented in a variety of different
environmental configurations and is tested for compatibility
with each configuration.
■ Security tests are conducted in an attempt to exploit
vulnerabilities in the WebApp or within its environment.
■ Performance tests are conducted.
■ The WebApp is tested by a controlled and monitored
population of end-users. The results of their interaction with the
system are evaluated for content and navigation errors,
usability concerns, compatibility concerns, and WebApp
reliability and performance.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e
(McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 26
MobileApp Testing
■ User experience testing – ensuring app meets
stakeholder usability and accessibility expectations
■ Device compatibility testing – testing on multiple devices
■ Performance testing – testing non-functional
requirements
■ Connectivity testing – testing ability of app to connect
reliably
■ Security testing – ensuring app meets stakeholder
security expectations
■ Testing-in-the-wild – testing app on user devices in
actual user environments
■ Certification testing – app meets the distribution
standards
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e
(McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 27
High Order Testing
■ Validation testing
■ Focus is on software requirements
■ System testing
■ Focus is on system integration
■ Alpha/Beta testing
■ Focus is on customer usage
■ Recovery testing
■ forces the software to fail in a variety of ways and verifies that recovery is
properly performed
■ Security testing
■ verifies that protection mechanisms built into a system will, in fact, protect it
from improper penetration
■ Stress testing
■ executes a system in a manner that demands resources in abnormal quantity,
frequency, or volume
■ Performance Testing
■ test the run-time performance of software within the context of an integrated
system
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e
(McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 28
Debugging: A Diagnostic Process
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e
(McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 29
The Debugging Process
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e
(McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 30
Debugging Effort
time required
to diagnose the
symptom and
determine the
cause
time required
to correct the
error
and conduct
regression tests
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e
(McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 31
Symptoms & Causes
symptom
cause
symptom and cause may be
geographically separated
symptom may disappear when
another problem is fixed
cause may be due to a
combination of non-errors
cause may be due to a system
or compiler error
cause may be due to
assumptions that everyone
believes
symptom may be intermittent
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e
(McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 32
Consequences of Bugs
damage
mild
annoying
disturbing
serious
extreme
catastrophic
infectious
Bug Type
Bug Categories: function-related bugs,
system-related bugs, data bugs, coding bugs,
design bugs, documentation bugs, standards
violations, etc.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e
(McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 33
Debugging Techniques
brute force / testing
backtracking
induction
deduction
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e
(McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 34
Correcting the Error
■ Is the cause of the bug reproduced in another part of the program? In
many situations, a program defect is caused by an erroneous pattern
of logic that may be reproduced elsewhere.
■ What "next bug" might be introduced by the fix I'm about to make?
Before the correction is made, the source code (or, better, the design)
should be evaluated to assess coupling of logic and data structures.
■ What could we have done to prevent this bug in the first place? This
question is the first step toward establishing a statistical software
quality assurance approach. If you correct the process as well as the
product, the bug will be removed from the current program and may
be eliminated from all future programs.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e
(McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 35
Final Thoughts
■ Think -- before you act to correct
■ Use tools to gain additional insight
■ If you’re at an impasse, get help from someone else
■ Once you correct the bug, use regression testing to
uncover any side effects

More Related Content

Similar to Networkkskskskskhdhdhshshshshhsheusus .ppt

Software Testing Strategies
Software Testing StrategiesSoftware Testing Strategies
Software Testing StrategiesNayyabMirTahir
 
Regression testing complete guide
Regression testing complete guideRegression testing complete guide
Regression testing complete guideTestingXperts
 
SRGM Analyzers Tool of SDLC for Software Improving Quality
SRGM Analyzers Tool of SDLC for Software Improving QualitySRGM Analyzers Tool of SDLC for Software Improving Quality
SRGM Analyzers Tool of SDLC for Software Improving QualityIJERA Editor
 
A Complete Guide to Functional Testing
A Complete Guide to Functional TestingA Complete Guide to Functional Testing
A Complete Guide to Functional TestingAbhay Kumar
 
A Complete Guide to Functional Testing
A Complete Guide to Functional TestingA Complete Guide to Functional Testing
A Complete Guide to Functional TestingMatthew Allen
 
Regression Testing - A Complete Guide
Regression Testing - A Complete GuideRegression Testing - A Complete Guide
Regression Testing - A Complete GuideAbhay Kumar
 
Welingkar_final project_ppt_IMPORTANCE & NEED FOR TESTING
Welingkar_final project_ppt_IMPORTANCE & NEED FOR TESTINGWelingkar_final project_ppt_IMPORTANCE & NEED FOR TESTING
Welingkar_final project_ppt_IMPORTANCE & NEED FOR TESTINGSachin Pathania
 
Software Engineering-Part 1
Software Engineering-Part 1Software Engineering-Part 1
Software Engineering-Part 1Shrija Madhu
 
Software Testing Training in Chandigarh
Software Testing Training in ChandigarhSoftware Testing Training in Chandigarh
Software Testing Training in ChandigarhKreativan Technologies
 
Software Testing - A sneak preview By Srikanth
Software Testing - A sneak preview By SrikanthSoftware Testing - A sneak preview By Srikanth
Software Testing - A sneak preview By SrikanthSrikanth Krishnamoorthy
 
The growing importance of Regression Testing
The growing importance of Regression TestingThe growing importance of Regression Testing
The growing importance of Regression TestingSerena Gray
 
Testing strategies in Software Engineering
Testing strategies in Software EngineeringTesting strategies in Software Engineering
Testing strategies in Software EngineeringMuhammadTalha436
 

Similar to Networkkskskskskhdhdhshshshshhsheusus .ppt (20)

Software Testing Strategies
Software Testing StrategiesSoftware Testing Strategies
Software Testing Strategies
 
Verification and validation
Verification and validationVerification and validation
Verification and validation
 
Regression testing complete guide
Regression testing complete guideRegression testing complete guide
Regression testing complete guide
 
SRGM Analyzers Tool of SDLC for Software Improving Quality
SRGM Analyzers Tool of SDLC for Software Improving QualitySRGM Analyzers Tool of SDLC for Software Improving Quality
SRGM Analyzers Tool of SDLC for Software Improving Quality
 
A Complete Guide to Functional Testing
A Complete Guide to Functional TestingA Complete Guide to Functional Testing
A Complete Guide to Functional Testing
 
Testing software development
Testing software developmentTesting software development
Testing software development
 
A Complete Guide to Functional Testing
A Complete Guide to Functional TestingA Complete Guide to Functional Testing
A Complete Guide to Functional Testing
 
OMSOFTWARE NEW Service
OMSOFTWARE NEW ServiceOMSOFTWARE NEW Service
OMSOFTWARE NEW Service
 
Regression Testing - A Complete Guide
Regression Testing - A Complete GuideRegression Testing - A Complete Guide
Regression Testing - A Complete Guide
 
Sta unit 2(abimanyu)
Sta unit 2(abimanyu)Sta unit 2(abimanyu)
Sta unit 2(abimanyu)
 
Software testing
Software testingSoftware testing
Software testing
 
Welingkar_final project_ppt_IMPORTANCE & NEED FOR TESTING
Welingkar_final project_ppt_IMPORTANCE & NEED FOR TESTINGWelingkar_final project_ppt_IMPORTANCE & NEED FOR TESTING
Welingkar_final project_ppt_IMPORTANCE & NEED FOR TESTING
 
Software Engineering-Part 1
Software Engineering-Part 1Software Engineering-Part 1
Software Engineering-Part 1
 
Qa analyst training
Qa analyst training Qa analyst training
Qa analyst training
 
Software Testing Training in Chandigarh
Software Testing Training in ChandigarhSoftware Testing Training in Chandigarh
Software Testing Training in Chandigarh
 
Best software testing course
Best software testing courseBest software testing course
Best software testing course
 
Software Testing - A sneak preview By Srikanth
Software Testing - A sneak preview By SrikanthSoftware Testing - A sneak preview By Srikanth
Software Testing - A sneak preview By Srikanth
 
Software testing
Software testingSoftware testing
Software testing
 
The growing importance of Regression Testing
The growing importance of Regression TestingThe growing importance of Regression Testing
The growing importance of Regression Testing
 
Testing strategies in Software Engineering
Testing strategies in Software EngineeringTesting strategies in Software Engineering
Testing strategies in Software Engineering
 

Recently uploaded

Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 

Recently uploaded (20)

Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 

Networkkskskskskhdhdhshshshshhsheusus .ppt

  • 1. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 1 Chapter 22 ■ Software Testing Strategies Slide Set to accompany Software Engineering: A Practitioner’s Approach, 8/e by Roger S. Pressman and Bruce R. Maxim Slides copyright © 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman For non-profit educational use only May be reproduced ONLY for student use at the university level when used in conjunction with Software Engineering: A Practitioner's Approach, 8/e. Any other reproduction or use is prohibited without the express written permission of the author. All copyright information MUST appear if these slides are posted on a website for student use. ‫االختبار‬ ‫استراتيجيات‬ ‫برنامج‬
  • 2. 2 Software Testing Testing is the process of exercising a program with the specific intent of finding errors prior to delivery to the end user. ‫المستخدم‬ ‫إلى‬ ‫تسليمها‬ ‫قبل‬ ‫األخطاء‬ ‫إليجاد‬ ‫محددة‬ ‫نية‬ ‫مع‬ ‫برنامج‬ ‫ممارسة‬ ‫عملية‬ ‫هو‬ ‫االختبار‬ ‫النهائي‬
  • 3. 3 What Testing Shows errors requirements conformance performance an indication of quality ‫اختبار‬ ‫يظهر‬ ‫ما‬ errors ‫أخطاء‬ requirements conformance ‫التوافق‬ ‫متطلبات‬ performance ‫أداء‬ an indication ‫مؤشر‬ of quality ‫الجودة‬
  • 4. Strategic Approach ‫االستراتيجي‬ ‫النهج‬ ■ To perform effective testing, you should conduct effective technical reviews. By doing this, many errors will be eliminated before testing commences. ■ Testing begins at the component level and works "outward" toward the integration of the entire computer-based system. ■ Different testing techniques are appropriate for different software engineering approaches and at different points in time. ■ Testing is conducted by the developer of the software and (for large projects) an independent test group. ■ Testing and debugging are different activities, but debugging must be accommodated in any testing strategy. • ،‫الفعلي‬ ‫االختبار‬ ‫ألداء‬ ‫مراجعات‬ ‫إجراء‬ ‫يجب‬ ‫الفعالة‬ ‫التقنية‬ . ‫وبذلك‬ ، ‫العد‬ ‫على‬ ‫القضاء‬ ‫سيتم‬ ‫يد‬ ‫بدء‬ ‫قبل‬ ‫األخطاء‬ ‫من‬ ‫االختبار‬ . • ‫مست‬ ‫على‬ ‫االختبار‬ ‫يبدأ‬ ‫وى‬ ‫وتعمل‬ ،‫العنصر‬ " ‫الخارج‬ " ‫القائم‬ ‫النظام‬ ‫تكامل‬ ‫نحو‬ ‫بالكام‬ ‫الكمبيوتر‬ ‫على‬ ‫ل‬ . • ‫المخت‬ ‫االختبار‬ ‫تقنيات‬ ‫لفة‬ ‫النه‬ ‫لمختلف‬ ‫مناسبة‬ ‫هي‬ ‫ج‬ ‫وعند‬ ‫البرمجيات‬ ‫هندسة‬ ‫الوقت‬ ‫في‬ ‫مختلفة‬ ‫نقاط‬ ‫المناسب‬ . • ‫قبل‬ ‫من‬ ‫اختبار‬ ‫ويجري‬ ‫البرنامج‬ ‫مطور‬ ‫و‬ ( ‫الكبيرة‬ ‫للمشاريع‬ ) ‫مستقلة‬ ‫اختبار‬ ‫مجموعة‬ . • ‫والتصحيح‬ ‫االختبار‬ ‫ال‬ ‫ولكن‬ ،‫مختلفة‬ ‫وأنشطة‬ ‫التصح‬ ‫استيعاب‬ ‫من‬ ‫بد‬ ‫يح‬ ‫استراتيجية‬ ‫أي‬ ‫في‬ ‫االختبار‬ .
  • 5. 5 V & V ■ Verification refers to the set of tasks that ensure that software correctly implements a specific function. ■ Validation refers to a different set of tasks that ensure that the software that has been built is traceable to customer requirements. Boehm [Boe81] states this another way: ■ Verification: "Are we building the product right?" ■ Validation: "Are we building the right product?" ‫التحقق‬ . ‫صحيح‬ ‫بشكل‬ ‫محددة‬ ‫وظيفة‬ ‫ينفذ‬ ‫البرنامج‬ ‫هذا‬ ‫تضمن‬ ‫التي‬ ‫المهام‬ ‫من‬ ‫مجموعة‬ ‫إلى‬ ‫يشير‬ . ‫صحة‬ ‫من‬ ‫التحقق‬ ‫العم‬ ‫لمتطلبات‬ ‫عزوها‬ ‫يمكن‬ ‫بناؤها‬ ‫تم‬ ‫التي‬ ‫البرامج‬ ‫أن‬ ‫تضمن‬ ‫التي‬ ‫المهام‬ ‫من‬ ‫مختلفة‬ ‫مجموعة‬ ‫إلى‬ ‫يشير‬ ‫الء‬ . ‫بوهم‬ [ Boe81] ‫أخرى‬ ‫طريقة‬ ‫هذه‬ ‫دول‬ : ‫التحقق‬ : " ‫المنتج؟‬ ‫حق‬ ‫على‬ ‫بناء‬ ‫نحن‬ ‫هل‬ " ‫التحقق‬ ‫الصحة‬ ‫من‬ : " ‫المناسب؟‬ ‫المنتج‬ ‫على‬ ‫بناء‬ ‫نحن‬ ‫هل‬ " Software testing is part of group of activities called verification and validation that are involved in software quality Verification (Are the algorithms coded correctly?) The set of activities that ensure that software correctly implements a specific function or algorithm Verification and Validation
  • 6. Who Tests the Software? developer independent tester Understands the system but, will test "gently" and, is driven by "delivery" Must learn about the system, but, will attempt to break it and, is driven by quality ‫اختبارات‬ ‫يعملون‬ ‫الذين‬ ‫من‬ ‫البرنامج؟‬ ‫النظام‬ ‫يدرك‬ ‫واختبار‬ ،‫ولكن‬ " ‫بلطف‬ " ‫يقودها‬ ،‫و‬ " ‫التسليم‬ " ‫مستقل‬ ‫اختبار‬ ‫مطور‬ ‫تعلم‬ ‫أن‬ ‫يجب‬ ،‫النظام‬ ‫حول‬ ‫ومحاولة‬ ،‫ولكن‬ ‫كسرها‬ ‫الجودة‬ ‫يقودها‬ ،‫و‬
  • 7. 7 Testing Strategy ‫االختبار‬ ‫استراتيجية‬ System engineering ‫هندسة‬ ‫النظم‬ Analysis modeling ‫نماذج‬ ‫تحليل‬ Design modeling ‫التصميم‬ ‫نماذج‬ Code generation ‫رمز‬ ‫جيل‬ Unit test ‫اختبار‬ ‫وحدة‬ Integration test ‫اختبار‬ ‫التكامل‬ Validation test ‫صحة‬ ‫من‬ ‫التحقق‬ ‫اختبار‬ System test ‫النظام‬ ‫اختبار‬ Code generation Design modeling Analysis modeling System Engineering Unit Testing Integration Testing Validation Testing System Testing
  • 8. Testing Strategy ■ We begin by ‘testing-in-the-small’ and move toward ‘testing- in-the-large’ ■ For conventional software ■ The module (component) is our initial focus ■ Integration of modules ■ For OO software ■ our focus when “testing in the small” changes from an individual module (the conventional view) to an OO class that encompasses attributes and operations and implies communication and collaboration ‫االختبار‬ ‫استراتيجية‬ ‫نبدأ‬ " ‫صغيرة‬ ‫داخل‬ ‫في‬ ‫اختبار‬ ' ‫نحو‬ ‫والتحرك‬ " ‫كبيرة‬ ‫داخل‬ ‫في‬ ‫اختبار‬ " ‫للحصول‬ ‫التقليدي‬ ‫البرنامج‬ ‫على‬ ‫وحدة‬ ( ‫عنصر‬ ) ‫األساسي‬ ‫تركيزنا‬ ‫هو‬ ‫دمج‬ ‫يتبع‬ ‫وحدات‬ ‫للحصول‬ ‫البرنامج‬ ‫على‬ OO ‫عند‬ ‫تركيزنا‬ " ‫الصغيرة‬ ‫في‬ ‫اختبار‬ " ‫فردية‬ ‫وحدة‬ ‫من‬ ‫التغييرات‬ ( ‫التقليدية‬ ‫النظر‬ ‫وجهة‬ ) ‫الدرجة‬ ‫إلى‬ OO ‫والعمليات‬ ‫الصفات‬ ‫تشمل‬ ‫التي‬ ‫والتعاون‬ ‫التواصل‬ ‫ويعني‬
  • 9. Strategic Issues ‫القضايا‬ ‫االستراتيجية‬ ■ Specify product requirements in a quantifiable manner long before testing commences. ■ State testing objectives explicitly. ■ Understand the users of the software and develop a profile for each user category. ■ Develop a testing plan that emphasizes “rapid cycle testing.” ■ Build “robust” software that is designed to test itself ■ Use effective technical reviews as a filter prior to testing ■ Conduct technical reviews to assess the test strategy and test cases themselves. ■ Develop a continuous improvement approach for the testing process. • ‫االختبار‬ ‫يبدأ‬ ‫طويلة‬ ‫فترة‬ ‫قبل‬ ‫الكمي‬ ‫للقياس‬ ‫قابلة‬ ‫بطريقة‬ ‫المنتج‬ ‫متطلبات‬ ‫تحديد‬ . • ‫صريح‬ ‫بشكل‬ ‫للدولة‬ ‫اختبار‬ ‫أهداف‬ . • ‫المستخدم‬ ‫فئة‬ ‫لكل‬ ‫صورة‬ ‫ووضع‬ ‫للبرنامج‬ ‫المستخدمين‬ ‫فهم‬ . • ‫تؤكد‬ ‫التي‬ ‫االختبارات‬ ‫خطة‬ ‫وضع‬ " ‫السريع‬ ‫دورة‬ ‫اختبار‬ ." • ‫بناء‬ " ‫قوي‬ " ‫نفسه‬ ‫الختبار‬ ‫تصميمها‬ ‫تم‬ ‫التي‬ ‫البرامج‬ • ‫االختبار‬ ‫قبل‬ ‫تصفية‬ ‫كعامل‬ ‫الفعالة‬ ‫الفنية‬ ‫االستعراضات‬ ‫استخدام‬ • ‫أنفسهم‬ ‫االختبار‬ ‫وحاالت‬ ‫اختبار‬ ‫استراتيجية‬ ‫لتقييم‬ ‫فنية‬ ‫استعراضات‬ ‫إجراء‬ . • ‫االختبار‬ ‫لعملية‬ ‫المستمر‬ ‫التحسين‬ ‫نهج‬ ‫وضع‬ .
  • 10. 10 Unit Testing module to be tested test cases results software engineer ‫البرمجيات‬ ‫مهندس‬ ‫وحدة‬ ‫تكون‬ ‫أن‬ ‫اختبار‬ ‫النتائج‬ ‫االختبار‬ ‫حاالت‬
  • 11. 11 Unit Testing ‫اختبار‬ ‫وحدة‬ interface local data structures boundary conditions independent paths error handling paths module to be tested test cases ‫البيني‬ ‫السطح‬ ‫المحلية‬ ‫البيانات‬ ‫هياكل‬ ‫الحدود‬ ‫شروط‬ ‫مستقلة‬ ‫مسارات‬ ‫األخطاء‬ ‫معالجة‬ ‫مسارات‬ ‫وحدة‬ ‫أن‬ ‫تكون‬ ‫اختبار‬ ‫االختبار‬ ‫حاالت‬
  • 12. 12 Unit Test Environment ‫البيئة‬ ‫وحدة‬ ‫اختبار‬ Module stub stub driver RESULTS interface local data structures boundary conditions independent paths error handling paths test cases ‫المحلية‬ ‫البيانات‬ ‫هياكل‬ ‫الحدود‬ ‫شروط‬ ‫مستقلة‬ ‫مسارات‬ ‫األخطاء‬ ‫معالجة‬ ‫مسارات‬ ‫الواجهة‬ ‫الحركة‬ ‫ناقل‬
  • 13. 13 Integration Testing Strategies Options: • the “big bang” approach • an incremental construction strategy ‫التكامل‬ ‫اختبار‬ ‫استراتيجيات‬ ‫خيارات‬ : • ‫نهج‬ " ‫الكبير‬ ‫االنفجار‬ " • ‫اإلضافية‬ ‫البناء‬ ‫استراتيجية‬
  • 14. 14 Top Down Integration top module is tested with stubs stubs are replaced one at a time, "depth first" as new modules are integrated, some subset of tests is re-run A B C D E F G ‫أسفل‬ ‫إلى‬ ‫أعلى‬ ‫تكامل‬ ‫أعلى‬ ‫مع‬ ‫وحدة‬ ‫اختبار‬ ‫يتم‬
  • 15. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 15 Bottom-Up Integration drivers are replaced one at a time, "depth first" worker modules are grouped into builds and integrated A B C D E F G cluster
  • 16. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 16 Sandwich Testing Top modules are tested with stubs Worker modules are grouped into builds and integrated A B C D E F G cluster
  • 17. 17 Regression Testing ■ Regression testing is the re-execution of some subset of tests that have already been conducted to ensure that changes have not propagated unintended side effects ■ Whenever software is corrected, some aspect of the software configuration (the program, its documentation, or the data that support it) is changed. ■ Regression testing helps to ensure that changes (due to testing or for other reasons) do not introduce unintended behavior or additional errors. ■ Regression testing may be conducted manually, by re-executing a subset of all test cases or using automated capture/playback tools. ‫االنحدار‬ ‫اختبار‬ • ‫االنحدار‬ ‫اختبار‬ ‫ا‬ ‫أن‬ ‫لضمان‬ ‫بالفعل‬ ‫أجريت‬ ‫التي‬ ‫االختبارات‬ ‫من‬ ‫فرعية‬ ‫لبعض‬ ‫التنفيذ‬ ‫إعادة‬ ‫هو‬ ‫لم‬ ‫لتغييرات‬ ‫المقصودة‬ ‫غير‬ ‫الجانبية‬ ‫اآلثار‬ ‫نشر‬ • ‫التكوين‬ ‫برامج‬ ‫جوانب‬ ‫بعض‬ ‫تغيير‬ ‫يتم‬ ،‫البرنامج‬ ‫تصحيح‬ ‫يتم‬ ‫كلما‬ ( ‫ا‬ ‫أو‬ ،‫وثائقها‬ ،‫البرنامج‬ ‫تدعم‬ ‫التي‬ ‫لبيانات‬ ‫ذلك‬ .) • ‫التغييرات‬ ‫أن‬ ‫ضمان‬ ‫على‬ ‫يساعد‬ ‫االنحدار‬ ‫اختبار‬ ( ‫أخرى‬ ‫ألسباب‬ ‫أو‬ ‫اختبار‬ ‫بسبب‬ ) ‫الس‬ ‫يعرض‬ ‫ال‬ ‫غير‬ ‫لوك‬ ‫إضافية‬ ‫أخطاء‬ ‫أو‬ ‫مقصودة‬ . • ‫تنفيذ‬ ‫إعادة‬ ‫خالل‬ ‫من‬ ،‫يدويا‬ ‫االنحدار‬ ‫اختبار‬ ‫إجراء‬ ‫ويمكن‬ - ‫أ‬ ‫االختبار‬ ‫حاالت‬ ‫جميع‬ ‫من‬ ‫فرعية‬ ‫مجموعة‬ ‫و‬ ‫على‬ ‫القبض‬ ‫أدوات‬ ‫باستخدام‬ / ‫اآللي‬ ‫تشغيل‬ .
  • 18. 18 Smoke Testing ■ A common approach for creating “daily builds” for product software ■ Smoke testing steps: ■ Software components that have been translated into code are integrated into a “build.” • A build includes all data files, libraries, reusable modules, and engineered components that are required to implement one or more product functions. ■ A series of tests is designed to expose errors that will keep the build from properly performing its function. • The intent should be to uncover “show stopper” errors that have the highest likelihood of throwing the software project behind schedule. ■ The build is integrated with other builds and the entire product (in its current form) is smoke tested daily. • The integration approach may be top down or bottom up. • ‫نهج‬ ‫إلنشاء‬ ‫مشترك‬ " ‫يوميا‬ ‫يبني‬ " ‫المنتج‬ ‫للبرمجيات‬ • ‫الخطوات‬ ‫اختبار‬ ‫التدخين‬ : • ‫إلى‬ ‫رمز‬ ‫إلى‬ ‫ترجمت‬ ‫التي‬ ‫البرامج‬ ‫مكونات‬ ‫تتكامل‬ " ‫بناء‬ ." • ‫لتن‬ ‫المطلوبة‬ ‫الهندسية‬ ‫والمكونات‬ ،‫االستخدام‬ ‫إلعادة‬ ‫قابلة‬ ‫وحدات‬ ،‫والمكتبات‬ ‫البيانات‬ ‫ملفات‬ ‫كافة‬ ‫بناء‬ ‫ويشمل‬ ‫أكثر‬ ‫أو‬ ‫واحد‬ ‫فيذ‬ ‫المنتج‬ ‫الوظائف‬ ‫من‬ . • ‫صح‬ ‫بشكل‬ ‫وظيفتها‬ ‫أداء‬ ‫من‬ ‫البناء‬ ‫على‬ ‫الحفاظ‬ ‫شأنها‬ ‫من‬ ‫التي‬ ‫األخطاء‬ ‫لكشف‬ ‫االختبارات‬ ‫من‬ ‫سلسلة‬ ‫تصميم‬ ‫تم‬ ‫يح‬ . • ‫األخطاء‬ ‫عن‬ ‫للكشف‬ ‫القصد‬ ‫يكون‬ ‫أن‬ ‫وينبغي‬ " ‫سدادة‬ ‫عرض‬ " ‫ال‬ ‫وراء‬ ‫البرمجيات‬ ‫مشروع‬ ‫رمي‬ ‫احتمال‬ ‫أعلى‬ ‫لديها‬ ‫التي‬ ‫جدول‬ ‫الزمني‬ . • ‫كامل‬ ‫والمنتج‬ ‫يبني‬ ‫بناء‬ ‫اآلخر‬ ‫مع‬ ‫ويتكامل‬ ( ‫الحالي‬ ‫بشكله‬ ) ‫يوميا‬ ‫الدخان‬ ‫اختبار‬ ‫هو‬ . • ‫أعلى‬ ‫إلى‬ ‫أسفل‬ ‫من‬ ‫أو‬ ‫أسفل‬ ‫إلى‬ ‫أعلى‬ ‫التكامل‬ ‫نهج‬ ‫يكون‬ ‫قد‬ .
  • 19. 19 General Testing Criteria ■ Interface integrity – internal and external module interfaces are tested as each module or cluster is added to the software ■ Functional validity – test to uncover functional defects in the software ■ Information content – test for errors in local or global data structures ■ Performance – verify specified performance bounds are tested ‫عامة‬ ‫اختبار‬ ‫معايير‬ ‫واجهة‬ ‫سالمة‬ - ‫يضاف‬ ‫البرمجيات‬ ‫من‬ ‫مجموعة‬ ‫أو‬ ‫وحدة‬ ‫كل‬ ‫أن‬ ‫حيث‬ ‫وخارجية‬ ‫داخلية‬ ‫وحدة‬ ‫واجهات‬ ‫اختبار‬ ‫يتم‬ - ‫وظيفي‬ ‫صحة‬ - ‫البرنامج‬ ‫في‬ ‫وظيفية‬ ‫عيوب‬ ‫عن‬ ‫للكشف‬ ‫اختبار‬ ‫المعلومات‬ ‫محتوى‬ - ‫العالمية‬ ‫أو‬ ‫المحلية‬ ‫البيانات‬ ‫هياكل‬ ‫في‬ ‫األخطاء‬ ‫عن‬ ‫اختبار‬ ‫محددة‬ ‫أداء‬ ‫حدود‬ ‫من‬ ‫التحقق‬ ‫اختبار‬ ‫ويتم‬ - ‫األداء‬
  • 20. 20 Object-Oriented Testing ‫الشيئية‬ ‫اختبار‬ ■ begins by evaluating the correctness and consistency of the analysis and design models ■ testing strategy changes ■ the concept of the ‘unit’ broadens due to encapsulation ■ integration focuses on classes and their execution across a ‘thread’ or in the context of a usage scenario ■ validation uses conventional black box methods ■ test case design draws on conventional methods, but also encompasses special features • ‫النماذج‬ ‫وتصميم‬ ‫تحليل‬ ‫واتساق‬ ‫صحة‬ ‫تقييم‬ ‫يبدأ‬ • ‫اختبار‬ ‫استراتيجية‬ ‫تغييرات‬ • ‫مفهوم‬ ' ‫وحدة‬ ' ‫التغليف‬ ‫أن‬ ‫المقرر‬ ‫يوسع‬ • ‫عبر‬ ‫وتنفيذها‬ ‫الطبقات‬ ‫على‬ ‫التكامل‬ ‫ويركز‬ ' ‫الموضوع‬ ' ‫االستخدام‬ ‫سيناريو‬ ‫سياق‬ ‫في‬ ‫أو‬ • ‫التقليدية‬ ‫األسود‬ ‫الصندوق‬ ‫صحة‬ ‫من‬ ‫التحقق‬ ‫أساليب‬ ‫يستخدم‬ • ‫خاصة‬ ‫ميزات‬ ‫أيضا‬ ‫تشمل‬ ‫ولكنها‬ ،‫التقليدية‬ ‫األساليب‬ ‫على‬ ‫يرسم‬ ‫اختبار‬ ‫حالة‬ ‫تصميم‬
  • 21. 21 Broadening the View of “Testing” It can be argued that the review of OO analysis and design models is especially useful because the same semantic constructs (e.g., classes, attributes, operations, messages) appear at the analysis, design, and code level. Therefore, a problem in the definition of class attributes that is uncovered during analysis will circumvent side effects that might occur if the problem were not discovered until design or code (or even the next iteration of analysis). ‫نظر‬ ‫وجهة‬ ‫توسيع‬ " ‫اختبار‬ " ‫تحليل‬ ‫استعراض‬ ‫أن‬ ‫القول‬ ‫ويمكن‬ OO ‫الداللية‬ ‫البنى‬ ‫نفس‬ ‫ألن‬ ‫خصوصا‬ ‫مفيد‬ ‫تصميم‬ ‫ونماذج‬ ( ‫سبي‬ ‫على‬ ‫ل‬ ‫الرسائل‬ ،‫والعمليات‬ ،‫والصفات‬ ،‫والطبقات‬ ،‫المثال‬ ) ‫التع‬ ‫ومستوى‬ ،‫والتصميم‬ ‫التحليل‬ ‫في‬ ‫تظهر‬ ‫البرمجية‬ ‫ليمات‬ . ‫ال‬ ‫اآلثار‬ ‫وااللتفاف‬ ‫تحليل‬ ‫خالل‬ ‫كشفت‬ ‫التي‬ ‫الصفات‬ ‫الطبقة‬ ‫تعريف‬ ‫في‬ ‫المشكلة‬ ‫فإن‬ ،‫ولذلك‬ ‫تحدث‬ ‫قد‬ ‫التي‬ ‫جانبية‬ ‫رمز‬ ‫أو‬ ‫تصميم‬ ‫حتى‬ ‫المشكلة‬ ‫اكتشاف‬ ‫يتم‬ ‫لم‬ ‫إذا‬ ( ‫التحليل‬ ‫من‬ ‫التالي‬ ‫التكرار‬ ‫حتى‬ ‫أو‬ .)
  • 22. 22 Testing the CRC Model 1. Revisit the CRC model and the object-relationship model. 2. Inspect the description of each CRC index card to determine if a delegated responsibility is part of the collaborator’s definition. 3. Invert the connection to ensure that each collaborator that is asked for service is receiving requests from a reasonable source. 4. Using the inverted connections examined in step 3, determine whether other classes might be required or whether responsibilities are properly grouped among the classes. 5. Determine whether widely requested responsibilities might be combined into a single responsibility. 6. Steps 1 to 5 are applied iteratively to each class and through each evolution of the analysis model. ‫نموذج‬ ‫اختبار‬CRC 1 . ‫العالقة‬ ‫كائن‬ ‫ونموذج‬ ‫الطفل‬ ‫حقوق‬ ‫اتفاقية‬ ‫نموذج‬ ‫في‬ ‫النظر‬ ‫إعادة‬ . 2 . ‫القياسي‬ ‫الرقم‬ ‫بطاقة‬ ‫كل‬ ‫وصف‬ ‫في‬ ‫فحص‬ CRC ‫و‬ ‫متعاون‬ ‫التعريف‬ ‫من‬ ‫جزء‬ ‫تفويض‬ ‫مسؤولية‬ ‫إذا‬ ‫ما‬ ‫لتحديد‬ . 3 . ‫معقول‬ ‫مصدر‬ ‫من‬ ‫طلبات‬ ‫يتلقى‬ ‫للخدمة‬ ‫يطلب‬ ‫أن‬ ‫متعاون‬ ‫كل‬ ‫أن‬ ‫لضمان‬ ‫االتصال‬ ‫عكس‬ . 4 . ‫الخطوة‬ ‫في‬ ‫درست‬ ‫مقلوب‬ ‫االتصاالت‬ ‫طريق‬ ‫عن‬ 3 ‫المسؤوليا‬ ‫تجميع‬ ‫يتم‬ ‫كان‬ ‫إذا‬ ‫ما‬ ‫أو‬ ‫مطلوبة‬ ‫تكون‬ ‫قد‬ ‫األخرى‬ ‫الطبقات‬ ‫كانت‬ ‫إذا‬ ‫ما‬ ‫تحديد‬ ، ‫ت‬ ‫الطبقات‬ ‫بين‬ ‫صحيح‬ ‫بشكل‬ . 5 . ‫واحدة‬ ‫مسؤولية‬ ‫دمجها‬ ‫يمكن‬ ‫واسع‬ ‫نطاق‬ ‫على‬ ‫المطلوبة‬ ‫المسؤوليات‬ ‫كانت‬ ‫إذا‬ ‫ما‬ ‫تحديد‬ . 6 . ‫خطوات‬ 1 - 5 ‫التحليل‬ ‫نموذج‬ ‫تطور‬ ‫كل‬ ‫وخالل‬ ‫فئة‬ ‫لكل‬ ‫متكرر‬ ‫بشكل‬ ‫تطبيقها‬ ‫يتم‬ .
  • 23. OO Testing Strategy ■ class testing is the equivalent of unit testing ■ operations within the class are tested ■ the state behavior of the class is examined ■ integration applied three different strategies ■ thread-based testing—integrates the set of classes required to respond to one input or event ■ use-based testing—integrates the set of classes required to respond to one use case ■ cluster testing—integrates the set of classes required to demonstrate one collaboration ‫وحدة‬ ‫اختبار‬ ‫يعادل‬ ‫ما‬ ‫هو‬ ‫الطبقة‬ ‫اختبار‬ ‫الطبقة‬ ‫داخل‬ ‫عمليات‬ ‫اختبار‬ ‫ويتم‬ ‫الطبقة‬ ‫من‬ ‫الدولة‬ ‫سلوك‬ ‫فحص‬ ‫يتم‬ ‫مختلفة‬ ‫استراتيجيات‬ ‫ثالث‬ ‫تطبيق‬ ‫دمج‬ ‫الحدث‬ ‫أو‬ ‫واحد‬ ‫مدخل‬ ‫على‬ ‫للرد‬ ‫المطلوبة‬ ‫الطبقات‬ ‫من‬ ‫مجموعة‬ ‫يدمج‬ ‫االختبار‬ ‫موضوع‬ ‫على‬ ‫القائم‬ ‫واحد‬ ‫استخدام‬ ‫حالة‬ ‫على‬ ‫للرد‬ ‫المطلوبة‬ ‫الطبقات‬ ‫من‬ ‫مجموعة‬ ‫يدمج‬ ‫االختبار‬ ‫المستندة‬ ‫استخدام‬ ‫احدة‬ ‫التعاون‬ ‫إلثبات‬ ‫المطلوبة‬ ‫الطبقات‬ ‫من‬ ‫مجموعة‬ ‫يدمج‬ ‫االختبار‬ ‫مجموعة‬
  • 24. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 24 WebApp Testing - I ■ The content model for the WebApp is reviewed to uncover errors. ■ The interface model is reviewed to ensure that all use cases can be accommodated. ■ The design model for the WebApp is reviewed to uncover navigation errors. ■ The user interface is tested to uncover errors in presentation and/or navigation mechanics. ■ Each functional component is unit tested.
  • 25. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 25 WebApp Testing - II ■ Navigation throughout the architecture is tested. ■ The WebApp is implemented in a variety of different environmental configurations and is tested for compatibility with each configuration. ■ Security tests are conducted in an attempt to exploit vulnerabilities in the WebApp or within its environment. ■ Performance tests are conducted. ■ The WebApp is tested by a controlled and monitored population of end-users. The results of their interaction with the system are evaluated for content and navigation errors, usability concerns, compatibility concerns, and WebApp reliability and performance.
  • 26. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 26 MobileApp Testing ■ User experience testing – ensuring app meets stakeholder usability and accessibility expectations ■ Device compatibility testing – testing on multiple devices ■ Performance testing – testing non-functional requirements ■ Connectivity testing – testing ability of app to connect reliably ■ Security testing – ensuring app meets stakeholder security expectations ■ Testing-in-the-wild – testing app on user devices in actual user environments ■ Certification testing – app meets the distribution standards
  • 27. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 27 High Order Testing ■ Validation testing ■ Focus is on software requirements ■ System testing ■ Focus is on system integration ■ Alpha/Beta testing ■ Focus is on customer usage ■ Recovery testing ■ forces the software to fail in a variety of ways and verifies that recovery is properly performed ■ Security testing ■ verifies that protection mechanisms built into a system will, in fact, protect it from improper penetration ■ Stress testing ■ executes a system in a manner that demands resources in abnormal quantity, frequency, or volume ■ Performance Testing ■ test the run-time performance of software within the context of an integrated system
  • 28. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 28 Debugging: A Diagnostic Process
  • 29. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 29 The Debugging Process
  • 30. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 30 Debugging Effort time required to diagnose the symptom and determine the cause time required to correct the error and conduct regression tests
  • 31. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 31 Symptoms & Causes symptom cause symptom and cause may be geographically separated symptom may disappear when another problem is fixed cause may be due to a combination of non-errors cause may be due to a system or compiler error cause may be due to assumptions that everyone believes symptom may be intermittent
  • 32. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 32 Consequences of Bugs damage mild annoying disturbing serious extreme catastrophic infectious Bug Type Bug Categories: function-related bugs, system-related bugs, data bugs, coding bugs, design bugs, documentation bugs, standards violations, etc.
  • 33. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 33 Debugging Techniques brute force / testing backtracking induction deduction
  • 34. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 34 Correcting the Error ■ Is the cause of the bug reproduced in another part of the program? In many situations, a program defect is caused by an erroneous pattern of logic that may be reproduced elsewhere. ■ What "next bug" might be introduced by the fix I'm about to make? Before the correction is made, the source code (or, better, the design) should be evaluated to assess coupling of logic and data structures. ■ What could we have done to prevent this bug in the first place? This question is the first step toward establishing a statistical software quality assurance approach. If you correct the process as well as the product, the bug will be removed from the current program and may be eliminated from all future programs.
  • 35. These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (McGraw-Hill 2014). Slides copyright 2014 by Roger Pressman. 35 Final Thoughts ■ Think -- before you act to correct ■ Use tools to gain additional insight ■ If you’re at an impasse, get help from someone else ■ Once you correct the bug, use regression testing to uncover any side effects