T: 598 944448  facebook
img TECH აკადემია
×
QA  ტესტირების საფუძვლები
მიმდინარე სტატუსი: არის თავისუფალი ადგილი

კურსის ღირებულებაა 480 ლარი თანხა უნდა შეიტანოთ ქვევით მოცემულ ერთერთ ანგარიშზე და მოგვწეროთ გადამხდელის საკონტაქტო მონაცემები ფეისბუქზე ან მობილურზე. ასევე შესაძლებელია წინასწარი ყოველკვირეული გადახდა 120 ლარის ოდენობით.

კურსი დაიწყება 23 მაისს.
სწავლება გათვლილია 4-იდან 8 მოსწავლემდე. კურსის ხანგრძლივობაა 4 კვირა სულ 40 საათის ხანგრძლივობით, სწავლის გრაფიკი ყოველდღე 19:00-21:00 საათებში შაბათ-კვირის გარდა. კურსდამთავრებული მიიღებს სერთიფიკატს და გაეცემა რეკომენდაცია დამსაქმებელთან.

ანგარიშები სადაც უნდა ჩარიცხოთ თანხა (სრული 480 ლ ან 120 ლ)
 
 
მიმღები:   
 GE10BG0000000100734063
 GE88TB1828136010100005
 მერაბი სურმანიძე
უნდა მოგვწეროთ თქვენი მონაცემები:
1. გადამხდელის ვინაობა 
2. ტელეფონის ნომერი 
 ტელეფონი:  598 944448  ფეისბუქი:   Facebook
QA ტესტირების საფუძვლების ონლაინ კურსის დაწყება დაგეგმილია 23 მაისიდან. კურსი გრძელდება 6 კვირის მანძილზე კვირაში 5 დღე, დღეში 2 საათიანი თეორიულ-პრაქტიკული მეცადინეობით და სულ 60 საათი ხანგრძლივობით. კურსი მოიცავს QA ტესტირების ყველა საკითხს რაც ტესტირებისთვის არის საჭირო. მოგვწერეთ ფეისბუქის გვერდზე Frontend კერძო კურსები ასევე შეგიძლიათ ჩაერთოთ ფეისბუქის Manual ტესტირების ჯგუფში. Manual ტესტირება QA ტესტირების საფუძვლების თეორიულ-პრაქტიკული კურსის დაწყება დაგეგმილია 23 მაისიდან.
კურსის აღწერა
რა საკითხებს მოიცავს კურსი

თანამედროვე ტექნოლოგიებმა და კომპიუტერული მეცნიერების განვითარებამ მოიტანა ტესტერის პროფესიის ჩართვის აუცილებლობა პროგრამული პროდუქტების შემუშავების პროცესში. ტესტირება საჭიროა პრაქტიკულად მთელი იმ პროცესის განმავლობაში, რომლის დროსაც ხდება პროგრამული პროდუქტის შემუშავება. საჭიროა არა მხოლოდ პროგრამული კოდის შემოწმება შეცდომებზე, არამედ ყველა იმ საკითხის გატესტვა, სადაც შეიძლება აღმოჩნდეს რაიმე სახის ხარვეზი, ეს შეიძლება იყოს ინტერფეისი, ფუნქციონალი, კოდი, მონაცემთა ბაზები ან უბრალოდ საიტის ცალკეული ელემენტი. აქედან გამომდინარე, ტესტერმა უნდა იცოდეს პროგრამული პროდუქტის შემუშავებისთვის საჭირო ტექნოლოგიების მთავარი პრინციპები და ზოგადი წარმოდგენა ქონდეს ბიზნეს ანალიტიკაზე, დიზაინზე, კოდირებაზე, ფუნქციონალზე და კიდევ ბევრ საკითხზე. კურსი მოიცავს ყველა იმ საკითხს, რაც შეიძლება საჭირო იყოს QA ტესტირების სრულყოფილი შესწავლისათვის. ყველა ეს საკითხი დაკონსპექტებული სახით დევს ამ საიტის ქვედა ნაწილში, ამ კონსპექტებით ნებისმიერს შეუძლია დამოუკიდებლად შეისწავლოს პროგრამული უზრუნველყოფის შემუშავებისა და ტესტირებისათვის საჭირო საკითხები და საჭირო ინსტრუმენტები.

რისი სწავლა დაგჭირდებათ კურსის შემდგომ

კურსების გავლა არ იძლევა საკმარის უნარებს იმისათვის, რომ პროფესიონალურ დონეზე შეისწავლოთ ყველა საჭირო ტექნოლოგია და დაიწყოთ მუშაობა მაღალანაზღაურებად პოზიციაზე. ამიტომ საჭიროა დამოუკიდებელი მუშაობაც განვითარებისათვის. ამ კურსის გავლის შემდგომ რეკომენდებულია შემდეგი საკითხების უკეთ შესწავლა:
1. HTML, CSS, JS, SQL, MYSQL და სხვა პროგრამული საკითხები
2. ბაგ-ტრეკინგისა და ტესტ-მენეჯმენტის სისტემები
3. ტესტირების პროგრამული ინსტრუმენტები

ონლაინ სწავლების განრიგი

- კურსი დაყოფილია 4 კვირად, ჩატარდება კვირაში 5 დღე შაბათ-კვირის გარდა.
  
       I კვირა: ტესტირების საფუძვლები
------ 1 დღე ------
1. კურსის მიზნები
2. რისი ცოდნაა საჭირო
3. რატომ ჩნდება ბაგები და ხარვეზები.
4. რა არის ტესტირება და რისთვის არის საჭირო
------ 2 დღე ------
5. მარტივი ტესტირების მაგალითები
6. ტესტირების დოკუმენტაციის ზოგადი აღწერა
7. ხარვეზების მენეჯმენტის ზოგადი აღწერა
------ 3 დღე ------
8. პოზიტიური და ნეგატიური ტესტირება
9. ეკვივალენტობის კლასები, ზღვრული მნიშვნელობები
10. ხარვეზისა და ტესტირების(STLC) სასიცოცხლო ციკლები
11. ტესტერის ადგილი გუნდში
------ 4 დღე ------
12. განსხვავება QA, QC და ტესტირებას შორის
13. განსხვავება ავტომატურ და Manual ტესტირებას შორის
14. ინსტრუმენტების ზოგადი მიმოხილვა
------ 5 დღე -----------
15. პროგრამირების ზოგადი მიმოხილვა
16. SQL ბაზების ზოგადი მიმოხილვა
17. ტესტერის თვისებები და რჩევები განვითარებისათვის(კონსპექტი)
       II კვირა: ხარვეზების აღწერა და დოკუმენტაცია
------ 6 დღე -----------
18. ხარვეზის სახეობები(შეცდომა, ხარვეზი, ნაკლი)
19. ხარვეზის ტიპები(ვიზუალური, ფუნქციური, პროგრამული, კონტენტის, ტექნიკური და ა.შ.)
20. ხარვეზის პრიორიტეტულობა Bug Priority(High, Medium, Low)
21. ხარვეზის სერიოზულობა Bug Severity(Blocker, Critical, Major, Minor, Trivial)
22. ხარვეზის სტატუსი(Passed, Failed, Skipped, In progress, Blocked)
------ 7 დღე -----------
23. SDLC მოდელები და ტესტირების პროცესი SDLC -ში
24. Shift Left Testing ეჯაილ გარემოში
25. ტესტირების მონიტორინგი და კონტროლი
26. Agile/Scrum ფრეიმვორკი და ტესტირების პროცესი(კონსპექტი)
27. Test plan სატესტო გეგმის შედგენა
28. Test strategy ტესტ-სტრატეგია
29. Test Design ტესტ-დიზაინი
30. check list (high-level test case) ჩეკ-ლისტი
------ 8 დღე -----------
31. test case როგორ ხდება მისი შექმნა
32. Test Scenario სატესტო სცენარის შედგენა
33. Test Suite ტესტების ნაკრები
34. Bug report -ის შედგენა, დოკუმენტაცია
35. Test summary report -ის შედგენა
36. test data როგორ ხდება მისი შექმნა და შეგროვება
37. Inspection in software engineering პროგრამული ინსპექცია
38. Walkthroughs In software engineering ეტაპობრივი განხილვის სახელმძღვანელო
39. Reviews In software development რეცენზირება
40. State Transition Technique მდგომარეობის გადასვლის ტექნიკა
41. RTM (Requirements Traceability Matrix) შესაბამისობის მატრიცა
42. ტესტირების შაბლონები
       II კვირა: ტესტირების მეთოდები და ტერმინოლოგია
------ 9 დღე -----------
43. ISTQB სტანდარტები
44. ტესტირების 7 პრინციპი
45. რა არის ვერიფიკაცია და ვალიდაცია
46. რა არის სტატიკური და დინამიური ტესტირება
47. ტესტირების დონეები(Unit, Integration, System, Acceptance)
48. black box ტესტირების მეთოდები
49. white box ტესტირების მეთოდები
50. Alfa-test ტესტირება
51. Beta-test ტესტირება
------ 10 დღე -----------
52. Smoke ტესტირება
53. Sanity ტესტირება
54. Regression ტესტირება
55. Re-test ტესტირება
56. End-to-end სრული ტესტირება
57. Monkey Testing შემთხვევითი ტესტირება
58. Experience-based Testing (Exploratory Testing) ტესტირება
59. Checklist-based Testing ჩეკ-ლისტებზე დაფუძნებული ტესტირება
60. დესტრუქციული და სტრესს ტესტირება
       III კვირა: Manual ტესტირება, საიტების ტესტირება
------ 11 დღე -----------
61. მანუალ ტესტერის მოვალეობები(კონსპექტი)
62. ვებ-საიტების სრული ტესტირების საკითხები(კონსპექტი)
------ 12 დღე -----------
63. საიტების კლასიფიკაცია, შემუშავება, ანალიტიკა, ტექნიკური დავალება(3 კონსპექტი)
64. საიტების სტრუქტურა და სტილები, დიზაინი და ინტერფეისი, ლენდინგი(3 კონსპექტი)
65. UI/UX ტესტირება, ინტერფეისის ელემენტების ტესტირება(კონსპექტი)
66. Figma -ის გარჩევა(კონსპექტი)
------ 13 დღე -----------
67. HTMl, CSS, JS საფუძვლები(კონსპექტი)
68. მარკაპის პრინციპები, SEO(2 კონსპექტი)
69. კროსბრაუზერული და რესპონსივ ტესტირება
------ 14 დღე -----------
70. DevTools -ის გარჩევა(კონსპექტი)
71. BrowserStack -ის გარჩევა და გამოყენება
72. HTTP, URL, Get, Post, Put, Delete მეთოდები(კონსპექტი)
73. SQL მონაცემთა ბაზები, Microsoft SQL(კონსპექტი)
------ 15 დღე -----------
74. ვერსიის კონტროლის სისტემები GIT(კონსპექტი)
75. საიტის ტესტირებისათვის საჭირო ზოგადი ინსტრუმენტები(კონსპექტი)
76. Linux საბაზისო ცოდნა
77. რა კითხვები შეიძლება დასვან გასაუბრებაზე
       IV კვირა: API, მობილური და ავტომატური ტესტირება
------ 16 დღე -----------
78. ფუნქციონალური ტესტირება
79. უსაბილიტი და ინტერფეისის ტესტირება
80. წარმადობაზე და უსაფრთხოებაზე ტესტირება
81. ინსტალაცია/განახლება/აღდგენაზე ტესტირება
82. დოკუმენტაციის ტესტირება
------ 17 დღე -----------
83. Play store / App store გაიდლაინები
84. I SLICED UP FUN მნემონიკა
85. Android Studio გამოყენება
86. API ტესტირება და საჭირო ინსტრუმენტები(Tools)
87. Responsively App -ის მიმოხილვა
------ 18 დღე -----------
88. ავტომატური ტესტირების საფუძვლები
89. Test run ავტომატური სკრიპტის გაშვება
90. EthicalHacking ეთიკური ჰაკინგი
       V კვირა: ტესტირების მენეჯმენტი და ინსტრუმენტები
------ 19 დღე -----------
91. მენეჯმენტი Trello სისტემაში (კონსპექტი)
92. მენეჯმენტი Jira სისტემაში (კონსპექტი)
93. მენეჯმენტი Asana სისტემაში (კონსპექტი)
------ 20 დღე -----------
94. მენეჯმენტი Selenium სისტემაში
95. Jmeter-ის გამოყენება
96. Postman-ის გამოყენება
97. Cypress-ის გამოყენება <
98. Swagger-ის გამოყენება
------ 21 დღე -----------
99. განვლილი მასალის შეჯამება
100. კითხვების განხილვა

კონსპექტები
კონსპექტები მოიცავს ყველა იმ საკითხს, რისი შესწავლაც მოხდება კურსზე
ზოგიერთი საკითხის კონსპექტი შემუშავების პროცესშია
Manual ტესტირება
  ==== Manual ტესტირება, საფუძვლები ====

  ==== მოსამზადებელი სამუშაოები ====
 1. Figma დაინსტალირება
 2. Notepad რედაქტორი
 3. Sublime Text დაინსტალირება
 4. lightshot სკრინშოტერი
 5. word საოფისე პროგრამა
 6. Trello რეგისტრაცია, შესწავლა
 7. Jira სამუშაო გარემოს შესწავლა
 8. HTML, CSS, JS ზოგადად შესწავლა

  ===== კონკრეტული საკითხები რაც უნდა ვიცოდეთ =====
 1. ტესტ-გეგმის შედგენა
 2. ჩეკ-ლისტების შედგენა 
 3. ტესტ-კეისების შედგენა 
 4. ტესტ-სცენარების შედგენა
 5. ზღვრული მნიშვნელობების მეთოდი
 6. ბაგ-რეპორტის სწორი გაფორმება 
 7. ბაგ-ტრეკინგის სისტემები(Jira, Redmine(უფასო), Trello) 
 8. ტესტ-მენეჯმენტის სისტემები(Zephyr, TestRail) 
 9. დიზაინერული რედაქტორები(Figma, Adobe XD)

  ===== ზოგადი საკითხები რაც უნდა ვიცოდეთ =====
 1. ტესტირების მეთოდები და ინსტრუმენტები(1 კონსპექტი)
 2. საიტის შემუშავების პრინციპები(3 კონსპექტი)
 3. დიზაინის საფუძვლები(3 კონსპექტი) 
 4. მარკაპის პრინციპები, SEO(2 კონსპექტი)
 5. საიტების სრული ტესტირება(1 კონსპექტი)
 6. ზოგადი წარმოდგენა HTTP, HTML, CSS, JS, SQL(1 კონსპექტი) 
 7. პროგრამული ინსტრუმენტები(1 კონსპექტი)

  ===== ტესტერის თვისებები =====
 1. ყველა წვრილმანის გათვალისწინება
 -- ხარვეზები უმეტესად წვრილმანებში იმალება
 2. ყველა შესაძლო ვარიანტის გათვალისწინება
 -- ხარვეზები შეიძლება მხოლოდ ზოგიერთ ვარიანტში იყოს
 3. აზრის მკაფიოდ და გასაგებად გადმოცემის უნარი 
 -- სხვა პროფესიის ადამიანებს მათ ენაზე უნდა ავუხსნათ
 4. პრობლემის დეტალური ახსნისა და ზუსტი დაკონკრეტების უნარი
 -- სწორი დოკუმენტაცია აუცილებელი პირობაა ყველა საქმეში
 5. კრიტიკული აზროვნება, ცნობისმოყვარეობა, დაკვირვებულობა
 -- ტესტერის მთავარი თვისებებია
 6. საქმის სწრაფი და დროული კეთების უნარი
 -- აუცილებელი თვისება მაღალანაზღაურებადი პროფესიის შემთხვევაში

  ==== ხარვეზების სახეობები ====
 1. შეცდომა = როცა რაღაცა არ მუშაობს, ან არასწორია, ან შეუსაბამოა
 -- მაგ. ფუნქციონალი არ მუშაობს, მენიუს დასახელება არასწორია, ელემენტის დიზაინი შეუსაბამოა
 2. ხარვეზი = როცა რაღაცა ზოგჯერ არ მუშაობს, ან რაღაც მხრივ არასწორია, ან ყველაფერი არ არის გათვალისწინებული
 -- მაგ. შესავსები ველი არ არის დაცული არასწორი მონაცემების შეტანისგან, რესპონსივი არ სწორდება
 3. ნაკლი(არასრულყოფილი) = როცა უკეთესად უნდა იყოს, ან უფრო მოხერხებულად
 -- მაგ. რეგისტრაციის ღილაკი არასტანდარტულია, ან არასწორ ადგილზეა

  ==== ტესტირების სახეობები ====
 1. მოდულური ტესტირება = კომპონენტებისა და ცალკეული ელემენტების ტესტირება.
 2. ინტეგრაციული ტესტირება = კომპონენტთა ურთიერთქმედებების ტესტირება, ელემენტთა ერთობლივი მუშაობის ტესტირება.
 3. სისტემის ტესტირება = მთელი სისტემის ტესტირება სრულ გამართულობაზე.
 4. გამოყენებითი/სამომხმარებლო ტესტირება = წაყენებულ მოთხოვნებთან შესაბამისობის ტესტირება, მომხმარებელთა მხრიდან გამოყენებაზე ტესტირება.
 5. შავი ყუთის ტესტირება = ტესტირება, როცა არ ვიცით როგორ მუშაობს შიგნით სისტემა.
 6. თეთრი ყუთის ტესტირება = ტესტირება, როცა ვიცით სისტემის აგებულება და შიგა სტრუქტურა.
 -- ტესტირება ხდება თავიდან მოდულური მეთოდით, შემდეგ ინტეგრირებული, შემდეგ მთელი სისტემის, ბოლოს კი სამომხმარებლო ტესტირება. 

 ==== ტესტირების დაგეგმვის უნივერსალური მეთოდი: რეკურსია მთავარიდან დეტალებამდე =====
 -- ვადგენთ რა არის მთავარი საკითხი/საკითხები
 -- ვახდენთ მთავარი საკითხის/საკითხების დეტალიზაციას
 -- ვუბრუნდებით საწყისს და ვახდენთ გადაჯგუფება/დეტალიზაციას
 -- თუ დეტალიზაცია და გადაჯგუფება აღარ ხდება, პროცესი დასრულებულია

 ========= როგორ გავტესტოთ, პროცესი =========
 1. წაყენებულ მოთხოვნილებათა შეგროვება, გარკვევა რა და რაზე უნდა გაიტესტოს.
 2. ტესტირების მეთოდებისა და სცენარების განსაზღვრა, ჩამოწერა.
 3. ჩეკ-ლისტებისა და ტესტ-კეისების შედგენა, გადამოწმება
 4. ტესტების შესრულება მიყოლებით. 
 5. შედეგების ანგარიშების შედგენა, ანალიზი და ახალი ტესტების დაგეგმვა.

 ====== Manual ტესტირების სამუშაო პროცესი ======
 1. გუნდის სამუშაო გარემოში(ონლაინ პროგრამები Jira, Trello) მენეჯერებისგან მოდის დავალებები გუნდის ყოველი წევრისათვის.
 2. ტესტერი იღებს თავის ამოცანებს და ადგენს ტესტ-ქეისებს(ან ჩეკ-ლისტებს)
 3. გატესტვის შედეგებს წერს სამუშაო გარემოში გუნდის იმ წევრების მისამართით, ვისაც ეკუთვნით კონკრეტული ბაგების გასწორება(დიზაინერი, ფრონტენდი, ბექენდი)
 4. ხარვეზების გასწორების შემდეგ მოდის დადასტურება ამის შესახებ.
 5. მენეჯერი ადგენს ახალ ამოცანებს გუნდის წევრებისათვის.

 ======= Manual ტესტირების უპირატესობები =======
 -- ავლენს ვიზუალურ შეუსაბამობებს
 -- ავლენს UX ინტერფეისის ხარვეზებს
 -- უკეთესია დაუგეგმავ შემთხვევებში
 -- შესაძლებელია მომხმარებელთან თანამშრომლობა
 -- ავლენს გამონაკლის შემთხვევებს
 -- არის დაბალი ღირებულების

 ======= Manual ტესტირების ნაკლოვანებები =======
 1. ჭირდება შესრულების მეტი დრო
 2. ნაკლები სიზუსტე ტექნიკურ საკითხებში, ფერებში და ზომებში
 3. არ ფარავს ყველა სახის ტესტირებას(მაგ. მწარმოებლურობა) 

 ==== როგორ გავიაროთ ტესტირების პრაქტიკა დამოუკიდებლად ====
 -- პრაქტიკების გავლამდე საჭიროა მინიმალური ცოდნა გადაკითხვის დონეზე HTML, CSS, JS სახელმძღვანელოები, ასევე კონსპექტებისა და დამატებითი საკითხების გადახედვა, მთავარი თემების გუგლში დაძებნა და დამუშავება(საჭირო დრო: დაახლოებით 1 თვე). 
 -- პრაქტიკების გავლის ინსტრუქცია:
 1. კონსპექტში "საიტების კლასიფიკაცია" ჩამონათვალიდან სათითაოდ ცალკეულ ტიპზე ვეძებთ შესაბამის მუშა საიტებს(უმჯობესია რამოდენიმეს).
 2. ვამუშავებთ ამ საიტების შედგენისა და შემუშავების წესებს კონსპექტის "საიტის შემუშავება, ანალიტიკა" მიხედვით.
 3. ვამუშავებთ ამ საიტების არქიტექტურას კონსპექტის "საიტების სტრუქტურა და სტილები" მიხედვით.
 4. ვამუშავებთ ამ საიტების დიზაინის აგებულებას კონსპექტიდან "საიტების დიზაინი და ინტერფეისი".
 5. ლენდინგის შემთხვევაში ვამუშავებთ დიზაინის აგებულებას კონსპექტიდან "ლენდინგ საიტის პრინციპები".
 6. ვადგენთ საიტის SEO ოპტიმიზაციას კონსპექტით "საიტების SEO ოპტიმიზაცია".
 7. ვახდენთ საიტების ტესტირებას კონსპექტის "საიტების სრული ტესტირება" მიხედვით.
 8. ტესტირების შედეგებს ავსახავთ მარტივი აღრიცხვით.
 -- ნებისმიერი საკითხის დამუშავება ნიშნავს მის სრულ გააზრებას.
 -- 1-8 საკითხების გავლას ყოველი ტიპის საიტზე დაჭირდება დაახლოებით 1-2 დღე, სულ 30 ტიპის საიტზე დაახლოებით საჭიროა 2-3 თვემდე.
 -- ყველა ტიპის საიტის გატესტვის შემდეგ "პრაქტიკები საიტების Manual ტესტირებაში" სრულიად გავლილად ჩაითვლება.

  ==== ზოგიერთი კითხვა გასაუბრებაზე Manual ტესტერი ====
 1. რითი განსხვავდება QC და QA
 -- QC-პროდუქტის ხარისხზე ორიენტირებული მიდგომა
 -- QA-ტესტირების ეფექტურ მეთოდებზე ორიენტირებული მიდგომა
 2. რას ნიშნავს პროგრამული უზრუნველყოფის ტესტირება
 -- უზრუნველყოფის ტესტირება მასზე წაყენებულ მოთხოვნებთან შესაბამისობაზე
 3. რატომ არის საჭირო ტესტირება
 -- პროგრამული უზრუნველყოფის შეცდომების აღმოფხვრის, ხარვეზების გასწორებისა და სრულყოფისთვის.
 4. რა არის ტესტირების 2 მთავარი კატეგორია
 -- Manual და Automation ტესტირება 
 5. რა სახეობები არსებობს Manual ტესტირებაზე
 -- 1. მოდულური 2. ინტეგრაციული, 3. სისტემის 4. გამოყენებითი 5. თეთრი ყუთის 6. შავი ყუთის
 6. განსხვავება ალფა და ბეტა ტესტირებას შორის
 --Alfa პროდუქტის გაშვებამდე ტესტირება ფართო აუდიტორიის მიერ
 --Beta პროდუქტის გაშვების შემდგომი ტესტირება მომხმარებლის მიერ
 7. Manual ტესტირების დონეები
 -- 1. მოდულური 2. ინტეგრაციული, 3. სისტემის 4. გამოყენებითი
 8. რა არის სატესტო სტენდი
 -- ტესტირებისთვის აუცილებელი აპარატურული და პროგრამული უზრუნველყოფა
 9. როგორია Manual ტესტირების პროცედურა
 -- დაგეგმვა
 -- ანალიზი, ტესტ-დიზაინი
 -- ტესტირება
 -- შეფასება
 -- დახურვა
 10. რა არის ტესტ-კეისი
 -- ტესტირების პროცედურა და პირობები
 11. რა არის API ტესტირება 
 -- პროგრამული უზრუნველყოფის პროგრამული ნაწილის(ლოგიკის) ტესტირება
 12. განსხვავება ბაგსა და ხარვეზს(დეფექტს) შორის
 -- ბაგი არის შეცდომა, შეუსაბამობა, ხარვეზი კი გამოსწორებადი ან გაუმჯობესებადი.
 13. რა არის რეგრესიული ტესტირება
 -- განმეორებითი ტესტირება, ტარდება ხარვეზის გასწორების შემდეგ, ან ცვლილებების შეტანისას.
 14. რა არის პოზიტიური და ნეგატიური ტესტირება
 -- პოზიტიური - როცა ტესტირება ხდება სწორი მონაცემების შემთხვევაში
 -- ნეგატიური - როცა ტესტირება ხდება არასწორი/დაუშვებელი მონაცემების შემთხვევაში
 15. რა არის კრიტიკული შეცდომა
 -- როცა შეცდომას მნიშვნელოვანი დამაზიანებელ გავლენა აქვს და აუცილებლად უნდა გასწორდეს
 16. რა არის პესტიციდის პარადოქსი
 -- როცა ტესტირების მეთოდები(ტესტ კეისები) არ იცვლება და ამის გამო გამორჩებათ ხარვეზები
 17. რა არის ხარვეზების კასკადი
 -- როცა რაიმე ხარვეზს შეუძლია სხვა ხარვეზების გამოწვევა
 18. რას ნიშნავს ხარისხი
 -- როცა პროდუქტი აკმაყოფილებს მასზე წაყენებულ აუცილებელ მოთხოვნებს
 19. რა არის ტესტირება გამოცდილებით
 -- როცა ტესტირება ხდება მიღებულ გამოცდილებაზე დაყრდნობით, გამოიყენება კვლევით ტესტირებაში
 20. რა არის აღმავალი და დაღმავალი ტესტირება
 -- აღმავალი = როცა ტესტირება იწყება მცირე მოდულებიდან და გადადის ზედა მოდულებისკენ
 -- დაღმავალი = როცა ტესტირება ხდება ზედა დონის მოდულებიდან ქვედა დონისკენ
 21. როდის მთავრდება ტესტირება
 -- როცა ტესტირების შედეგები დამაკმაყოფილებელია, ან პროდუქტის ხარისხი საკმარის ნიშნულზეა

 ==== ვაკანსიების კლასიფიკაცია Manual ტესტერზე ====
 - trainee - სტაჟიორი = კურსდამთავრებული
 - junior - ჯუნიორი = 0,5-1 წელი პრაქტიკით
 - middle - 2-3 წელი პრაქტიკით
 - senior - 5+ წელი პრაქტიკით
 - QA tech lead

 ==== მოთხოვნები ვაკანსიებში ==== 
 0. ტესტ-გეგმის(ტესტ-დიზაინის) შედგენა
 1. ტესტ-კეისების, ჩეკ-ლისტების შედგენა
 2. ბაგ-ტრეკინგი
 3. ფუნქციონალური ტესტირება
 4. API ტესტირება
 5. სცენარიების შედგენა
 6. Usability ტესტირება
 7. ბაგ-რეპორტების დაწერა
 8. ბაგ-ტრეკერთან(Gitlab) მუშაობა
 9. ტესტური დაფარვა ფრონტისა და ბექის
 10. ვინდოვს აპლიკაციის ტესტირება
 11. სკრამ ჯგუფთან მუშაობის უნარი
 12. სისტემის ლოგების ანალიზი(Android(ბაზაში)/Web(ნეტვორკში))
 13. ბაგების(დეფექტების) კალასიფიკაცია და ტრეკინგ სისტემაში შეყვანა
 14. ტესტირების შედეგების ანალიზი და სტატისტიკა
 15. ტესტ-დოკუმენტაციის შედგენა
 16. შავი ყუთის მეთოდით ტესტირება
 17. შეცდომების ძებნა
 18. HTTP პრინციპების ცოდნა
 19. HTML საბაზისო ცოდნა
 20. JS საბაზისო ცოდნა
 21. დეფექტების გამოვლენა და რეგისტრაცია Jira-ში
 22. რეგრესიული ტესტირება
 23. ინტერნეტ მაღაზიის ტესტირება
 24. devtools ცოდნა
 25. sql ტესტირება
 26. ინტეგრაციული ტესტირება
 27. არტეფაქტების მართვა
 28. XML კოდის ანალიზი
 29. UI ტესტირება
 30. დატვირთვაზე ტესტირება
 31. Backend ტესტირება
 32. მუშაობა ტესტირების სისტემებთან SoapUI/Insomnia/Postman
 33. მუშაობა ბაგტრეკინგის სისტემებთან HP ALM, Atlassian Jira
 34. REST, GRPC ცოდნა
 35. Smoke ტესტირება
 36. დიზაინ-მაკეტის ტესტირება
 37. ბიზნესის მოთხოვნილებების ტესტირება
 38. Андроид/iOS ტესტირება

   სასურველი მოთხოვნები:
 1. პროგრამირების ენების ცოდნა
 2. ინგლისური მაღალ დონეზე
 3. sql ბაზების ცოდნა
 4. Linux
 5. SoapUI/Postman/JMeter/cURL
 6. Git
 7. Jira-სთან მუშაობის გამოცდილება
 8. CI/CD სისტემებთან მუშაობა
 9. bash და git-თან მუშაობა
 10. Rest Api ტესტირება
 11. Jira, Redmine, Bugzilla ცოდნა
 12. Wiki, Confluence ტესტ-კეისების შესანახად
              
