50
ار ت ف گ ش ي پ راوي ي ن ا ف ن سي ح راح ط . fani@behsazan net sites.google.com/site/hosseinfani ! ب ط ا خ م اري ز ف رم ا ن م ت س سي عان ف ن ي ذStakeholders ري ت ش م ... ان ت س ذا ر ا:ن گ ن و م ار و ا:ر ز ف رم ا ن ون م ا: ر ون م ا:ر ت ي ر ن مد1

Software Test

Embed Size (px)

DESCRIPTION

Software Test: Introduction to Concepts (Testability of Software, Test Case, Test Scenario, Test Plan, Test Strategies, ...)

Citation preview

Page 1: Software Test

1

پيش گفتارراوي

حسين فانيطراح[email protected]/site/hosseinfani

مخاطب ذينفعان سيستم نرم افزاريStakeholders

مشتري...

داستانآزمون نرم افزار و آزمونگر آنمديريت آزمون

Page 2: Software Test

2

مراجع

Software Engineering, A Practitioner’s Approach, 5th Ed, Roger S. Pressman

Foundation of Software Testing, ISTQB Certification, Dorothy Graham et. al. …

Acknowledgmentتشکر

خانم مرجان فردوسي پور، گروه شرکتهاي همکاران سيستم

Page 3: Software Test

آزمون نرم افزار راهکار عملي

حسين فاني92تابستان

Software Test; Practitioner's Approach

Page 4: Software Test

4

آنچه در اين سمينار خواهد آمد

فلسفه آزمونFundamentalsچرا آزمون اهداف آزمونObjectives اصول آزمونPrinciples آزمون پذيريTestabilityاهميت آزمون

اجراي آزمونTest Apply مورد آزمونTest Case سناريوي آزمونTest Scenario چرخه مورد آزمونTest Case State Transition خطاBugو چرخه آن

طراحي مورد آزمونTest Designتکنيک در برابر استراتژي آزمون استراتژي )سطح( آزمون

واحدUnit يکپارچگيIntegration صحتValidation )Acceptance( سيستمSystem

تکنيک آزمون جعبه سياه و سفيدWhite/Black Box ايستا و پوياStatic/Dynamic

برنامه ريزي )فرآيند( آزمونTest Plan جايگاه در فرآيند توليد نرم افزاراستاندارد برگزاري آزمون

شروع آزمون)پايان آزمون )شرط توقف/بازشروعجمع آوري اطالعات)بررسي کيفيت برگزاري وکيفيت نرم افزار )معيارها

کارهاي آينده آزمون خودکارAutomated Test آزمون شي گراObject Oriented TestingClean Room Software Engineering

Page 5: Software Test

5

فلسفه آزمون Fundamentals

چرا آزمون Testچيستي آزمون Objectivesاهداف آزمون Principlesاصول آزمون Testabilityآزمون پذيري اهميت آزمون

Page 6: Software Test

6

چرا آزمون:انسان ها

.همه چيز را نمي دانند.داراي دانش محدود هستند(.دچار اشتباه مي شوندHuman is Err)

( هر چيز انسان سازManmadeنياز به آزمون دارد ) در موردGod madeچطور؟

نرم افزارهاتحت فشارمحدوديت زماني

فلسفه آزمون

افراد باهوش مشكالت را حل مي كنند حال آنكه افراد عاقل از پيش آمدن آن ها ”“.جلوگيري مي كنند

Einstein

Page 7: Software Test

7 فلسفه آزمون

Page 8: Software Test

تعريف آزمون

: اجراي برنامه به منظور يافت 1979خطا

آزمون در انتهاي چرخه توليد نرم افزار•هدف اصلي: يافت خطا•

: فعاليتي به منظور ارزيابي صفتي از 1983برنامه

Assessmentارزيابي •Quality Measuresمقياس کيفيت نرم افزار •

: فرآيند همزمان با مهندسي نرم افزار براي ارزيابي و بهبود 2002کيفيت نرم افزار

