Professional Documents
Culture Documents
תשע"ח
באר שבע יום 10:00 – 13:00 3
17:00 - 14:00
אשדוד יום ג 11:00 – 14:00
7,9 האורקל של הבדיקות ,בדיקות בתהליך הקידוד (,)unit testפיתוח בדיקות )מסיפור משתמש למקרה הבדיקה) 3
11,12,14 שיטות פיתוח ובדיקות בסביבות מתקדמותIoT ,Mobile DevOps - 11
3
Code coverage, using dedicated Model Driven Test Design Coverage
environment (MDTD)
Statement – 100% coverage, every statement-line of Find values, automate, run, evaluate and
executable code report, considering test requirements (TR) and
Branches- logical branches in the code (e.g., if, test criterion (TC)
while) Graphs
Path- testing all possible paths in the code Logic expressions (based on e.g., state charts,
machine state charts)
Data coverage Input domains
Boundary condition
Typical data values
Pre and post conditions
Illegal data
4
A[] B[]
At least two out of the five statements, but
possibly more than two share equivalents of
the meaning: This class provides a
Mark the only statements that share set of assertion
equivalent meaning
Explain briefly the reason you have
methods, useful for
selected these items writing tests. Only
_________________________ failed assertions are
_________________________ recorded
C[] D[] E[ ]
@Test These annotations in JUnit provide the
Several tests need similar
@Before following information about test
objects created before
@After
methods −
they can run. Annotating
a public void method with @BeforeClass which methods are going to run before
and after test methods.
@Before causes that @AfterClass
method to be run before which methods run before and after all
@Ignore
the methods, and. which methods or
each Test method.
classes will be ignored during the 5
execution.
6
7
If I touch it I brake it, so I will not…
And then the code become impossible to clean, risky, expensive…
8
Performed Before implementation start
Iterative process
9
Programmers dislike testing
They will test reasonably thoroughly the first time
The second time however, testing is usually less thorough
The third time, well..
11
What are the
symptoms?
12
Rigid
Fragile
Unpredictable
Impatient customers ?
Requirements changes?
Stressed schedules?
15
Robert Stephenson Smyth Baden
found it.
18
1. Red – Write a little test that doesn’t work,
and perhaps doesn’t even compile at first.
Run test,
watch it pass
Compile
Write code
20
21
: שאלה מספר1 [ ] 2[ ]
פיתוח מונחה בדיקות היא גישה נפוצה
__________________________ לקידוד שדוגלת בפיתוח בצורה שונה
__________________________ במקום,2002 שהתחיל להופיע משנת
__________________________ לכתוב את הקוד ואז לבצע עליו
__________________________ המתכנת כותב קודםTDD ב,בדיקות
__________________________ ולאחר מכן כותב, את תסריטי הבדיקה
.קוד שיעבור בהכרח את הבדיקות
3 [] 4 [] 5 []
TDD is a technique whereby you Write a single test
Compile it. It should compile
write your test cases before you Run the test and see it passed
write any implementation code Implement just enough code to get the test to
Tests drive or dictate the code that pass
is developed Run the test and see it pass
Refactor for clarity and “once and only once”
22
1. Start small or not at all
select one small piece of functionality that you know is needed and you
understand.
2. Ask “what set of tests, when passed, will demonstrate the
presence of code we are confident fulfills this functionality
correctly?”
3. Make a to-do list, keep it next to the computer
1. Lists tests that need to be written
2. Reminds you of what needs to be done
3. Keeps you focused
4. When you finish an item, cross it off
5. When you think of another test to write, add it to the list 23
Which test should you pick from the list?
Pick a test that will teach you something and that you are
confident you can implement.
Each test should represent one step toward your overall
goal.
How should the running of tests affect one another?
Not at all – isolated tests.
24
Where should you start building a system?
With the stories you want to be able to tell about the finished
system.
Where should you start writing a bit of functionality?
With the tests you want to pass on the finished code.
Where should you start writing a test?
With the asserts that will pass when it is done.
25
11.2 Mocks and Stubs
27
– Mocking חיקוי.
Mocking object מממש את אותו ה interface -של האובייקט אותו
הוא מדמה.
ניתן לדמות את התנהגות גמישה של האובייקט המדומה (זה לא stub
"טיפש"):
.1קביעת ערך החזרה.
.2השמת ערכים לפרמטרים.
.3זריקת .exception
28
• Mocks and stubs are both dummy implementations of objects the
29
Class under communication
Stab
test
Class under communication
Mock
test
Test
Test
30
Class under communication Mail service
ordering Stab
test (stub)
Test
Product ID Amount
Test
32
:Mock objects כלים אוטומטים ליצירת
Java מתאים לJmock
easyMock
C++ מתאים לgoogleMock
33
34
מאפיינים עיקריים של סוגי בדיקות
בדיקות פונקציונאליות function al testing
בדיקות מונחות ספציפיקציות Specification testing
בדיקת אזורי תפקוד ויחידות Unit testing
בדיקות מונחות סיכון Risk based testing
בדוק כל תפקוד ופונקציה לחוד.
בדיקות תסריטיםscenarios testing
סרוק את המוצר ,כיסוי כל תכונה בדיקות רגרסיה Regression testing
או תפקוד במספר מספק של בדיקות לחץ Stress
בדיקות משתמשיםUser testing
בדיקות על מנת לוודא שעובד כראוי
בדיקות מונחות מודל ומצבים
בדיקות ממוכנות בנפח גבוה Load
35
מאפיינים עיקריים לסוגי הבדיקות
בדיקות פונקציונאליות function al testing
בדיקות מונחות ספציפיקציות Specification testing
בדיקת אזורי תפקוד ויחידות Unit testing
בדוק כל אמירה המופיעה במסמכים
בדיקות מונחות סיכון Risk based testing
המלווים את הפרויקט (כמו חוזים
בדיקות תסריטיםscenarios testing
ומפרטים) בדוק עד לרמה שהוכחת בדיקות רגרסיה Regression testing
שכל הנאמר מולא ועובד כמובטח בדיקות לחץ Stress
בדיקות משתמשיםUser testing
בדיקות מונחות מודל ומצבים
בדיקות ממוכנות בנפח גבוה Load
36
מאפיינים עיקריים לסוגי הבדיקות
בדיקות פונקציונאליות function al testing
בדיקות מונחות ספציפיקציות Specification testing
בדיקת אזורי תפקוד ויחידות Unit testing
תתמקד במשתנים כמו ( input, outputs, בדיקות מונחות סיכון Risk based testing
) configuration or internalעבור כל בדיקות תסריטיםscenarios testing
משתנה שכזה או קומבינציה בחן את מרחב בדיקות רגרסיה Regression testing
בדיקות לחץ Stress
האפשרויות של הערכים .פשט את זה על
בדיקות משתמשיםUser testing
ידי חלוקה לתתי קבוצות ,בחר מאפיינים
בדיקות מונחות מודל ומצבים
לכל אחת מהקבוצות ובדוק. בדיקות ממוכנות בנפח גבוה Load
37
מאפיינים עיקריים לסוגי הבדיקות
בדיקות פונקציונאליות function al testing
בדיקות מונחות ספציפיקציות Specification testing
כל תוכנית היא אוסף ממוין של מקרים בדיקת אזורי תפקוד ויחידות Unit testing
בדיקות מונחות סיכון Risk based testing
שיכולים להתקלקל לפי הסיכוי והסיכון
בדיקות תסריטיםscenarios testing
הכרוכים .עבור כל הזדמנות שאתה
בדיקות רגרסיה Regression testing
מסוגל לדמיין לנפילה עצב בדיקה
בדיקות לחץ Stress
שבוחנת עד כמה באמת התוכנית עונה בדיקות משתמשיםUser testing
על הדרישות -לפי סדר יורד של תוחלת בדיקות מונחות מודל ומצבים
הסיכון. בדיקות ממוכנות בנפח גבוה Load
38
מאפיינים עיקריים לסוגי הבדיקות
בדיקות פונקציונאליות function al testing
בדיקות מונחות ספציפיקציות Specification testing
בדיקת אזורי תפקוד ויחידות Unit testing
הבדיקות הינן סיפור מורכב
בדיקות מונחות סיכון Risk based testing
שתופס כיצד התוכנית צריכה בדיקות תסריטיםscenarios testing
להתנהג במצבי חיים אמיתיים. בדיקות רגרסיה Regression testing
בדיקות לחץ Stress
אלו הן קבוצות קומבינציה של
בדיקות משתמשיםUser testing
בדיקות המייצגות באופן מכובד בדיקות מונחות מודל ומצבים
את השימוש האמיתי. בדיקות ממוכנות בנפח גבוה
39
מאפיינים עיקריים לסוגי הבדיקות
בדיקות פונקציונאליות function al testing
בדיקות מונחות ספציפיקציות Specification testing
בדיקת אזורי תפקוד ויחידות Unit testing
חזור על בדיקות מרכזיות לאחר כל
בדיקות מונחות סיכון Risk based testing
שינוי בתוכנית .כאשר נשתמש בדיקות תסריטיםScenarios testing
ברגרסיה באופן מסיבי עלינו ללמוד בדיקות רגרסיה Regression testing
בדיקות לחץ Stress
לתכנן בדיקות יעילות מאוד לצורך
בדיקות משתמשיםUser testing
החזרות הללו. בדיקות מונחות מודל ומצבים
בדיקות ממוכנות בנפח גבוה
40
מאפיינים עיקריים לסוגי הבדיקות
בדיקות פונקציונאליות function al testing
בדיקות מונחות ספציפיקציות Specification testing
בדיקת אזורי תפקוד ויחידות Unit testing
יכולות להיות מספר הגדרות לבדיקות
בדיקות מונחות סיכון Risk based testing
הלחץ ,כאשר אנו אומרים לחץ משמעו בדיקות תסריטיםScenarios testing
להציף את התוכנה למשל בכמות וקצב בדיקות רגרסיה Regression testing
מידע נכנס ,קומבינציות כאלה שאנו בדיקות לחץ Stress
מעריכים יפילו את התוכנית תוך כדי בדיקות משתמשיםUser testing
בחינה כיצד היא מנהגת בזמן ואחרי בדיקות מונחות מודל ומצבים
בדיקות ממוכנות בנפח גבוה
הנפילה. 41
מאפיינים עיקריים לסוגי הבדיקות
בדיקות פונקציונאליות function al testing
בדיקות מונחות ספציפיקציות Specification testing
בדיקת אזורי תפקוד ויחידות Unit testing
מסור את התוכנית ל"משתמש" וצפה בדיקות מונחות סיכון Risk based testing
מה הוא עושה ומהן התגובות בדיקות תסריטיםScenarios testing
לפעולותיו .בדיקות משתמש יכולות בדיקות רגרסיה Regression testing
בדיקות לחץ Stress
להיות מובנות ונוקשות או חופשיות
בדיקות משתמשיםUser testing
כאשר הדגש הוא הפעלת התוכנה
בדיקות מונחות מודל ומצבים
והתגובות כ "משתמש" בדיקות ממוכנות בנפח גבוה
42
מאפיינים עיקריים לסוגי הבדיקות
בדיקות פונקציונאליות function al testing
על ידי מידול בתוכנית בדיקות מונחות ספציפיקציות Specification testing
בדיקת אזורי תפקוד ויחידות Unit testing
כמכונת מצבים שהרצתה
בדיקות מונחות סיכון Risk based testing
מעבירה אותה ממצב למצב בדיקות תסריטיםScenarios testing
כתגובה לאירוע (למשל בדיקות רגרסיה Regression testing
הזרמת מידע מסוים) .נבחן בדיקות לחץ Stress
בדיקות משתמשיםUser testing
בכל מצב האם התגובות הן
בדיקות מונחות מודל ומצבים
נכונות עבור כל אירוע. בדיקות ממוכנות בנפח גבוה load
43
מאפיינים עיקריים לסוגי הבדיקות
בדיקות פונקציונאליות
בדיקות מונחות ספציפיקציות
תכנת והתקן את המחשב באופן
בדיקת אזורי תפקוד ויחידות
שיורצו מספר גדול ומסיבי של בדיקות מונחות סיכון
בדיקות .תוך כדי אספקת בדיקות תסריטים
45
46
בדיקות פונקציונאליות
פונקציה היא יכולת של המוצר
לפעמים נקרא לפונקציה גם תכונה או פקודה /להזדהות רק במה שהיא עושה (בדרך כלל ,או חלק
מכל דבר)
זיהוי כל פונקציה או תת פונקציה
מדרישות או במדריך למשתמש (אפילו חלקי)
ממעבר לאורך כל ממשקי המשתמש
מניסוי פקודות בכל שורות הפקודה
חיפוש בתוך התוכנית ,הקוד או קבצי המקור של פקודות או שמות של פקודות
פונקציות: פעילויות מפתח כאשר בונים או משתמשים ברשימת
קבע באיזה אופן תדע שהפונקציה פועלת (שאלת האורקל)
זהה משתנים המשמשים את הפונקציה ובדוק את קצותיהם
זהה משתני סביבה שעשויים להגביל את הפונקציה בתוך הבדיקה
47בדוק שכל פונקציה מבצעת את מה שהיא אמורה לבצע ואינה עושה את מה שאינה אמורה לעשות
הגדרת קטגוריות לפונקציה
. (Cut, Paste, Delete : פונקציה מסוימת (כגון:הדגמה
מידע נכנס
משתנים
ערך מקסימאלי
ערך מינמאלי
ערכים מיוחדים נוספים
מידע יוצא
(e.g. Delete word, Delete paragraph) מרחב תפקוד אפשרי כמו
(e.g. configure the program to Delete the contents of a row אופציות של הפונקציה כמו
of a table, leaving a blank row versus Delete the row along with its contents)
(e.g. deleting from a word processor הנסיבות בהם הפונקציה מתנהגת באופן שונה
configured to track and display changes or not to track changes) 48
שימושים עיקריים בבדיקה פונקציונאליות
מוכוון להבטיח כסוי כל התפקודים
ביכולתך להשוות את רשימת הפונקציות לרשימות בתוכנית
הבדיקה כולל רשימת התסריטים ומקרי הבדיקה על מנת לכסות כל
רכיב,תפקוד,תת רכיב של כל תכונה
שימושי עבור הבדיקות הראשונות של המוצר
הכרות סימפטית עם היכולות של המוצר
סריקה מהירה לזיהוי בעיות רציניות שצריך לטפל בהם בהתחלה
49
נניח שנבנה מערכת לרכישת מנוי לחדר כושר ,כך שהמתאמנים יכולים להגדיר את העלויות לפי
סוג המנוי לפי הדרישות הבאות:
Flow of execution
Execution steps --- > expected results
51
הסיכונים של בדיקות פונקציונאליות
יופי של דרך להתחיל איתה ,אבל מספר אנשים עשויים להסתמך על כך
כמהלך בדיקות מרכזי
כשיטה עיקרית לבדיקה הבעיה היא בהדגשת בדיקות יחידה תוך בידוד
יחידות מסוימות:
חסרה האינטראקציה בין הרכיבים
חסרים היבטים העוסקים בעומס ,אינטראקציה עם מה שקורה ברקע ולא נבחן נושא
הפסקות ועצירות (מתוכננות ולא)
לעיתים קרובות מתמקד בתפקודים ללא התחשבות בגבולות או פרטי מידע
אחרים
אינו משיב על מטלות המשתמשים – כאשר הלקוח יכול להשיג את היתרון
המובטח על ידי התוכנה
52
דוגמא לבדיקות פונקציונאליות אתר "מאגר הטפסים"
http://www.gov.il/FirstGov/Forms/FormsSearchResults
שאלות ראשוניות :
התמצאות באתר – איפה מונח כל דבר
איזה חלק הוא מידע ואיזה חלק שימוש
הרשאות – מי צריך מה (בכלל מאיפה נכנסים)
יותר לעומק
איזה שירותים למי
לאן כל לינק מגיע
מעבר שיטתי על כל הלינקים והפניות
האם יש שירותים שאינם מוכנים
53
הרחבה – הכן תוכנית לבדיקות פונקציונאליות לאתר
.1שאלה מספר: .2
קבע באיזה אופן תדע שהפונקציה פועלת. לא קיים מצב שאין תקלות.
__________________________ זהה משתנים המשמשים את הפונקציה נקודת המוצא היא כי אין מערכת
__________________________ ובדוק את קצותיהם מושלמת שאין בה תקלות .כמובן
זהה משתני סביבה שעשויים להגביל את
__________________________ שיכולים להיות מצבים בהם לא מוצאים
הפונקציה בתוך הבדיקה
__________________________ בדוק שכל פונקציה מבצעת את מה שהיא תקלות אך הסיכוי שבאמת אין תקלות
__________________________ אמורה לבצע ואינה עושה את מה שאינה בכלל הוא אפסי.
אמורה לעשות
55
להתראות בשבוע הבא
56