საიტების სრული ტესტირება
 
            ====== საიტების სრული ტესტირება =======

 ------------- საიტის აღწერა და ტესტირების ამოცანების განსაზღვრა ---------

 1. საიტის თემატიკის, დანიშნულებისა და ტიპის გარკვევა, დოკუმენტაციის შესწავლა
 2. საიტის დანიშნულების, წაყენებული მოთხოვნებისა და მნიშვნელოვანი ფუნქციონალის აღწერა
 3. ტესტირების მიზნებისა და მთავარი ამოცანების ჩამოყალიბება

 -------------ვიზუალური ტიპის ტესტირება------------------

 1. საიტის დიზაინთან შესაბამისობა
 2. ღილაკებისა და ლინკების მუშა მდგომარეობის შემოწმება
 3. რესპონსივის გატესტვა 360 პიქსელამდე
 4. responsivis gatestva mobiluris zomebze
 5. ვიზუალის შემოწმება ყველა ბრაუზერზე
 6. დიზაინის ზოგადი სტილისა და სტრუქტურის შეფასება
 7. ინტერფეისის მოხერხებულობის(იუზაბილიტის) შეფასება
 8. საიტის ფუნქციონალის შესაბამისობა მოთხოვნებთან
 9. კონტენტის შესაბამისობა
 10. ტექსტების ზომების, ფერისა და შინაარსის შესაბამისობა

 ------------ ფუნქციონალური ტიპის ტესტირება ----------

 1. ადმინის ფუნქციონალის ტესტირება
 2. ზედა მენიუ, ნავიგაცია, კატეგორიების მუშაობა
 3. სხვადასხვა ლინკებისა და ღილაკების მუშაობა
 4. რეგისტრაციის, ავტორიზაციის, სხვა ფორმების გამართულობა
 5. ფილტრების, დალაგების ფუნქციების მუშაობა 
 6. ძებნის გამართული მუშაობა
 7. ინპუტები და შესავსები ველები
 8. ელემენტების ტესტირება: ჩამოსაშლელი სიები, სურათები, ჩეკბოქსები, რადიოები, სლაიდერები 
 9. მოკარნახე title ტექსტების შემოწმება
 10. ფუტერის ტესტირება, პაგინაცია
 11. უპლოად ფორმები, არვირთვა/ჩამოტვირთვა
 12. გრძელ ტექსტებზე მდგრადობა

 ------------ ტექნიკური ტიპის ტესტირება -------------

 0. SEO გამართულობა
 1. დატვირთვაზე ტესტირება
 2. უსაფრთხოება
 3. მკვდარი გვერდები
 4. კოდის ვალიდურობა(HTML, CSS)
 5. robots.txt ფაილი
 6. sitemap ფაილი
 7. ჩატვირთვა, რეაგირების სისწრაფე
 8. იკონკა, გვერდების title სათაურები
 9. SSL სერტიფიკატი
 10. H1-H6 ტეგები
 11. სტატისტიკის მთვლელები
 12. 404, 301 და სხვა გადამისამართებები
 13. სტრუქტურირებული მონაცემები scheme.org 
 14. დუბლირებული გვერდები
 15. საიტის კუკ-ფაილები
 16. მოკლე ლინკები
 18. ბრაუზერებთან თავსებადობა

 --------------- ტესტირების პროცედურა --------------

 1. საიტის შეფასება, დოკუმენტაციის გაცნობა
 2. საიტის გასატესტი გვერდების რუკის შედგენა
 3. გასატესტი ფუნქციონალებისა და მეთოდების გაწერა
 4. ვიზუალის ტესტირება, UX/UI ინტერფეისის ტესტირება
 5. ფუნქციონალის ტესტირება, ტექნიკური საკითხების ტესტირება
 6. ონლაინ ინსტრუმენტებით ტესტირება
 7. რეპორტი 
 
 ----------- საიტების ტესტირების ონლაინ ინსტრუმენტები -----------

 1. https://pr-cy.ru/ საიტის გატესტვა ბევრი პარამეტრით
 2. https://search.google.com/search-console საიტის პარამეტრების მეტრიკა ბევრი მონაცემებით(რეგისტრაციით)
 3. https://www.bing.com/webmasters/ საიტების მონაცემები რამოდენიმე პარამეტრით(რეგისტრაციით)
 4. https://pagespeed.web.dev/ საიტების სიჩქარის გუგლის ტესტი
 5  https://gtmetrix.com/ საიტის სწრაფი ჩატვირთვის ტესტი
 6. https://validator.w3.org/checklink საიტზე პრობლემური ლინკების ძებნა
 7. https://validator.w3.org/#validate_by_input მარკაპის HTML ვალიდაციის შემოწმება
 8. https://pr-cy.ru/dns/ საიტის დომენის DNS ჩანაწერისა და IP-ის გაგება

                
ტესტირების მეთოდოლოგიები
 ===== ტესტირების მეთოდოლოგიები =====
 
  Quality Control(QC) = ხარისხის კონტროლი, პროდუქტის ხარისხზე ორიენტირებული მიდგომა
  Quality Assurance(QA) = ხარისხის უზრუნველყოფა, ტესტირების ეფექტურ მეთოდებზე ორიენტირებული მიდგომა, გრძელვადიანი და სრული უზრუნველყოფა

  ===== ტესტირების საკითხები =====

  -- რატომ არის საჭირო ტესტირება = ხარვეზები არის არამარტო შეცდომების გამო, არამედ  გაუთვალისწინებელი საკითხებისა და ლოგიკური შეუსაბამობების გამოც.
  -- განსხვავება ტესტერს, QC და QA შორის = ტესტერი მხოლოდ ერთჯერადად ტესტირებაზე მუშაობს, QC არის პროდუქტის ხარისხის კონტროლი, QA კი ხარისხის უზრუნველყოფაა პროდუქტის მთელი სასიცოცხლო ციკლის განმავლობაში.
  -- ტესტირების მიზანი = პროგრამული უზრუნველყოფისადმი წაყენებულ მოთხოვნებთან შესაბამისობის შემოწმება, შეცდომების აღმოფხვრა და ხარვეზების გასწორება. 
  -- დებაგინგი = პროგრამული ხარვეზების აღმოფხვრა 
  -- პოზიტიური ტესტირება = პროგრამული პროდუქტის მოთხოვნებთან შესაბამისობის დადასტურება კორექტული(სწორი) მონაცემებით
  -- ნეგატიური ტესტირება = პროგრამული პროდუქტის გამართული მუშაობის ტესტირება არასტანდარტული და გაუთვალისწინებელი მონაცემების შემთხვევებში. 
  -- დესტრუქციული ტესტირება = სტრესული ვითარების შექმნა, გადატვირთვა, უსაფრთხოების გარღვევა და ა.შ.
  -- სტატიკური ტესტირება = თეთრი ყუთის ტიპის ტესტირება, როცა ტესტირება ხდება პროგრამული კოდის გაშვების გარეშე, პროგრამული უზრუნველყოფის შექმნის ადრეულ ეტაპზე(ვერიფიკაციის ეტაპი)
  -- დინამიური ტესტირება = როცა ტესტირება ხდება კოდის გაშვებით/პროგრამის მუშაობისას(ფუნქციონალის ტესტირება, ვალიდაციის ეტაპზე).
  -- ხარვეზის სასიცოცხლო ციკლი = ხარვეზის დაფიქსირება-> გასწორება-> ხელმეორე გატესტვა-> დახურვა
  -- ხარვეზების პრიორიტეტები = მოგვარების რიგითობა, რამდენად სასწრაფო გადასაჭრელია
  -- ხარვეზების სერიოზულობა[вug severity]  = კრიტიკულობა, რამდენად სერიოზული ხარვეზია
  -- ტესტირების მონიტორინგი და კონტროლი = ტესტირების მიმდინარეობისას სტატისტიკისა და მეტრიკის წარმოება  
  -- SDLC მოდელები = პროგრამული პროდუქტის შემუშავების მოდელები. მთავარი ეტაპებია: 
  1. დაგეგმვა-ანალიზი
  2. დიზაინი
  3. პროგრამირება
  4. ტესტირება
  5. მომსახურება
  შესაძლებელია ეტაპობრივი შემუშავება მიმდევრობით: ანალიზი-დიზაინი-კოდირება-ტესტირება-მომსახურება. 
  ასევე შეიძლება მთელი გუნდის ერთობლივი მუშაობით და ყოველ ეტაპზე ტესტირებით, არის შერეული ტიპებიც.
  -- STLC მოდელები = პროგრამული უზრუნველყოფის ტესტირების სასიცოცხლო ციკლი, Software Testing Life Cycle:
  1. მოთხოვნების ანალიზი 
  2. ტესტირების დაგეგმვა 
  3. ტესტური ნიმუშების შემუშავება 
  4. ტესტირება 
  5. დახურვა  
    
    - ვერიფიკაცია: ვქმნით ჩვენ სწორად პროდუქტს? = (ჩანაფიქრი)
    - ვალიდაცია: ვახორციელებთ ჩანაფიქრს სწორად? = (შესრულება)
  -- ვერიფიკაცია = კოდის გარეშე პროცესი(მანამდე), პასუხობს კითხვაზე: სწორად ვაკეთებთ თუ არა?
  -- ვერიფიკაციის მეთოდები: reviews, walkthroughs, inspections განსაზღვრაცს არის თუ არა   პროგრამული უზრუნველყოფა მაღალი ხარისხის,  ვერიფიკაცია მთავრდება Validation-ით
  -- ვალიდაცია = ითვალისწინებს პროგრამის გაშვებას, ხდება ვერიფიკაციის შემდეგ, პასუხობს კითხვაზე = სწორ პროდუქტს ვაკეთებთ თუ არა? არის თუ არა მოთხოვნების შესაბამისი?
  -- ვალიდაციის მეთოდები: Black Box, White Box და ფუნქციონალური ტესტირება.

  ===== ტესტირების ტერმინოლოგიები =====

  -- Alfa-test = დეველოპერების ან ტესტერების მიერ განხორციელებული ტესტირებას ეწოდება ალფა-ტესტირება, ტარდება პროგრამული პროდუქტის გაშვებამდე, დეველოპინგის ეტაპზე.
  -- Beta-test = მომხმარებელთა მიერ განხორციელებულ ტესტირებას ეწოდება ბეტა-ტესტირება, ტარდება პროგრამული პროდუქტის გაშვების შემდგომ, მოხმარების ეტაპზე.
  -- Experience-based Test Techniques (Exploratory Testing) = გამოცდილებაზე დაფუძნებული ტესტირება, როცა ტესტერი თვითონ წყვეტს რა გატესტოს
  -- Smoke = ზოგადი(ზედაპირული, სწრაფი) ტიპის ტესტირება, ხდება პროექტის ყოველ ახალ ვერსიაზე, ხარვეზების ადრეული აღმოჩენისათვის
  -- Severity = ბაგის გავლენის სერიოზულობა
  -- Priority = ბაგის გასწორების რიგითობა
  -- Sanity = კონკრეტული ფუნქციონალის ტესტირება, ხდება Smoke-ს შემდეგ, ძირითადად ხელით
  -- Regression = განმეორებითი ტესტირებები ახალი ფუნქციონალის დამატებისას, რათა დავრწმუნდეთ ცვლილებებმა მოახდინა თუ არა გავლენა არსებულ და გატესტილ ნაწილზე
  -- Re-test = განმეორებითი ტესტირება ხარვეზების გასწორების შემდეგ
  -- black box = ტესტირება კოდთან წვდომის გარეშე, გარეგანი ტესტირებით
  -- white box = ტესტირება კოდთან წვდომით, როცა ვიცით რისგან შედგება 
  -- Test summary report = ტესტირების შედეგების ანგარიში ცხრილის(ან სიის) სახით. ანგარიშში იწერება: ტესტის ნომერი(ტესტ-კეისის ID), სახელწოდება, ოპერაციის/პროცედურის აღწერა, მოსალოდნელი(სწორი) შედეგი, ტესტირების შედეგი, ხარვეზის სიმძიმე. ანგარიშში შეიძლება იყოს შეტანილი სტატისტიკური მონაცემები ტესტების რაოდენობაზე და ტიპზე, შენიშვნები, რჩევები და ა.შ. 
  -- test data სატესტო მონაცემები, ტესტირებამდე ხდება მათი წინასწარი შეგროვება ხელით ან გენერაცია პროგრამულად
  -- Test Scenario = გატესტვის სცენარი, შეიცავს რამოდენიმე საფეხურს(პროცედურებს)
  -- Test Suite = შესრულების მიხედვით დალაგებული ტესტ-კეისების გაერთიანება
  -- State Transition Technique = მდგომარეობის გადასვლის ტექნიკა. გამოიყენება იმ შემთხვევებში, როცა ხდება სისტემის მდგომარეობის შეცვლა, მაგალითად პაროლის 3-ჯერ არასწორად შეყვანის შემდეგ სისტემა იბლოკება.
  -- Shift Left Testing = ტესტირების გადაწევა პროდუქტის შემუშავების ადრეული ეტაპებისაკენ. 
  -- RTM (Requirements Traceability Matrix) = მოთხოვნილებათა თვალყურის(შესაბამისობის) 2 განზომილებიანი მატრიცა, სადაც ყველა სახის მოთხოვნათა ერთობლიობა(დიზაინის, ბიზნესის, სისტემური, უსაფრთხოების და ა.შ.) დაკავშირებულია ტესტ-კეისებთან(ყველა-ყველაზე). ხშირად არის ტესტ-გეგმის ნაწილი, გამოიყენება მოთხოვნილებათა შესრულებისა და მათი შესაბამისი ტესტირების კონტროლისათვის.
  -- ტესტ-დიზაინი(Test Design) = ტესტების დაგეგმვა და შემუშავება
  -- ტესტ-სტრატეგია(Test strategy) = ტესტირების პროცესის მიმდინარეობის სტრატეგია
  -- ტესტ-გეგმა(Test plan) = ტესტირების პროცესის დეტალური გეგმა, აღწერა
  -- ჩეკ-ლისტი(Check list) = გასატესტი საკითხების და ტესტირების იდეების ჩამონათვალი, მოკლე აღწერებით
  -- ტესტ-კეისი(Test case) = კონკრეტული ფუნქციონალის ტესტირებისთვის საჭირო მოქმედებათა დეტალური აღწერა 
  -- ბაგ-რეპორტი(Bug report) = ანგარიში ხარვეზებზე, ივსება ტესტ-კეისების შესრულებისას. რეპორტში დეტალურად იწერება გასატესტი საკითხი, მოსალოდნელი შედეგი და აღმოჩენილი ხარვეზი.
  -- ტესტ-რეპორტი(Test report) = ანგარიში ტესტ-კეისების შესრულებაზე, კეისების შესრულებისა და აღმოჩენილი ხარვეზების  ზოგადი სტატისტიკა   
  -- Inspection in software engineering = ინსპექცია პროგრამული უზრუნველყოფის შემუშავების დროს მცოდნე სპეციალისტების მიერ, რომლებიც ეძებენ დეფექტებს მკაფიოდ განსაზღვრული პროცედურებით.
  -- Walkthroughs In software engineering = პროგრამული უზრუნველყოფის ეტაპობრივი განხილვის სახელმძღვანელო ექსპერტული შეფასებისათვის, რომლითაც დიზაინერი ან პროგრამისტი ჯგუფის წევრებთან განიხილავს ეტაპობრივად პროგრამულ პროდუქტს, წევრები კი სვავენ კითხვებს და აკეთებენ კომენტარებს შესაძლო შეცდომებსა და პრობლემებზე.
  -- Reviews In software development = პროგრამული პროდუქტის რეცენზირების ტიპი, რომლის დროსაც ხდება მისი შესწავლა ავტორის ან მისი კოლეგების მიერ პროდუქტის ხარისხისა და ტექნიკური შემადგენლობის შესაფასებლად.
  -- BrowserStack = სხვადასხვა ბრაუზერებისა და ოპერაციული სისტემების ემულატორი. 
  -- შავი ყუთის ტექნიკები: Equivalence Partitioning, Boundary Value Analysis, Decision Table Testing, State Transition Testing,Use
 Case Testing);
  -- თეთრი ყუთის ტექნიკები: Statement Testing and Coverage, Decision Testing and Coverage, The Value of Statement and Decision Testing);
  -- გამოცდილებაზე დაფუძნებული ტექნიკებით ტესტირება: Error guessing, Exploretory testing, Checklist-based Testing. 


  ==== ტესტირების 7 პრინციპი ====
 1. დეფექტების ვერპოვნა არ ნიშნავს რომ ისინი არ არსებობს.
 2. სრული ტესტირება ყველა შესაძლო შემთხვევისთვის არ არსებობს, მთავარია სწორი პრიორიტეტების განსაზღვრა
 3. ტესტირების დაწყება უმჯობესია ადრეულ ეტაპზე, ხარვეზების დროული გასწორებისთვის
 4. შეცდომების უმრავლესობა მცირე ადგილზეა ერთად დაგროვებული 
 5. მუდმივად ერთი ტიპის ტესტირების გამოყენებისას შეცდომების აღმოჩენა მცირდება და ვეღარ ხდება
 6. სხვადასხვა ტიპის პროდუქტი სხვადასხვანაირად იტესტება, ტესტირების ტიპი დამოკიდებულია კონტენტზე
 7. პრობლემების პოვნა და გასწორება არ არის ეფექტური, თუ პროდუქტი არ აკმაყოფილებს წაყენებულ მოთხოვნებს.
   
   ტესტირება შეიძლება მოხდეს პროექტის დასრულების შემდეგ სრულად, ან დასრულებამდე ეტაპობრივად(იტერაციულად), პროექტის მზადების პარალელურ რეჟიმში. ტესტირება არსებობს მრავალი ტიპის: ფუნქციონალური, უსაფრთხოების, თავსებადობის, სისტემური, სტრესული, მწარმოებლური(სისწრაფე დატვირთვაზე), ინტეგრაციული, საინსტალაციო, ინტერფეისის(უსაბილიტი), საკონფიგურაციო და ა.შ.

   ტესტირების დონეები Test Levels შეიძლება დავყოთ:
 1. მოდულური(Unit, ერთეულის) ტესტირება, პროდუქტის ცალკეული ნაწილის ტესტირება
 2. ინტეგრაციული/კომპლექსური(Integration, მოდულების ერთობლივი მუშაობის) ტესტირება
 3. სისტემური(System, მთელი სისტემის) ტესტირება
 4. გამოყენებითი, მოთხოვნებთან(Acceptance, სპეციფიკაციები) შესაბამისობის ტესტირება

  ==== ტესტირების უნივერსალური მეთოდოლოგია ====

 1. გასატესტი პროდუქტის ანალიზი, მთავარი და მეორეხარისხოვანი საკითხების განსაზღვრა, ფუნქციონალის შესწავლა, დამახასიათებელი ნიუანსები.
 2. ტესტირების მოთხოვნების ჩამოყალიბება, მნიშვნელოვანი საკითხების გამოყოფა და ტესტირების ზოგადი გეგმის გაწერა.
 3. ტესტირების გეგმის დეტალიზაცია, ჩეკ-ლისტებისა და ტესტ-კეისების შედგენა.
 4. დეტალური ტესტირება გეგმაში გაწერილი პრიორიტეტების მიხედვით, ბაგ-რეპორტინგი. 
 5. ზოგადი გეგმისა და ჩეკ-ლისტების კორექტირება საჭიროების მიხედვით.
 6. განმეორებითი ტესტირება, ბაგ-რეპორტინგი. 
 7. ტესტირების შედეგის აღწერა უნდა იყოს დეტალური და კონკრეტული!

 -- ტესტირების გეგმას აუცილებლად უნდა გაუკეთდეს აღწერა მნიშვნელოვან საკითხებზე: წაყენებულ მოთხოვნებზე, ვადებზე, რისკებზე, გამოყენებულ რესურსებზე, საჭირო დოკუმენტაციაზე, მონაცემთა შეგროვებაზე, ტესტირების სტრატეგიაზე და ა.შ.

   ტესტირების გეგმის აგებულება: 
 1. ჩეკ-ლისტები(სია) ტიპების მიხედვით(ტიპი: ვიზუალური ტესტირების ჩეკ-ლისტი, ფუნქციონალურის ჩეკ-ლისტი, სისტემურის, პროგრამულის და ა.შ.)
 2. ჩეკ-ლისტები გასატესტი საკითხების მიხედვით(ვიზუალურში: ზოგადი დიზაინის ჩეკ-ლისტი, ინტერფეისის, რესპონსივის და ა.შ.)
 3. ტესტ-კეისები კონკრეტულ საკითხებზე და ფუნქციონალზე(ზოგად დიზაინში: საიტის ფერთა გამა, კონტრასტები და ა.შ.)
 4. ტესტირების გეგმა შეიძლება იყოს 2 ან ბევრ საფეხურიანი. საწყისი საფეხურია ტიპები, შემდეგ სიები და ქვესიები(ჩეკ-ლისტები), ბოლოს ტესტ-კეისები.

   ტესტირება ხდება ტესტ-კეისების ან ჩეკ-ლისტების მეშვეობით, პირველი არის გასატესტი პროცედურების დეტალური აღწერა, მეორე კი მხოლოდ გასატესტი საკითხების ჩამონათვალი. 

   ტესტ-კეისის შემადგენლობა(ასეთივე შეიძლება იყოს ბაგ-რეპორტის შაბლონიც):
 1. ტესტ-კეისის ნომერი ID
 2. ტესტ-კეისის სახელწოდება(სათაური)
 3. წინასიტყვაობა, ტესტირებისთვის საჭირო წინაპირობების მოკლე აღწერა
 4. შესასრულებელ მოქმედებათა(პროცედურები) დეტალური აღწერა, თანამიმდევრობა
 5. მოსალოდნელი შედეგი, რას ველოდებით ტესტირებისაგან
 6. სტატუსი, ტესტირების შედეგი(Success, Failed, Blocked)
 7. სერიოზულობა: რამდენად კრიტიკულია
 8. პრიორიტეტი:  რამდენად სასწრაფოდ მოსაგვარებელია
 9. დამატებითი ინფორმაცია(საჭიროების მიხედვით): ავტორი, თარიღი, კომენტარი, სკრინშოტი, ფაილი და ა.შ.

   ბაგ-რეპორტის შაბლონი2
 1. ID
 2. ხარვეზის სათაური
 3. ხარვეზის აღწერა 
 4. შესასრულებელი პროცედურები
 5. მოსალოდნელი შედეგი
 6. ფაქტიური შედეგი
 7. დასკვნა 

  ხარვეზის სერიოზულობა
 1. Blocker = ბლოკავს აპლიკაციას, შეუძლებელია მუშაობა
 2. Critical = მნიშვნელოვანი და დამაზიანებელი ხარვეზი 
 3. Major = მნიშვნელოვანი ხარვეზი
 4. Minor = ნაკლებად მნიშვნელოვანი ხარვეზი
 5. Trivial = უმნიშვნელო ხარვეზი

  ხარვეზის პრიორიტეტი
 1. High = მაღალი
 2. Medium = საშუალო
 3. Low = დაბალი

  ხარვეზის სტატუსი
 1. Passed = გაიარა ტესტი
 2. Failed = ჩავარდა ტესტი
 3. Skipped = გამოტოვებულია
 4. In progress = მიმდინარეობს ტესტირება
 5. Blocked = ტესტირება შეუძლებელია

   ტესტ-კეისის შედგენის წესები
 1. ერთი ტესტ-კეისი მხოლოდ ერთ კონკრეტულ ფუნქციონალს ამოწმებს
 2. ტესტ-კეისი არ უნდა იყოს დამოკიდებული სხვა ტესტ-კეისებზე
 3. პროცედურების თანამიმდევრობა უნდა იყოს მკაფიოდ გაწერილი
 4. ტესტ-კეისები სრულად უნდა შეიცავდნენ ტესტირებისთვის საკმარის ინფორმაციას  
  
   რა უნდა იცოდეს ტესტერმა
 1. კომპიუტერული საკითხების ცოდნა
 2. ტესტირების თეორია
 3. ტესტირების ინსტრუმენტები
 4. უნარ-თვისებები

                