Testwareآزمون افزار )مستندات و ابزارآالت آزمون( •هيچ اسمي از يافت خطا برده نمي شود!•

8 فلسفه آزمون

Page 9: Software Test

9

آزمون نرم افزار چيست؟

Shall Is

?>=<

فلسفه آزمون

آزمون به فرآيند

برنامه ريزي آماده سازيارزيابي محصوالت نرم افزاري

هدفبا تعيين ميزان تطابق سيستم با مشخصات و نيازمندي هاي

موجوداثبات تناسب سيستم با مورد استفاده مربوطهيافتن خطاهاي موجود در سيستم

گفته مي شود

the process of comparing "what is" with "what ought to be."

Page 10: Software Test

• Functional • Non-Functional

قابل ارجاع به يک نيازمندي مشتري

اتمام مدل •نيازمندي

مهيا شدن بسيار زودتر از شروع آزمون

از کوچک به بزرگ

• 3rd Partyنفر سوم

• Exhaustive Test

همه حاالت برنامه را نمي توان آزمون کرد

درصد خطاهاي کشف نشده تنها در 80•Pareto 80/20 درصد قسمتهاي نرم افزاري هستند20

اصولPrinciples

10 فلسفه آزمون

Page 11: Software Test

آزمون پذيري

Testability

11

• هر چي بهتر کار کنه بهتر ميشه تستش کرد

• خطاي بازدارنده• همزماني آزمون و توليد

Operability

Controllability

• تجزيه کار آزمون و نتايج و حذف وابستگي ها

• بررسي وابستگي ها

Decomposability

• تغييرات کم• تغييرات کنترل شده

Stability

هر چه مي بيني همون رو تست ميکني•دسترسي به اتفاقات داخلي )حالتهاي قبل، •

Observabilityگامهاي طي شده تا اينجا، جدول، کد(

• Structural )CBS, Layered, ..(

• Functional

Simplicity

• هر چي بيشتر بدوني، با هوشتر تست ميکني Understandability

فلسفه آزمون

Page 12: Software Test

12

3 مريخ نورد 1999دسامبر ،Polar ناپديد شد.

دليل خرابي، خطا در مقدار دهي بهيك بيت حافظه بوده است كه باعث

شده تا مريخ نورد در ارتفاع پايي سطح مريخ موتورش 1800

خاموش شود. خطاي مربوطه باعث سقوط مريخ

شد!Polarپيماي خطاي مربوطه توسط تيم تست

ناسا كشف نشده بود. ميليون دالر زيان 110ناسا متحمل

مالي شد!

اولين بازي شركتDisney ( The Lion Kingشيرشاه )

براي كودكان روز كريسمس منتشر شد.

26 دسامبر، دپارتمان پشتيبانيشركت به جهنم تبديل شد!

برنامه تنها روي يك ويرايشسيستم عامل تست شده بود.

بازي مربوطه روي بسياري ازسيستم هاي عامل اجرا نمي شد

فلسفه آزمون

Page 13: Software Test

13

فلسفه آزمون Fundamentals

چرا آزمون چيستي آزمونTest اهداف آزمونObjectives اصول آزمونPrinciples آزمون پذيريTestabilityاهميت آزمون

Page 14: Software Test

14

Testاجراي آزمون Apply

Test Caseمورد آزمون Test Scenarioسناريوي آزمون

Test Case Stateچرخه مورد آزمون Transition

و چرخه آنBugخطا

Page 15: Software Test

15

Test Caseمورد آزمون ( مثالراهنماي اجراي آزمون)آزمونگر بدون مورد آزمون، حق آزمون ندارد! چرا؟

چطور آزمون خود را به نيازمندي مشتري ارجاع دهد؟چطور اثبات درستي و کيفيت نيازمندي را اثبات کند؟ چطور اثبات کند که در حال آزمون است؟

( مثالسناريوي آزمون) مورد در بردارنده جريان کار در چندين مورد آزموني که

مختلفکاربرد

پس چرا برخي آزمونگران بدون مورد آزمون، آزمون مي کنند؟

اجراي آزمون

Page 16: Software Test

16

Test Descriptionشرح کلي آزمون Test Stepsگامهاي آزمون

هدف مورد آزمون و شرح-شرح نکات ابهام آميز-

: هيچ گ¤ام و نتيج¤ه اي در اين قس¤مت نوش¤ته نکتtه نمي شود.

گام هاي آزمون دقيق و کامل -بدون ابهام براي تستر-

: پاس¤خهاي سيس¤تمي در اين قس¤مت بي¤ان نکتtهشوند.نمي

Pre Condition پيش شرط Expected Resultsنتيجه مورد انتظار

بديهيغير پيش شرط هاي -داده آزمون )اختياري(-

پيش شرط هاي بديهي مانند تعيين سال مالي-داشتن دسترسي الزم-

نتايج مورد انتظار با توجه بهگامها-پيش شرط-

بي¤ان نکتtه قس¤مت اين در ک¤اربر فعاليته¤اي :ش¤وند. ب¤ه عب¤ارتي ديگ¤ر عم¤ل در گ¤ام ه¤اي نمي

در العم¤ل و عکس آزم¤ون مش¤خص مي ش¤ود نتيجه مورد انتظار.

مورد آزمونهاي مرتبط

تاريخچه

سناريو )بله/خير(

زير سيستم و نسخه نرم افزار

سطح شماره نام

خطاهاي مرتبط الصاقات

وزن دليل وضعيت

آزمونگر

طراح

اجراي آزمون

Page 17: Software Test

17

چرخه مورد آزمون

اجراي آزمون

مثال

Page 18: Software Test

خطا

Error عمل انجام شده توسط افراد كه باعث ايجاد ها معموال منجر به بروز Errorنتيجه اشتباه مي شود.

مي شوند.Fault چندينيک يا

Faultنقصي در سيستم كه باعث مي : نگاه داخليشود سيستم نتواند كاركرد مورد انتظارش را انجام

دهد.

Failureانحراف سيستم از ارائه : نگاه خارجي مي گويندFailureسرويس مورد انتظارش را

18

Error Fault Failure

ممكن است باعث شود

اجراي آزمون

Page 19: Software Test

19

خطا )ادامه( ريشه شناسيEtymologyBug

مهندسي سخت افزار غير رايانهEdison: 1878Pinball: 1931

1946رايانه الکترومکانيکال :دانشکده هاروارد، آزمايشگاه محاسباتDebug

اجراي آزمون

Page 20: Software Test

20

گزارش خطاهر چه پر بارتر، يافت منشا خطا و رفع آن سريعترگزارش خطاي موثر

قابليت باز توليدشرح صريح و گام به گام تا برخورد به خطا

داراي صفات شماره خطا، مورد آزمون متناظر، گزارشگر، زير

سيستم و نسخه، سخت افزار و سيستم عامل و ... شدتSeverity)Blocker، Critical، Major، Minor، Trivial،

Enhancement(

اولويتPriority)فرق آن با شدت؟(

اجراي آزمون

Page 21: Software Test

چرخه خطا

21 اجراي آزمون

Page 22: Software Test

22

Testاجراي آزمون Apply

مورد آزمونTest Case سناريوي آزمونTest Scenario چرخه مورد آزمونTest Case State

Transition خطاBugو چرخه آن

Page 23: Software Test

23

طراحي مورد آزمونTest)Case( Design

طراحي مورد آزموناستراتژي )سطح( آزمون

تکنيک در برابر استراتژي -Unitواحد -Integrationيکپارچگي -Systemسيستم -)Validation )Acceptanceصحت -

Page 24: Software Test

24

طراحي مورد آزمونمنبع )مرجع( توليد

مورد کاربردUse Caseدرخواستنيازمندي قواعد کسب و کار

مورد کاربرد گردش اصليMain Flow گردشهاي جايگزينAlternate Flow

طراحي مورد آزمون

Page 25: Software Test

25

طراحي مورد آزمون )ادامه(شروع مورد

کاربردگردش

اصلي

گردش 1جايگزين

گردش 4جايگزين

گردش 2جايگزين

گردش 3جايگزين

اصلي 1جايگزين

1 اصلي 2جايگزين

2جايگزين

1 اصلي 3جايگزين

3 اصلي 4جايگزين

1جايگزين

3 اصلي 5جايگزين

2جايگزين

1جايگزين

3 اصلي 6جايگزين

4 اصلي 7جايگزين

4جايگزين

3 اصلي 8

طراحي سناريوي آزمون؟

طراحي مورد آزمون

آزمون سناريويآزمون و موردمثال براي

Page 26: Software Test

26

Test Descriptionشرح کلي آزمون Test Stepsگامهاي آزمون

هدف مورد آزمون و شرح-شرح نکات ابهام آميز-

: هيچ گ¤ام و نتيج¤ه اي در اين قس¤مت نوش¤ته نکتtه نمي شود.

گام هاي آزمون دقيق و کامل -بدون ابهام براي تستر-

: پاس¤خهاي سيس¤تمي در اين قس¤مت بي¤ان نکتtهشوند.نمي

Pre Condition پيش شرط Expected Resultsنتيجه مورد انتظار

بديهيغير پيش شرط هاي -داده آزمون )اختياري(-

پيش شرط هاي بديهي مانند تعيين سال مالي-داشتن دسترسي الزم-

نتايج مورد انتظار با توجه بهگامها-پيش شرط-

بي¤ان نکتtه قس¤مت اين در ک¤اربر فعاليته¤اي :ش¤وند. ب¤ه عب¤ارتي ديگ¤ر عم¤ل در گ¤ام ه¤اي نمي

در العم¤ل و عکس آزم¤ون مش¤خص مي ش¤ود نتيجه مورد انتظار.

مورد آزمونهاي مرتبط

تاريخچه

سناريو )بله/خير(

زير سيستم و نسخه نرم افزار

سطح شماره نام

خطاهاي مرتبط الصاقات

وزن دليل وضعيت

آزمونگر

طراح

طراحي موردآزمون

Page 27: Software Test

27

مشخص داشتن الگو و استاندارد کودکجمالت سوم شخص و قابل فهم براي! قابل استفاده مجدد بودنReuse

نگرش مثبت و منفي Correctness وRobustness

خالصه و مفيد بودنداده آزمونTest Data

اولويت بندي موارد آزمون لينک کردن درخواست، نيازمندي يا مورد آزمون ديگر به

مورد آزمون( به روزنگهداشتن، حذفPesticide Paradox)

طراحي مورد آزمون )ادامه(

طراحي مورد آزمون

Page 28: Software Test

28

استراتژي )سطح()انواع( آزمون

به چه کسي چه کيفيتي رو اثبات ميکنيد؟استراتژي در برابر تکنيک آزمون

طراحي مورد آزمون

Page 29: Software Test

29

Unit Testآزمون واحد

اولين و جزئي ترين سطح آزمونآزمون جزء: کوچکترين واحد قابل آزمونآزمونگر

توسعه دهندهطراحمشتري

آزمون مولفهComponent ماژول ،Module

طراحي مورد آزمون

Page 30: Software Test

30

Integrationآزمون يکپارچگي Test

آن هاروابطواسط بين اجزاء و Top-DownBottom-UpRegression

Impact AnalysisSmoke

!قطعه سخت افزاري براي اولين بار روشن مي شود، اگر آتش نگيرد يعني احتماال كار مي كند

آزمونگرتوسعه دهندهطراحتحليلگرمشتري

طراحي مورد آزمون

Page 31: Software Test

31

Validation Testآزمون ؟ Validation Vs. Verification

درست کار مي کندکار درستي مي کند

:سند نيازمنديشرط پذيرش، اعتبار، قبولي

در دو زير سطحAlphaمشتري در محل توليد :Betaمشتري در محل استفاده :

آزمونگر3rd Partyمشتري

Acceptance

طراحي مورد آزمون

Page 32: Software Test

32

Systemآزمون سيستم Test

RecoveryDataCheck PointMTTR

SecurityStress

Abnormal Resource Demand )Quantity, Frequency, Volume(PerformanceSanity

Stable Enough to TESTLoadUsabilityReliability

Four 9

طراحي مورد آزمون

Page 33: Software Test

33

طراحي مورد آزمونTest)Plan( Design

طراحي مورد آزمون استراتژي )سطح( آزمون

تکنيک در برابر استراتژي واحدUnit يکپارچگيIntegration سيستمSystem صحتValidation )Acceptance(

طراحي مورد آزمون

Page 34: Software Test

34 طراحي مورد آزمون

Page 35: Software Test

35

Testتکنيک آزمون Technique

White/Black Boxجعبه سياه و سفيد Static/Dynamicايستا و پويا

Page 36: Software Test

36

دسته بندي تکنيک ها ميزان مشاهدهObservability

جعبه سياهBlack Box تنها ورودي و خروجي :مشاهده پذيرند

اي( شيشه )جعبه سفيدجعبه White Clear Box :اجزاي اجراي داخلي نيز مشاهده پذيرند

قابليت اجراايستا: بدون اجراي برنامهپويا: با اجراي برنامه

تکنيک آزمون

Page 37: Software Test

37

Techniques

Dynamic

Structure-based

Code Coverage

Experience-based

Error Guessing

Exploratory

Specification-based

Equivalence

Partitioning

Boundary Value

Analysis

Decision Tables

State TransitionComparison

Static

Review Static Analysis

Control Flow

Data Flow

تکنيک آزمون

Page 38: Software Test

38

Testتکنيک آزمون Technique

جعبه سياه و سفيدWhite/Black Box ايستا و پوياStatic/Dynamic

Page 39: Software Test

39

برنامه ريزي )فرآيند( آزمون Test Plan

جايگاه در فرآيند توليد نرم افزار استاندارد برگزاري آزمون

شروع آزمونپايان آزمون )شرط توقف/بازشروع(

جمع آوري اطالعاتبررسي کيفيت برگزاري و کيفيت نرم افزار )معيارها(

Page 40: Software Test

40

جايگاه در فرآيند توليد نرم افزار

نگرش

در گذشته )طبق تعريف گذشته(: آزمون بعد از توليد

امروزه: آزمون به موازات توليدکشف خطا هر چه سريعتر، خرابي کمتر

برنامه ريزي )فرآيند( آزمون

Page 41: Software Test

41

60%20%

15%

5% ريشه هاي خطا

نيازمندي

طراحي

سازي پياده

ساير

هزينه خطا ها

برنامه ريزي )فرآيند( آزمون

Page 42: Software Test

مدل آبشاري Vمدل

42

نيازهاي كسب و

كارنيازهای ذينفعان

مشخصات سيستم)نيازمندی