სტანდარტული ელემენტების ტესტირება
            ----------------------   გვერდი შემუშავების პროცესშია   ---------------------                             
                
საიტების კლასიფიკაცია
         საიტების კლასიფიკაცია

     საიტები დანიშნულების მიხედვით იყოფა საინფორმაციო, მომსახურებითი და უნივერსალური(მრავალმხრივი) დანიშნულებით

              ------ საინფორმაციო დანიშნულებით ----- 
      - საჩვენებელი ტიპი, კონკრეტულად ერთი მიზნისთვის შექმნილი მარტივი საიტი. 
  1. პროდუქტი 
  2. ღონისძიება 
  3. რეკლამა 
  4. პრომო 
      - წარმომადგენლობითი ტიპი, ვინმეს ან რაიმეს წარმოსაჩენი ინფორმატიული საიტი
  5. პერსონალური 
  6. პორტფოლიო
  7. კომპანია 
  8. ორგანიზაციის
  9. სამთავრობო
      - საინფორმაციო ტიპი, მუდმივი ინფორმაციული ნაკადის მქონე საიტი 
  10. აუდიო 
  11. ფოტო 
  12. ვიდეო 
  13. მედია გამოცემა 
  14. ბლოგი
  15. კატალოგი
              ------ მომსახურებითი დანიშნულებით ----- 
      - სერვისული ტიპი, კონკრეტული სერვისების გაწევისთვის შექმნილი საიტი
  1. სერვისები 
  2. გადახდები
  3. სათამაშო 
  4. საძიებო 
  5. ფოსტა
      - მომსახურებითი ტიპი, მომხმარებლების ინტერესებისთვის მომსახურე საიტი 
  6. სოციალური 
  7. ფორუმი 
  8. ჩატი 
      - კომერციული ტიპი, ბიზნესის დანიშნულების მქონე საქმიანი საიტი
  9.  მაღაზია 
  10. აუქციონი 
  11. განცხადებები 

              -------- უნივერსალური პორტალები -------
      - დიდი მოცულობისა და ფუნქციონალის, მრავალმხრივი დანიშნულების კომბინირებული საიტები
  1. ბიზნეს-პორტალი 
  2. მედია-პორტალი 
  3. უნივერსალური სოც-ქსელი 
  
   საიტების აგებულებისა და არქიტექტურის სრული აღქმისათვის საჭიროა ყოველი ტიპის საიტზე გავარჩიოთ რა სტრუქტურა აქვს და რა სტილს მიეკუთვნებიან(კონსპექტი საიტების სტრუქტურაზე და სტილებზე), ასევე რა პრინციპებია გამოყენებული დიზაინის საფუძვლებიდან(კონსპექტი საიტების დიზაინი და ინტერფეისი).

   როგორ მუშაობს საიტი?
  -- საიტის შესაქმნელად ჯერ უნდა ვიყიდოთ დომენი, ანუ საიტის სახელი. ეს სახელი იქნება რომელიმე დომენურ ზონაში გაფორმებული, მაგალითად .ge ან .com ზონაში. დომენს არეგისტრირებს სპეციალური უფლების მქონე რეგისტრატორი(მაგალითად პროსერვისი), რომელიც გააფორმებს დომენს ჩვენს სახელზე. ამის მერე საჭიროა ვიყიდოთ საიტის ასამუშავებლად საჭირო სერვერული რესურსი. სერვერი იგივე კომპიუტერია, ოღონდ მთლიანად საიტების მუშაობაზე მორგებული კომპიუტერი, სადაც აქირავებენ ამ კომპიუტერის სამუშაო სიმძლავრეებს, მეხსიერებას და გარკვეული მომსახურებების ჩამონათვალს, მაგალითად საიტის სამართავ პანელებს. სერვერზე რესურსების ყიდვის შემდეგ სერვერი გვაძლევს DNS სახელებს, რომლებიც ჩვენი საიტის მისამართს წარმოადგენენ და ამ მისამართის მიხედვით დგინდება ინტერნეტში ჩვენი საიტის ადგილმდებარეობა. ეს DNS სახელები უნდა გავუწეროთ დომენის პარამეტრებს, ანუ სადაც ეს დომენი ვიყიდეთ, იმ კომპანიის საიტზე არის შესაბამისი განყოფილება ამისთვის. უმეტეს შემთხვევაში მოგვიწევს DNS სახელებთან ერთად IP მისამართების გაწერაც, ამ IP მისამართებსაც სერვერი გვაძლევს. ამის მერე საჭიროა მხოლოდ სერვერზე ჩვენს ნაყიდ მეხსიერებაზე ავტვირთოთ ჩვენი საიტის ფაილები და საიტიც მზად იქნება. ატვირთვის გარდა დაგვჭირდება უსაფრთხოების ზომების მიღებაც, მაგალითად SSL სერთიფიკატის დაყენება საიტზე, სარეზერვო მეხსიერება საიტის ბექაპისთვის(ასლის შესანახად), ასევე შეგვიძლკია სხვადასხვა მომსახურების ყიდვა, მაგალითად SEO ინსტრუმენები.


                
საიტის შემუშავება, ანალიტიკა
         ვებსაიტის დამზადება, შემუშავების ეტაპები, ბიზნეს ანალიზი

 1. მოსამზადებელი ეტაპი, ბრიფი, საკითხის შესწავლა, მიზნების განსაზღვრა და ამოცანები 
  - საიტის დანიშნულების გარკვევა, ბიუჯეტი და ვადები 
  - საქმიანობის სფეროსა და სამიზნე აუდიტორიის შესწავლა, ბიზნეს-გათვლები
  - კონკურენტი საიტებიდან გამოსადეგი დიზაინისა და ფუნქციონალის ელემენტების შესწავლა
  - საიტის ტიპის განსაზღვრა, ბრენდის სტილი, დიზაინის ზოგადი აღწერა
  - საიტის ტექნიკური საკითხები, სერვერი, დომენი და შემუშავების ტექნოლოგიები. 
  - ძირითადი ფუნქციონალის ჩამონათვალი
  - სხვა გასაწევი სამუშაოებს სრული ჩამონათვალი
  - შეთანხმება საიტის გაშვების შემდგომ მომსახურებაზე

 2. ტექნიკური დავალების შედგენა 
  - ანალოგიური საიტებიდან სასარგებლო იდეების გადმოტანა
  - საიტის ტიპის დადგენა, ზოგადი კონცეფცია
  - ფერთა სქემის შედგენა, მოთხოვნები დიზაინის სტილზე
  - საიტის რუკა და სტრუქტურული სქემა
  - განყოფილებების, გვერდებისა და კატეგორიების აღწერა, სემანტიკა, SEO და კონტენტი 
  - ძირითადი ფუნქციონალის ჩამოწერა, დამატებითი მოდულების განსაზღვრა
  - მომხმარებლის მოქმედებების სცენარების გაწერა
  - ტექნიკური მოთხოვნების გაწერა, პროგრამირების ტექნოლოგიების განსაზღვრა
  - წინასწარი მაკეტის შექმნა, სრული ფუნქციონალის დასრულება
  - შეთანხმება დეველოპერებთან და დამკვეთთან

 3. დიზაინის შემუშავების ეტაპი: პროტოტიპირება, დიზაინი
  - წინასწარი მაკეტის დახვეწა, მოდიფიცირება
  - დიზაინის რამოდენიმე ვარიანტის განხილვა
  - ლოგო, ფერები, შრიფტი 
  - საწყისი გვერდის დიზაინის შექმნა
  - გარე და შიგნითა გვერდების დიზაინი 
  - სტანდარტული ელემენტების შემუშავება, პოპუპ ფანჯრები
  - ყველაფრის პროექტირება ხდება UX/UI იდეოლოგიის გათვალისწინებით.
 
 4. ფრონტის აწყობის ეტაპი: მარკაპი და ფრონტენდი
  - დიზაინის მიხედვით მარკაპის შედგენა
  - ინტერაქტიული ელემენტების დამუშავება
  - ადაპტიური დიზაინი და მობილური ვერსია 
  - ტექნიკური SEO ფაქტორების გათვალისწინება
  - კოდის ტესტირება შეცდომებისადმი მდგრადობაზე, ვალიდაცია, ოპტიმიზაცია, კროს-ბრაუზერულობა.

 5. ბექის პროგრამირების ეტაპი: სისტემური პროგრამირება, ბექენდი
  - საიტის სისტემური და სერვერული ნაწილის პროგრამული უზრუნველყოფა
  - ადმინ-პანელის პროგრამირება 
  - სოციალური ქსელების ჩართვა, სტატისტიკური მთვლელები
  - გადახდისა და სხვა სისტემების ინტეგრაცია
  - კოდის ტესტირება შეცდომებისადმი მდგრადობაზე, ოპტიმიზაცია, უსაფრთხოება.

 6. გაშვების ეტაპი: საიტის გამართვა და კონტენტით შევსება
  - დომენისა და სერვერის პარამეტრების გამართვა.
  - SEO-ს გათვალისწინებით საიტის კონტენტით შევსება 

 7. ტესტირების ეტაპი: ვიზუალური და ფუნქციური ტესტირება.
  - ვიზუალური მხარისა და დიზაინთან შესაბამისობაში გადამოწმება
  - ინტერფეისის ზოგადი ტესტირება
  - ცალკეული გვერდებისა და ელემენტების ტესტირება
  - ფუნქციონალის ტესტირება
  - ტექნიკური მხარის ტესტირება
  - SEO ტესტირება.

 8. მხარდაჭერის ეტაპი: გაშვების შემდგომი პროგრამული და ტექნიკური უზრუნველყოფა
  - სერვერის ადმინისტრირება
  - შეცდომების გასწორება
  - ახალი ფუნქციების დამატება
  - მედია-მარკეტინგი და SEO განვითარება.
                
ტექნიკური დავალება, დოკუმენტაცია
        საიტის ტექნიკური დავალების შედგენა

  - ტექნიკური დავალება საჭიროა საიტის სწორი დაგეგმვისა და ხარჯების გათვლისათვის.
  - ტექნიკური დავალების შექმნამდე კეთდება ბრიფი(კითხვების ჩამონათვალი შემკვეთთან).
  - ტექნიკურ დავალებას ადგენს პროგრამისტი ან პროექტის მენეჯერტი, იშვიათად შემკვეთი
  - ტექნიკური დავალება დგება საიტის დიზაინის შემუშავებამდე და აღწერს მთელი საიტის ფუნქციონალს ინტერფეისისა და სტრუქტურის ჩათვლით
  - ტექნიკური დავალების შემუშავებისას თავიდან კეთდება საიტის სტრუქტურის ძირითადი მონახაზი, შემდეგ კი დიზაინის პროტოტიპი უფრო დეტალური სახით.

 1. მოსამზადებელი ეტაპი, ბრიფი, კითხვარი საიტის შემუშავებისათვის
  - საიტის დანიშნულების გარკვევა, ბიუჯეტი და ვადები 
  - საქმიანობის სფეროსა და სამიზნე აუდიტორიის შესწავლა, ბიზნეს-გათვლები
  - კონკურენტი საიტებიდან გამოსადეგი დიზაინისა და ფუნქციონალის ელემენტების შესწავლა
  - საიტის ტიპის განსაზღვრა, ბრენდის სტილი, დიზაინის ზოგადი აღწერა
  - საიტის ტექნიკური საკითხები, სერვერი, დომენი და შემუშავების ტექნოლოგიები. 
  - ძირითადი ფუნქციონალის ჩამონათვალი
  - სხვა გასაწევი სამუშაოებს სრული ჩამონათვალი
  - შეთანხმება საიტის გაშვების შემდგომ მომსახურებაზე

 2. ტექნიკური დავალების შედგენა 
  - ანალოგიური საიტებიდან სასარგებლო იდეების გადმოტანა
  - საიტის ტიპის დადგენა, ზოგადი კონცეფცია
  - ფერთა სქემის შედგენა, მოთხოვნები დიზაინის სტილზე
  - საიტის რუკა და სტრუქტურული სქემა
  - განყოფილებების, გვერდებისა და კატეგორიების აღწერა, სემანტიკა, SEO და კონტენტი 
  - ძირითადი ფუნქციონალის ჩამოწერა, დამატებითი მოდულების განსაზღვრა
  - მომხმარებლის მოქმედებების სცენარების გაწერა
  - ტექნიკური მოთხოვნების გაწერა, პროგრამირების ტექნოლოგიების განსაზღვრა
  - წინასწარი მაკეტის შექმნა, სრული ფუნქციონალის დასრულება
  - შეთანხმება დეველოპერებთან და დამკვეთთან

 3. ტექნიკურ დავალებაში შემავალი საკითხები 
  - ტექნიკური დავალების მიზანი, განსახილველი საკითხების სია
  - საიტის მიზნები და ამოცანები, ანალიტიკა, მარკეტინგული გათვლები, აუდიტორია 
  - საიტის კარტა, სტრუქტურა და ლოგიკური კავშირები
  - უცვლელი ელემენტების ფუნქციონალი(ჰეადერი, ფუტერი, გვერდითი პანელები, Float ფანჯრები)
  - ძირითადი(საბაზისო) გვერდების ფუნქციონალი და აღწერა
  - ელემენტების მუშაობის აღწერა და ფუნქციონალი
  - მომხმარებლის მოქმედებების სცენარების აღწერა
  - ზოგ შემთხვევაში მონაცემთა ბაზების არქიტექტურა
  - ლინკების გენერაციის წესი, მონაცემთა მიკრო-სტრუქტურა ფეისბუქისა და გუგლისათვის
  - SEO კონტენტი, TDH ავტოგენერაციის წესი title, description, H1
  - წინასწარი მაკეტი, პროტოტიპი, მოთხოვნები ადაპტივზე, დიზაინის აღწერა
  - ადმინ-პანელი, სტატისტიკური მონაცემების გვერდი
  - გადახდისა თუ სხვა ინტეგრაციული სისტემების აღწერა
  - ტექნიკური მოთხოვნები, ჩატვირთვის სისწრაფე, უსაფრთხოება, სერვერი, გამოყენებული ტექნოლოგიები
  - ტერმინების განმარტება

 4. ხშირად დაშვებული შეცდომები
  - არ არის მითითებული ზუსტი ვადები
  - არასრულყოფილი შევსება
  - არ არის დეტალიზებული ფუნქციონალი
  - არ არის დაზუსტებული დიზაინის დეტალები
  - ხარვეზებია საიტის სტრუქტურაში
  - ხარვეზებია ფუნქციონალის ლოგიკაში
  - დომენისა და სერვერის ყველა საჭირო მონაცემების არქონა
                
საიტების სტრუქტურა და სტილები
 ======= საიტების სტრუქტურა და სტილები ======

 1. საიტის სტრუქტურის დადგენის თანამიმდევრობა --------------------------
  - საიტის დანიშნულების, საქმიანობის სფეროსა და სამიზნე აუდიტორიის შესწავლა 
  - კონკურენტი საიტების შესწავლა და სასარგებლო ინფორმაციების გადმოტანა
  - საიტის გვერდებზე საჭირო ყველა კომპონენტისა და ელემენტის ჩამოწერა
  - ფერებისა და ფონტის არჩევა, ლოგო, საიტის ტიპისა და სტილის განსაზღვრა
  - საიტის ლოგიკური სტრუქტურის გრაფიკული გამოსახვა(მინდმაპი)
  - კომპონენტების განაწილება მთავარ ველებზე, ინტერფეისის წინასწარი მონახაზის გაკეთება, მაკეტის შედგენა, პროტოტიპი
  - კომპონენტების მოწესრიგება UX/UI იდეოლოგიით, სტრუქტურის დეტალიზაცია

 2. საიტის სტრუქტურის მთავარი ველები ------------------------------
  2.1. ჰეადერი, საიტის ზედა ნაწილი, ანუ ნავიგაციური მენიუს ბლოკი
    - ჰეადერი შედგება მენიუების ჰორიზონტალური ზოლებისგან(ბლოკებისგან), ასევე ზშირად მთავარი ბანერისგანაც. ბანერი განლაგებულია უმეტესად ზოლების ქვემოთ, ან ზოლების შუაში, ან მთლიანი ფონის სახით.
    - ჰეადერი არის უმეტესად 1 ან 2, ზოგჯერ 3 ზოლიანიც.
    - უმეტესად მარცხნივ ან ზოგჯერ შუაში განლაგებულია ლოგო.
    - ჰეადერის ზოლების მარჯვენა ბოლოში განლაგებულია სოც. ქსელების ლინკები, ასევე რეგისტრაციისა და ავტორიზაციის იკონები, ასევე ზოგჯერ რაიმე ფუნქციის ღილაკიც.
    - ზოლის შუაში ხშირად განლაგებულია ძებნის ველი, ზოგჯერ მარცხნივ ან მარჯვნივ.
    - ზედა ზოლზე ხშირად განლაგებულია კომპანიის საკონტაქტო მონაცემები, ასევე სოც. ქსელების ლინკები
    - ზოლების ერთმანეთისგან გამოყოფა ხდება მკრთალი ხაზით ან კონტრასტული ფონებით
    - მთავარი ბანერი ხშირად შეიცავს წარწერებს დიდი ასოებით(სათაური), წვრილი ასოებით(დახასიათება) და ასევე ლინკს(ან ფუნქციურ ღილაკს).
  2.2. მთავარი ცენტრალური ბლოკი, კონტენტისათვის
    - ეს არის ძირითადი კონტენტის განთავსების ადგილი, პოსტების, კატალოგების, გალერეის, პროდუქტისა და სხვა ძირითადი ინფორმაციისათვის.
  2.3. გვერდითი პანელები, მენიუს, კატეგორიების ან დამატებითი ინფორმაციისათვის
    - ძირითადად გამოიყენება კატეგორიების სიებისათვის(უმეტესად მარცხენა მხარეს), ასევე სარეკლამო ბანერების განსათავსებლად, იშვიათ შემთხვევებში კი პოსტების განსათავსებლად.
  2.4. ფუტერი, საიტის ქვედა ნაწილი, დამატებითი ინფორმაციებისათვის
    - ფუტერში განთავსებულია კომპანიის შესახებ ინფორმაცია, სოც.ქსელების ლინკები, სხვა გვერდებზე გადასასვლელი ლინკები, ასევე სარეკლამო ლინკები და სხვა დამატებითი სახის ინფორმაცია.
  2.5. სარეგისტრაციო და სხვა ფორმები, პოპ-უპ ფანჯრები
     - კეთდება მოდალური ფანჯრის სახით, ან ცალკე გვერდად.

 3.საიტის სტრუქტურის ელემენტები -----------------------------------
  - მთავარი ელემენტებია: მენიუ, კატეგორიები, კონტენტი, დამატებითი ინფორმაცია, Float პანელები
  - მენიუ(ნავიგაცია): შედგენილია საიტის მთავარი საკითხების მიხედვით, მენიუში უნდა იყოს რამოდენიმე(5-6) ელემენტი. შესაძლებელია მენიუს ქონდეს ჩამოსაშლელი ქვემენიუების(ან კატეგორიების) სიაც.
  - კატეგორიები: ეს არის კატეგორიებად გაშლილი მენიუს ელემენტები, შესაძლებელია კატეგორიებად და ქვეკატეგორიებად დაყოფაც, შეიძლება შეიცავდეს 5-30 ცალ ელემენტს.
  - კონტენტი: საბოლოო მოხმარების ინფორმაცია, შეიძლება წარმოდგენილი იყოს პოსტების, პუბლიკაციის, ცხრილის, კატალოგის, პროგრამის, სიის ან რაიმე სხვა სახით.
  - დამატებითი ინფორმაცია: ტექნიკური, სარეგისტრაციო, საინფორმაციო და სარეკლამო ლინკები, სხვადასხვა საინფორმაციო ტექსტი, საავტორო და სხვა მონაცემები.
  - Float პანელები: სარეგისტრაციო, სარეკლამო და საინფორმაციო ხასიათის ფანჯრები

 4. საიტის იერარქიის ლოგიკური აგებულების ტიპები ----------------------------
  - ხაზოვანი სტრუქტურა, უმეტესად ერთი შვილობილი გვერდი ყოველ გადასვლაზე
  - ბლოკური სტრუქტურა, ყველა გვერდიდან ნებისმიერ გვერდზე გადასვლა
  - იერარქიული სტრუქტურა, მშობელი გვერდებისა და შვილობილი გვერდების განტოტვა
  - იერარქიის საუკეთესო სიღრმეა 3-4 კლიკით გადასვლა საბოლოო მიზნამდე

 5. საიტის ელემენტების განლაგებისა და აგებულების სტანდარტები ------------
  - საიტის მთავარი არეალები განაწილებული უნდა იყოს მნიშვნელობის მიხედვით
  - საიტის სქემის სტანდარტის მიხედვით საიტი შედგება ჰეადერის, ცენტრალური კონტენტის და ფუტერისაგან, შეიძლება გვერდითი პანელების დამატებაც.
  - ჰეადერში მარცხნივ არის ლოგო, მარჯვნივ იკონები, შუაში კი მენიუ(ნავიგაცია).

 6. სტანდარტული შეცდომები საიტის სტრუქტურირებაში ---------------------
  - ძნელად აღსაქმელი სტრუქტურა
  - გვერდის მისამართებში გაუგებარი დასახელებები
  - ელემენტების/კატეგორიების არასწორი და არათემატური დაჯგუფება
  - პროდუქციისთვის საკმარისი ფილტრების არქონა
  - კატეგორიების დიდი რაოდენობა საწყის გვერდზე
  - დუბლირებული გვერდები სხვადასხვა მისამართებით

 7. საიტის დიზაინის საფირმო სტილის ელემენტები -------------------------
  - ლოგო
  - საფირმო ნიშანი
  - საფირმო ფერი
  - საფირმო პერსონაჟი
  - საიტის საფირმო სტრუქტურა და ელემენტების განლაგება
 
 8. საიტის მახასიათებელი სტილები --------------------------------------
  - შუქის მიხედვით: ღია ნათელი, მუქი(ბნელი), კონტრასტული, ფონური სურათით
  - ფერის მიხედვით: მხიარულ ფერებში, შავ-თეთრი, სტანდარტული შეხამებით, ფონური სურათით
  - გრაფიკის მიხედვით: მშრალი(ცივი) გრაფიკა, მხატვრულად გაფორმებული, სტილიზებული, კლასიკური
  - თემატიკის მიხედვით: კლასიკური, რეტრო, ფუტურისტული, საგაზეთო, მულტიპლიკაციური, სარეკლამო
  - დატვირთულობის მიხედვით: მინიმალისტური, ნორმალური, გადატვირთული ელემენტებით
  - ელემენტების მიხედვით: Flat ელემენტები, ჩვეულებრივი ჩრდილებით, 3D ელემენტები, სტილიზებული                          
                
საიტების დიზაინი და ინტერფეისი
       ვებ საიტების დიზაინი მოიცავს 3 ძირითად კომპონენტს:
  1. გრაფიკული მხარე:
  - საიტის ზოგადი ვიზუალი, კომპონენტების ვიზუალი, ფერები და გაფორმება, სტილი
  2. ინტერფეისი
  - საიტის სტრუქტურა, კომპონენტების განლაგება, ზომები და ფორმები
  3. ფუნქციონალი
  - საიტის ინტერაქტიური ელემენტები

   ==== დიზაინის შემუშავების ეტაპები ====
  1. საკითხის შესწავლა, ანალიზი
  - საიტის დანიშნულების, საქმიანობის სფეროსა და სამიზნე აუდიტორიის შესწავლა 
  - კონკურენტი საიტების შესწავლა და სასარგებლო ინფორმაციების გადმოტანა 

  2. ზოგადი სტრუქტურის ჩამოყალიბება
  - საიტის გვერდებზე საჭირო ყველა კომპონენტისა და ელემენტის ჩამოწერა
  - ფერებისა და ფონტის არჩევა, ლოგო, საიტის ტიპისა და სტილის განსაზღვრა
  - საიტის ლოგიკური სტრუქტურის გრაფიკული გამოსახვა(მინდმაპი)
  - კომპონენტების განაწილება მთავარ ველებზე, ინტერფეისის წინასწარი მონახაზის გაკეთება, მაკეტის შედგენა, პროტოტიპი
  - კომპონენტების მოწესრიგება UI/UX იდეოლოგიით, სტრუქტურის დეტალიზაცია

  3. გვერდების დიზაინი, ელემენტების დამუშავება
  - საწყისი გვერდის დიზაინის შექმნა
  - გარე და შიგნითა გვერდების დიზაინის შექმნა
  - სტანდარტული ელემენტების დამუშავება, პოპუპ ფანჯრები, ფორმები
  - დიზაინის გატესტვა UI/UX იდეოლოგიასთან შესაბამისობაზე.
  - დიზაინის შეთანხმება მარკაპის პრინციპებთან 

  4. ხშირად დაშვებული შეცდომები
  - ვიზუალური ხმაური
  - ერთიანი სტილის არქონა
  - რთულად აღსაქმელი ინტერფეისი
  - ძალიან ბევრი ელემენტი გვერდზე
  - დაუბალანსებელი ფერთა გამა
  - დამაბნეველი სტრუქტურა
  - მიღებულ სტანდარტებთან შეუსაბამობა
  - სხვადასხვა ზომის ეკრანისთვის ადაპტაციის არქონა
  - ტექსტის დამალული ნაწილები
  - ფონის ფერთან არაკონტრასტული ტექსტი
  - ლინკების ჩვეულებრივ ტექსტად გამოჩენა 
  - მცირე დაშორებები ელემენტებს შორის
  - საიტის ელემენტების ზომების შეუსაბამობა მის მნიშვნელობასთან 

  5. დიზაინის შედგენის პრინციპები, ფერები, ელემენტები
  - საიტი უნდა იყოს ერთიან სტილში ჩამჯდარი  
  - ფონი უნდა იყოს ერთ ფერში, ან ერთფეროვანი სურათების შპალერი
  - კარგად აღსაქმელი შრიფტების შერჩევა, მაქსიმუმ 2-3 ტიპის(ძირითადი, სათაურების, პარამეტრების)
  - საიტს უნდა ქონდეს ერთი საფირმო ელფერი, რომლის მიხედვით დგინდება დამხმარე ფერების გამა
  - ფონტების ხასიათი უნდა იყოს საიტის თემატიკასთან შესაბამისობაში
  - ელემენტთაშორისი მანძილები(დაშორებები) იზრდება შემდეგი თანმიმდევრობით: ასოებს შორის, სიტყვებს შორის, წინადადებებს შორის, აბზაცებს შორის, ბლოკებს შორის.
  - ნებისმიერი ელემენტის დიზაინი უნდა იყოს მარტივი და უბრალო, მაგრამ ინფორმაციულად სრულად და გასაგებად უნდა ასახავდეს მათ დანიშნულებას.
  - მნიშვნელოვანია პრინციპი: "დიზაინი მაშინ კი არ არის სრულყოფილი, როცა ვერაფერს ვეღარ დაამატებ, არამედ მაშინ, როცა ვერაფერს ვერ მოაკლებ".
  - "არ მაიძულო ვიფიქრო" - ინტერფეისის მთავარი ლოზუნგი.
 
  6. დიზაინის შედგენის პრინციპები, ინტერფეისი და ინტერფეისის ელემენტები
  - დიზაინის აწყობამდე შეიძლება რამოდენიმე სიტყვით დავახასიათოთ საიტის დანიშნულება(მიზანი), შემდეგ ეს დანიშნულება გამოვსახოთ ვიზუალურად საიტის მთავარ არეალში და მის ირგვლივ ავაწყოთ საიტი.
  - თუ საიტის დანიშნულება(მიზანი) რამოდენიმე კომპონენტისგან შედგება, მაშინ ისინი მნიშვნელობების მიხედვით უნდა გამოვსახოთ ცენტრალურ ადგილზე და მათ ირგვლივ ავაწყოთ საიტი.
  - ინტერფეისის აწყობა იწყება საიტის მთავარ სივრცეებში მნიშვნელოვანი კომპონენტების განაწილებით, შემდეგ ბლოკების განლაგებით და მთავრდება ცალკეული ელემენტების დამუშავებით.
  - საიტის სტრუქტურა ერთი შეხედვითაც მკაფიო და ინტუიციურად გასაგები უნდა იყოს.
  - ბლოკებისა და ელემენტების ზომები, გამოკვეთილობა და განლაგება თანხვედრაში უნდა იყოს მათ მნიშვნელობასთან და აქტუალობასთან.
  - ელემენტის ირგვლივ დიდი სივრცე მეტ მნიშვნელობას ანიჭებს მას ვიზუალური გადატვირთვის გარეშე
  - ტექსტის ზომა და გამოკვეთილობა თანხვედრაში უნდა იყოს მის მნიშვნელობასთან
  - საიტის სივრცეში ადგილების მნიშვნელობა ზევიდან ქვევით და მარცხნიდან მარჯვნივ მცირდება
  - ცენტრალური ადგილი უნდა დაეთმოს ყველაზე მუშა და მოთხოვნად ინფორმაციას
  - საიტზე ყველა ხაზი, ფერი და ფორმა უნდა იყოს ბუნებრივად მისაღები და არა ხელოვნური 
  - ყველა ელემენტი(განსაკუთრებით სტანდარტული) უნდა იყოს ისეთი, როგორიც მოსალოდნელია რომ იყოს.
  - ყველა ფუნქციურად დამოუკიდებელი ელემენტი უნდა იყოს განლაგებული თავისუფლად, სხვა ელემენტებისგან ვიზუალურად დამოუკიდებლად.
  - ელემენტები უნდა შემოისაზღვროს საკმარისი დაშორებებით, მკრთალი ხაზებით, ან ფონის ფერით 
  - ინტერფეისის ყველა ფუნქცია უნდა აღიქმებოდეს თვალის ერთი გადახედვით და არ უნდა ჭირდებოდეს დაფიქრება ან ძებნა.
  - საიტზე აუცილებლად უნდა ჩანდეს სტანდარტული და საჭირო ელემენტები: ძებნა, მენიუ, კატეგორიები, ლოგო, დასახელება, საკონტაქტო ინფორმაცია, ავტორიზაცია, ნავიგაცია და ა.შ.
  - ნებისმიერი ინფორმაცია უნდა იყოს ხელმისაწვდომი ზედმეტი ძებნის გარეშე, ინტუიციურად.
  - ელემენტებს უნდა ქონდეთ მოკარნახე საინფორმაციო ტექსტი მაუსის გადატარებისას.
  - ღილაკის მონიშვნა ხდება ფონის ფერის შეცვლით, ტექსტის ფერის შეცვლით(ან გამსხვილებით), ან მკრთალი ჩარჩოს გამოჩენით. შესაძლებელია ანიმაციის ეფექტების გამოყენებაც.
  - საიტის დიზაინში გათვალისწინებული უნდა იქნას ყველა მიღებული პრაქტიკა

  ==== საჭირო ლინკები ====
  -- მატერიალის რეკომენდაციები დიზაინზე
  https://material.io/
  -- რუკის შედგენა
  XMind
  https://www.gloomaps.com
  https://www.justinmind.com/thank-you-win
  -- დიზაინი და გრაფიკა
  https://www.figma.com
  -- მაკეტის შედგენა
  https://moqups.com
  https://app.mockplus.com       
                
ლენდინგ საიტის პრინციპები
          ==== ლენდინგის ტიპის საიტების შემუშავება ====
  ლენდინგი არის ერთი გარკვეული დანიშნულებით შექმნილი საიტი და შეიძლება ემსახურებოდეს რაიმე პროდუქტის რეკლამას, გაყიდვას, კომპანიის ან რაიმე ღონისძიების შესახებ ინფორმაციას, ასევე შეიძლება იყოს უბრალოდ პორტფოლიო, პირადი ბლოგი, ან ორგანიზაციის წარმომადგენლობითი საიტი. მთავარი განმასხვავებელი სხვა საიტებისგან არის კონცენტრირება ერთ ამოცანაზე. 

  ლენდინგის პრინციპებით შეიძლება სხვა ტიპის საიტის ნებისმიერი გვერდის შექმნა.
   
  ლენდინგის მთავარი ლოზუნგია: ერთი გვრდი, ერთი შეთავაზება, ერთი მოქმედება. 

  ლენდინგზე მომხმარებლის ქმედების კლასიკური სცენარები: 
    1. ვნახე-გავიგე-გავაკეთე
    2. ყურადღების მიქცევა-დაინტერესება-სურვილის გაჩენა-მოქმედება 
    3. ყურადღების მიქცევა-შთაბეჭდილების მოხდენა-ეფექტური შეთავაზება-მოქმედება 
    4. პრობლემის წარმოჩენა-პრობლემის გამწვავება-იმედის გაჩენა-გადაწყვეტის შეთავაზება

   ლენდინგის ტიპის საიტის პრინციპები
  - ლენდინგზე ყველა ინფორმაცია უნდა იყოს ერთი იდეის ირგვლივ
  - ლენდინგ გვერდი უნდა იკითხებოდეს შინაარსობლივად მიყოლებით
  - გვერდზე ყველა ბლოკი უნდა იყოს განლაგებული მნიშვნელობის მიხედვით ზევიდან ქვევით
  - მთავარ გვერდზე ცენტრში უნდა იყოს გამოსახული ყველაზე მნიშვნელოვანი ინფორმაცია, ეფექტური სურათისა თუ მნიშვნელოვანი ტექსტის სახით.
  - ცენტრალურ არეალში უნდა იყოს მთავარი მოქმედებაც, რომელიც მომხმარებელმა უნდა შეასრულოს. 

   შეცდომები ლენდინგ საიტის კეთებისას
  - გრძელი ტექსტები 
  - ძალიან გრძელი გვერდი
  - ერთი შეხედვით ძნელად აღსაქმელი კონტენტი
  - ზედმეტად ბევრი ელემენტები და გადატვირთული ფუნქციონალი

  ლენდინგის შემადგენელი ბლოკები, სექციები
  - გვერდი უნდა დაიყოს აზრობრივ სექციებად
  - მთავარია საწყისი ბლოკი, შთაბეჭდილების მოსახდენად
  - შემდეგ აღწერის ბლოკები, ინტერესის გაღვივებისთვის
  - შემდეგ შეთავაზებების ბლოკები, დასარწმუნებელი არეალი
  - ბოლოში საბოლოო მოქმედების ბლოკი 
  - სექციები გამოყოფილი უნდა იყოს საკმარისი დაშორებებით
  - სექციების მონაცვლეობა უმჯობესია ფონის კონტრასტული ცვალებადობით
  - ლენდინგის ელემენტები უნდა იყოს ვიზუალურად დიდი და შთაბეჭდილების მომხდენი
  - სათაურები და ტექსტები უნდა იყოს ერთნაირად სტილიზებული                          
                
HTML, CSS, JS პროგრამირების საფუძვლები
            ----------------------   გვერდი შემუშავების პროცესშია   ---------------------                             

                