ها(طراحي سيستم

طراحي اجزا

پياده سازي

تست اجزا

تست يكپارچگي

تست سيستم

تست پذيرش

انتشار سيستم

نيازمند طراحي ي ها

پياده سازي

نگهداش تست ت

برنامه ريزي )فرآيند( آزمون

Page 43: Software Test

43

فرآيند آزمون

کنترل )نظارت(

برنامه ريزي آزمون

تحليل و انتخاب

استراتژي آزمون

طراحي موارد

آزمون و اجراي آنها

گزارش و تحليل نتايج

بررسي کيفيت

فرآيند و کيفيت نرم

افزار

برنامه ريزي )فرآيند( آزمون

Page 44: Software Test

44

استاندارد طرح آزمون نرم افزار

طرح آزمون سندي كه دامنه ، روش ، برنامه اجرايي و ضوابط آزمون

را از پيش مشخص مي سازد.

استانداردفايل استاندارد

شرايط آغاز، توقف، شروع مجدد و پايان!آنچه آزمون نخواهد شدشرايط انتشار محصولساختار سازماني آزمون

برنامه ريزي )فرآيند( آزمون

Page 45: Software Test

45

گزارشات مديريتيپوشش دهيوضعيت موارد آزمونوضعيت خطاهاعملكرد افرادميانگين سن خطا

گزارشهاي عملياتيموارد آزمون مردودي كه خطا ندارندموارد آزمون مردودي كه تمام خطاهايشان بسته شده استموارد آزمون مردودي كه خطاي باز دارندخطاهايي كه به هيچ مورد آزموني متصل نيستند متصل هستندموارد آزمون غيرفعال خطاهايي كه به

کيفيت فرآيند و کيفيت نرم افزار )معيارها(

برنامه ريزي )فرآيند( آزمون

Page 46: Software Test

46

نمونه گزارش 1نمونه گزارش 2

برنامه ريزي )فرآيند( آزمون

Page 47: Software Test

47

ممكن است فكر كنيد اينجا هستيد

ممكن است !اينجا باشيد

تعداد خطاي

كم

تعداد خطاي

كم

كيفيت تست

كيفيت نرم افزار

Page 48: Software Test

48

برنامه ريزي )فرآيند( آزمون Test Plan

جايگاه در فرآيند توليد نرم افزاراستاندارد برگزاري آزمون

شروع آزمون)پايان آزمون )شرط توقف/بازشروعجمع آوري اطالعات)بررسي کيفيت برگزاري و کيفيت نرم افزار )معيارها

Page 49: Software Test

49

کارهاي آيندهAutomated Testآزمون خودکار

Object Oriented Testingآزمون شي گرا Clean Room Software Engineering

Page 50: Software Test

50