markup კოდის პრინციპები
        მარკაპის შედგენის პრინციპები 

 1. მარკაპის თანამიმდევრობა
  - დიზაინის მაკეტის შესწავლა და ანალიზი, მნიშვნელოვანი საკითხების ჩამოწერა
  - ფაილების სტრუქტურის მომზადება, კოდის საწყისი სახით გამზადება
  - საიტის გარე HTML სტრუქტურის შექმნა მაკეტის ლოგიკური იერარქიის მიხედვით, ადაპტურობის მიცემა მინიმუმ 360 px ზომაზე, გატესტვა ადაპტივზე და შეცდომებზე
  - საწყისი გვერდისა და უცვლელი ელემენტების მარკაპი 
  - ინტერაქტიული ელემენტების დამუშავება
  - საიტის სხვა გვერდების მარკაპის აწყობა
  - გატესტვა ადაპტივზე, კოდის ვალიდურობაზე და შეცდომებზე

 2. სწორი კოდის პრინციპები
  - ნაკლები კოდი, ნაკლები იერარქია
  - ტეგები ყოველთვის უნდა დაიხუროს 
  - აუცილებელია < !DOCTYPE html > 
  - CSS ფაილების ლინკები უნდა იყოს ჩასმული Head-ში
  - ჯავასკრიპტის ფაილები უნდა იყოს ბოლოში 
    < script type="text/javascript" src="path/to/anotherFile.js">< /script >
  - HTML და CSS კოდმა უნდა გაიაროს ვალიდაცია
  - კოდის ყველა მნიშვნელოვან ფრაგმენტს უნდა ქონდეს კომენტარები
  - კოდის ტეგები ყოველთვის პატარა ასოებით უნდა დაიწეროს.
  - სურათებს აუცილებლად უნდა ქონდეთ ტეგი alt
  - ფუნქციური ელემენტები და a ლინკები ჯობია ჩავსვათ div ჩარჩოში
  - ლოგოს უნდა ქონდეს მთავარი გვერდის ლინკი
  - ყველა ღილაკი უნდა იყოს ერთნაირ სტილში
  - ზომის ერთეული არ უნდა იცვლებოდეს, უმჯობესია პიქსელები
  - არ შეიძლება ტეგებისა და კლასების ერთად გაწერა CSS-ში 
  - ღილაკები კეთდება 3 საშუალებით: input(ფორმისათვის), button(მოქმედებისათვის), a(სხვა გვერდზე ან გვერდის განყოფილებაზე გადასასვლელად)
  - !important დასაშვებია იყოს მხოლოდ მედია ქუერიებში
  - #ID იდენტიფიკატორები გამოიყენება მხოლოდ HTML-ში
  - inline სტილის გასმოყენება დასაშვებია უნიკალურ ელემენტებში, როცა კოდი მცირეა. ასევე იმ ელემენტებში, რომლებიც რაღაცით განსხვავდებიან კლასის სხვა წარმომადგენლებისაგან.
  - ღილაკების დასაშვები მინიმალური ზომა მობილური ვერსიის შემთხვევაში იწყება 34-48 პიქსელიდან
  - ყველა ელემენტს უნდა ქონდეს საკუთარი უსაფრთხო დაშორებები
  - ტექსტურ რედაქტორში html და css მნიშვნელოვანი განყოფილებები უნდა გაერთიანდეს ჯგუფებად
  - ადაპტივის მედია ქუერიები შესაძლებელია გაიწეროს ეკრანების სტანდარტული ზომების პრინციპითაც და ასევე ნებისმიერი ზომების პრინციპითაც, რომლებზეც საიტის დიზაინი მოითხოვს გადაწყობას.

 3. სემანტიკური ტეგები
  - header = მთავარი ზედა კონტეინერი, ზედა მენიუსა და ნავიგაციისათვის
  - main = მთავარი ცენტრალური კონტეინერი, ძირითადი კონტენტისათვის
  - footer = მთავარი ქვედა კონტეინერი, სხვადასხვა ლინკებისა და საჭირო ინფორმაციისათვის
  - aside = მთავარი გვერდითი კონტეინერი, კატაგორიებისა და სხვა ინფორმაციისათვის
  - section = ნახევრად-ავტონომიური კონტეინერი, ბლოკების ან ელემენტების გასაერთიანებლად
  - article = ავტონომიური კონტეინერი, ერთი ინფორმაციული ჯგუფის გამოსახვისათვის
  - nav = კონტეინერი ნავიგაციის ღილაკებისათვის
  - H1-H6 = ტეგები სათაურებისათვის, მნიშვნელობის მიხედვით
  - გვერდის სტრუქტურა იწყობა იერარქიით: მთავარი კონტეინერი-კონტეინერი-ბლოკი-ელემენტები

 4. ტექნიკური საკითხები
  - საიტის ადაპტიური(რესპონსივი) მარკაპის მთავარი მეთოდია Flex ან Grid მეთოდები
  - მარკაპის საწყისი დიდი ეკრანის ზომა არის მინიმუმ Full HD გაფართოება 1920x1080
  - გვერდი უნდა იყოს ადაპტიური ეკრანის ყველა ზომაზე 320px ან 360px მინიმალური ზომით
  - გვერდის კონტენტი სასურველია იყოს მაქსიმუმ 1200px-1600px ზომამდე ჰორიზონტალურად
  - ზომის ადაპტაციური ცვლილება ხდება ელემენტების დრეკადობით(მინიმალურ ზომამდე)+გადაადგილებით
  - ჩატვირთვის სისწრაფე მისაღებ ფარგლებში უნდა იყოს, კომპიუტერის და მობილურის ვარიანტებში
  - სურათების ზომა ოპტიმალური უნდა იყოს, ასევე კოდის და ბიბლიოთეკების ზომებიც
  - კოდის ჩატვირთვა უნდა მოხდეს სწორი მიმდევრობით, ასევე უმჯობესია კოდის კომპრესია.
  - სავალდებულოა კოდის გავლა ვალიდურობაზე
  - საწყისი HTML გვერდი უნდა იყოს ფაილში index.html
  - CSS და JS ფაილები უნდა ინახებოდეს ცალკე
  - სასურველია საიტის ბანერების/სურათის ჩატვირთვა CSS ფაილიდან, რათა მხოლოდ ერთხელ ჩაიტვირთოს
  - სასურველია საიტის ზოგადი ჩარჩოს(მთავარი კონტეინერების) CSS ჩაიწეროს ცალკე ჯგუფად, ან ცალკე ფაილად, ხოლო ბლოკების და ელემენტების CSS კი ცალკე ჯგუფად, ან ცალკე ფაილებად.
  - სურათები უნდა ინახებოდეს fotos, images და icons ფაილებში

 5. უსაფრთხო მარკაპის პრინციპები
  - კოდი უნდა შემოწმდეს ვალიდურობაზე
  - ყველა ბრაუზერში ერთნაირად უნდა ჩანდეს გვერდი
  - ტექსტური არეები უნდა შემოწმდეს ძალიან გრძელ და მოკლე ტექსტებზე 
  - ყველა ბლოკი უნდა შემოწმდეს დიდი და პატარა მოცულობის კონტენტზე 
  - ყველა ბლოკის ადაპტურობა და სწორი განლაგება უნდა შემოწმდეს ყველა ზომის ეკრანზე.  

 6. SEO მოთხოვნები
  - აუცილებელია საიტის ფავიკონი < link rel="icon" > 32x32 PNG საწყის ფოლდერში
  - ყველა გვერდზე უნდა იყოს 1 ცალი H1 ტეგი
  - ყველა სურათს სასურველია ქონდეს alt ტეგში სწორი სახელი SEO გათვალისწინებით
  - გვერდების title ტეგში უნდა გაიწეროს გვერდის მისამართის იერარქია და ბოლოში KEY სიტყვა
  - აუცილებელია საიტის რუკის შედგენა Google ინდექსაციისათვის
  - აუცილებელია robot.txt ფაილი საძიებო ბოტებისათვის 

 7. მარკაპის გატესტვა
  - დიზაინის ვიზუალთან თანხვედრაში შემოწმება
  - სხვადასხვა ბრაუზერებში დიზაინთან შესაბამისობის ტესტირება
  - ბლოკების ტესტირება დიდი და მცირე ზომის კონტენტზე
  - ფორმების ფუნქციონალის შემოწმება
  - ღილაკების, ლინკებისა და აქტიური ელემენტების შემოწმება
  - რესპონსივის გატესტვა ეკრანის მინიმუმიდან მაქსიმალურ ზომებდე
  - SEO ოპტიმიზაციაზე შემოწმება
  - ვალიდაციაზე შემოწმება

 8. საჭირო ლინკები და პროგრამები
  - ვალიდურობაზე HTML შემოწმება https://validator.w3.org
  - ტექსტის რედაქტორები SublimeText  Notepad++  VisualCode

    კლასების სახელდებისა და CSS ფაილის აგების მეთოდოლოგიები
 9. BEM მეთოდოლოგია, მეთოდოლოგია მთლიანად მორგებულია კოდის მრავალჯერადად გამოყენებაზე
  - B = ბლოკი  E = ელემენტი  M = მოდიფიკატორი, კომპონენტური მიდგომის მეთოდოლოგია
  - BEM აგებულია ინტერფეისის ბლოკებად დაყოფაზე, ბლოკზეა დაფუძნებული კლასებისა და ფაილების სისტემაც, ბლოკი არის დამოუკიდებელი და ავტონომიური, შეიძლება გამოყენება მრავალჯერადად 
  - დასაშვებია ბლოკებში ბლოკების ჩასმა, ასევე ელემენტების ელემენტებში
  - ყველა ბლოკს აქვს კლასი, ამ კლასის გავლით ხდება ელემენტებისა და მოდიფიკატორების  სახელების დარქმევა
  - ბლოკის სახელი უნდა აღნიშნავდეს მის შინაარს და დანიშნულებას(menu), და არა მახასიათებელს(red, big).
  - ბლოკის ყველა ელემენტის(მათ შორის ბლოკების) სახელები მთავარი ბლოკის სახელიდან იწარმოება.
  - სახელების გამყოფია ტირე "-", ელემენტის გამყოფი ბლოკისგან ორმაგი ქვედა ტირე "__", მოდიფიკატორის სახელის გამყოფია ერთი ქვედა ტირე "_" ან ორმაგი ტირე "--"
  - სახელების მინიჭების მაგალითი: .card, .card__img, card--dark, card__img--dark
  - რთული მაგალითი: header__red-block_theme--green-forest აქ header ბლოკის სახელია, red-block ელემენტის სახელია, theme მოდიფიკატორია, green-forest მოდიფიკატორის მნიშვნელობაა
  - მოდიფიკატორი აღწერს ბლოკის ან ელემენტის სტილს, მდგომარეობას ან ქცევას.
  - მოდიფიკატორის სახელი იწერება: _სახელი_მნიშვნელობა search-form__button_size_m
  - BEM-ის მიხედვით CSS-ში არ არის ტეგები და ჩასმული სელექტორები, ასევე არ გამოიყენება კომბინირებული სელექტორები, ატრიბუტები და ID იდენტიფიკატორები
  - BEM-ში არის მიქსები, ანუ ორი კლასის მქონე ელემენტები, ერთი კლასია ზოგადი(საერთო), მეორე კი კონკრეტულად ელემენტისთვის. საჭიროა სხვა ბლოკში ჩასმული ბლოკის აღწერისთვის.
  - ფაილურ სტრუქტურაში ბლოკს აქვს თავისი ფოლდერი იგივე სახელით, ფოლდერში მოთავსებულია ყველა საჭირო ტექნოლოგია და ფაილი რაც ბლოკს ჭირდება. ბლოკის მოდიფიკატორები და ოპციები მოთავსებულია ბლოკის ფოლდერის ცალკეულ ფოლდერებში თავისივე დასახელებით.

 10. OOCSS მეთოდოლოგია
  - CSS-ში ცალკე იწერება სტრუქტურის სტილი და ცალკე გაფორმების. HTML-ში ელემენტს ენიჭება 2 კლასი, სტრუქტურის და გაფორმების. class="btn btn-blue">ცისფერი ღილაკი< /a >  

 11. Atomic CSS ატომარული მეთოდოლოგია
  - სტილები დაყოფილია, ყოველი ხშირად გამოყენებადი მახასიათებელი ცალკე კლასია
  - კლასის სახელი შედგენილია თვისებებისაგან class = "F1-start W-20px P-20 Bxz-bb"

 12. SMACSS მეთოდოლოგია Base, Layout, Module, State, Theme
  - სტილები იყოფა 5 ნაწილად: საბაზისო, განლაგება, მოდული, მდგომარეობა, თემა. 
  - საბაზისო არის ძირითადი ელემენტების სტილები input, button, ul, body, a, reset.css
  - განლაგების(Layout), ანუ მაკეტის სექციების სტილი header, footer, საზელს შეიძლება დაემატოს l-
  - მოდულების, ანუ განმეორებადი ელემენტების(ბლოკების) სტილები, სახელს შეიძლება დაემატოს m-
  - მდგომარეობის სტილები is-error is-collapsed is-hidden სახელს ემატება is-
  - თემის, ანუ გაფორმების სტილები
                
საიტების SEO ოპტიმიზაცია
           ვებსაიტების SEO ოპტიმიზაცია, რანჟირების პარამეტრები და ტექნიკური მოთხოვნები

 1. საიტის კონტენტის ოპტიმიზაცია
  - უნიკალური და საინტერესო კონტენტი
  - სემანტიკური ბირთვის შედგენა საკვანძო ფრაზებით
  - დიდი მოცულობის რელევანტური კონტენტი 
  - შინაარსობლივად და გრამატიკულად გამართული კონტენტი
  - აქტუალური და გაზიარებადი კონტენტი
  - გამოხმაურებების მქონე კონტენტი
  - დამალული კონტენტის არარსებობა

 2. საიტის სტრუქტურა
  - ადაპტური დიზაინი
  - მოხერხებული UserFriendly ინტერფეისი 
  - სტრუქტურული აგებულების მცირე სიღრმე, მაქსიმუმ 3-4 კლიკით გადასვლა
  - საიტის იერარქიის სწორი, ლოგიკური აგებულება
  - მობილურისთვის ოპტიმიზირებული ინტერფეისი 

 3. ტექნიკური SEO ოპტიმიზაცია
  - SSL სერთიფიკატი
  - Robots.txt ფაილი
  - Sitemap ფაილი
  - გვერდების სწორი დასახელება, სწორი სათაურები 
  - საიტის იკონკა, Title და Description(150 სიმბოლო) ყოველი გვერდისთვის
  - საიტის ჩატვირთვის სიჩქარე მობილურზე და პერსონალურზე
  - ვირუსებისა და ფარული რეკლამის არარსებობა
  - სტრუქტურირებული მონაცემები Schema, Open Graph
  - მეტატეგების სწორი განაწილება H1, H2, H3... 
  - გვერდზე ერთი H1 სათაური საკვანძო სიტყვებით, სურათების alt ტეგზე დასახელების გაწერა
  - სტატისტიკური მთვლელები საიტის ფუტერში 

 4. გვერდების ლინკები, შემომავალი და გამავალი ლინკები
  - გვერდების ლინკების დამოკლება და კითხვადობა 
  - გვერდების მისამართის აგება საკვანძო სიტყვებით
  - მთავარი გვერდებისკენ გამავალ ლინკებზე canonical ტეგის გაწერა
  - არაინდექსირებადი გვერდებისთვის noindex nofollow გაწერა
  - დუბლირებული გვერდების გამორთვა რანჟირებიდან
  - 404 შეცდომის ცალკე გვერდი
  - HTTP გადამისამართება HTTPS-ზე
  - გაუქმებული და შეცდომის გვერდების გადამისამართება 3XX, 4XX, 5XX 
  - გადამისამართებები www-დან მის გარეშე, სლეშით და გარეშე, index.html index.php-დან გარეშე
  - ცუდი გამავალი ლინკებისთვის, ტექნიკური გვერდებისთვის და დუბლირებული გვერდებისთვის nofollow გაწერა
    < a href="http://www.example.com" rel="nofollow" >Anchor text here< /a > 

 5. საიტის ინდექსაციის გაუმჯობესების მეთოდები
  - სურათის ზომების შემცირება
  - საკვანძო სიტყვებით დასპამვისგან თავის არიდება
  - საიტის დომენის რელევანტობა შინაარსთან, მოკლე და შესაფერისი დასახელება
  - მნიშვნელოვანი გვერდებისა და სიახლეების ლინკების განთავსება გარეთა გვერდებზე, ასევე ფუტერში
  - შიგნითა გვერდების თავში სანავიგაციო ლინკების ჯაჭვი
  - საიტის ლინკების განთავსება ფორუმებზე და სხვა პოპულარულ საიტებზე
  - საიტზე ყოფნის დროის გაზრდა, დათვალიერებული გვერდების რაოდენობის გაზრდა, კონვერსია 
  - პაგინაციის გვერდების ოპტიმიზაცია
  - საიმედო ჰოსტინგი კარგი პინგით

 6. გამოსადეგი კოდები 
  - საკვანძო სიტყვის შემოწმება საიტზე
    site:https://www.hipermarket.ge ავეჯი
  - დუბლირებული გვერდის დაბლოკვა საძიებო ბოტისთვის robots.txt-ში
    User-agent: *
    Disallow: /page
  - დუბლირებული გვერდის დაბლოკვა საძიებო ბოტისთვის
    < meta name="robots" content="noindex, nofollow" / >
  - კანონიკური გვერდის მითითება ლინკში
    < link rel="canonical" href="https://site.net/example" / >.             
                
ინსტრუმენტები - DevTools
        ----------- DevTools -----------------
 - საიტზე იხსნება F12 ან მარჯვენა ღილაკით inspect
 - შეიძლება კოდის ჩასწორება და ლაივ რეჟიმში ნახვა
 1. Elements მოიცავს html და css კოდს, DOM ხეს
 2. Console შეცდომები და გაფრთხილებები, ამოწმებს JS მუშაობას
 3. Sources აჩვენებს რა არის ჩატვირთული, ფაილოვანი სისტემა
 4. Network აჩვენებს სერვერზე გაგზავნილ მოთხოვნებს, ჩატვირთვის სიჩქარეებს
 5. Performances აჩვენებს დატვირთვას კომპიუტერზე
 6. Memory აჩვენებს მეხსირებისა და დატვირთვის განაწილებას
 7. Application აჩვენებს ქეშს და მეხსიერებას, ასევე ბაზებს 
 8. Security აჩვენებს კავშირის დაცულობას და სერთიფიკატს
 9. Lighthouse აჩვენებს ჩატვირთვის მაჩვენებლებს
 10. control + F ძებნა სახელით, ტეგით ან კლასით
 11. inspect აჩვენებს ელემენტის კოდს, გვერდის სტატუსს(404,503,200...)
 
   DevTools საჭირო ფუნქციები  ტესტერისთვის
 1. android და ios ემულაცია.
 2. CSS სტილების შეცვლა კოდში, ლაივ რეჟიმში.
 3. გამოუყენებელი CSS და JS კოდები = Sources->Coverage
 4. cookies კუკ-ფაილები = Application->Cookies
 5. ელემენტის ძებნა = Element -> control + F (ძებნის ველი) შესაძლებელია ძებნა HTML ან CSS ფაილში.
 6. ელემენტების გადაადგილება = HTML-ში ხდება მაუსით გადატანა
 7. Cookies კუკების წაშლა = Application -> Cookies -> Clear All

   DevTools ფუნქციონალი
 -- ისარი(select) ზედა მარცხენა კუთხეში = ელემენტების მონიშვნისათვის(აჩვენებს მთავარ პარამეტრებს)
 -- გადამრთველი(Toggle) ახდენს მობილურისა და დესკტოპის ვარიანტებზე გადართვას.

   Element ფუნქციონალი
 -- გამოსახავს ელემენტებს და მათ თვისებებს. ელემენტზე მარჯვენა ღილაკის მენიუთი შესაძლებელია კოდის რედაქტირება, კოპირება, დუბლირება და სხვა ოპერაციები.
 -- Styles = ელემენტების CSS სტილები(კოდი),  აქვეა ფსევდოკლასების დამატების ღილაკები(:hov), კლასის დამატების ღილაკი(cls), მთავარ კოდში შესაბამის ადგილზე გადასვლის ღილაკი. ჩანს ელემენტის დაკავებული სივრცე თავის დაშორებებით.
 -- Computed = იგივეა რაც Style თვისებების უფრო სრული ჩამონათვალით
 -- Layout = სქემატურად გამოსახავს ელემენტების განლაგებას
 -- Event Listener = მოვლენების ჩამონათვალი
 -- Dom Breakpoints = წყვეტის წერტილები(ჩვენს მიერ შექმნილი)
 -- Properties = თვისებების ჩამონათვალი  

   Network ფუნქციონალი
 -- რეალურ დროში გამოსახავს ჩატვირთულ ფაილებს, შეგვიძლია ავირჩიოთ რა ტიპის ფაილები გვაჩვენოს.
 -- ჩატვირთული ფაილების თვისებებია(სიები): Name(სახელი), Status(სერვერის პასუხის კოდი), Type(ფაილის ტიპი), Initiator(რასაც დაჭირდა ფაილი), Size(ზომა), Time(ჩატვირთვის დრო), Waterfall(ჩატვირთვის ვიზუალი)
 -- ქვევით ბოლოში იწერება გაგზავნილი და მიღებული მოთხოვნების(request), ინფორმაციის(transferred) და საჭირო რესურსების(resources) რაოდენობა, ასევე DOM ჩატვირტვის დრო.
 -- Record Network Log(შავი მსხვილი წერტილი) = ახდენს ჩატვირთვის პროცესების ჩამოწერას.
 -- Clear = ჩატვირთვის მონაცემების გასუფთავება
 -- Filter = ფილტრების მენიუს/ძებნის ჩამოშლა
 -- Disable cache = ქეშის ჩატვირთვის დამალვა
 -- Fast3d/No throttling = ჩატვირთვის სიჩქარეების შეცვლა
 -- Offline = ინტერნეტის გარეშე საიტის გამოჩენა
 -- Capture Screenshots = ჩატვირთვის სკრინშოტების ჩვენება

   Console ფუნქციონალი
 -- შეგვიძლია გავუშვათ ბრძანებები(კოდი)
 -- ტესტირებისთვის მნიშვნელოვანია შეცდომები და გაფრთხილებები
 -- Clear = კონსოლის გასუფთავება
 -- Errors = კოდის შეცდომების ჩვენება 
 -- Warnings = გაფრთხილებები შესაძლო შეცდომებზე
 
   Source ფუნქციონალი
 -- აჩვენებს ყველა ფაილს თავისი შემადგენლობით(კოდი, სურათები, სკრიპტები...)
 -- შესაძლებელია კოდის რედაქტირება, წყვეტის წერტილების შექმნა(დებაგერში).
 -- მარჯვენა მხარეს არის კოდის შესრულების ინსტრუმენტები.

   Lighthouse ფუნქციონალი
 -- ახდენს საიტის შეფასებას სხვადასხვა მაჩვენებლებით
 -- Performance = კონტენტის ჩატვირთვის სიჩქარეები, ბლოკირების დრო, DOM სიღრმე
 -- Accessibility = ინტერფეისის ხელსაყრელობა, სხვადასხვა ელემენტების გამართული მუშაობა.
 -- Best Practices = რეკომენდაციები
 -- SEO = SEO ოპტიმიზაცია, კოდის გამართულობა

   Application ფუნქციონალი
 -- გამოიყენება ჩატვირთული ელემენტების გამოკვლევისათვის.
 -- გამოაქვს სხვადასხვა ტიპის მეხსიერების შესახებ ინფორმაცია, ასევე კუკებისა და ქეშის შესახებ

   Performance
 -- სხვადასხვა პროცესებზე დახარჯული დროის მონიტორინგი
 -- გვაჩვენებს რესურსების ჩატვირთვას და ჯავასკრიპტის პროცესების შესრულებას

   Secuirity
 -- აჩვენებს ინფორმაციას მოთხოვნებზე და მონიშნავს რის გამოც ვერ იღებს საიტი მწვანე სტატუსს.
 -- აჩვენებს აქვს თუ არა საიტს SSL სერთიფიკატი

   Memory
 -- გვაძლევს ინფორმაციას საიტებისა და აპლიკაციების მიერ მეხსიერების გამოყენებაზე.
 -- გვაჩვენებს ჯავასკრიპტის კოდებზე დახარჯულ დროს და მეხსირების განაწილებას.

   Audits
 -- აკეთებს გვერდის ანალიზს ჩატვირთვისას, იძლევა რეკომენდაციებს ოპტიმიზაციაზე.
                
ინსტრუმენტები - Figma
         ---------- Figma ყველაზე პოპულარული საიტების დიზაინ-რედაქტორი დეველოპმენტში ----

 - ფიგმაში კეთდება საიტების ინტერაქტიული პროტოტიპები, ინტერფეისის ელემენტები, ვექტორული გამოსახულებები, ლოგოები და ა.შ. აქვს ვერსიის კონტროლი, შესაძლებელია ჯგუფური მუშაობაც.
 - ინახება ქლაუდში, ასევე აქვს დესკტოპ ვარიანტიც, რომელიც სინქრონიზირებულია ქლაუდთან. ცვლილებები ინახება ინტერნეტში, არის პირობითად უფასო პროგრამა(1 მომხმარებლისთვის). დიზაინის გარდა შესაძლებელია დიაგრამების, ბლოკ-სქემებისა და პროტოტიპების შექმნა.
 - აქვს 2 მთავარი განყოფილება, ფაილების მენეჯერი და გრაფიკული რედაქტორი.
 - ყველა ელემენტს აქვს პიქსელებში მითითებული ზომები და დაშორებები, ფერების მნიშვნელობები, ფონტის ზომები, ლინკები და ყველა სხვა პარამეტრები. ასევე მოცემულია CSS კოდის მნიშვნელობები.
 - ფიგმას პროექტში არის ცალკეული ელემენტები(სურათი, ტექსტი, ფიგურა) და ჯგუფები, ასევე ფენები(Layer) 

 - ზედა მარცხენა მხარეს არის მენიუ და სამუშაო ხელსაწყოები:
  Frame = გამოიყენება როგორც დაფა(კონტეინერი) სხვა ელემენტებისათვის
  Figure = გეომეტრიული ფიგურების ხატვა
  Pen = ხაზები და მრუდები, შეიძლება ტექსტის გადაყვანა მრუდში
  Text = ტექსტი
  Hand = არჩევის ინსტრუმენტი
  Grid = ფრეიმის პარამეტრებში ფონური ბადის მიცემა, დაყოფილია სვეტებად(Columns) ან უჯრედებად
  
 - ზედა მარცხენა მხარეს(კუთხეში) არის ჩამოსაშლელი მენიუ, სადაც ხდება ფაილის შენახვა, ვერსიის შენახვა, ექსპორტი.
 - ზედა მარცხენა მხარეს ფენების(Layers) განყოფილებაში მოცემულია სტრუქტურულ ფენებად დაყოფილი ყველა ელემენტი
 - ზედა მარცხენა მხარეს კომპონენტების(Assets) განყოფილებაში მოცემულია კომპონენტები(შენახული ელემენტები), აქ ასევე შეიძლება ბიბლიოთეკების ჩატვირთვა.
 - ზედა მარჯვენა მხარეს დიზაინის(Design) განყოფილებაში არის დიზაინის პარამეტრები(ფერები, გჰანლაგება, ტექსტი და ა.შ.)
 - ზედა მარჯვენა მხარეს პროტოტიპის(Prototype) განყოფილებაში არის დაკავშირებული ელემენტები, აქ ხდება ფრეიმებს შორის გადასვლების გაკეთება.
 - ზედა მარჯვენა მხარეს Inspect განყოფილებაში არის დეტალური პარამეტრები და კოდის მნიშვნელობები(პიქსელები, დაშორებები და ა.შ.) შესაძლებელია კოდის 3 ფორმატში გამოტანა: CSS, IOS, Android
 - ზედა მარჯვენა მხარეს Present ახდენს პროექტის გაშვებას
 - ზედა მარჯვენა მხარეს მენიუ 100% არის მასშტაბისა და ჩვენების რეჟიმებზე გადართვისათვის.
 - ცენტრში სახელთან არის ჩამოსაშლელ მენიუში Version History ანუ ვერსიების ისტორია(გაიხსნება მარჯვენა მხარეს)

  --- ზოგიერთი ფუნქცია ფიგმაში ----
 - Greate component - საბაზო(მუდმივი) კომპონენტის შექმნა რაიმე ობიექტისგან/ელემენტისგან.
 - Duplicate - კლონის შექმნა, კლონირებული კომპონენტები რედაქტირდება ერთდროულად 


  https://www.figma.com/ 
                
ინსტრუმენტები - Jira
           ----------- Jira ---------------
  Create issue = ამოცანის შექმნა, ჯერ უნდა ავირჩიოთ პროექტი სადაც ვქმნით ამოცანას, მერე კი ვირჩევთ ამოცანის ტიპს(Bug, Task, Epic, Story, Improvement და ა.შ.) და ვავსებთ გამოსული ფანჯარის აუცილებელ ველებს: 
 -- Summary = სათაური 
 -- Priority(Critical, Major, Minor) = პრიორიტეტი
 -- Status = სტატუსი
 -- Description = აღწერა
 -- Attachment = მიმაგრებული ფაილი(სკრინშოტი, ვიდეო)
 -- Label = ტიპის მინიჭება(გასაფილტრად)
 -- Assignee = პასუხიმგებლობა(ვინ უნდა მოაგვაროს პრობლემა)
 -- Pre = საწყისი აღწერა
 -- Post = საბოლოო აღწერა

   ტესტირების იერარქია(შეიძლება განსხვავებულადაც)
 -- Test-plane -> Test-Suite -> TestCase -> Test

  JIRA შედგება რამოდენიმე კომპონენტისაგან, რომელთა პარამეტრები შეიძლება ვცვალოთ 
 -- (Workflow)Рабочий процесс = სამუშაო პროცესი
 -- (Issue Types)Типы задач = ამოცანების(პრობლემების) ტიპები
 -- (Custom Fields)Пользовательские рабочие пространства = სამომხმარებლო არეალი
 -- (Screens)Окна = ფანჯრები
 -- (Field Configuration)Настройка рабочих пространств = სამუშაო სივრცეები
 -- (Notification)Уведомления = შენიშვნები
 -- (Permissions)Решения = გადაწყვეტილებები

  განყოფილება issues შეიცავს ფუნქციებს:
 -- Issue Types(Типы задач) = პრობლემათა(ამოცანათა) ტიპები
 -- Workflow(Рабочий процесс) = სამუშაო პროცესი
 -- Screens(Окна) = ფანჯრები
 -- Fields(Рабочие пространства) = სამუშაო სივრცეები
 -- Issue Attributes(Свойства задач) = პრობლემათა(ამოცანათა) თვისებები
 -- ამოცანების(issues) ტიპების ორგანიზება შეიძლება სტანდარტულად და აგილე სისტემით, ან მომხმარებლის მოწყობილი სქემით.

  Components(Компоненты) JIRA კომპონენტები
 -- პროექტის ქვეგანყოფილება, გამოიყენება ამოცანების კომბინირებისათვის.
 -- შეგვიძლია ახალი კომპონენტების დამატება(მაგ: სახელი, აღწერა, ხელმძღვანელი, დანიშნულება)

  JIRA screen(Окна JIRA) ფანჯრები(ეკრანები)
 -- ჯირაში შექმნილი issue გამოჩნდება სხვადასხვა ფანჯარაში(სამუშაო სივრცეში). 
 -- შეგვიძლია issue დავაკავშიროთ ფანჯრებთან Associate an issue operation with a screen
 -- Issue Attributes(Свойства задач) ამოცანების თვისებებში შედის:
 1. Statuses(Статусы) = სტატუსები
 2. Resolutions(Решения) = გადაწყვეტილებები
 3. Priorities(Приоритеты) = პრიორიტეტები

  სტატუსები(Statuses) გამოიყენება პროექტის შემუშავების პროგრესის მაჩვენებლად
 1. To do(Ожидает выполнения) = ელოდება შესრულებას
 2. InProgress(Выполняется) = კეთების პროცესშია
 3. Open(Открыт) = ღიაა
 4. Closed(Закрыт) = დახურულია
 5. ReOpened(Переоткрыт) = ახლიდან გაიხსნა
 6. Resolved(Решен) = გადაწყვეტილია

  გადაწყვეტილებები(Resolutions) გამოიყენება ამოცანების შესრულების პროგრესის მაჩვენებლად
 1. (Fixed)Исправлено = გასწორდა
 2. (Won’t fix)Не будет исправлено = არ გასწორდება
 3. (Duplicate)Дубликат = დუბლიკატი
 4. (Incomplete)Не завершено = დაუსრულებელია
 5. (Cannot reproduce)Не воспроизводится = არ ეშვება
 6. (Done)Выполнено = შესრულებულია

  პრიორიტეტები(Priorities) გამოიყენება ამოცანების მნიშვნელობის გამოსახატავად
 1. Critical(Критический) = კრიტიკული
 2. Major(Высокий) = მაღალი
 3. Minor(Малозначимый) = ნაკლებ მნიშვნელოვანი
 4. Blocker(Блокирующий) = ბლოკირებადი
 5. Trivial(Тривиальный) = ტრივიალური(ჩვეულებრივი)

  Issue Security Schemes ამოცანებთან(issues) დაშვების სქემები
 -- Audit Log(Логи ревизий)= ლოგების აუდიტი
 -- Issue Linking(Связывание задач)
 -- Mail in JIRA(Система почты JIRA)
 -- System events, Custom Events(События)
 -- Watch list(Контрольный список)
 -- Issue Collectors(Счетчик задач)
 -- Development Tools(Инструменты разработки)

  ჯირაში ამოცანებთან(issues) დაშვება ხდება ID და პაროლის შეყვანის შემდეგ. გამოჩნდება განყოფილება Project(პროექტები) სადაც არის ჩამონათვალი:
 -- Simple Issue Tracking = ამოცანების ტრეკინგი
 -- Project Management = პროექტის მენეჯმენტი
 -- Agile Kanban = აგილე კანბან მეთოდოლოგია
 -- Agile Scrum = აგილე სკრამ მეთოდოლოგია
 -- Jira Classic = ჯირა კლასიკური მეთოდოლოგია
 -- Software Development = პროგრამული უზრუნველყოფა

   ზოგიერთი ფუნქცია:
 -- ამოცანების ძებნა = Issues -> search for Issues  
 -- ჯამური ანგარიში = Summary
 -- აქტივობის ჟურნალი = Activity Stream
 -- შესაძლებელია შევქმნათ ამოცანის ქვეამოცანა ნებისმიერი რაოდენობით, ან ქვეამოცანა გადავაკეთოთ ძირითად ამოცანად. ქვეამოცანებს არ აქვს თავისი ქვეამოცანები.  
 -- ქვე-ამოცანის შექმნა = Assign More -> Create sub-task
 -- კონვერტირება ქვე-ამოცანად = Assign More -> convert to sub-task

   Jira-ს სამუშაო პროცესი(WorkFlow) შედგება:
 -- სტატუსებისგან(statuses) = ამოცანების სტატუსები სამუშაო პროცესის განმავლობაში
 -- გადასვლებისგან(transitions) = სტატუსების გარდაქმნები
 -- დანიშნულებისგან(assignee) = პასუხიმსგებლობების განაწილება პროცესში მონაწილეებზე
 -- გადაწყვეტილებებისგან(resolution) = განმაპირობებლი მიზეზები
 -- პირობებისგან(conditions) = გადასვლებზე წვდომის კონტროლი
 -- ვალიდატორებისგან(validators) = გადასვლების ვალიდაცია ამოცანების სტატუსების შესაბამისობასთან
 -- თვისებებისგან(properties) = Jira-ს თვისებები გადასვლებისას

   JIRA Agile
 -- გამოიყენება ჯგუფური მუშაობისთვის და დაფუძნებულია roadmap(საგზაო რუკა) კონცეფციაზე.
 -- სტატუსების გადასვლა ხდება To do —> In Progress —> Done პრინციპით
 -- აგილე ამოცანის(agile-issue) ან ეპიკის(Epic) შექმნა = Getting Started -> Scrum(ან Kanban)

   კომბინირებული ძებნა Jira-ში
 -- კომბინირებულ ძებნას აქვს ასეთი სტრუქტურა: Field - Operator - Value
 -- Field(ველი) = ჯირაში გამოყენებულ მონაცემთა ტიპები, მაგალითად Project, Issuetype, Summary, Security Level, Severity, Priority, Assignee, AffectedVersion, FixVersion, Environment და ა.შ.
 -- Operator(ოპერატორი) = ველსა და მის მნიშვნელობას შორის დამაკავშირებელი ოპერატორი, მაგალითად: Status = Open, Priority != Major
 -- ოპერატორები: IN (-ში), = (ტოლია), != (არ არის ტოლი), ~ (შეიცავს), !~ (არ შეიცავს), IS EMPTY(ცარიელია), IS NOT NULL(არ არის ნული).
 -- სხვა ოპერატორები: WAS, WAS IN, WAS NOT IN, WAS NOT, CHANGED
 -- მაკავშირებელი სიტყვები: OR, AND, NOT, EMPTY, NULL, ORDER BY მაგალითი: Status = Closed OR Assignee = i.p.freely 

   ფილტრები Filters(Фильтры)
 -- შესაძლებელია საკუთარი ფილტრებნის შექმნა. ფილტრები იყოფა ტიპების მიხედვით: მონაცემები(date), კომპონენტები(component), პრიორიტეტები(priority), გადაწყვეტილებები(resolution) და ა.შ.
   
  -----------------------------------------

   Jira თასქების და ბაგების შედგენის წესი:
 • ივსება სათაურის ველი
 • ივსება კომენტარის ველი, სადაც კეთდება დეტალური აღწერა ბაგის შესახებ
 • უნდა აიტვირთოს ბაგის აღმწერი სქრინები ან ვიდეო
 • უნდა მოხდეს თასქის Assigne (მინიჭება) შესაბამის დეველოპერზე. თუ ფრონტის ბაგია, ფრონტ დეველოპერზე, თუ ბექის ბაგია, ბექ დეველოპერზე.
 • უნდა მიენიჭოს თასქს პრიორიტეტი. თუ მნიშვნელოვანი ბაგია, High ან Highest პრიორიტეტი. თუ საშუალო პრიორიტეტის ბაგია - Medium, ხოლო თუ დაბალი პრიორიტეტის არის - Low
 • უნდა მიეთითოს ბაგს, რომელ გარემოზეა აღნიშნული ბაგი (Dev, Staging, Live)
 • უნდა შეივსოს დანარჩენი დამატებითი აუცილებელი ველები თუ აქვს კომპანიას თასქის შედგენის ჭრილში დამატებული

   Jira თასქის ფლოუები. რა ფლოუებს გადის თასქი გატესტვამდე და გატესტვის შემდეგ.
 -- თასქი ჯერ მიდის დეველოპერთან, შემდეგ დეველოპერს გადაყავს პროგრეს სტატუსში, როდესაც დაასრულებს დეველოპერი თასქზე მუშაობას, გადააქვს ტესტინგ სტატუსში, აქ უნდა ჩაერთოს ტესტერი და გატესტოს აღნიშნული დეველოპერის მიერ დასრულებული თასქი. თუ კონკრეტულ თასქზე არ არის ბაგი, ტესტერს გადააქვს Done სტატუსში. თუ რაიმე ხარვეზი აღმოჩნდა, ტესტერი აფეილებს თასქს და უბრუნდება კვლავ დეველოპერს ეს თასქი ცვლილებების შეტანისათვის და გასწორებისათვის.
 
 https://www.atlassian.com/software/jira                            
                
ინსტრუმენტები - Trello, asana
       ----------- Trello ---------------
  -- საიტი trello.com = განკუთვნილია პროექტებისა და ღონისძიებების დაგეგმვისა და თანმიმდევრული შესრულებისათვის
  -- საიტზე შესაძლებელია სამუშაო დაფის შექმნა, რომელიც შესასრულებელი სამუშაოს ტიპის მიხედვით შეგვიძლია დავყოთ სვეტებად, სვეტებში კი ჩავწეროთ შესასრულებელი/დაგეგმილი პროცედურები, ჩეკ-ლისტები, ტესტ-კეისები და ა.შ. საიტი უზრუნველყოფს კომენტარების დამატებას, შეტყობინებების დაგზავნას, ფაილების მიმაგრებას, დროის ათვლას, ჯგუფურ მუშაობას და ყველა სხვა საჭირო ფუნქციონალს. 

  ტრელოში პროექტზე მუშაობის დაწყება
 -- მუშაობის დაწყება ხდება დაფის(Board) შექმნით.
 -- დაფის შემდეგ უნდა შევქმნათ სვეტები(Add List). სვეტები შეიძლება იყოს სხვადასხვა ტიპის და განკუთვნილი პროექტის სხვადასხვა მონაწილისათვის. სვეტები ასევე შეიძლება დახარისხებული იყოს გაკეთებული და გასაკეთებელი საქმეებით, ან დაყოფილი თემატიკურად.
 -- სვეტებში(List ლისტებში) უნდა გავხსნათ ბარათები(Card) სახელით(იგივე სათაურით), შემდეგ შეგვიძლია გავუწეროთ აღწერა, კომენტარები, მივამაგროთ ფაილები და ა.შ. ბარათების(Card ქარდების) გადატანა სხვა სვეტში ხდება მაუსით გადათრევით.
 -- Card-ების მარჯვენა ზედა მენიუ: 
 1. Members = ამოცანაში(იგივე Task) მონაწილის(ან პასუხისმგებელი პირის) დამატება.
 2. Labels = ამოცანის ტიპის(იგივე სახეობის) განსაზღვრა.
 3. Checklist = ჩეკლისტის(სიის) დამატება.
 4. Dates = თარიღის ჩასმა(როგორც წესი, შესრულების ბოლო ვადა)
 5. Attachment = ფაილის ან სხვა დოკუმენტის მიმაგრება.
 6. Cover = კარტის ზევით ფონის მიცემა, სურათის ან ფერის სახით.
 7. Activity = კომენტარები.

   ტესტერმა უნდა იცოდეს Trello ტრელოზე სვეტების, განყოფილებების შექმნა და სტატუსების მინიჭება.
 ასევე ტრელოს თასქზე რომელიმე იუზერის Assigne (მინიჭება). 

   ტრელოზე შეგვიძლია პროექტის დაყოფა ასეთ სტრუქტურად:
 1. დაფები, ანუ პროექტები(boards). 
 2. დაფებზე განლაგებული სვეტები(List-ები ანუ პროექტის განყოფილებები) 
 3. საკითხები/ტესტები(Card ბარათების სახით), რომლებიც დაჯგუფდება თემატურ(label) ჯგუფებად 
 4. გასატესტი საკითხების სიები(Checklist ჩეკ-ლისტების სახით), რომლებიც ჩაწერილია ბარათებში
 5. მიმაგრებული ტექსტური ან სხვა სახის ფაილები
 6. კომენტარები

  ----------- Asana ------ Task მენეჯერი ---------
  ასანაში შესაძლებელია სხვადასხვა სახისა და ტიპის პროექტის ან ამოცანის შექმნა, შეიძლება ასევე წევრების მოწვევა და მესენჯერის ორგანიზება. არსებობს მრავალი შაბლონი პროექტებისათვის.
  პროექტის შექმნა ხდება 4 რეჟიმში: სიები(Lists), დაფა(Board), ტაიმლაინი(Timeline), და კალენდარი(Calendar). ნებისმიერი პროექტი შეგვიძლია ერთი რეჟიმიდან მეორეში გადავიყვანთ.
  ამოცანები(Task) შეიძლება შევქმნათ ცალკე ან რომელიმე პროექტში. ამოცანები შეიძლება გამოვსახოთ სიის სახით, ან სვეტებში(Board) განლაგებული ბარათების სახით.  
  ყველა ცვლილება ერთდროულად ჩნდება პროექტის ყველა მონაწილესთან.
  პორტფელში(Portfolio) შეგვიძლია გავაერთიანოთ რამოდენიმე პროექტი.
  ბარათების გადატანა შეიძლება მაუსით.
  ტაიმლაინში(Timeline) შეგვიძლია დროში გავწეროთ ამოცანის შესრულება თავისი შემსრულებლით. 

  მთავარი მენიუ(მარცხენა მხარეს)
 1. Home(მთავარი) = სხვადასხვა სახის პარამეტრების დაყენება.
 2. My Tasks(ჩემი ამოცანები) = ამოცანები სხვადასხვა რეჟიმში გამოსახვით: სიის ან დაფების სახით, ასევე არის კალენდარი და ფაილები
 3. Inbox(შემოსულები) = მთავარი განყოფილება პროექტის წევრებთან ურთიერთობისთვის
 4. Reporting(ანგარიშები) = მონიტორინგი. ჩანს შესრულებული და მიმდინარე სამუშაოები, ასევე გუნდი.
 5. Portfolio(პორტფელი) = სხვადასხვა სახის ინფორმაცია პორტფელში გაერთიანებულ პროექტებზე.
 6. Goals(მიზნები) = მიზნების გაწერა, მიზნებისა და ქვემიზნების შესრულების გრაფიკი.

  საიტები: 
  trello.com = ტესტირების გეგმისა და ჩეკ-ლისტების შედგენა, ტესტირების კონტროლი
  asana.com  = ტესტირების გეგმისა და ჩეკ-ლისტების შედგენა, უნივერსალური სამუშაო გარემო 
  testcaselab.com = ტესტ-კეისების გასაკეთებლად
                
ინსტრუმენტები - HTTP
           -------------- HTTP საკითხები ------------------

 -- HTTP = ინტერნეტში ინფორმაციის გადაცემის პროტოკოლი
 -- HTTPS = ინფორმაციის დაშიფრული სახით გადაცემის პროტოკოლი
 -- TCP/IP = საბაზო პროტოკოლების ძირეული ნაკრები, რომელზე დაფუძნებითაც მუშაობს HTTP/HTTPS პროტოკოლები. კავშირისთვის ძირითადად გამოიყენება პორტი N80 
 -- ინფორმაციის მიმოცვლა ხდება კლიენტ-სერვერს შორის, სადაც შუაში შესაძლებელია მრავალი მაკავშირებელი პროქსი-სერვერი იყოს. კლიენტის როლს როგორც წესი ბრაუზერი ასრულებს.
 -- HTTP მოთხოვნა შედგება 3 ნაწილისგან: 
 1. საწყისი სტროფი, რომელიც შეიცავს მოთხოვნის ან პასუხის პარამეტრებს
    მეთოდი + URL + HTTP/ვერსია
    მეთოდებია GET, HEAD, POST, PUT, DELETE,CONNECT, OPTIONS, TRACE, PATCH
 2. სათაური, რომელშიც არის აღწერა და სხვა მომსახურე ინფორმაცია. ნიმუში:
    Server: Apache/2.2.11 (Win32) PHP/5.3.0
    Last-Modified: Sat, 16 Jan 2010 21:16:42 GMT
    Content-Type: text/plain; charset=windows-1251
    Content-Language: ka
 3. კონტენტი, ანუ გადასაცემი ინფორმაცია

  HTTP-სთან მუშაობა ხდება DevTools-ში Network განყოფილებაში, სადაც შეგვიძლია კონტექსტური მენიუდან ჩავამატოთ ცხრილის სვეტები:
  - Method: გამოძახების მეთოდი(Get, Post)
  - Status: სერვერის მხრიდან დაბრუნებული პასუხის სტატუსი(200 OK, 404 error) 
  - Scheme: ტიპი(https)
  - Domain: შეერთების ლინკი
  - Type:   დოკუმენტის ტიპი(font, document, script, png)
  - Initiator: გამომძახებელი
  - Size:  დოკუმენტის ზომა
  - Time:  ჩატვირთვის დრო
  - Priority:  ჩატვირთვის პრიორიტეტულობა
  - Waterfall: ჩატვირთვის პროცესი ვიზუალურად
  - Name სვეტში დაწკაპუნებით გამოვა სრული ინფორმაცია ჩამოტვირთულ მასალაზე(Header, Preview, Response, Initiator, Timing, Cookies)

 ==== HTTP პროტოკოლის მუშაობის საფეხურები ====
 1. მისამართი URL იწერება ბრაუზერში
 2. ბრაუზერი ეძებს საჭირო IP მისამართს, სადაც განლაგებულია მოთხოვნილი რესურსი
 3. ბრაუზერი აგზავნის HTTP მოთხოვნას. მოთხოვნის ნიმუში:
  GET/index.html HTTP/1.1
  Host: www.example.com
 აქ GET არის ინფორმაციის მოთხოვნა, index.html არის რესურსის მისამართი სერვერზე, HTTP/ 1.1 არის პროტოკოლისა და ვერსიის მაჩვენებელი, Host არის ჰოსტინგის აღმნიშვნელი, www.example.com არის დომენის სახელი.
 4. სერვერი აბრუნებს HTTP პასუხს, მაგალითად:
  HTTP/1.1 200 ОК
  Content-Type: text/html; charset=UTF-8
  Content-Length: 208
 აქ 200 OK არის მოთხოვნის წარმატებით დამუშავების კოდი, Content-Type აჩვენებს რა ტიპის დოკუმენტია(აქ text/html) გაგზავნილი, Content-Length აჩვენებს დოკუმენტის ზომას ბაიტებში

  HTTP პროტოკოლის მუშაობის თავისებურებები
  HTTP-კლიენტი, ანუ ბრაუზერი, აგზავნის HTTP-მოთხოვნას და ელოდება პასუხს. სერვერი ამუშავებს მოთხოვნას და აგზავნის პასუხს, რის შემდეგაც კავშირი წყდება. ყოველ ახალ მიმართვაზე ახლიდან ხდება დაკავშირება. 
  HTTP არ არის დამოკიდებული მოწყობილობაზე, საჭიროა მხოლოდ გაგზავნილი კონტენტის ტიპის მითითება. 
  HTTP-ს არ აქვს მდგომარეობის(stateless) სტატუსი, კლიენტ-სერვერის კავშირი არის მხოლოდ მოთხოვნის დროს.  

   HTTP მეთოდები:
 1. GET = მოთხოვნის გაგზავნა
 2. POST = გამოიყენება მონაცემთა გადაცემისათვის
 3. HEAD = ანალოგიურია GET-ის, მაგრამ არ აქვს კონტენტი.
 4. PUT = გამოიყენება ინფორმაციის ჩატვირთვისათვის
 5. PATCH = ანალოგიურია PUT-ისა, გამოიყენება მხოლოდ რესურსის ფრაგმენტის მიმართ
 6. DELETE = შლის რესურსს
 7. TRACE = მოთხოვნის დაბრუნებისას აჩვენებს შუალედური სერვერების მიერ დამატებულ ინფორმაციას
 8. CONNECT
 9. OPTIONS
   
   სერვერის მხრიდან მოსული Response status code კოდები
 1xx = საინფორმაციო სახის კოდები
 2xx = წარმატებით შესრულებული მოთხოვნა
 3xx = გადამისამართებები
 4xx = შეცდომა კლიენტის მხარეს
 5xx = შეცდომა სერვერის მხარეს

 200 = მოთხოვნა დადასტურდა წარმატებით.
 201 Webpage Created = მოთხოვნის დადასტურება წარმატებით, გამოიყენება  PUT და POST მოთხოვნის შემთხვევაში.
 202 Accepted = მოთხოვნა მიღებულია დასამუშავებლად, მაგრამ არ დასრულებულა
 204 No Content = არ არის კონტენტი(არ გადაიცემა)
 206 Partial Content = ნაწილობრივი კონტენტის გადაცემა
 300 Moved Permanently = URL მისამართის შეცვლის დადასტურება 
 301 Moved Permanently = გადამისამართება სხვა URL-ზე
 304 Not Modified = მოთხოვნილი კონტენტი უკვე არის ბრაუზერში და არ არის საჭირო სერვერიდან განახლება
 400 Bad Request = მოთხოვნა არასწორია. 
 401 Unauthorized = შეცდომა, საჭიროა აუტენთიფიკაცია.
 403 Forbidden = რესურსი აკრძალულია
 404 Not Found = არ მოიძებნა მოთხოვნილი რესურსი.
 405 Method Not Allowed = მოთხოვნილი მეთოდი არასწორია. 
 409 Conflict = კონფლიქტური მოთხოვნა.
 426 Upgrade Required = მოთხოვნა განახლებაზე
 500 Internal Server Error = სერვერის მხრიდან შეცდომა.
 501 Not Implemented = სერვერს არ აქვს შესაბამისი მხარდაჭერა
 503 Service Unavailable = ტექნიკური პრობლემა
 507 Insufficient Storage
                
ინსტრუმენტები - SQL
           ------------------- SQL ----------------------
    მონაცემთა ბაზები: SQL, MySql, MS Access, Oracle, Sybase, Informix, Postgres, microsoft SQL 

 -- მონაცემთა ბაზები არის სტრუქტურიზირებულ მონაცემთა საცავი.
 -- SQL არის პროგრამირების ენა მონაცემთა ბაზების დამუშავებისა და კონტროლისათვის
 -- მონაცემთა ბაზების სტრუქტურა არის იერარქიული(დატოტვილი), ქსელური(მრავალმხრივი), რელაციური.
 -- პოპულარული მონაცემთა ბაზები: MySql, MS SQL, Oracle, PostgreSql, MongoDB ყველა მონაცემთა ბაზას აქვს საერთო ძირითადი ბრძანებები(მაგალითად SELECT, UPDATE, DELETE, INSERT, WHERE), ასევე საკუთარი ბრძანებებიც.
 -- მონაცემთა ბაზების მართვის პროგრამებია: MySQL, Microsoft Access, Microsoft SQL Server, FileMaker Pro, Oracle Database, dBASE.
 -- მონაცემთა ბაზებში გამოყენებული გავრცელებული მონაცემთა ტიპები: int(მთელი რიცხვი), dec, blob/text/memo, char(ასო), varchar, date(თარიღი), time(დრო), year(წელი), float(ათწილადი), double(დიდი ათწილადი), boolean(ლოგიკური), null(ნული).

    ტესტირებაში SQL ძირითადად გამოიყენება ბაზაში მონაცემების არსებობის შესამოწმებლად.
    რა უნდა იცოდეს ტესტერმა:
 -- მონაცემთა ბაზების ტიპების გარჩევა
 -- მონაცემთა ბაზებთან დაკავშირება შესაბამისი პროგრამით
 -- ცხრილებს, გასაღებებსა და ინდექსებს შორის კავშირები
 -- მარტივი ამორჩევის ოპერატორების(Select) წერა სხვა ოპერატორებთან კომბინაციაში
 -- რთული SQL მოთხოვნების გაგება

   ძირითადი გასატესტი საკითხები SQL ტესტირებაში
 1. ინფორმაციის ასახვაზე ტესტირება = უნდა გაიტესტოს არის თუ არა ინტერფეისის შესავსები და სხვა ველების შესაბამისი ველები ბაზაში.
 2. ინფორმაციის განახლებაზე ტესტირება = გარე ინტერფეისში ინფორმაციის ცვლილების ან შენახვისას უნდა მოხდეს ბაზაში შესაბამისი ველების განახლება. როგორც წესი ასეთ შემთხვევებში სრულდება ოპერაციები:
 -- CREATE = ახალი ჩანაწერის შექმნა
 -- INSERT = ჩანაწერის ჩასმა
 -- READ = არსებული ჩანაწერის წაკითხვა
 -- UPDATE = ჩანაწერის განახლება
 -- DELETE = ჩანაწერის წაშლა
 3. ოპერაციების თვისებების ტესტირება = უნდა გაიტესტოს არის თუ არ ოპერაციები იზოლირებული, დაცული, თანმიმდევრული.
 4. სტრუქტურული შემოწმება = უნდა გაიტესტოს ბაზების სტრუქტურული სქემა, ცხრილები, სვეტები, ტრანზაქციები და ტრიგერები.
 5. დატვირთვაზე, უსაფრთხოებაზე და სტრეს-ტესტირება.
 6. ცხრილებში მონაცემთა ტიპებზე ტესტირება, ველებში მონაცემთა დასაშვები სიგრძის ტესტირება.
 7. ბაზების არაკორექტულ მოთხოვნებზე ტესტირება.
 8. მწარმოებლურობაზე ტესტირება(შესრულებული ოპერაციებისა და ტრანზაქციების რაოდენობა დროში)
 9. მონაცემთა დაცულობასა და უსაფრთხოებაზე ტესტირება.

    ტესტირებაში ხშირად გამოყენებადი SQL ფუნქციები:
 -- Data Manipulation Language (DML): გამოიყენება მონაცემთა შენახვის, შეცვლის, წაშლისა თუ ჩასმისათვის, მაგალითად ოპერატორები: SELECT, UPDATE и INSERT.
 -- Data Definition Language (DDL): გამოიყენება მონაცემთა ბაზის ობიექტების სტრუქტურის შექმნისა და ცვლილებებისათვის, მაგალითად ოპერატორები: CREATE, ALTER и DROP.
 -- Transactional Control Language (TCL): მართავს ბაზებში მიმდინარე ტრანზაქციებს, მაგალითად ოპერატორები: COMMIT, ROLLBACK.
 -- Inner Join: აკეთებს კომბინირებას სხვადასხვა ცხრილებიდან.
 -- Distinct: გამოაქვს მნიშვნელობები ერთი ან რამოდენიმე ველიდან.
 -- In: გამოიყენება ცხრილში მნიშვნელობის პოვნისთვის.
 -- Between: გამოიყენება გარკვეული დიაპაზონის მნიშვნელობების მისაღებად.
 -- WHERE: უთითებს რომელი სტროფები გამოიყენება.
 -- Like: მიუთითებს შაბლონებზე, გამოიყენება WHERE ოპერატორთან ერთად.  
 -- Order By Clause: სტრიქონების მოწესრიგება, დალაგება(დეფაულტად ზრდადი).
 -- GROUP BY: მონაცემების რაიმე ნიშნით დაჯგუფება.
 -- HAVING: არჩევს ოპერატორ GROUP BY-ით განსაზღვრულ ჯგუფიდან.
 -- Aggregate Functions: ახდენს გამოთვლებს და აბრუნებს ერთ მნიშვნელობას, მაგალითად: Avg, Min, Max, Sum, count და ა.შ.

    ტესტირებაში ხშირად გამოყენებადი SQL ოპერატორები:
 -- Select = ამორჩევა
 -- from = ცხრილი საიდანაც ვირჩევთ
 -- order by = დალაგება ზრდით
 -- order by desc = დალაგება კლებით
 -- where = სადაც(რჩევის შეზღუდვისათვის, გამოიყენება > < =)
 -- where in(ჩამონათვალი) = სადაც მნიშვნელობა უნდა იყოს არჩელი ჩამონათვალიდან.
 -- where like "ნაწილი%" = სადაც არჩეული მნიშვნელობა შედგება ნაწილისგან და პლიუს '%' ნებისმიერი სიმბოლოსგან, ან ვთქვათ '_' ერთი რაიმე სიმბოლოსგან.
 -- Is null = ნულზე შემოწმება
 -- from a inner join b on = არეალების კვეთის ნაწილი
 -- from a left join b on = მარცხენა არეალი
 -- from a right join b on = მარჯვენა არეალი
 -- from a cross join b on = ორივე არეალი
 -- insert into ცხრილი(სვეტი1, სვეტი2) values('მნიშვნელობა1, მნიშვნელობა2) = მნიშვნელობების ჩასმა
 -- update ცხრილი set პარამეტრი1='მნიშვნელობა1', პარამეტრი2='მნიშვნელობა2' where პირობა = განახლება პირობით
 -- delete from ცხრილი where პირობა = წაშლა პირობით 

   მონაცემთა ბაზების ბრძანებები
 -- CREATE DATABASE databasename = ქმნის ბაზას 'databasename'
 -- DROP DATABASE databasename = შლის არსებულ ბაზას
 -- BACKUP DATABASE databasename TO DISK='D:\backups' = ქმნის ბაზის კოპიოს მისამართზე
 -- CREATE TABLE table_name (column1 datatype, column2 datatype...) = ქმნის ცხრილს სვეტების სახელებით
 -- DROP TABLE table_name = ცხრილის წაშლა
 -- TRUNCATE TABLE table_name = ცხრილის გასუფთავება მონაცემებისაგან
 -- ALTER TABLE table_name ADD column_name datatype; = სვეტის ჩამატება ცხრილში
 -- ALTER TABLE Customers DROP COLUMN Email; = სვეტის წაშლა ცხრილიდან
 -- CREATE VIEW = ქმნის ვირტუალურ ცხრილებს რეალური ბაზიდან

   პირობითი ოპერატორები
 -- NOT NULL = არ უნდა იყოს ნული 
 -- UNIQUE = უნდა იყოს უნიკალური(არ მეორდებოდეს)
 -- PRIMARY KEY = პირველადი გასაღები, სტროფების უნიკალური იდენტიფიკატორი 
 -- FOREIGN KEY = გარე გასაღები(სხვა ცხრილის ID-თან  დამაკავშირებელი) 
 -- DEFAULT = დეფაულტ მნიშვნელობა(თუ არ არის მითითებული)
 -- CREATE INDEX = ინდექსის შექმნა
 -- CHECK = შემოწმება რამე პირობაზე

    SQL Date თარიღები
    MySQL თარიღის ტიპები და ფორმატები:
 -- DATE = ფორმატი YYYY-MM-DD
 -- DATETIME = ფორმატი YYYY-MM-DD HH:MI:SS
 -- TIMESTAMP = ფორმატი YYYY-MM-DD HH:MI:SS
 -- YEAR = ფორმატი YYYY ან YY

    SQL Server თარიღის ტიპები და ფორმატები:
 -- DATE = ფორმატი YYYY-MM-DD
 -- DATETIME = ფორმატი YYYY-MM-DD HH:MI:SS
 -- SMALLDATETIME = ფორმატი YYYY-MM-DD HH:MI:SS
 -- TIMESTAMP = ფორმატი a unique number

   რა საკითხების ცოდნა შეიძლება მოითხოვონ გასაუბრებაზე
 1. რა არის მონაცემთა ბაზები SQL
 - პასუხი: SQL(Structured Query Language) = მონაცემთა მართვის სისტემა(სტრუქტურირებულ მოთხოვნათა ენა).
 2. რა ტიპის მონაცემთა ბაზები არსებობს
 - პასუხი: არსებობს რელაციური, სტრუქტურული, ქსელური, ჰიბრიდული, მრავალგანზომილებიანი, ობიექტ-ორიენტირებული და ა.შ. 
 3. რა არის პირველადი გასაღები(PRIMARY KEY)
 - პასუხი: ჩანაწერის უნიკალური, არანული იდენტიფიკატორი. შეიძლება იყოს შედგენილიც.
 4. როდის გამოიყენება პირველადი გასაღები
 - პასუხი: როგორც ძირითადი იდენტიფიკატორი გამოიყენება სხვა ცხრილებთან დასაკავშირებლად, რომლებიც შეიცავენ გარე გასაღებს ამ იდენტიფიკატორზე მითითებით. 
 5. რა არის გარე გასაღები(FOREIGN KEY)
 - პასუხი: გარე იდენტიფიკატორი, მიეთითება სხვა ცხრილის ძირითად(PRIMARY KEY) გასაღებს.
 6. რა სახის შეზღუდვები(constraints) არსებობს 
 - პასუხი:
   UNIQUE — მნიშვნელობის კონტროლი უნიკალურობაზე
   NOT NULL — მნიშვნელობაზე კონტროლი არანულოვანზე
   INDEX — ცხრილის ინდექსის შექმნა სწრაფი დაკავშირებისათვის  
   CHECK — მნიშვნელობის კონტროლი გარკვეული პირობების დაცვით
   DEFAULT — სვეტის მნიშვნელობა დეფაულტად  
 7. რისთვის გამოიყენება ORDER BY
 - პასუხი: მნიშვნელობების დალაგება ზრდადობით ან კლებადობით(ASC და DESC)
   SELECT * FROM user ORDER BY name DESC;
 8. შეერთების(Join) 4 ძირითადი სახე SQL-ში
 - პასუხი:
   INNER JOIN = მხოლოდ საერთო გადაკვეთილი მნიშვნელობები
   FULL OUTER JOIN = გადაკვეთის მქონე ორივე არეალის მნიშვნელობები
   LEFT JOIN = საერთო გადაკვეთისა და + მარცხენა არეალის მნიშვნელობები
   RIGHT JOIN = საერთო გადაკვეთისა და + მარჯვენა არეალის მნიშვნელობები
 9. რა არის Self JOIN
 - პასუხი: ცხრილის გაერთიანება თავისივე დუბლიკატთან
 10. რისთვის არის საჭირო ოპერატორი UNION
 - პასუხი: ერთნაირი რაოდენობის სვეტებისა და მსგავსი მონაცემთა ტიპების გაერთიანება
   SELECT column(s) FROM first_table
   UNION
   SELECT column(s) FROM second_table;
 11. როგორ მუშაობს ჩასანაცვლებელი ნიშნები 
 - პასუხი: გამოიყენება LIKE ოპერატორთან ერთად სიმბოლოების ჩასანაცვლებლად
 12. რა სახის ჩასანაცვლებელი ნიშნებია 
 - პასუხი: ' % ' = ნული ან მეტი სიმბოლო, ' _ ' = 1 ან მეტი სიმბოლო
   SELECT * FROM user WHERE name LIKE '%test%';
   SELECT * FROM user WHERE name LIKE 't_est';
 13. რას აკეთებს ფსევდონიმი Aliases
 - პასუხი: გამოიყენება დროებითი სახელის მისაცემად
   SELECT very_long_column_name AS alias_name FROM table;
 14. რისთვის არის საჭირო INSERT INTO SELECT
 - პასუხი: აკოპირებს მონაცემებს ერტი ცხრილიდან მეორეში
   INSERT INTO second_table SELECT * FROM first_table WHERE condition; 
 16. რა განსხვავებაა DELETE და TRUNCATE შორის
 - პასუხი:
 17. რით განსხვავდება VARCHAR და NVARCHAR
 - პასუხი:
   VARCHAR = ASCII ფორმატის მონაცემები, სიმბოლო 1 ბაიტში
   NVARCHAR = Unicode ფორმატის მონაცემები, სიმბოლო 2 ბაიტში 
 18. როგორ ავარჩიოთ ჩანაწერები კენტი ID-ით
 - პასუხი: SELECT * FROM sample WHERE id % 2 != 0;
 19. როგორ ვიპოვოთ დუბლები მეილის ველში
 - პასუხი: 
   SELECT email, COUNT(email)
   FROM customers
   GROUP BY email
   HAVING COUNT(email) > 1; 
 21. ავირჩიოთ მხოლოდ უნიკალური სახელები
 - პასუხი: SELECT DISTINCT name FROM users;
 22. ვიპოვოთ ცხრილში საშუალო მნიშვნელობა
 - პასუხი: SELECT AVG(salary) FROM workers;
 23. მოვიპოვოთ სია საშუალოზე მეტი მნიშვნელობებით
 - პასუხი: 
   SELECT * FROM workers
   WHERE salary > (SELECT AVG (salary) FROM workers);
 24. გადავარქვათ სახელი ცხრილს
 - პასუხი: ALTER TABLE first_table RENAME second_table;

   მონაცემთა ბაზების ოპერატორები
 -- SELECT- ამოაქვს ბაზიდან მონაცემები 
 -- SELECT * FROM Customers; = SELECT(არჩევა)*(ყველა)FROM(საიდან)Customers(ცხრილის სახელი);
 -- SELECT column1, column2 FROM table_name; = არჩევს column1, column2 სვეტებს table_name ცხრილიდან

 -- DISTINCT = განსხვავებული
 -- SELECT DISTINCT Country FROM Customers; = ირჩევს სვეტ Country-დან განსხვავებულ(არაიგივე) მნიშვნელობებს

 -- COUNT = მთვლელი
 -- SELECT COUNT(DISTINCT Country) FROM Customers; = გვაჩვენებს არაერთნაირთა რაოდენობას Country სვეტიდან

 -- WHERE = ფილტრავს მონაცემებს
 SELECT column1, column2, ... = არჩევს სვეტებს column1, column2
 FROM table_name              = ცხრილიდან table_name
 WHERE condition;             = სადაც მნიშვნელობაა condition

 SELECT * FROM Customers  = არჩევს ყველაფერს ცხრილიდან Customers
 WHERE Country='Mexico';  = სადაც სვეტში Country მნიშვნელობა ტოლია 'Mexico'

 SELECT * FROM Customers  = არჩევს ყველაფერს ცხრილიდან Customers
 WHERE CustomerID=1;      = სადაც სვეტში CustomerID მნიშვნელობა არის 1

 -- SQL AND(და), OR(ან) და NOT(არა) დაკავშირების ოპერატორები
 SELECT column1, column2, ... = არჩევს სვეტებს column1, column2
 FROM table_name              = ცხრილიდან table_name
 WHERE condition1 AND condition2 AND condition3 ...;  = სადაც მნიშვნელობაა condition1, condition2 და condition3

 SELECT * FROM Customers  = არჩევს ყველაფერს ცხრილიდან Customers
 WHERE Country='Germany' AND (City='Berlin' OR City='München');  = სადაც Country უდრის 'Germany' და (City უდრის 'Berlin' ან 'München') ოპერატორი "და" ნიშნავს ორივე პირობის შესრულებას, "OR" ნიშნავს ერთერთის მაინც.

 -- ORDER BY ASC|DESC = დალაგება ზრდადობით/კლებადობით
 SELECT * FROM Customers = არჩევს ყველაფერს ცხრილიდან Customers
 ORDER BY CustomerName asc; = ალაგებს სვეტ CustomerName-ის მიხედვით ზრდადი ალფავიტით
 ORDER BY Country ASC, CustomerName DESC; = ალაგებს 2 სვეტის მიხედვით

 -- INSERT INTO = ჩასმა სვეტებში
 INSERT INTO Customers (CustomerName, City, Country) = ჩასვამს ცხრილ Customers-ში 3 სვეტში შესაბამისად
 VALUES ('Cardinal', 'Stavanger', 'Norway'); = ჩასმული მნიშვნელობები შესაბამის სვეტებში(სხვაგან NULL-ებს ჩასვამს)

 -- NULL ოპერატორი ნული (IS NULL, IS NOT NULL)
 SELECT CustomerName, ContactName, Address = არჩევს 3 სვეტს
 FROM Customers                            = ცხრილიდან Customers
 WHERE Address IS NULL;                    = სადაც მნიშვნელობები ნულია

 -- UPDATE- აახლებს ბაზაში მონაცემებს
 UPDATE Customers = განაახლებს ცხრილს Customers
 SET ContactName = 'Alfred Schmidt', City= 'Frankfurt' ჩასვამს ამ მნიშვნელობებს სვეტებში ContactName და City
 WHERE CustomerID = 1;     იმ ხაზში სადაც CustomerID = 1

 UPDATE Customers = განაახლებს ცხრილს Customers
 SET ContactName='Juan' = ჩასვამს მნიშვნელობას სვეტში ContactName
 WHERE Country='Mexico'; იმ ხაზში სადაც Country='Mexico'
 
 -- DELETE- შლის ბაზიდან მონაცემებს
 DELETE FROM Customers WHERE CustomerName='Alfreds Futterkiste'; წაშლის იმ ხაზს სადაც CustomerName='Alfreds Futterkiste';

 -- TOP = ზედა
 SELECT TOP 3 * FROM Customers;    = არჩევს ზედა 3 ხაზს ცხრილიდან Customers
 SELECT * FROM Customers LIMIT 23; = არჩევს 23 ხაზს ცხრილიდან Customers
 SELECT * FROM Customers FETCH FIRST 3 ROWS ONLY; = არჩევს პირველ 3 ხაზს ცხრილიდან Customers
 SELECT TOP 50 PERCENT * FROM Customers;  = არჩევს ზედა 50% ხაზებს ცხრილიდან Customers

 -- COUNT() = ხაზების რაოდენობა, AVG() = რიცხვითი სვეტის საშუალო, SUM() = ჯამი სვეტში
 SELECT COUNT(column_name) = ითვლის სვეტში column_name
 FROM table_name           = ცხრილიდან table_name
 WHERE condition;          = სადაც მნიშვნელობაა condition

 SELECT AVG(column_name) = ითვლის საშუალო მნიშვნელობას სვეტში column_name
 FROM table_name         = ცხრილიდან table_name
 WHERE condition;        = სადაც მნიშვნელობაა condition

 -- MIN, MAX = სვეტის უმცირესი და უდიდესი რიცხვი
 SELECT MIN(column_name) = არჩევს უმცირესს სვეტიდან 
 FROM table_name         = ცხრილიდან table_name
 WHERE condition;        = სადაც მნიშვნელობაა condition 
 
 -- LIKE აღნიშნავს შაბლონს, % არის რაიმე სიმბოლო ან სიმბოლოები, _ არის 1 სიმბოლო
 SELECT * FROM Customers         = ირჩევს ცხრილიდან  Customers
 WHERE CustomerName LIKE '%a';   = სადაც სვეტში CustomerName ბოლო სიმბოლოა a  

 -- დამხმარე სიმბოლოები 
  % = Represents zero or more characters, bl%= finds bl, black, blue, and blob
  _ = Represents a single character, h_t= finds hot, hat, and hit
  []  = Represents any single character within the brackets, h[oa]t= finds hot and hat, but not hit
  ^ = Represents any character not in the brackets, h[^oa]t= finds hit, but not hot and hat
  - = Represents any single character within the specified range, c[a-b]t= finds cat and cbt

 -- IN Operator = სადაც(WHERE column_name IN (value1, value2, ...);)
 -- BETWEEN Operator = ორ მნიშვნელობას შორის მყოფი(WHERE column_name BETWEEN value1 AND value2;)
   
 -- JOIN 
 (INNER) JOIN: Returns records that have matching values in both tables
 LEFT (OUTER) JOIN: Returns all records from the left table, and the matched records from the right table
 RIGHT (OUTER) JOIN: Returns all records from the right table, and the matched records from the left table
 FULL (OUTER) JOIN: Returns all records when there is a match in either left or right table

 -- SQL-ში კომენტარების სინტაქსი: -- comments ან /* comments */  
  
 საიტი SQL სწავლისთვის https://www.w3schools.com/sql/sql_and_or.asp                          
                
ინსტრუმენტები - GIT
          -------------------- GIT --------------------- 
 
 GIT არის პროექტებზე ერთობლივი მუშაობის სისტემა ფაილების ვერსიების შენახვისა და კონტროლის ფუნქციებით.
 GIT-ში ყველა მონაწილეს მთელი პროექტი თავის ლოკალურ დისკზე აქვს.
 მსგავსი სისტემები SVN, Mercurial, Perforce, CVS, Bitkeeper მომსახურე საიტები github, bitbucket.

 არის ცენტრალიზებული და განაწილებული(GIT) ვერსიების კონტროლის სისტემა. განაწილებულ სისტემაში ყველა მონაწილე ინახავს პროექტის ყველა ვერსიას და მის ისტორიას.

 Github Desktop პროგრამის სახელმძღვანელო

 ახალი ფაილების დამატება რეპოზიტორიაში ხდება საიტიდან github.com ოპციით add file შემდეგ საჭიროა Github desktop-ში Pull ბრძანება და ფაილები დაემატება რეპოზიტორიის ლოკალურ ფოლდერშიც(კომპიუტერში)

    მენიუ:
  File - New Repository - ახალი რეპოზიტორიის შექმნა, იქმნება კომპიუტერის ლოკალურ ფოლდერში
  File - Add Local Repository - ლოკალური რეპოზიტორიის გახსნა
  File - Clone Repository - კლონირება გიტჰაბიდან ან ლოკალიდან
  Option - Integrations - ინტეგრაცია სუბლიმესთან ან ვიზუალ სტუდიო კოდთან
  Option - Git - გიტჰაბის სახელის და მეილის ჩაწერა
  Repository - Push - ცვლილებების შენახვა
  Repository - Pull - ცვლილებების წამოღება გიტჰაბიდან ლოკალურში
  Show in Explorer ფაილების ჩვენება
  Open in Sublime Text ტექსტურ რედაქტორში გახსნა
  Publish your repository to GitHub რეპოზიტორიის გამოქვეყნება გიტჰაბზე 

    განყოფილებები:
  Current Repository - რეპოზიტორებს შორის გადართვა
  Current Branch - განშტოებებს შორის გადართვა
  Fetch origin - ცვლილებების განახლება და სინქრონიზაცია ლოკალურ და დაშორებულ ფაილებს შორის
  Changes - მიმდინარე ცვლილებების სია
  History - რეპოზიტორიის ოპერაციათა ისტორია

    ზოგადი ოპერაციები:
  Commit - ცვლილებების დაფიქსირება, კომიტს აქვს უნიკალური იდენტიფიკატორი, ავტორი, თარიღი, კომენტარები.
  Tag - ანიჭებს სახელს განსაზღვრულ ვერსიას
  clone - კლონირებას უკეთებს მთელ საცავს
  Pull - აკოპირებს რეპოზიტორიის ცვლილებებს დაშორებული საცავიდან ლოკალურ საცავში
  Push - აკოპირებს რეპოზიტორიის ცვლილებას ლოკალურიდან დაშორებულ საცავში 

    ზოგადი ბრძანებები
  git config - პარამეტრების შეცვლა git config --global user.email адрес@gmail.com მეილის დაყენება
  git init - GIT რეპოზიტორიის შექმნა
  git add - ფაილების დამატება git add temp.txt ტექსტის დამატება
  git clone - რეპოზიტორიის კლონირება git clone имя.пользователя@хост:/путь/до/репозитория
  git commit - ცვლილების შენახვა git commit –m “Сообщение идущее вместе с коммитом”
  git status - ფაილების სია მდგომარეობის სტატუსებით
  git push - ცვლილების შენახვა მთავარ შტოში git push origin master 
  git checkout - განშტოების შექმნა command git checkout -b <имя-ветки>
               - შტოებს შორის გადასვლა git checkout <имя-ветки>
  git remote - გადართვა დაშორებულ რეპოზიტორიასთან
    - ლოკალური რეპოზიტორიის დაკავშირება დაშორებულთან git remote add origin <адрес.удаленного.сервера>
  git branch - შტოს ჩვენება, შექმნა, წაშლა git branch –d <имя-ветки> შტოს წაშლა
  git pull - გლობალური ცვლილებების დამატება ლოკალურ ფაილებში
  git merge - განშტოების გაერთიანება აქტიურ განშტოებასთან git merge <имя-ветки>
  git diff - განშტოებებს შორის განსხვავების გამოვლენა git diff --base <имя-файла>
  git tag - კომიტის მარკირება/მონიშვნა git tag 1.1.0 <вставьте-commitID-здесь>
  git log - განშტოებაში ყველა კომიტის სიის ჩვენება
  git reset - კომიტის ბოლო მდგომარეობამდე დაბრუნება
  git rm - ფაილის წაშლა მუშა კატალოგიდან git rm имяфайла.txt
  git stash - ცვლილებების დროებითი შენახვა
  git show - git ობიექტზე ინფორმაციის ნახვა
  git fetch - დაშორებული რეპოზიტორიიდან ყველა ობიექტთან წვდომა git fetch origin
  git ls-tree - ობიექტების ხის ნახვა დასახელებებთან ერთად git ls-tree HEAD
  git cat-file - ობიექტის ტიპის ნახვა SHA1-ის მეშვეობით git cat-file –p d670460b4b4aece5915caf5c68d12f560a9fe3e4
  git grep - ფრაზის ან სიტყვის მოძებნა ხის შემადგენლობაში git grep "www.hostinger.ru"
  gitk - ლოკალური რეპოზიტორიის გრაფიკული ინტერფეისი
  git instaweb - ლოკალურ რეპოზიტორიასთან დაკავშირებული ვებსერვერის გაშვება git instaweb –httpd=webrick
  git gc - რეპოზიტორიის ოპტიმიზაცია 
  git archive - ფაილების დაარქივება git archive --format=tar master
  git fsck - ფაილური სისტემის მთლიანობის შემოწმება 
  git rebase - სხვა განშტოების კომიტის გამოყენება git rebase master

    კომიტების იდენტიფიცირება ხდება უსაფრთხო ჰეშებით SHA1
  URL არის რეპოზიტორიის მისამართი
    ბრძანება  git status გამოსახავს ფაილის 4 მდგომარეობას: 
  1. untracked - უცნობი
  2. modified - უკვე შეცვლილი
  3. staged - შესანახად გამზადებული
  4. უცვლელი, საწყისი სახით
  

  GIT-ის ფაილების სტრუქტურა ფოლდერში Git init რეპოზიტორიის შექმნისას
    ├── HEAD
    ├── branches
    ├── config
    ├── description
    ├── hooks
    │ ├── pre-commit.sample
    │ ├── pre-push.sample
    │ └── ...
    ├── info
    │ └── exclude
    ├── objects
    │ ├── info
    │ └── pack
    └── refs
     ├── heads
     └── tags
  1. HEAD - მიუთითებს განშტოებაში ბოლო კომიტზე.
  2. config - პარამეტრების ფაილი, სადაც ინახება რეპოზიტორიის url, სახელი, მეილი და ა.შ.
  3. description - რეპოზიტორიის აღწერა
  4. hooks - სკრიპტების ფოლდერი.
  5. info/exclude - რეპოზიტორიის გარეთ მყოფი ფაილები 


  სასარგებლო ინფორმაციები:
  - init - создание репозитория
  - remote add - добавление удалённого репозитория
  - clone - копирование удалённого репозитория
  - add - добавление файлов для фиксации изменений
  - commit - фиксация изменений (может сопровождаться комментарием, чтоб не вводили в ступор ситуации из “Введение”)
  - push - отправка изменений в удалённый репозиторий
  - pull - получение изменений из удалённого репозитория
  - merge - слияние веток
  - checkout - создание/переключение локальных веток


  კომიტი = ცვლილებების(მუშა ფოლდერების) შენახვა. დაკომიტებისას ხდება ფაილის დაარქივება და სათაურთან(ჰეშთან) ერთად შენახვა. 
  ├── 4c
  │ └── f44f1e3fe4fb7f8aa42138c324f63f5ac85828 // hash
  ├── 86
  │ └── 550c31847e518e1927f95991c949fc14efc711 // hash
  ├── e6
  │ └── 9de29bb2d1d6434b8b29ae775ad8c2e48c5391 // hash
  ├── info // let's ignore that
  └── pack // let's ignore that too
  კომიტი შედგება 4 საკითხისგან: 1. სახელი(ჰეში) 2. კომენტარები 3. შემსრულებლის ინფორმაცია 4. მშობელი კომიტის ჰეში 
  (tags) და (branch) არის ლინკები კომიტებზე
                
ინსტრუმენტები - Zephyr, TestRail
            ----------------------   გვერდი შემუშავების პროცესშია   ---------------------                             
                
ინსტრუმენტები - Selenium, Jmeter, Postman
            ----------------------   გვერდი შემუშავების პროცესშია   ---------------------                             

                
ინსტრუმენტები - ზოგადი
       ---------- საიტების ტესტირების ონლაინ ინსტრუმენტები -----------
 1. https://pr-cy.ru/ საიტის გატესტვა ბევრი პარამეტრით
 2. https://search.google.com/search-console საიტის პარამეტრების მეტრიკა ბევრი მონაცემებით(რეგისტრაციით)
 3. https://www.bing.com/webmasters/ საიტების მონაცემები რამოდენიმე პარამეტრით(რეგისტრაციით)
 4. https://pagespeed.web.dev/ საიტების სიჩქარის გუგლის ტესტი
 5  https://gtmetrix.com/ საიტის სწრაფი ჩატვირთვის ტესტი
 6. https://validator.w3.org/checklink საიტზე პრობლემური ლინკების ძებნა
 7. https://validator.w3.org/#validate_by_input მარკაპის HTML ვალიდაციის შემოწმება
 8. https://pr-cy.ru/dns/ საიტის დომენის DNS ჩანაწერისა და IP-ის გაგება

 ------- სხვა ხელსაწყოები -------
 1. Selenium, WebDriver, TestComplete, Katalon Studio, Espresso ავტომატური ტესტირება
 2. Databene Benerator, DTM Data Generator მონაცემთა გენერატორები
 3. Jira, TestRail, Test It, TestLink, Redmine, YouTrack, Bugzilla პროექტის მართვის სისტემები
 4. BrowserStack, CrossBrowserTesting, Mobile Phone Emulator მობილურის ემულიატორები
 5. Reflector, User Zoom, Loop მომხმარებლის UX ინტერფეისის გასატესტი ხელსაწყოები
 6. SoapUI, Postman აპლიკაციების(API) ინტერფეისის გატესტვის ხელსაწყოები
 7. NetSparker, Acunetix Vulnerability Scanner, OWASP უსაფრთხოების გასატესტი ხელსაწყოები
 8. Apache JMeter, WebLOAD, Micro-Focus Loadrunner დატვირთვის გატესტვა(სისტემის რეაქციაზე)
 9. https://teamsuccess.io/UX მზა ჩეკ-ლისტი UX ტესტირებაზე
 10. https://checkvist.com/checklists/476089 მზა ჩეკ-ლისტების ბაზა

 ქართული IT ვაკანსიები: https://temicloud.io/communities

 ==== გამოსადეგი ინსტრუმენტები ====
 -- ტექსტური ბლოკნოტი = Notation
 -- უბრალო ტექსტური რედაქტორი = Notepad
 -- ძლიერი ტექსტური რედაქტორი = VScode
 -- ძლიერი ტექსტური რედაქტორი = Sublime Text(ეს უკეთესია)
 -- სკრინშოტების გადასაღები პროგრამა = GreenShot
 -- სკრინშოტების გადასაღები პროგრამა = LightShot(ეს უკეთესია)
 -- სკრინშოტების გადასაღები პროგრამა = ShareX
 -- ეკრანის ვიდეოს გადასაღები პროგრამა Free Screen Recorder
 -- MAP-სქემების შესადგენი პროგრამა = Mind Map
 -- საიტის იერარქიული სქემის შესადგენი პროგრამა https://www.xmind.net
 -- პროტოტიპების შესადგენი პროგრამა = justinmind
 -- მონაცემების გენერატორი = https://www.mockaroo.com/
 -- ჩეკლისტებისა და პროექტების მართვის საიტი, ჯგუფური მუშაობა = https://trello.com/ 
 -- საიტის პარამეტრების, კოდის ნახვა = Chrome DevTools(F12)
 -- მაკეტის შედგენა   https://moqups.com  
 -- მაკეტის შედგენა   https://app.mockplus.com
 -- დიზაინის შედგენა  https://www.figma.com/ 

 ==== გამოსადეგი საიტები ====
 -- trello.com = ტესტირების გეგმისა და ჩეკ-ლისტების შედგენა, ტესტირების კონტროლი
 -- asana.com  = პროექტების შედგენისა და ტესტირებისათვის, უნივერსალური სამუშაო გარემო 
 -- testcaselab.com = ტესტ-კეისების გასაკეთებლად
 -- https://www.atlassian.com/software/jira = უნივერსალური სამუშაო გარემო, მრავალი პლაგინით
  

 ==== ონლაინ სახელმძღვანელოები, საიტები ტესტირებაზე =====
 -- http://protesting.ru/testing/
 -- https://software-testing.ru/
 -- https://qalight.ua/

 ==== ონლაინ მუშაობა, ფრილანსი =====
 -- https://www.utest.com
 -- https://test.io
 -- https://www.upwork.com
 -- https://www.freelancer.com/

 ==== საიტები SQL სწავლისთვის ==== 
 HTML, CSS, SQL სწავლისთვის = https://www.w3schools.com/html/default.asp                            
                
მობილური აპლიკაციის ტესტირება
           ----------------------   გვერდი შემუშავების პროცესშია   ---------------------                             

                
აგილე-სკრამ მეთოდოლოგიები
          ციფრული თუ სხვა სახის პროდუქტების(პროექტების) შემუშავებისათვის ძირითადად 3 სპეციალობაა: ბიზნეს ანალიტიკოსი, პროექტის მენეჯერი და პროდუქტის მფლობელი(Product Owner). მათი მოვალეობები უმეტეს შემთხვევაში თავსებადია და მხოლოდ რამოდენიმე საკითხში განსხვავდება.

  ბიზნეს ანალიტიკოსი = მარკეტინგისა და ბიზნესის სპეციალისტი, ახდენს ბიზნეს-პროექტების დაგეგმვასა და შემუშავებას, ბაზრის ანალიზს, სამომხმარებლო აუდიტორიის კვლევას, სარეკლამო გათვლებს. ასევე ახდენს საიტის საწყის პროექტირებას, ტექნიკური დავალების შედგენას, საიტის სტრუქტურის ჩამოყალიბებას, SEO მარკეტინგულ გათვლებს.

 პროექტის მენეჯერი არის ხელმძღვანელი პირი, რომელიც დაკავებულია შემკვეთებთან ურთიერთობით, ბიზნეს-ანალიტიკით, მარკეტინგით, პროექტის შემუშავებითა და შემდგომი მხარდაჭერით. ასევე ახდენს საიტის საწყის პროექტირებას, ტექნიკური დავალების შედგენას, საიტის სტრუქტურის ჩამოყალიბებას, SEO მარკეტინგულ გათვლებს.
  
 პროდუქტის(იგივე პროექტის) მფლობელი არის სქრამის გუნდის მთავარი მამოძრავებელი, პროექტის განხორციელებაზე პასუხისმგებელი, ადგენს მოთხოვნებს პროდუქტისადმი, ადგენს სამუშაო პროცესის მიმდინარეობის განრიგს(roadmap), ყოფს შესასრულებელ სამუშაოებს სპრინტებად, აწესებს სპრინტების ხანგრძლივობასა და მოცულობას(ბექლოგი), ახდენს ბექლოგის ელემენტების პრიორიტეტიზაციას, აკონტროლებს სამუშაოს შესრულების მიმდინარეობას და საჭიროების შემთხვევაში შეაქვს ცვლილებები.

 აგილე-მანიფესტი, რომელზეც არის დაფუძნებული სკრამ მეთოდოლოგია
  - ადამიანები უფრო მნიშვნელოვანია ვიდრე ინსტრუმენტები
  - ხარისხი უფრო მნიშვნელოვანია ვიდრე დოკუმენტაცია
  - შემკვეთთან ურთიერთობა უფრო მნშვნელოვანია ვიდრე კონტრაქტი
  - ცვლილებებისათვის მზადყოფნა უფრო მნიშვნელოვანია ვიდრე შედგენილი გეგმა

 სკრამის სამუშაო პრინციპები
  - ყველა პროცესი არის გამჭვირვალე გუნდის წევრებისთვის
  - გუნდის წევრები ახდენენ პროცესის მიმდინარეობის მუდმივ ინპექციას და ახდენენ ცვლილებების შეტანას
  - შემკვეთის მოთხოვნები გუნდის ყველა წევრისთვის მნიშვნელოვანია
  - სამუშაო სრულდება 1-4 კვირიანი ციკლებით(სპრინტებით), ყოველი ციკლისას ხდება შემკვეთთან უკუკავშირი.
  - გუნდის ყველა წევრი თავისუფალია გადაწყვეტილების მიღებაში და პასუხისმგებელია თავის სამუშაოზე.
  - ყოველდღიურად ხდება 15 წუთიანი შეხვედრა, სადაც გუნდის წევრები განიხილავენ წინა დღისით შესრულებულ და მიმდინარე დღისთვის დაგეგმილ სამუშაოებს, ასევე არსებულ პრობლემებს.

 სკრამის ტერმინები 
  - პროდუქტი = იგივე პროექტია, უმეტესად ციფრული პროექტი, შესაძლებელია სხვა ტიპის პროექტიც იყოს.
  - პროდუქტის მფლობელი = სკრამ გუნდის ლიდერი, პროდუქტის განვითარებაზე პასუხისმგებელი
  - სკრამ-მასტერი = სკრამის სამუშაო გარემოს უზრუნველყოფის სპეციალისტი
  - დეველოპერების გუნდი = ტექნიკური საკითხების პროფესიონალთა თვითორგანიზებადი გუნდი  
  - სპრინტი = წინასწარ განსაზღვრული ვადა, რომლის დროსაც უნდა შესრულდეს სამუშაოთა ნაწილი  
  - ბექლოგი = შესასრულებელ ამოცანათა სია, რომლებიც უნდა შესრულდეს სპრინტის განმავლობაში 
  - ინკრემენტი = პროდუქტის ბექლოგის იმ ელემენტების ჯამი, რომლებიც შესრულდა მიმდინარე
 და წინა სპრინტების განმავლობაში.
 

 4. Product Owner-ის მოვალეობები 
  - ურთიერთობა შემკვეთთან, ტექნიკურ პერსონალთან და დეველოპერებთან
  - პროექტის შესწავლა, შემუშავება, მარკეტინგული ანალიზი
  - ბექლოგის შემუშავება, პროექტის დაყოფა შესასრულებელ ამოცანებად
  - სპრინტის დაგეგმვა და განხორციელების კონტროლი
  - შესასრულებელი ამოცანების პრიორიტეტიზაცია
  - ბექლოგის მართვა, ბექლოგის ამოცანების შესრულების კონტროლი
  - ფოკუს-ჯგუფის შექმნა, მომხმარებელთა ინტერესების შესწავლა
  - სტრატეგიების შემუშავება, ამოცანების გადაწყობა

 5. სკრამ-მასტერის მოვალეობები 
  - დეველოპერთა გუნდის დახმარება, სამუშაო გარემოს უზრუნველყოფა 
  - ხელს უწყობს და ეხმარება დეველოპერთა ჯგუფს ხარისხიანი და ღირებული პროდუქტების შექმნაში
  - აღმოფხვრის ჯგუფის მუშაობის პროცესში წარმოქმნილ შეფერხებებს
  - მოთხოვნისა და საჭიროებისამებრ ხელს უწყობს სქრამის პროცესებს და ფასილიტაციას უწევს მას
  - ასწავლის დეველოპერთა გუნდს, როგორ ადაპტირდნენ იმ გარემოში, სადაც სქრამი ჯერ კიდევ ახალია
  - ახდენს შესაბამის ცვლილებებს სქრამის ჯგუფის პროდუქტიულობის გასაზრდელად
 
 6. სპრინტი
  - სპრინტის ხანგრძლივობა განისაზღვრება ერთი თვით ან უფრო ნაკლებით 1 კვირამდე
  - ახალი სპრინტი იწყება მისი წინამორბედი სპრინტის დასრულებისთანავე.
  - Product Owner-ს შეუძლია, სპრინტი დროზე ადრე გააუქმოს
  - ყოველდღიური სქრამი გრძელდება 15 წუთი და ხდება გუნდის წევრების მიერ გასული დღის ანგარიშის ჩაბარება, მიმდინარე დღის მიზნებისა და პრობლემების განხილვა.

 7. სპრინტის განხილვა:
  - პროდუქტის მფლობელი იწვევს პროექტის ყველა მონაწილეს 
  - პროდუქტის მფლობელი განმარტავს, თუ ბექლოგის რომელი ელემენტი შესრულდა და რომელი არა
  - დეველოპერთა გუნდი განიხილავს, რომელი საკითხი განხორციელდა წარმატებით, რომლებს შეექმნა პრობლემა და როგორ გადაიჭრა ეს პრობლემები;
  - დეველოპერთა გუნდი ახდენს შესრულებული სამუშაოების დემონსტრირებას და პასუხობს კითხვებს ინკრემენტის შესახებ
  - პროდუქტის მფლობელი განიხილავს პროდუქტის ბექლოგის მიმდინარე სტატუსს და პროგრესის გათვალისწინებით განსაზღვრავს პროექტის დასრულების სავარაუდო თარიღებს 
  - მიმოხილვის დროს მთელი ჯგუფი განიხილავს და გეგმავს მომდევნო საკითხებს 
  - განიხილავენ რომელია მომდევნო ყველაზე მნიშვნელოვანი და ღირებული საკითხი
  - განიხილავენ პროდუქტის მომდევნო მოსალოდნელი გამოსვლის ვადებს, ბიუჯეტს და პოტენციალს 

 8. სპრინტის რეტროსპექტივა, მიზნები
  - ბოლო სპრინტის შემოწმება, თუ როგორი იყო წევრებს შორის ურთიერთობა, როგორ მიმდინარეობდა პროცესი და რა ინსტრუმენტები გამოიყენეს
  - იდენტიფიცირება იმისა თუ რა მიდიოდა სწორად და რა იყო პოტენციურად გამოსასწორებელი
  - პროცესის გაუმჯობესებისთვის სამოქმედო გეგმის შემუშავება, რათა სქრამის გუნდმა უკეთ შეასრულოს თავის სამუშაო.  

 9. განსხვავებული მეთოდოლოგიები, სკრამი და კანბანი
  - სკრამში მთავარია სპრინტის შესრულება, კანბანში მთავარია დასახული ამოცანების შესრულება.
  - სკრამი ორიენტირებულია ცვლილებებზე და უკუკავშირზე, კანბანი ამოცანების თანამიმდევრულ შესრულებაზე.

 სკრამის სამუშაო ონლაინ პროგრამა: https://www.atlassian.com ----- jira.com
                
API ტესტირება
            ----------------------   გვერდი შემუშავების პროცესშია   ---------------------