QA Engineer From Scratch FULL AUDIO ENGLISH COURSE — Transcript
Full transcript
- 0:00hi this is lesson number zero in the course QA engineer from scratch yes it sounds a bit
- 0:06strange what lesson zero is but let me explain my course on this channel was recorded in the period
- 0:10from 2020 to 2023 years probably the main videos but it is gradually updated some other lessons
- 0:16are added but in general if we talk about the main backbone it's somewhere around this period
- 0:22in that time of course a lot of things have Chang yes in terms of some of the approaches to testing
- 0:26in terms of tools the interfaces have changed in general the market situation has changed a
- 0:31lot and my some other training formats have also emerged so today I and I want to emphasize on that
- 0:37and tell you about some things that were in the first lesson and will probably be further on if
- 0:42you are just starting this course and the first time you see me at all but I did it on purpose
- 0:47beforehand let me say right off the bat about some inconsistencies that might be with what
- 0:53I'm in the market for right now if you see the pattern in the first lesson in the next lesson
- 0:57I mean stlc okay it's clear it's it's a general process involved in the development of day-to-day
- 1:02software further down the course you'll learn what it is the responsibilities of a tester in
- 1:06general nothing much has changed that is we work on the same things this is the development of test
- 1:11documentation this is conducting tests this is drawing up defect reports including if we are
- 1:16talking outside the context of a tester there is such a process as quality assurance where we are
- 1:20working with processes specifically with the in the process of how we introduce this quality at
- 1:25the project some preventive measures that is we can add another Point here and there will
- 1:30be a separate lesson about quality assurance you will learn about it too as for skills look soft
- 1:36skills and are the same soft skills in fact are a set of your personal characteristics that is
- 1:42conditionally what you should have even before you start studying a particular area of testing
- 1:46and some hard skills in fact some technical skills you always have to separate them separate
- 1:51personality traits or flexible skills separate technical skills or hard skills so as far as soft
- 1:56skills are concerned we take all risks at once we are attentive diligent trainable communicative
- 2:01responsible it goes on and on if you don't have this set of skills especially attentiveness and
- 2:06communication skills you will probably have a hard time uh and responsibility in testing because we
- 2:12communicate with a lot of people and it's not only our employees conventionally colleagues yes
- 2:18we don't have employees we are also employees like everyone else our colleagues developers
- 2:22designers analysts including we communicate with the customer yes this also happens on
- 2:27projects with business Representatives we may even sometimes take on a support function and talk to
- 2:33customers so there is a lot of communication attention because guys we are working to make
- 2:38sure that everything works great that we do not have any defects in the system that no mosquito
- 2:43has poked its nose into our documentation so without this we will not go anywhere I'm asked
- 2:49here on a course un step conditionally why how I'm inattentive what to do well what to do it's
- 2:54likely to be very bad in that direction and responsibility because we have responsibility
- 3:01related to our quality the quality of the product that we produce and we as flagships of quality on
- 3:06the project must also bear some responsibility for it and we primarily organize the process around it
- 3:12and by the way the whole team is responsible for the quality of the product no matter what anyone
- 3:16says this is also for your future and hard skills look there is also such a thing that our knowledge
- 3:22is at a level of an advanced user obviously we should be able to work with the command
- 3:26line at some level of basic queries and we will learn how to work with Linux somewhere near the
- 3:32end of the course conventionally and you should also have an understanding that the computer is
- 3:36not just about word doc and Fun Farm yes some games this system these systems have to manage
- 3:41and understand the stuffing understand how the software works so these skills you will also
- 3:47need to get some knowledge somewhere maybe even additionally English look as far as the English
- 3:53language is concerned so I have the majority of the Russians speaking audience and the majority of
- 3:57the audience strangely enough from russan English language it is not the most important requirement
- 4:02for the region of the Russian Federation here in the Russian Federation you can find a job
- 4:07without English and you can get training without English and write documentation in that language
- 4:13if we are talking about English for Belarus for Ukraine for countries that are involved
- 4:19in custom development Outsource outstaff English is mandatory there because the market it works for
- 4:24the foreign market and the universal language the international language is English you will need
- 4:28to be able to speak and write documentation and perhaps even solve some managerial tasks if we are
- 4:33talking about further ways uh of your development to learn in English because most of the materials
- 4:39are not even translated into that language so for these countries it is obligatory to learn and for
- 4:44everyone that is conditionally if you're from the Russian Federation it does not mean that you have
- 4:47to forget about English if you plan to live in the Russian Federation all your life to work in
- 4:52some product company where only English Russian or rather you can of course think about it but if you
- 4:57plan to develop to look for some International projects to go somewhere to become a man of the
- 5:01world and to learn first of all English language you will definitely need knowledge of programming
- 5:06languages if we are talking about manual testing which I give on the course it is optional if we
- 5:10are talking about the fact that we need to know a programming language anyway in the future to
- 5:14automate something this is an important thing and now there's a general Trend to hire Specialists
- 5:20who can do something with their hands and write code therefore probably some stage of your career
- 5:24development unless of course you go into full management and management of of your team you will
- 5:29need a programming language although to understand and speak the same language as your team it would
- 5:34be better to learn something at least some Basics if we are talking about the manual tester then yes
- 5:41programming languages are not the most important thing for you at the moment but if we are talking
- 5:45about an integrated specialist you will need to learn it in some language anyway knowledge of web
- 5:51technology mobile applications scam def this we will all learn in the course probably not gamde
- 5:56because gamde is a very specific field if you want to test game games you need to look for someone
- 6:00else and very often there are not even separate courses and most likely you will be taught the
- 6:04specific stuff game testing netw workk here these are the kind of important specifics I wanted to
- 6:10talk about specifically in terms of skills duties a little bit more specific and about the benefits
- 6:15of the job low entry threshold I'm not retracting what I said I'm not talking about the easiest
- 6:20entry into it the easiest point of entry into it many people for some reason when they watch
- 6:24the video think that's what I mean although I clarify there that it's not the low threshold
- 6:29of Entry has to do with the fact that testing will improve faster conventionally you can in
- 6:32a few months already have some basis related to functional testing if we are talking about
- 6:36development you will only spend six months or even a year learning the language itself that is why
- 6:42we have a lower threshold in this respect in terms of how the requirements for Specialists have grown
- 6:47now they have grown and to say that a tester is just a person who read savin's book 20 years ago
- 6:53or not 20 okay 10 years ago and that's it and he is ready and he knows English he is ready
- 6:58to works that's not true you you have to learn a lot of things quite voluminously and intensively
- 7:03if we are even talking about my course which you are going to watch next it is exactly like that
- 7:09and you have to learn a lot of things in a few months but in terms of it being easier than for
- 7:13example uh development 100% career growth well it is clear the benefits of the job are related to
- 7:18Career growth yes you will grow if we're talking about it everything is quite transparent there
- 7:23and there are no incomprehensible formats related to salary revision as in some State companies you
- 7:27will always understand where to develop where to grow there are certain requirements there
- 7:31are assessments evaluations of your work or performance reviews evaluations of your
- 7:37Effectiveness there once every six months once a year and you will always get some kind of salary
- 7:41increase once a year if you really show some big Delta in your development how you have grown from
- 7:44point A to pointb the salary is also quite High we are not talking about entry level positions
- 7:49the salary is different there I'm even afraid to name numbers now so that no one will say anything
- 7:53to me later that no you say too little talking too much open some services on salary collection
- 7:58statistics in your country and look it up there Hab career Head Hunter does periodically some
- 8:03analysis in Belarus W in Ukraine daa or Genie or some general reports articles on this topic
- 8:10and Orient yourself on them because I am watched by people from different countries and I myself
- 8:16am belarian by the way yes who does not know and always says that I am a Russian blogger I am not
- 8:22a Russian blogger I am Belarusian yes that's why I can't say for sure that you will have a salary of
- 8:27$500 $1,000 and that's it and work from it but it will be reviewed if you have a normal company with
- 8:33normal processes the growth can be quite fast and there in a year or two you can grow to the level
- 8:39of X2 X3 that is a salary to receive in 2 minus 3 times more than your initial salary especially
- 8:46if we are talking about entry-level positions if we are talking about positions at higher levels
- 8:50there of course the revision rate is not so high the work itself is interesting someone says that
- 8:54uh tester is a chore but actually no it's very interesting there are a lot of tasks especially
- 8:59if you you change projects frequently you won't get bored believe me so nothing much has changed
- 9:03in terms of the benefits of the job perhaps I would even say you could add disadvantages
- 9:07here but the disadvantages are related to the fact that the market is oversaturated with Specialists
- 9:13without experience in testing because let's say thanks to a large number of courses that didn't
- 9:17just use this thing as a low entry threshold but used it as a simple entry point into it where you
- 9:21only need there the ability to read and that's it without English without programming without
- 9:28brains and so on you can become a tester so here the peak was probably when the pandemic started
- 9:34everybody abruptly went into this from those and a lot of course creation by the way my course also
- 9:40appeared in 2020 but it's free there's no arguing about it anymore and I generally never had a goal
- 9:46to make a lot of money from this activity because of this myth a lot of people have flocked here
- 9:51so there are a lot of Specialists on the market who cannot find work and now those who have this
- 9:56work experience in the form of internships in the form of some commercial projects and so on have an
- 10:01advantage so always look for thirdparty projects related to the fact that you have finished the
- 10:05course and you need to get an internship otherwise without an internship you are unlikely to find a
- 10:10job these are the realities of the market now and you have to be ready for it that is you are now
- 10:15taking all the risks associated with learning this profession so that there are no surprises
- 10:19for you later okay I will not talk about business users because the next lesson will be devoted to
- 10:24even more aspects of this business tabs charts I just made accents related to to what are some
- 10:30starting points why you need this course at all yes what does a tester do in general what skills
- 10:35you need to pump uh if you don't have them pumped you don't have them yet and we will close many of
- 10:40them on the course at least related to hard skills and here too I told you a little bit about the
- 10:45advantages and disadvantages because because you have to give some explanations a lot of people
- 10:51don't realize this I will also tell everyone once again that the course is not a Panacea finishing
- 10:56any course even a paid one you will not get a 100% job guarantee no matter what anyone says and on
- 11:02what sites would not write it you will need to do a lot of things on your own afterwards that is 50%
- 11:08of your success depends on you not the course 50% of the course I think you can say such percentages
- 11:15next comes the job search building a job search strategy resumes feeds networking we will
- 11:19talk about networking in one of the next videos that will be on the channel that is all of this
- 11:24together will give you some kind of springboard for you to find this job we don't rely only on
- 11:29courses and that's why I recorded this lesson in the first place because this course which you will
- 11:35continue to take you can take not only on YouTube you can take it and on steppic first of all please
- 11:41note that on YouTube on my channel there are two playlists yes related with it well not with it but
- 11:50with this with the course yeah my test are from scratch in the first one which is the basic course
- 11:54there's only 33 videos and in the professional course there's 88 I would advise you of course
- 11:59to watch the professional course because there's more information there's more work with tools and
- 12:03the 33 video basic course it's the most basic that is is the theory of testing is some really
- 12:10basic base for you to understand who a tester is and what he does if you want to go deeper then
- 12:15we'll go into the second playlist and here's the second playlist it's right here on steppic
- 12:19why I encourage you to learn not just by watching YouTube videos but on some kind of platform this
- 12:25course is absolutely free which I've posted here there's about 70 videos here not even all of them
- 12:31that are in this playlist are in professional in addition to the videos themselves if we open up
- 12:36the testing principles to show you how the course is structured there's a video that's just copied
- 12:41as well from this playlist you will watch a video here on steom then there's more information some
- 12:46links will even be different some new links will appear that is some updated stuff not just what's
- 12:52on YouTube most importantly there is a text format not for all lessons I'll tell you right away
- 12:57primarily for testing Theory here are the first three modules completely contain text format in
- 13:03addition to video and web testing I also began to fill in slowly some lessons related to tools they
- 13:10will not have text accompaniment because seems to me that practical things should be shown exactly
- 13:14on video so that you watch repeat and work with me specifically for this reason uh that is the text
- 13:21where something is described then there are tests there are my notes of the auto course if you need
- 13:26to explain something to give examples examples from practice from real processes I try to add for
- 13:31example some things they weren't on YouTube either and here most importantly corrected the errors
- 13:36that were in the videos themselves because they are yes all people always include the human factor
- 13:42so here is the actual information I would advise you to connect in parallel to watching videos
- 13:47also this format in addition to the test there are assignments practically well in some lessons where
- 13:53they are necessary there are tasks there on SQL there are tasks on apis using Postman there are
- 13:58tasks related to describing test documentation in general there is enough material there are about
- 14:03180 tests and tasks in the course so you can use it to your heart's content so for each lesson open
- 14:09it look what else is interesting there's a final test this is a purely test simulator in fact all
- 14:15the questions from the course are collected in one place you can pass and when you finish
- 14:19the course conditionally repeat what you have passed and check your knowledge this is what the
- 14:23course on stepic looks like you can get certified here importantly through a third party platform
- 14:29in introductory lesson there's a separate slide dedicated to this because I was not
- 14:35given the opportunity to connect a certificate for the free course then use this here are the
- 14:40instructions take the course at 80 leave a review not necessarily positive any review leave I just
- 14:46want to receive feedback and I will tell you why it is important to me a little further on and
- 14:51that's it that is how the course is organized there is a comment section where you can ask
- 14:56questions about the assignments I try to answer if someone doesn't answer from the students or
- 14:59also is our community in telegram all the links I will leave in the description you can also
- 15:03connect and communicate within it in other words the format of the training is as follows watch
- 15:08the video read the text if there is any and do the assignment test and so for each lesson if we
- 15:13are talking about some practical lessons then watch the video repeat everything I do in the
- 15:17video and then close the video and try to do it without me or by solving these same problems on
- 15:22some other cases on other sites and resources a lot of self-study is needed well in principle it
- 15:28is logical because the course itself also implies self-study in the first place in one lesson there
- 15:34are additional links to bonus materials that is you can watch there is a simulator for practicing
- 15:39practical skills of tester if you lack practice on the course you can go here and so on in other
- 15:44words study the structure connect use it you can just watch videos on YouTube no one forbids you
- 15:48to do that but there is no feedback here there are no tests to consolidate some tasks there is
- 15:53no community that is you can write a comment but there is no feedback on the course you may not be
- 15:58able to respond on because I have a million views under some of my videos there are either 300,000
- 16:04or 300,000 and I don't have time to respond to everyone and I don't have the task of responding
- 16:09to all the comments on this channel and don't forget that there are other videos here so you
- 16:13don't have to focus only on these two playlists there are videos related to job search hiring
- 16:18some specifics there are live broadcasts on the channel yes uh you can watch the broadcast with
- 16:24resume parsing with some conversations with experts panel disc discussions with parsing
- 16:30of test cases I mean it's all on the channel it seems to me that this is one of the most saturated
- 16:35channels on testing in the Russian speaking segment of YouTube so I will be happy to see
- 16:39you in addition to the fact that you can learn for free both on YouTube and on steppic I have
- 16:44a paid alternative here in one lesson if you are interested you can read what my paid courses are
- 16:50my pride is my course I'm going to show you now my course on testing it's called functional testing
- 17:01it was completely recorded in the spring of this year 20203 years so if you go over here let's turn
- 17:11this thing off let's go to select a course you can see all my products but we're going to focus
- 17:16on functional testing by I mean I recorded the whole course in the spring added new tasks new
- 17:24test it can be bought on UD and intern platforms UD does not work in Russia and with it's part of
- 17:32the banks in Belarus intern can be bought from any country from any Bank the rates are the same just
- 17:36on different platforms that is by cost look the relevance of the course as I said in 2020 3 years
- 17:43it is recorded there are 50 plus lessons again the same 30 plus hours pre-recorded content questions
- 17:49about 300 is issued a certificate by the way and well said on steppic is issued a certificate yes
- 17:55through a third party platform there is also a closed chat you forever get access to all the
- 18:00course materials and all the updates you will have the terms of training are as follows how much to
- 18:05learn well it is not particularly interesting well and further you can read what is here the
- 18:09course is in principle I think not bad they are somewhere the intersection of junior junior plus
- 18:14strong Junior specialist middles find even a lot of interesting in it so you can study
- 18:18additionally it is completely different from what is on YouTube and contains more information more
- 18:23tools and everything is up to date there these are the junior independent junior plus our group
- 18:27rates the next enrollment will not be until 2024 in the spring and there I'm already doing group
- 18:34work with people will be revising this whole thing soon there will only be one Fair left
- 18:39with a different cost with a different number of people in the group what's good about the rate is
- 18:44the live webinars which means I'm there every week or every two weeks with the guys we discuss some
- 18:49hot topics there are practical assignments about 20 pieces of different ones quite in depth which
- 18:55give you a complete base there's feedback which is important because uh on udemy and um on the
- 19:01internets I don't give feedback the feedback in that form is just the solutions to the assignments
- 19:06themselves from me well what's most important is internships meaning the best students I offer
- 19:11internships again this can all be explored on my website if you are interested so there are some
- 19:16paid Alternatives you want to choose for yourself you want to work on the free course which is also
- 19:20constantly updated I support it because initially I want education to be accessible to everybody as
- 19:27for my training the whole plan is on steppic you can watch it on YouTube the videos may be
- 19:33in a slightly different order as they are on steppic on steep they are in a more logical
- 19:38order so again I would advise you to use this platform for your training plus you'll get some
- 19:44sort of confirmation in the form of a certificate after you run out if you still have any questions
- 19:49about this video about my course feel free to ask them in the comments subscribe to my other social
- 19:54networks there is also a lot of useful material you can read where what when there's a link it's
- 20:01coming up now and I'll see you in the next lessons in this course I'll be happy to help you become a
- 20:05tester hello YouTube my name is artm and today I want to announce a new free course on software
- 20:15testing for all those who are interested in this topic and have decided to further link
- 20:21their life with quality assurance I think it's worth starting with what testing is my favorite
- 20:29definition is the search for discrepancy between the actual and the expected result that is if
- 20:35the customer wants to see a certain icon on the page this will be our expected result and how it
- 20:42will be implemented in our product is the actual result if they differ from each other then this
- 20:48can calmly be attributed to a defect the search for which is what a tester does the role of a
- 20:55tester in a project in my opinion is one of the most key any major IT company cannot do without
- 21:02this little person on the project let's talk a little about the main stages in the software
- 21:07life cycle or as it is also called sdlc software development life cycle there are several models
- 21:14of such a life cycle we will think about this with you in one of the following lessons sdlc
- 21:21the first stage in any project is initiation or the idea that is some business understands that
- 21:27it's User it's consumer has a certain need for a product this product will really take
- 21:32off it collects some data on what it wants to show its user after all and he has an idea
- 21:58with this idea he comes to an IT company and if there is an agreement that this project
- 22:03will be developed in this company business analyst join the case and begin to collect
- 22:09requirements they communicate with the customer with the end user form a pool
- 22:19of requirements that will need to be implemented in the final product further one can distinguish
- 22:24such a stage as design the UI UK's designer who based on the requirements draws if we are talking
- 22:32about a web application for example mockups or templates of the site that our customer wants
- 22:38to see if the customer has no questions about the requirement and the design then developers
- 22:43get down to business and the actual development begins that is developers right code that will
- 22:50subsequently go to testing by testers as tological as it may sound after the product uh t tested it
- 22:59is handed over to the end user for operation and if the business understands that this product is
- 23:06no longer in demand or comes up with something new and forgets about supporting the old product
- 23:12it is withdrawn from operation let's think with you at which stage the tester is connected of
- 23:19course it would be logical to assume that this stage is called testing but in fact it is not
- 23:30the tester connects to testing already at the stage of development and collection of
- 23:35requirements what does this consist of let's talk a little bit about each of
- 23:40the stages and what types of testing can be associated with them I will tell you not only
- 23:46in passing because later we will discuss each of these types of testing in more detail with
- 23:50you for example development and requirements Gathering the tester tests the requirements M
- 23:58eles for their compliance their main properties how correctly they are written whether they
- 24:03contradict each other whether they are complete if everything is okay then at the stage of design
- 24:09development the tester can test both the template itself for compliance with the requirements and
- 24:16conduct usability testing that is how convenient it will be for the user to use our product at
- 24:23the development stage what our developers wrote is tested that is here both the UI that is user
- 24:29interface what we see on the screen when we open a particular site and what is under the
- 24:34hood or back end that is what an ordinary user cannot see can be tested and in Principle as
- 24:41for the introduction into operation acceptance testing Alpha Beta Testing can be carried out
- 24:49here I think those who play computer games are familiar with the
- 24:58phrases again we will talk about each type of testing with you a
- 25:02little later in subsequent lessons this is what concerns the stages of software
- 25:07development the roles of a tester at each of these stages we will talk to you in more detail about
- 25:17the life cycle models of software a little further since now we were talking about the classical
- 25:23model but there are also other more interesting ones for example the same agile methodologies
- 25:28agile scrum by which most modern it companies work now let's talk about the responsibilities
- 25:35of a tester there are several types of activities so let's talk a little about
- 25:40each of them responsibilities first it is the development of test documentation that is it
- 25:47can be for example a checklist or a test case based on which certain checks will be carried
- 25:54out I want to note right away that we will also talk about each of the AR effects characteristic
- 25:59of a particular activity in subsequent lessons so stay on this channel I think you will be
- 26:04interested the second stage is conducting the test that is based on the test documentation
- 26:13written by the tester whether it is a checklist or a test case a series
- 26:17of checks is carried out and if we understand that our actual result
- 26:22and expected result differ then we draw up a bug report or it is also called a defect
- 26:29report this defect report goes to the developer based on it a bug fix is carried out that is the
- 26:39correction of a certain error or defect and if everything is okay then it is sent back to
- 26:45the Tester the tester verifies that the bug was indeed fixed and in principle at this point the
- 26:52work I think of a beginning tester ends as other types of activities are more suitable for Middle
- 26:59seniors or leads that is to those people who are a little higher on the career ladder than you so
- 27:05we talked with you about the main phases of the project about the duties of a tester let's now
- 27:12talk a little about what basic skills a tester should have skills there are two large areas of
- 27:19skills so-called soft skills and hard skills let's add two subtopics hard skills and soft skills
- 27:34what are hard skills these are essentially your technical skills
- 27:38if we are talking about a tester then the following should be noted here
- 27:42this is knowledge of the operating system at the level of an advanced
- 27:47user that is it is not enough just to be able to
- 27:53work in word you need to understand a little what web Technologies are
- 27:58what mobile applications are how Windows Works perhaps go to the command line write simple
- 28:04commands here in fact the field for maneuver is quite large I will tell you a little about some
- 28:12aspects of testing web oriented applications about Testing mobile so I think that this knowledge will
- 28:19be enough for you to start your career as a tester English language yes it will be very
- 28:27difficult without it why why because most it companies that work are oriented towards the
- 28:33West that is our customers are English-speaking all documentation within the company will be in
- 28:39English Communications will be in English plus a huge amount of educational materials are also in
- 28:45English and software included therefore without it I think that being a tracer
- 28:55is not your destiny so learn English the minimum entry threshold for a tester is
- 29:02the intermediate level you have time there are courses there are videos
- 29:05on YouTube there are books so we learn English it would also be nice to know
- 29:11programming languages at least some Basics or fundamentals this will also come in handy for
- 29:17you well as I already said this is knowledge of web Technologies mobile applications possibly game
- 29:32development that is it will depend on where you will work in the future which company and
- 29:46this company will have its own requirements for a tester since you will be testing either
- 29:51the web or mobile or working in game development and testing video games so we talk with with you
- 29:58about hard skills technical skills let's now talk about soft skills soft skills are your personal
- 30:04characteristics for example for a good tester it is worth noting such
- 30:11as attentiveness perseverance teachability of course communicativeness without it not at
- 30:18all because the tester like it seems to me and the business analyst just have to communicate
- 30:23with every member of your teamor team without this skill it will be extremely difficult for
- 30:29you responsibility of course you are responsible for the quality of the finished product without
- 30:43this characteristic it will be extremely difficult for you this list can be continued
- 30:48indefinitely in fact subskills also pay a lot of attention so don't think that if you are good in
- 30:55some technical area you know I don't know in web Technologies at the level of a box but
- 31:01if you behave not very well as a person then it would be extremely difficult for you to work in
- 31:08it I would also like to note that you need to understand that the developer
- 31:17and the tester have different mentalities the developer creates programs writes code
- 31:25that is he is interested in creating something the tester in turn wants
- 31:29to break what the developer wrote find as many defects as possible critical for the
- 31:35operation of this or that system of our finished product against this background
- 31:40conflicts can arise between the two sides so I also warn you in advance that this
- 31:45may B you need to abstract from these situations and understand that you are responsible for the
- 31:56quality of the finished product you do your job and you came here not to play
- 32:00games and not to make friends but to really take a responsible approach to work and release a quality
- 32:07product let's talk to you about why testing is necessary there are always two sides this is a
- 32:14business and the user and each of these sides has its own needs business wants to releas
- 32:28a quality product that will bring it profit the user in turn wants his personal data to
- 32:34be protected what he pays money for really for a quality product
- 32:40again that is in fact both the user and the business do not want to take risks business
- 32:53does not want to lose money the user does not want for example data about his finances about health
- 33:00about members of his family did not get into strangers hands that is he also takes on certain
- 33:10risks and wants the product to fulfill everything that was laid down in it by the business and what
- 33:16the user wants to get why am I saying this at all because there are not a few examples when
- 33:22companies suffered simply huge losses associated with the fact that they released medical equipment
- 33:28with a huge number of defects or with one but very critical from which people died or became
- 33:34even more ill or a personal user data fell into public access for example at the same Facebook
- 33:44I think everyone knows very well that there were such moments as it affects both the fact that the
- 33:50user does not want to use this product further as well as the reputation of the company itself plus
- 33:56the company incurs huge losses because the fines for disclosing personal data or they are also
- 34:02called sensitive data that is sensitive data of users are now simply huge also returning to the
- 34:10question of loss of profit for business there's a very famous model related to how the cost of
- 34:17fixing a defect changes with the detection of a defect at one or another stage product development
- 34:25if a defect is detected at the stage of develop velopment and requirements Gathering it is one
- 34:30money that is there you just need to change the requirements themselves in the documentation but
- 34:35if this defect is detected at the stage of release introduction into operation when it
- 34:40reaches the end user and for example the sensitive data of this user becomes known to the general
- 34:46public then the business will lose just huge money firstly in order to fix the defects themselves
- 34:55since the code has already been written it will need to be Rewritten again again tested possibly
- 35:01recalling product from some platforms from the same app store or playm Market therefore
- 35:06testers should always be involved at the very early stages of the project in principle these
- 35:13are the main points that I wanted to tell you in today's lesson but so that you are convinced once
- 35:18again how cool it is to be a tester let's talk a little with you uh about the benefits of working
- 35:23a tester firstly it is a low entry Thresh hold it is no secret that it is much easier to become
- 35:31a tester than to learn to write code so many choose this specialization as the first for
- 35:36entering it indeed yes it is but if even 10 years ago anyone who for example knew English
- 35:43could become a tester now the requirements for the tester are much higher as I noted
- 35:49earlier you will need to know web Technologies mobile and maybe even programming languages
- 36:08on some basic level so don't think that it's so easy and simple to become testers career growth
- 36:16yes in fact this is also an interesting aspect since in principle with your great desire and
- 36:22constant learning and self-development you can grow very quickly up the career ladder start
- 36:27from the level of a junior that is a beginning tester not ending with the level of a lead and
- 36:34managing your testing team in one company or another you can also change your development
- 36:39Vector at any time become for example an automator if you started with manual testing which we will
- 36:47actually talk to you about during this course or you can become a developer or a business analyst
- 36:55a project manager managing the project as whole that is you have a huge field for changing your
- 37:01activity salary since many of you know that in it they receive much more than in others at least if
- 37:11we are talking about Russia bellarus Ukraine at the same time you must understand that testers
- 37:18have the lowest salary in the it field however it is still higher than the market average when
- 37:23compared to other Industries well of course the work is very interesting you will not have to
- 37:32be bored at work as you will always learn something new both from your team in which
- 37:37you will work and at various seminars conferences reading professional literature or again going to
- 37:45YouTube and finding interesting videos related to this area so there I think you will succeed
- 37:53well this was an introductory lesson for beginning testers further it will be only
- 37:57more interesting we will talk about both the theory and practice of testing the knowledge
- 38:02gained in this course will help you get your first offer I really hope so and start your
- 38:06work in the company of your dreams if you found this video uh interesting then be sure
- 38:11to subscribe to this channel click on the Bell leave your comments I will definitely answer
- 38:17everyone and we will see you very soon [Music] goodbye hello YouTube in our last session we
- 38:38discussed why a tester is needed what kind of creature it is and I'm glad you stayed
- 38:44with me to continue learning in this course it's time to start studying the theory today
- 38:49we will learn about the seven principles of testing which every self-respecting tester
- 38:53should know principle number one testing shows the presence of of [Music] defects testing can
- 39:02show that there are defects in the product but it does not signal that there are no defects at all
- 39:08that is in the process of testing we reduce the likelihood that defects remain in the product but
- 39:14even if we did not find any at all we cannot say that they do not exist in my experience
- 39:20there are always bugs in the product principle number two exhaustive testing is impossible
- 39:32it's simply impossible to test absolutely everything in the product and even if you
- 39:37think otherwise you will spend a huge amount of time on it as you know time is money you might
- 39:43ask how can you then be sure that the product works correctly I will answer this by saying
- 39:49that there are always risks and priorities to minimize the former there are special test
- 39:55design techniques that help testers designed their tests so that with minimal effort they
- 40:01cover as many test cases and functionalities as possible we will talk about the main ones
- 40:07in the following lessons but now let's talk about principle number three this is early
- 40:12testing let's remember the cost of defect correction model from when it was detected if
- 40:21you have forgotten about this model you can always remember it if you follow the link that will now
- 40:26appear at the top top this model characterizes the principle of early testing as well as
- 40:33possible that is test activities should start as early as possible and always pursue specific
- 40:39goals in this case saving the customer's funds principle number four clustering of
- 40:45defects it states this a large number of defects are hidden in a small number of
- 40:53modules if we remember the Paro principle then it is applicable
- 40:57to this Principle as well 80% of the defects are found in 20% of the
- 41:01functionalities that is we must understand that the largest number of defects is concentrated
- 41:10not in the entire application but in some specific functionality therefore the tester
- 41:16must distribute their efforts proportionally to the actual density of defects for example
- 41:22if he understands that in the user login module to the system [Music] there are always some critical
- 41:30defects then he should focus more time on finding and eliminating these defects precisely in this
- 41:36functionality a very interesting principle called the pesticide [Music] Paradox let talk a a little
- 41:46bit about it running the same tests over and over again you will encounter that they find fewer and
- 41:53fewer new errors as the system evolves many of the previously found defects are fixed and old
- 41:59tests no longer work to overcome this Paradox it is necessary to periodically make changes
- 42:06to the used test sets review and correct them so that they meet the new state of the system
- 42:11and allow finding as many def effects as possible for this it is also necessary to constantly study
- 42:17new methods for testing and Implement them in your work also to overcome this obstacle you can
- 42:23have other team members run the tests or rotate Personnel so that different testers test the same
- 42:30functionality at different times by the way the question of minimizing this risk is often asked in
- 42:36interviews so be sure to remember the answer to it why is this principle called the pesticide Paradox
- 42:43it's very simple draw an analogy with the use of some chemical against insects or weeds if they
- 42:52are constantly poisoned with the same insecticide or pesticide then then they develop a tolerance
- 42:58they adapt and few insects die or are destroyed by the action of one or another toxicant the
- 43:06pesticide Paradox works the same way for testing principle number six testing depends on the
- 43:12[Music] context what does this rule state the choice of methodology technique or type of testing
- 43:25will directly depend on on the nature of the program itself for example software for medicine
- 43:31requires more thorough testing than a computer game or a website with higher traffic should go
- 43:38through serious performance testing to demonstrate the ability to work under high load conditions
- 43:45therefore the tester must always responsibly approach the choice of the environment in which
- 43:50they will test the choice of documentation to be implemented for example if the product is
- 43:54complex it is better to choose test cases rather than checklists about these artifacts as I said
- 43:59earlier in the first lesson we will talk a little later but we will definitely touch on all aspects
- 44:04of test documentation and the correct choice of it for this or that project and the last principle
- 44:12for today is the fallacy of absence of Errors every tester should not assume that if testing
- 44:20has not revealed any defects then the program is ready for release finding and fixing defects will
- 44:27not be important if the system turns out to be inconvenient to use and does not meet user
- 44:33needs well these are the canonical principles of testing that help the tester in real work
- 44:43you see there are only seven but you should definitely know them because they are often
- 44:48asked about one principle or another in an interview and this will not hurt you
- 44:53at all as it would build a structure in your head on how to approach approach testing and
- 44:58minimize the costs of conducting it well that was a short lesson much shorter than the first
- 45:05be sure to follow the link above to watch the first lesson so as not to miss anything
- 45:09important for our learning with you and in the next lesson we will learn to distinguish what
- 45:15QA QC and testing are and talk about such processes as verification and validation
- 45:27[Music] and of course if you found this video interesting then be sure to subscribe to this
- 45:33channel click on the Bell leave your comments ask questions I will try to answer them for sure and
- 45:39we will see you very soon bye hey guys happy holidays to everyone it's already passed New
- 45:46Year's Eve and old New Year's Eve and Christmas Eve so I wish everyone the best of luck this year
- 45:53and that all your wishful thinking and job search leads you to some cool results but I have an
- 46:00unusual video today you may have noticed that the video the third lesson in the basic course tester
- 46:04from scratch related to QC Q&A and verification and validation testing has disappeared from the
- 46:10share so the reason why it's missing I'll tell you sometime later but in general today I'm going to
- 46:16offer you an updated version of this lesson I've made some updates and brought it to a look that
- 46:21sticky B fans will probably like because the certifications require exactly what I'm I'm
- 46:27going to tell you today and I'm also going to tell you a little bit of information from kova
- 46:34because I think this is one of the best tutorials one of the best tutorials that's out there right
- 46:39now on the theory of testing in Russian which is distributed absolutely free of charge and I think
- 46:45it will also be useful to learn something new for yourself also this lecture in a slightly modified
- 46:50form will be included in the updated versions of the courses that will be on UDI on the core
- 46:55platform and as part of the June package of my group because I'm updating all my videos
- 47:00all my videos and the guys who want to buy this course they will get the most up-to-date lessons
- 47:06and lectures that can be on YouTube I don't plan to massively update all the videos but maybe some
- 47:11selective ones I will replace too so that you have up toate some information on testing theory on
- 47:16practice and so on that's it said what I wanted to say shared a little bit of updates and now
- 47:22let's talk about what is testing quality control and quality assurance if you and I turn to the
- 47:27St KB glossery it's basically a dictionary which contains a large number of terms then according
- 47:33to http translated into Russian because there's also an English version which people like better
- 47:38but still we have another format that you may find useful and facilitate your learning I remind you
- 47:44that HTTP can also be taken in Russian including in the certificates it is not indicated anywhere
- 47:50I myself passed this certification in Russian because I had limited time so don't worry you
- 47:55can do it in Russian too so testing is a process that contains all the life cycle activities both
- 48:01Dynamic and static related to the planning preparation and evaluation of a component or
- 48:06system and related deliverables to determine that they meet the described requirements to show that
- 48:11they are fit for purpose and to identify defects you see a very large such definition it can be
- 48:17simplified I will show you further on how to do it and there is actually a lot of things shown here
- 48:23within that really make testing and what you go through in the course even when we are learning we
- 48:29cover a lot of things there are so-called stealth processes I'll show you on the next slide I think
- 48:34there are just all these processes of the whole life cycle I'll tell you what they are dynamically
- 48:41means by launching code that is we must launch something and track the Dynamics and statically
- 48:46it means without launching code and most often it refers to some documentation that we can read
- 48:50to a specification to requirements to what else can it refer to to code that doesn't run we can
- 48:57proof read the code these are these static testing methods we talked about them a little bit further
- 49:01down the course it's just like I said these are updated videos and the rest of the lessons
- 49:06they're already within the course and you'll be able to watch them planning preparing evaluating
- 49:10system components okay that's clear we're going to talk to you a little bit about that as well next
- 49:15performance results okay in order to determine that they meet the requirements described so we
- 49:20always have requirements I have a separate lesson on the 26 requirements probably as part of the
- 49:25course and I talk about them in detail there that is in fact the basis on which we develop it all
- 49:30so it takes into account pretty much everything we need to develop there I don't know the size of
- 49:35buttons what function should be implemented within a given ticket within a given task these are all
- 49:41the requirements and show that they are suitable for the stated purposes and for defect detection
- 49:47so the stated goals that's usually let's say we're looking towards users that is what the users want
- 49:52and what the business wants probably wants to because there are different business requirements
- 49:57and user requirements that's exactly what testing allows us to check that we really claim that the
- 50:02data we have developed is fit for its stated purpose well and understandably we can identify
- 50:07some defects in the course of testing but remember that defect detection is not the very purpose of
- 50:12testing it is rather a consequence first of all we have to make sure that our product is developed
- 50:17qualitatively and this is exactly what quality control and testing allows us to do I remind you
- 50:24that you can see this stick bigari just Google it it is now made in such a way that you just open an
- 50:29online resource um there you can select any term both in Russian and in English and read what it
- 50:36means in terms of here's the testing life cycle as you can see this is from the kulikov schema so we
- 50:41have a certain number of mandatory steps as sdlc here in the first lesson that you watched I talked
- 50:46about the software development life cycle so there is the same cycle specifically for testing for
- 50:52a separate phase that is we first analyze the requirements and the the general planning that
- 50:57is what concerns specifically how we are going to test according to the same the requirements
- 51:02that we have that is what test environment we will use what types of testing we will apply and
- 51:06so on all this can be included here in principle clarification of acceptance criteria it concerns
- 51:11specifically when we have already developed our product conditionally what will be the criteria
- 51:14for us to say that yes okay it works that is our acceptance testing again further on in the course
- 51:19you will learn what it is more that is it is basically speaking in a enjoyable manner users or
- 51:27some group of individuals confirm that everything is working well for us testing strategy most often
- 51:32includes types of testing also further down the course there will be a separate lesson related to
- 51:36this it is not included in the basic course but you can find videos on the channel dedicated to
- 51:41testing strategy and test plan it describes how we are going to test that is the types of testing
- 51:46that we are going to apply that is we can also Define them during planning and in the strategy
- 51:51they can be specified according to the fact that we have already started to work there and move to
- 51:55later stages of development and testing in general further when we have already defined the plans
- 51:59and the strategy we start working out test cases that is in fact our tests again there will be test
- 52:05documentation and there you will learn what test cases are this is basically our action plan how we
- 52:11are going to test this or that task there steps meaning conventionally click on such and such a
- 52:15button go to such and such a page test that it works well there are results expected most often
- 52:19actually rarely occur in test cases but sometimes they do so in the expected results we write what
- 52:24we want to get specifically as part of the launch of this test case we develop such cases or some
- 52:29other types of test documentation like checklists they're more simplified and there's just a set of
- 52:34checks that we want to implement don't worry we'll talk about this further on in the course in a more
- 52:38accessible way I'm just you know that's the way I remember it now we have a lot of lessons on
- 52:42our Channel more than 100 videos and within the basic course there are only 27 lessons that you
- 52:48can watch in general you will have a testing base and then it all depends on you whether you want to
- 52:52develop in this direction or not whether you want to buy some paid courses or not but the base that
- 52:56you need in principle within the framework of the course you can master and then you can look at the
- 53:02market what it offers us because now of course is not so easy to get a job okay let's get back to
- 53:09our sheep so we have developed test cases we want to run them and this is where the execution of
- 53:14the test cases the execution of all of our tests this is a separate stage as part of the launch of
- 53:19the test cases as part of the testing itself of course we will find defects that is deviations
- 53:23from our expected result remember I told you uh little bit there that uh in test cases this is
- 53:29what we want to get and what we get in practice is our actual result and here it can be different
- 53:33which does not meet the stated requirements then it is there is a defect that is either a
- 53:38bug maybe you you have also heard such a name and we can also enter them separately as part of such
- 53:43documentation as a defect report we enter them into our system where it is all stored after we
- 53:48have done the testing usually it is near the end of some iteration iteration is basically a period
- 53:53of time of the time when we develop something and they are constantly repeating these iterations as
- 53:57part of the development and work on our project so within an iteration we usually analyze the results
- 54:03of testing at the end that is whether everything went well whether we achieved all the criteria
- 54:07that we had there for example the acceptance criteria there are also criteria for entering
- 54:11and exiting testing you will learn about all this a little further on in the course and then we can
- 54:16create some kind of report a report on the results of testing is most often called this that is we
- 54:22say that here is our product it conditionally meets some criteria and we can say that hey we
- 54:26either give this product a five there is a separate category write down what risks there
- 54:30are how many bugs we have found how many cases we have written analyze our work collect metrics and
- 54:36provide such a report for example to the customer or to the team so that they understand in general
- 54:41which is good for us and so in general this whole process it loops and repeats itself some
- 54:46processes of course may not be repeated within an iteration for example there is General planning of
- 54:51requirements sometimes conditionally uh we have planned something once and use this document
- 54:56ation further on in the project it is always better to analyze the requirements that is we
- 55:01don't always have some new ones coming in and we have to discuss them too that everything goes well
- 55:05some definition of done definition of ready this can also be taken into account in the acceptance
- 55:09criteria that is the criteria of Readiness the criteria of completion again everything
- 55:13will be further along in the course don't be frightened that is we have some criteria on
- 55:17the basis of which we can say that everything is good they can also change from iteration
- 55:21to iteration for example and so on that is we always write cases we always find defects too
- 55:26we also try to make reports once per iteration if on a project you have it but there are not always
- 55:31reports and in general we can say that they are not always appropriate that is you need
- 55:34to approach consciously to the choice of this or that test documentation on the project whether
- 55:38it is necessary to implement it or not they're at the initial stages the final stages a lot depends
- 55:42on the complexity of the project that is these are quite complex processes of course it may be
- 55:47difficult for a beginner which you all are now to understand all this but within the framework
- 55:51of your work within the framework of further training development I think you're going to
- 55:56have a more conscious understanding of how this all works in the next lessons that we
- 55:59have in the course now a simplified term as I promised the definition is from coof that
- 56:05is everything that you remember there was a big comrade that we have collected here Frankenstein
- 56:13it fits into a simpler definition that is it is the process of analyzing a software tool
- 56:18and the accompanying documentation in order to detect defects and improving the quality of the
- 56:24product it's very clear it's basically this same thing here so you can use a term like this that
- 56:28is you memorize a few definitions that you have heard somewhere because at a job interview they
- 56:32sometimes ask or a few let's say variations on the theme so don't be afraid memorize and
- 56:38always refer to some resource a lot of people know kulikov so if you reference his manuals
- 56:43they will say Okay many people also know ictb and if you refer exactly to an international standard
- 56:49because it is an international standard consider it an international certification then also the
- 56:54probability that they will say that everything is wrong and that you are talking nonsense it
- 56:58will be this probability will decrease so please memorize the sources it's important you don't have
- 57:03to memorize everything by heart you can tell it in your own words but in general if there are
- 57:07any conflicts of interest between you and the interviewer then it's better to link to some
- 57:13resource to prove once again that everything works well but there are interviewers who are quite
- 57:18specific who believe that they are right about everything and of course it will be difficult
- 57:21to change their minds the problem with people who have experience they're used to working according
- 57:25to one methodology according to one process that exists within the company and they cannot look to
- 57:29the right and left they see only forward within the framework of the project on which they are
- 57:33working you have to fight with this too and a good interviewer he should listen to you and accept
- 57:39even on a point of view if you can prove it here is another good example I found this somewhere on
- 57:45the internet software testing is a way to evaluate software quality and reduce the risk of software
- 57:50failure it is also similar in principle isn't it this is what we looked at earlier we will always
- 57:56evaluate some quality and reduce the risk that our software won't work at all another
- 58:01good point like that and in general definition is the verification that the results of a software
- 58:07product meet given criteria or we can say that checking the Conformity of the actual result to
- 58:13the expected result is the same thing so you can remember this term too memorize a few use them in
- 58:18your work as for test goals they are taken from syllabus 2 you can memorize a few it's quite uh
- 58:23rare to be asked at a job interview what testing goals there are but still if you know at least a
- 58:29few from this list it will be better than knowing nothing so we evaluate our work products we have
- 58:34requirements user stories design and code that is in fact I have already told you what it is it
- 58:39is at the beginning of the project for example or at different iterations form specifically what we
- 58:45want to see in the framework of our implemented functionality or product user stories are one of
- 58:52the types of requirements that is they essentially consist of the fact that I as such a user want to
- 58:57get such and such a function from the system in order to feel happy these are user stories
- 59:01and many companies are now working with them or they are also called user stories in English code
- 59:05design that is it is already more related to some architectural and development tasks that is we can
- 59:11evaluate them too of course uh code for example in white box methods when we have this code we
- 59:17can see it and work with it design perhaps if you have some architectural possibilities
- 59:22and also all this can be evaluated whether all the requirements are met that is here we look
- 59:27at whether the result actually coincides with the expected result within the framework of our
- 59:31testing here we can also check whether the test object works as expected by users and stakeholders
- 59:37clearly everything follows from the previous points too creating confidence in the quality
- 59:41level of the test object that is we as testers declare that everything works well or everything
- 59:46works badly or everything works normally and it is clear that our customer or a current user will
- 59:52understand that this product has been tested and we give him some confidence preventing the
- 59:56detection of failures and defects it is clear that we are always working on preventive that
- 1:00:01is preventive work with our product with our processes so that those defects don't happen
- 1:00:07and understandably there are corrective actions when we have conditionally already developed our
- 1:00:10product and yet something went wrong and we have defects and we have to detect them localize them
- 1:00:16and then the developer task is to fix it providing stakeholders with sufficient information to enable
- 1:00:21them to make informed decisions of course we create our reports as part of testing send them to
- 1:00:26team to the customer to the manager and he also realizes according to this report that
- 1:00:31everything works well reducing the risk level of non-moving software quality again we as a tester
- 1:00:38and a separate testing team can reduce this level of risk because we test this working product and
- 1:00:43say that it works well or does not work well and we can see some defects in time and tell
- 1:00:47you about them about them the same the same refs to draw up compliance with contractual
- 1:00:52legal regulatory requirements or standards or verification of compliance of the test object
- 1:00:57well in addition to the requirements that the company makes or the customer specifically to
- 1:01:02the software that we develop it is clear that there are also some contracts legal Norms the
- 1:01:08same International standards which also stipulate how it should work so we should also pay attention
- 1:01:13to that as part of testing and check that our test objects are in line with them these are all test
- 1:01:19objectives taken from silabus uh 2018 version is the most recent one you can read it as I said it
- 1:01:24is in Russian in English as you prefer so read it for those who do not have very good English it may
- 1:01:29not be very clear what is written in the standard so more precisely in the preparation program for
- 1:01:33certification so you can read in Russian there is also such a term as debugging and sometimes
- 1:01:39testing and debugging are confused see what it is debugging you may still have heard is
- 1:01:42the same thing it's a development activity so you see right away it's development we have here not
- 1:01:47just testing to Find analysis and fixes for such defects subsequent confirmatory testing verifies
- 1:01:54whether the corrected defects are fixed or not so you see here we are not only finding defects as
- 1:01:59part of testing for example we can do that and we can say that testing is part of debugging
- 1:02:03but we still analyze them in principle testing also allows us to do that and and fix them but
- 1:02:08of course we cannot fix defects like this that's why they say about development that is it can be
- 1:02:13some automatic methods of searching for these defects and fixing them or it can be the same
- 1:02:18manual testing or uh the developer himself who does code review or something else that is uh
- 1:02:23he can find bugs too and so this whole process of finding analyzing and fixing all together is
- 1:02:28debugging so do not confuse testing and debugging they are slightly different things we can say that
- 1:02:33testing is a part of debugging but we cannot say that testing is 100% debugging because we
- 1:02:39cannot fix the defects themselves within the framework of testing and it is clear that we
- 1:02:43in this confirmatory testing or retest it is also called maybe U2 more precisely impossible it is
- 1:02:49accurate to hear and further on in the course when we see that we have introduced a defect and we
- 1:02:54check it that it was really fixed a fix was made a correction this is a retest that is the retest
- 1:03:01confirms that everything works well for us next look we have this hierarchy of testing quality
- 1:03:06control and quality assurance in fact they are all interconnected and some of them are conditionally
- 1:03:13included in testing testing for example is part of quality control as well but you cannot say that
- 1:03:19testing and quality control are related to Quality Assurance they are slightly different things I
- 1:03:23will show you on the diagram below earlier in my course I said that quality assurance comes
- 1:03:27first it absorbs quality control and quality control absorbs testing quality assurance ends
- 1:03:31up including generally all activities that can be related to testing that's not really true and
- 1:03:36that's what the HTTP standard tells us it's more about management already quality we're
- 1:03:41going to talk about that as well see what the glossery tells us again that quality assurance
- 1:03:46is a set of activities designed to assess the quality of a component or system look at once
- 1:03:50we work specifically with the product that is we control the quality of this particular product
- 1:03:56we do not work with processes we have another project for processes is not a project but a
- 1:04:02process remember this too and testing also works specifically with the product it does not work
- 1:04:06with processes I also wanted to point out that in our geolocations quality control testing and
- 1:04:11quality assurance are sometimes separated from each other so whatever you see the
- 1:04:15following vacancies they write key engineer but in fact they want to hire a tester but there are
- 1:04:20testers there are QC Specialists and there are QA specialists and they all do different things yes
- 1:04:27most likely you start as a tester you work with the testing process then you grow up to a midal
- 1:04:33you get involved in quality control and then you can get involved in quality assurance and control
- 1:04:39processes and participate in their Improvement it also happens sometimes they make such a
- 1:04:44comparative characterization that June is a tester the middle is a QC specialist who is a senior lead
- 1:04:52is a Q&A engineer but it's not quite right you just need to understand that we have this Division
- 1:04:59and sometimes even testers can work there for 5 years as a tester and not grow up to Q&A or their
- 1:05:04middle Senior Specialists can work there only as quality control of a particular product but
- 1:05:09not grow up to Q&A Specialists and to deal with processes inside the company it's all normal it
- 1:05:14happens like that but in our geolocation for some reason they separate people and then unfortunately
- 1:05:18when you come to work they hang absolutely all the activities on you without looking to who is
- 1:05:22who at all although in fact every single person should be responsible for their function going
- 1:05:27back to Quality Control that is you see here we already have quality assessment of a component or
- 1:05:31a system that is testing if I explain it to you on my fingers we have some written documentation
- 1:05:37we have test cases we just run them we get some reports on defects and this process is repeated
- 1:05:41we work with the finished product we we write some usual test documentation and perform routine
- 1:05:47operations quality control is a little bit higher that is here uh you are not just joining in this
- 1:05:52routine work so that you are given some product and you check it but you are also involved in
- 1:05:57analyzing in general the quality that this product has formed within the framework of collecting some
- 1:06:02metrics within the framework of forming reports on defects you are involved in the work on writing
- 1:06:07some kind of test strategy because newcomers most often do not do it and testers too they
- 1:06:12can somehow influence what we get at the stages of strategy and planning because they will generally
- 1:06:17test it later but here is the difference quality control it solves such high level tasks and of
- 1:06:23course including is is involved in testing that is it tests the finished product according to test
- 1:06:29documentation test cases checklists and receives defect reports as a result he does this too so
- 1:06:36quality assurance includes testing and quality assurance look at the difference here so this
- 1:06:41activity is about providing assurance that the quality requirements will be met see it doesn't
- 1:06:47say we're talking about any product here we're talking about having some quality requirements
- 1:06:53in other definitions if you read somewhere it says here that these activities are aimed
- 1:06:56at ensuring improving processes ensuring quality within the company that is we are already working
- 1:07:02on the processes that is we are not just testing something there the finished product but we are
- 1:07:07analyzing what we have going on how the testing department works how the development department
- 1:07:11works as requirements are collected we offer some preventive warning activities to improve
- 1:07:17these processes so that we don't have defects in the future so maybe we are there what we do is we
- 1:07:23come up with some new test documentation that will be effective for this product for this project for
- 1:07:29this team we look at the development there and realize that aha we have a delay in rolling out
- 1:07:33a new product because the developers there spend a lot of time on code review code review is an
- 1:07:38activity that is aimed at reading someone else's code and saying that yes okay it works and you can
- 1:07:41continue to run it somewhere in the process and this activity delays testing there so we have to
- 1:07:47somehow change the situation speed up the code review and make everyone happy and testers and
- 1:07:52developers tested everything in time so you see these are activities are already aimed at making
- 1:07:56sure that we really have everything working like clockwork within the company and within
- 1:07:59the team here Q&A Engineers deal specifically with this task more so don't confuse all these
- 1:08:05three activities testing QC and what US have left quality assurance those are slightly different
- 1:08:11things yes there is QC and testing they are related but quality assurance is something
- 1:08:16else altogether quality assurance quality assurance is focused on process QC is focused
- 1:08:21on products just like testing this is all from the tkb glossery as well and in general I advise
- 1:08:31you to refer to Cabos because there it is more concretely written down that you can tell there
- 1:08:35conventionally about these processes here's more from elos by the way see here we have a
- 1:08:40distinction qck which is quality control includes various activities including testing activities
- 1:08:46that support the achievement of the appropriate level of quality and quality assurance focuses
- 1:08:50on following the appropriate processes to provide assurance that appropriate levels of quality will
- 1:08:56be achieved so you see we have slightly different things here we are responsible here conditionally
- 1:09:02in maintaining our quality level and testing work is included here quality assurance says
- 1:09:09that we have to achieve the appropriate quality levels we don't just maintain them and work on the
- 1:09:14processes that we have within the company that's the difference too it's worth remembering and as I
- 1:09:20said we also have a fourth category that combines all these things this is quality management
- 1:09:25quality management it is the coordinated management and control of an organization
- 1:09:30with respect to Quality which includes setting quality policy and quality objectives quality
- 1:09:35planning quality control quality assurance and quality improvement you see it says here that
- 1:09:41quality management well yes in principle it should sound normal it includes quality control and
- 1:09:47quality assurance that is we include all these processes including testing because testing is
- 1:09:52a part of quality control that is already such a comprehensive comprehensive let's say requirements
- 1:10:00requirements of the process a set of actions as it is written here which are aimed at the fact that
- 1:10:05we have already established some quality policy According to which the company Works quality
- 1:10:11objectives which say that we must achieve some kind of quality goals that our product should be
- 1:10:16super mega class that we should not have any critical defects that we should automate 100
- 1:10:19progression tests and smok tests we talk about them a further on in the course all of this
- 1:10:25is included in quality and it is such a super structure that is why there are also quality
- 1:10:30managers you can also meet them in companies they are more uh focused on quality assurance but they
- 1:10:36also put their hand in speaking in a enjoyable manner in the work of quality control and testing
- 1:10:43and here is a scheme so that it would be more or less clear we have quality management which
- 1:10:48combines quality assurance separately quality control and includes quality control testing here
- 1:10:54it will be a more correct in comparison with what they say and I once said that quality assurance
- 1:10:58includes QC and includes testing so it turns out to be kind of a Matos doll but it is not really a
- 1:11:04matrioska doll it is like this the dichotomy comes out of our quality management anyway
- 1:11:08there's a lot of things that we've covered within those terms and definitions and I also wanted to
- 1:11:12tell you today about validation and verification because that was also part of the third lesson
- 1:11:16which is not available right now so these are also separate processes and you can see these
- 1:11:21processes in the standard international ones there is ISO 90001 for example in some 100%
- 1:11:25it is written about all of this about verification and validation look at the difference between the
- 1:11:29two read the definition carefully according to the glossery verification is proed by objective
- 1:11:35research that certain requirements have been met that is we confirm that some requirements that we
- 1:11:41wrote there that our product should work in this way have been met this is the main thing that
- 1:11:47verification is we will understand it further with examples it will be clear and validation is appr
- 1:11:53pro by objective research results that that the requirements for the expected specific use of the
- 1:11:57application have been met see the difference there were just requirements they were met
- 1:12:01everything is okay but here we are also checking some specific use of the application from the user
- 1:12:06side that is it is not enough for us that all the requirements are met which were written down on
- 1:12:11paper conditionally we still have to prove it that these requirements meet the user's expectations
- 1:12:16that he will receive the system and will be able to perform his functions and that he will be
- 1:12:20satisfied with everything so we will discuss this further with you in a moment remember validate is
- 1:12:25focused on the requirement validation is focused on the user's expectations you can also pay
- 1:12:29attention to this they often talk about it that is verification is more because this is a requirement
- 1:12:34that was formed by a customer and we helped him to do it as a team their analysts have written these
- 1:12:39requirements we have them in line with the right customers what the customer wants to see and we
- 1:12:44are talking about the fact that when we test for example and carry out this verification process
- 1:12:49it says that we are doing the product correctly that is conditionally we say that we meet all the
- 1:12:53standards all the requirements that are customer conditionally imposes on us and that we together
- 1:12:58with our team have defined for a particular product and validation already says that and know
- 1:13:04the needs of the customer okay they are there we know about them but we have a user we want to sell
- 1:13:08something to him and these needs must also somehow meet the needs of the customer so the user's needs
- 1:13:14are covered by validation and here we already answer to the product whether we are making
- 1:13:19the right product that is we say that this product really meets the expectations of a particular user
- 1:13:24that he will be happy to use it work with it and there won't be any problems even though we have
- 1:13:27developed everything there in a kind of correct way sometimes it happens that something does not
- 1:13:31suit the user I will also tell you further on with examples so you see verification we
- 1:13:36have some kind of bicycle conditionally there is a requirement not a test requirement but a technical
- 1:13:42specification where the required color size details materials all this is described within the
- 1:13:46requirements for this bicycle we designed it yes it is it works it writes it seat is made of the
- 1:13:55material there are cool spokes there is something else the frame is made of stainless steel and so
- 1:14:00on WE adjusted everything according to what was in the requirements but look what a problem it turns
- 1:14:07out that this bicycle was designed for children and little ones up to 3 years old who can still
- 1:14:13hold a two whe bicycle normally and they need a three- whe bicycle that is not a two- whe bicycle
- 1:14:18but a three-wheel bicycle and here we are already talking about the fact that we have not taken this
- 1:14:23point into account and we do not meet the needs of our specific user specifically this girl who
- 1:14:28is 3 years old so okay we have developed according to the requirements that we have everything works
- 1:14:33well but it turns out that our target audience is not only are people who are older they are
- 1:14:38children for example of teenage age but it turns out that this bicycle will also be bought by a
- 1:14:41little girl or rather by her parents and here we didn't take that into account this is the
- 1:14:45validation right here verification meets the requirement validation meets the needs of the
- 1:14:50user as for some application let's go to under understandable to the tester as well we have
- 1:14:56some form a form for registering on Yahoo so I took this form copied it and here we have all
- 1:15:03sorts of different fields we here can compare what we have on our final layout what we see on
- 1:15:09the front end what we see on the back end what we see in the browser with what we had in the
- 1:15:13design there are all sorts of layouts that the designer draw and they also spell out how the
- 1:15:17same places should look like we can also look at the requirements where it says that yes we
- 1:15:20have to have Fields there for name for email for password for your year of birth there has to be
- 1:15:26some buttons we can read that too we can look at that form yeah everything's cool everything
- 1:15:30meets the requirement you see testing a component of the system to see if it meets the requirements
- 1:15:35okay the finished version matches the layout okay we're testing that we have the water Fields that's
- 1:15:41okay too as if everything works we can enter some positive values here that is those that
- 1:15:46go are correct valid correct these values we can enter here click continue everything will
- 1:15:52work and then it happens that we have some fields that are mandatory feels that except only numbers
- 1:15:57letters feels it there I don't know what else can be what else can be there some capture appears
- 1:16:01appear conditionally restrictions on uploading a picture up to a certain size not in this form but
- 1:16:07in general so that you understand that is we are already validating after entering some different
- 1:16:11characters in the water field we have a positive case we have entered everything everything works
- 1:16:16well but there are some specific cases our user wanted to enter I don't know some kind of a script
- 1:16:22some malicious code into our system and the the system should work in such a way there can be
- 1:16:26all kinds of cases checking that the user really needs this functionality is the second point that
- 1:16:32is besides the fact that we have checked some atypical cases if the user has said or not said
- 1:16:36something but has done something differently than we intended and this is also validation because in
- 1:16:40principle the users needs they are here now as if they were in plain s side but we also check
- 1:16:44that it is really necessary for example we also develop some new functionality for what for some
- 1:16:50system real estate rental we developed a super mega functionality that gives us a discount after
- 1:16:57we check in 15 different apartments there rent and so on and gives us a discount there five and we
- 1:17:03realize that gez what's this user feature for that is Imagine 15 needs to rent some apartments in
- 1:17:09different cities maybe there is such an additional condition while a person will get to this discount
- 1:17:14five he will basically forget and will not even look at the fact that he has this discount this
- 1:17:18is just a validation if we had conditionally conducted everything correctly evaluated and
- 1:17:22realized that the user in principle does not need such a function or it is needed but in a
- 1:17:27different form to reduce to five some rentals and perhaps the discount to reduce to two if it is so
- 1:17:31miserable to give that money then yes that's when everything would be fine and the user would use
- 1:17:34it that is we can carry out validation already after we have launched our product to see how
- 1:17:40this function works and whether it really meets the user's expectations or we can think about
- 1:17:43how this function will work and whether it is really necessary at all in advance speaking in
- 1:17:48a enjoyable manner this is validation that is remember verification what is specified in the
- 1:17:53requirements what the customer needs and what we are talking about whether we are doing the
- 1:17:59product correctly and validation says okay we did the product right we looked in the requirements
- 1:18:06but the product itself came out wrong because we have conditionally what happened conditionally
- 1:18:11our tricycle didn't work out for a three-year-old girl our discounts don't work for users here's the
- 1:18:17validation we failed that's something to remember about verification validation that is today we
- 1:18:22have considered a lot of Concepts that occur in testing and to give you a little bit of an idea of
- 1:18:26what you will be working with most often beginners work as in the field of testing testers work with
- 1:18:32ready documentation perhaps they write something there too all kinds of test cases checklists
- 1:18:37defect reports yes they create all that further on they grow an experience they have more highly
- 1:18:42loaded task and quality control becomes involved further as a specialist who understands how
- 1:18:47everything works you understand how you can advise within the process within the company whether
- 1:18:52everything works well and whether something can be improved and already some college activities adur
- 1:18:57appear and further you can grow up to a manager and conditionally manage everything that happens
- 1:19:01there manage come up with quality policies quality objectives to implement them and so on and we're
- 1:19:08already talking about management of some sort and quality management and quality management and as
- 1:19:14for verification and validation we also work with verification and validation in our projects most
- 1:19:18of the time because we also have forms that work incorrectly it is not exactly our task to evaluate
- 1:19:23how a specific user wants to see our software it is more the task of analysts product analysts that
- 1:19:28is people who are engaged in for those customers who collect the requirements in the work plan
- 1:19:33inform them that's more their job to analyze the market and understand how it works but we can
- 1:19:39also look in we can do some analytics and we can also realize that everything is wrong everything
- 1:19:45is wrong I hope this lesson was useful to you it is updated and the rest of the lessons that will
- 1:19:50appear within this course you can find on ud. Cor or in the junior package they will not appear here
- 1:19:57because the information that is on YouTube it's basically up to date I mean there are some flaws
- 1:20:01there but the Bas is always the same everywhere so there is no point in a complete rewrite of
- 1:20:07the course if there is something critical there I think that it needs to be done specifically for
- 1:20:12YouTube I will do it so watch this course there are only 27 lessons and further on the channel
- 1:20:18there are other videos that complement what you learn in the base and I recommend you to watch
- 1:20:21them too because a good tester should know a lot of things from different areas including not only
- 1:20:26testing but also project management and creating test documentation non- test documentation General
- 1:20:30documentation some strategies understand planning and including processes that is all on the channel
- 1:20:35I have tried for these two and a half years or how long we have been doing this yes two and a
- 1:20:40half years soon it will be three to include a large number of different videos on different
- 1:20:45topics I think you're all going to find it useful anyway subscribe to this channel don't forget
- 1:20:49about my other communities that you can find links to in the description of this video and
- 1:20:53I'll see you guys very soon soon bye guys hello YouTube today we are starting a big and very
- 1:21:00interesting topic related to the classification of testing there are a huge number of variations
- 1:21:06of this system so don't be surprised if you find differences in different sources let's
- 1:21:11start with the typification of testing by levels at which it is conducted there are three in total
- 1:21:17the first one is component module or unit testing in different sources it may be called different
- 1:21:24L the second level is integration testing and the third is system testing from the names of
- 1:21:35these types of testing one can assume what is being tested at each of these levels at
- 1:21:40the component level individual modules are tested for example if we are talking about
- 1:21:48an online store then this would be testing the shopping cart or testing the payment of an order
- 1:21:55at the integration level the interaction of these modules is checked and at the system
- 1:22:00level the full check of the application is carried out usually unit testing is done by
- 1:22:05the software code developer as unit testing allows testing individual components of the
- 1:22:11program's source code in the example of an online store such modules could include the
- 1:22:16authorization page product search moving it to the shopping cart payment of the order
- 1:22:24as for integration testing it involves testing a part of the system consisting
- 1:22:30of two or more modules for example how we can make a payment from the shopping
- 1:22:36cart page using a payment system there are two types of integration
- 1:22:41testing let's talk about each of them firstly it is the testing of component
- 1:22:47integration that is how individual modules of
- 1:22:54one application interact with each other and system integration
- 1:22:58testing which means testing the interaction between all component systems or the interaction
- 1:23:08of different systems with each other or testing the interfaces through which the system interacts
- 1:23:15it is about the interfaces that I want to talk about in more detail there are three
- 1:23:20types of interfaces the first of them is the app ation programming interface or API it is
- 1:23:28a set of methods that can be used to access the functionality of another program for example an
- 1:23:35API is used to implement a certain payment system for a particular resource again take our online
- 1:23:41store for this the developer establishes integration with this system through this
- 1:23:45interface and he does not need to develop his own payment system there are a huge number of
- 1:23:51such apis the most famous of the them is the API for interaction with social networks like Facebook
- 1:23:58or vont we will talk more about apis in the module on web application testing the second interface is
- 1:24:07the CLI or command line interface where computer instructions are given by entering text strings
- 1:24:14from the keyboard simply put it's the usual command line in the windows system for example
- 1:24:20and the third interface is the GUI graphical user interface in IT program functions are represented
- 1:24:27by graphical elements of the screen for example this is what we see in a browser window when we
- 1:24:32open a page on the internet so we've talked about component and integration testing let's now talk
- 1:24:38about system testing system testing is performed on a full integrated system to verify the systems
- 1:24:45compliance with the original requirements for example if we're talking about an online store
- 1:24:51then here we will look at how all the modules that were developed for the store work together
- 1:24:57whether it is possible to go through the entire business flow of this application that is whether
- 1:25:04we can register find a product put it in the cart pay for our order track this product on its way
- 1:25:12that is we are testing the entire application as a whole and of course speaking of testing levels
- 1:25:18it is also worth mentioning acceptance testing I will include it in this classification as well
- 1:25:25what is acceptance testing it is a type of testing conducted at the stage of delivering
- 1:25:31the finished product or its ready part to the customer the purpose of acceptance testing is
- 1:25:38to determine the Readiness of the product and this is achieved by passing test scenarios cases that
- 1:25:46are built on the basis of the specification and requirements for our product essentially it is
- 1:25:53the final state stage of product testing before its release usually only the main functions are
- 1:26:00tested which do not require thorough checks there are several types of acceptance testing
- 1:26:06that also need to be known there are several types of acceptance testing let's talk about
- 1:26:12them in more detail firstly it is user acceptance testing or uat user acceptance testing get used
- 1:26:22to calling all types of testing in English as you will encounter English abbreviations or
- 1:26:29definitions in the future user acceptance testing is conducted by users of the end
- 1:26:34product for example when we know that our product is ready for release then we can
- 1:26:41gather a certain group of end users who test it to see if this product really meets their
- 1:26:48expectations give us some conclusion we will fix some critical bucks and
- 1:26:55we'll be able to release our product calmly the next type of testing is
- 1:27:00operational usually this testing is performed either by users or by an
- 1:27:09administrator in an environment that simulates the real conditions of the
- 1:27:13work environment at this stage backup testing or emergency system recovery as well as its
- 1:27:19security are carried out another type of acceptance testing is contract compliance
- 1:27:25testing this testing involves checking for compliance with the spec or some other document
- 1:27:37regulatory act for example there is a standard in the country that defines how our product should
- 1:27:44comply with this regulatory legal act that is it defines its some basic key features uh
- 1:27:54we must necessarily develop the product in full compliance with this regulatory act or one of
- 1:27:59the most famous documents which was adopted not so long ago is the gdpr which defines the
- 1:28:06requirements for the protection of user data sensitive data and if we do not take these
- 1:28:12requirements into account When developing the product then we can receive huge fines in the
- 1:28:17future and two more types of acceptance testing are Alpha Testing and beta testing Alpha Testing
- 1:28:25represents operational testing conducted on the side of developers but not within our
- 1:28:31company and beta testing unlike Alpha is conducted entirely on the external side
- 1:28:40and without the participation of developers usually beta testing is conducted by a small
- 1:28:44group of users to get feedback from them before the product enters the market this is a known
- 1:28:51practice for computer games I think I think that those of you who are Avid Gamers know
- 1:28:57about such testing that is the customer selects a certain key group of users and releases a beta
- 1:29:04version of the product for them and based on their feedback that is feedback critical
- 1:29:11bugs will be fixed or we will just understand that our product meets their expectations and
- 1:29:18it can already be released also today I would like to pay a little attention to the issue
- 1:29:24of classifying testing by the positivity of test
- 1:29:28scenarios it is logical to assume that there will be two types of testing positive and
- 1:29:36negative testing what is implied by each of them positive testing is such testing where
- 1:29:42scenarios are applied that correspond to the normal expected behavior of the system with its
- 1:29:48help we can determine that the system does what it was created for for example example if we take
- 1:29:55a calculator then when adding 2 + 2 we will get four this will be a positive test negative testing
- 1:30:03is called testing in which scenarios are applied that correspond to the extraordinary behavior of
- 1:30:09the system for example these can be exceptional situations or incorrect data in the example of
- 1:30:16our calculator this can be division by zero so we know in advance that dividing by zero
- 1:30:22is not possible that is we should get some kind of error message many novice testers are mistaken in
- 1:30:28thinking that negative testing should be done first that is try to break the system this is
- 1:30:34far from the case positive tests are performed first especially in a Time limited mode and the
- 1:30:40time for testing is always limited just imagine how the customer will feel if you focus all your
- 1:30:47efforts on performing negative tests but do not check the main functionalities and their work
- 1:30:53with the stated require en and hand over such a product to the customer imagine his reaction
- 1:30:58when he simply cannot log into the system using valid data while you in turn only checked 99,999
- 1:31:09characters in the login line today we learned about the main levels of testing and their
- 1:31:14significance for the entire quality assurance process and touched a little on the topic of
- 1:31:18positivity of scenarios in the next lesson we will continue studying the classification of testing
- 1:31:24I think there will be several more lessons like this because to fit everything within
- 1:31:2910 15 minutes is simply impossible and as always I hope you found this video interesting and that
- 1:31:35you really learn something new for yourself about testing if you still have any questions then do
- 1:31:41not hesitate to write them in the comments I will try to answer give my feedback and don't forget to
- 1:31:51like And subscribe to this channel so I will know that the work was not in vain Welcome to our Hut
- 1:32:04bye hello YouTube glad to see you continue learning about testing classification today's
- 1:32:15lecture we'll start with the types of tests by the importance of the functions being tested
- 1:32:21there are three of them these are smoke test in critical path testing and extended
- 1:32:27testing type number one is smoke testing in English language resources you can also
- 1:32:36find such names as intake test build verification test in general it will
- 1:32:41all depend on the source from which you will draw your knowledge about
- 1:32:46these types of testing smoke testing is conducted at the initial stage
- 1:32:54for example after a new build a build is an intermediate version of our product
- 1:33:01and primarily smoke testing is aimed at checking the Readiness of the developed
- 1:33:05product for extended testing and determining the overall state of the product's quality
- 1:33:13usually it's a short cycle of tests or even just one test which confirms or denies the
- 1:33:19fact that the application starts or performs its basic functions taking
- 1:33:23our beloved online store as an example smoke testing is one test case when we log into the
- 1:33:29system search for the necessary item add it to the card make a payment confirm it and receive our
- 1:33:39order so all these steps can confidently be included in one test case and if it passes
- 1:33:50that is the expected actual result is the same and we receive our product then the
- 1:33:55smoke testing is considered successful there are only two possible outcomes for a smoke test
- 1:34:01we can say either yes or no if we say no that is our test fails then further testing is not
- 1:34:11conducted we send a bug to the developer and completely stop the testing process it is worth
- 1:34:21noting that smoke test should be quick and and lightweight so that they can be run very often
- 1:34:28a fun fact how did such a name as smoke testing come about there are at least two versions that
- 1:34:34I know of one of them is the version about stov makers that is when stov makers finished
- 1:34:40building a particular stove they would light a fire in it and if smoke came out of some
- 1:34:46holes which were supposed to be sealed then people understood that some construction or
- 1:34:53design Pro process of the stove was violated and the second version is related to Circuit
- 1:35:00designers that is when they started some machine or superc computer if the board
- 1:35:06started smoking after some high load then people also understood that some technological process
- 1:35:12was violated and again something needed to be fixed therefore this type of testing got such
- 1:35:20a name as smoke testing the second type of tests by importance is critical path
- 1:35:25testing what is it this is the main type of testing during which significant elements
- 1:35:36and functions of the application are checked for correct operation during
- 1:35:40standard usage that is a typical user in typical everyday life performs their
- 1:35:47typical tasks and it is exactly these typical tasks that we check
- 1:35:57most often in practice this type of testing checks the bulk of the product's requirements for example
- 1:36:03this includes font selection the ability to type text insert images and so on and so forth critical
- 1:36:10path testing can be both positive and negative if you forgot what positive and negative tests
- 1:36:17are a link will now appear above which you can follow and refresh this knowledge in your memory
- 1:36:24and the classification ends with the extended test or extended test this
- 1:36:31testing implies checking the non-standard use of the software product for example if
- 1:36:35we enter special characters in the login field or illogically click on buttons work on many
- 1:36:41tabs simultaneously that is maximally load our system or perform some invented negative tests
- 1:36:56this is what I wanted to tell you about the tests by importance now let's talk about the
- 1:37:04types of test by the goal of testing and we will start with new feature test or
- 1:37:10testing new functionality essentially this is checking the quality of new functionality
- 1:37:15put to the test and usually the new feature test is tested with a full test that is it
- 1:37:20goes through all stages starting with smoke then critical path testing and
- 1:37:25ending with extended testing testers virtually everyday encounter new feature test that is
- 1:37:42essentially new functionality comes to testers during some Sprint we will talk about Sprints
- 1:37:47a little later when we discuss such an agile methodology as agile for initial
- 1:37:53understanding you should imagine that a Sprint is a certain period of time
- 1:37:57during which the team delivers some new functionality to our customer and presents
- 1:38:03it and it is in this Sprint that new features new functionalities which will later be tested as part
- 1:38:14of the new feature test often come and probably here it is worth noting the most important type of
- 1:38:21testing which takes up the most time for testers this is regression testing what is regression
- 1:38:29testing this is testing previously verified functionality to ensure that changes in the code
- 1:38:36for example adding new functionality or fixing a defect did not affect the operation of the old
- 1:38:46functionality regression testing can be conducted at the level of smoke critical path and extended
- 1:38:53I want want to go into more detail on this type of testing because often in interviews you may be
- 1:38:59asked about some of the pitfalls associated with this type of testing and in principle
- 1:39:05in order for you to have some understanding of why this type of testing is so important in our
- 1:39:10work is this type of testing necessarily conducted in every new build if it comes
- 1:39:19to automation as you remember a build is a intermediate version of our product this
- 1:39:26type of testing can include checking fixed box and their degree of impact on the entire
- 1:39:32product or on some specific functionality and you need to understand that regression testing
- 1:39:38usually does not cover all applications but only those areas that in one way or another
- 1:39:44come into contact with changes in the build for example if we talk about the page user
- 1:39:51authorization in the system then if suddenly some change was made related to password reset
- 1:39:57usually these two functionalities login into the system and password reset or its recovery
- 1:40:03are interrelated therefore it is mandatory in the case of such changes to check the
- 1:40:09interrelated functionalities also regression testing is is recommended to be conducted
- 1:40:16several times and since there can be a lot of functionalities in the application regression
- 1:40:23testing is very often automated in order to save time for testers and generally time for
- 1:40:30testing it should be noted that the final regression test in this large cycle consisting
- 1:40:41of three to five regressions are usually determined after setting some priorities and the
- 1:40:46priorities in turn are determined by the largest number of Errors found in the system often in
- 1:40:53interview again they may ask how to select tests for regression there is a very simple
- 1:41:00algorithm that I will tell you about first of all in regression you always need to
- 1:41:05include tests that cover testing of security or some critical important functions for the
- 1:41:10business it is necessary to include in the regression those
- 1:41:19areas that change most often during development
- 1:41:25also from one of the principles of testing another principle of test selection for
- 1:41:30regression follows that it is necessary to include tests of functions with a high
- 1:41:34probability of error by following the link above you can familiarize yourself with the
- 1:41:39basic principles of testing and write in the comments which of the principles this
- 1:41:44statement relates to and let's talk about uh another type of testing such as retest
- 1:41:53this is checking the result of work on a defect checking the correctness of defect correction
- 1:41:59that is when a developer sends you an already fixed bug then you conduct a retest that is
- 1:42:05you make sure that the developer really fixed the defect and the functionality actually works
- 1:42:13as it was intended in the requirements also retest is sometimes called defect validation
- 1:42:20this is the lesson we got on the classific ation of tests by importance as well as by
- 1:42:26the goal of testing I hope that this class was interesting to you if it really was then support
- 1:42:32this video with a like your subscription if you have not yet subscribed to this
- 1:42:37channel possibly a comment or a question if you have one after watching this video
- 1:42:50material and I in turn want to say thank you very much for your support and kindly ask you
- 1:42:56to our Shack [Music] bye hello YouTube today we are going to be finishing up our topic on
- 1:43:08learning about test classification it's going to be quite lengthy so make sure to plug in and
- 1:43:14listen carefully I really hope it will be useful for you in the future let's start perhaps with
- 1:43:21such a typification as testing by the degree of [Music] automation I think it's no secret to you
- 1:43:29that there are two types of testing in terms of automation they are manual testing which we are
- 1:43:36studying in this course and automated testing in manual testing testers manually execute
- 1:43:43tests without using any automation tools automated testing uses special software to control test EXE
- 1:43:53ution and compare expected and actual results it automates repetitive tasks to maximize test
- 1:44:00coverage the primary targets for automation are regression testing which consumes a
- 1:44:19significant amount of time and involves the repetitive exec ution of tests we have
- 1:44:24already performed and smok testing which is conducted initially if you need a refresher
- 1:44:30on this please refer to the previous lesson where I discussed this type of testing in
- 1:44:34detail there is a common opinion that automated testing will completely replace manual testing
- 1:44:45however this is not entirely true as not all functionalities can be thoroughly tested solely
- 1:44:50by written automated tests or scripts that's why why manual developers will always remain
- 1:44:55relevant and there will always be work available for them nowadays it has become quite popular
- 1:45:03to have hybrid teams which means having both manual and automated testers working together
- 1:45:08for example sometimes manual testers write some test scripts and give them to automatizes who
- 1:45:15later write consistent program code a script and perform these tests in other words we get
- 1:45:21a kind of symbiosis between manual testers and automatizes the second issue I would like to
- 1:45:27address in this class is the systematization of code knowledge testing there are three distinct
- 1:45:34types of code knowledge testing that we need to consider these types are known as Black Box
- 1:45:39testing white box testing and gray box [Music] testing blackbox testing or blackbox testing
- 1:45:52we don't know how the the system under test is organized you may also find names for this
- 1:45:56testing such as specification based testing or behavioral testing what does it mean it is
- 1:46:02a testing technique based on working exclusively with the external interfaces of the system under
- 1:46:09test that is we don't know the program code at all an example would be when a tester tests a
- 1:46:17website without knowing the specifics of its implementation using only the fields water and
- 1:46:23buttons provided by the developers the source of the expected result will be a specification that
- 1:46:29is we are only testing the gue the graphical user interface unlike blackbox testing white
- 1:46:35box testing or white box testing is the following we know all the details of the implementation of
- 1:46:41the tested program that is it is such a method of software testing that assumes that the internal
- 1:46:47structure its design and implementation are known to the tester an example would be when a tester
- 1:46:58who is usually either an automator or possibly a programmer examines the implementation of the
- 1:47:03input field code on a web page determines all the intended both correct and incorrect user
- 1:47:09inputs and compares the actual result of the execution of the program with the expected one
- 1:47:16in this case the expected result is determined exactly by the way the program code should work
- 1:47:23and the last type of testing by code knowledge is gray box testing or gray box testing here we
- 1:47:29already know only some peculiarities of the implementation of the systems being tested
- 1:47:34this is such a method of software testing which implies a combination of the two previous ones
- 1:47:40that is we know the internal structure of the program only partially for example we know the
- 1:47:48internal structure and algorithm of software operation in order to write write the most
- 1:47:53effective test cases but the testing itself is conducted using the blackbox technique which
- 1:48:00means taking the position of our end user this brings us to the most fascinating part of our
- 1:48:05lesson today functional and nonfunctional testing so what is it functional testing is one of the
- 1:48:13types of testing aimed at verifying that the functional requirements of the software match
- 1:48:20its actual characteristics the key Point here is functional requirements essentially we are
- 1:48:25testing what our system actually does the primary objective of functional testing is to ensure that
- 1:48:31our product under development includes all the functionalities that the customer needs this
- 1:48:36type of testing is conducted at all levels and as I mentioned earlier it verifies what the system
- 1:48:42does unlike functional testing the purpose of which is to check whether the real product
- 1:48:51function corresponds to the fun functional requirements as you have probably guessed
- 1:48:55the purpose of non-functional testing is to check whether the application properties correspond to
- 1:49:01its nonfunctional requirements that is in this type of testing we are testing how our system
- 1:49:07works in essence it is testing of properties that are not related to the functionality of
- 1:49:12the system these properties are determined by the functional requirements such a property can
- 1:49:19include for example reliability which refers to the the system's reaction to unforeseen situations
- 1:49:26in this case testing methods such as failure and Recovery testing will apply to this particular
- 1:49:30property in English it will be referred to as failover and Recovery testing this means
- 1:49:39it is an examination of a program system's ability to recover from errors and failures
- 1:49:43the second property to consider is performance which means the systems functionality under
- 1:49:49various loads in reality performance testing incom is a vast array of skills and tools
- 1:49:55therefore there are specialized testers who Focus solely on this type of testing that is
- 1:50:02if you are interested in it of course you can go to specialized courses study read special
- 1:50:06literature and uh use already performance testing techniques in your practice what is
- 1:50:13it performance testing includes various tests aimed at assessing an application's performance
- 1:50:21stability resource usage and other quality attributes under different scenarios and loads
- 1:50:28additionally performance testing itself can be categorized into several specific
- 1:50:32[Music]
- 1:50:38types in low testing we check the performance under normal conditions that is if it is stated
- 1:50:48that a thousand users should be present on the site at the same time we create such
- 1:50:52special conditions for example in theer program when we load our system with a number of users
- 1:50:59which will probably be a little less than this thousand and ensure that everything
- 1:51:04is truly okay during stress testing we evaluate the performance of our system
- 1:51:08under extremely heavy loads for instance this could be when there are thousands of
- 1:51:12users accessing the site simultaneously or perhaps even more stability testing
- 1:51:17involves examining our application to see how it performs under extended periods of operation
- 1:51:23I believe there's no need for an explanation here volume testing is distinguished by the fact that
- 1:51:28we evaluate our system under conditions with increased volumes of data being processed that
- 1:51:34is for instance when the same thousands of users simultaneously send an any number of megabytes of
- 1:51:40information moving on to the next non-functional property we can refer to convenience which is
- 1:51:45essentially the study of the usability of the application from the user's perspective this
- 1:51:50aspect can be evaluated through usability testing meaning conducting usability tests the usability
- 1:51:56check of the application involves evaluating the Conformity of the applications designed with
- 1:52:01its functionality as specified by the customer additionally we investigate the graphic elements
- 1:52:07used and the color designs in terms of how they are perceived by our users we also assess the
- 1:52:14ease of navigation and the links present on the site analysis of the textual content of the site
- 1:52:22there is also also such a characteristic as learnability for example if our user for the
- 1:52:26first time went to a resource how quickly he can figure out how to use it for example on
- 1:52:31some previous experiment when he used similar application from our competitor so if we don't
- 1:52:39take all of these aspects into account the user will most likely move on to our competitor if they
- 1:52:45suddenly find it inconvenient to use our product this type of testing is very common nowadays and
- 1:52:51it holds significant Val value furthermore there are distinct groups of testers Specialists who
- 1:52:56concentrate on usability testing there are also specialized courses that enable you to learn these
- 1:53:02techniques thoroughly another important property is security specifically the security of user
- 1:53:09data these are also quite extensive and crucial areas of testing there are once again specialized
- 1:53:15testers who Focus specifically on security testing these are distinct areas for instance in this
- 1:53:17context we can examine how accessible the system is to an unauthorized user or how simple it is for
- 1:53:20an unauthorized individual to gain access to the data security testing involves various methods and
- 1:53:23strategies to ensure that the system is protected against potential threats and vulnerabilities it's
- 1:53:27crucial to understand the different aspects of security testing to safeguard the integrity and
- 1:53:30confidentiality of the data here we thoroughly test how the security of our software product
- 1:53:36is realized another important property we examine is portability which means the ability to transfer
- 1:53:42our application to different Platforms in this context we can utilize various types of testing
- 1:53:47such as installation testing and configuration testing regarding in installation testing we
- 1:53:53verify the success of the application installation its customization updating and uninstallation
- 1:54:00processes when it comes to configuration testing we examine the performance of a program system
- 1:54:05under various program configurations additionally crossplatform and cross browser testing fall
- 1:54:13under this category of testing I think it is not necessary to explain in great detail
- 1:54:21here what it is I think it is clear to everyone crossplatform means that we test our product on
- 1:54:27different types and versions of os for example if we are talking about a cell phone it can be
- 1:54:34Android or iOS and also in Cross browser testing we use our application on different browsers be
- 1:54:41it Chrome Mozilla or Opera we should also talk about localization testing and internalization
- 1:54:47testing the very often you can find such abbreviations as l10n i18n that is to not
- 1:54:58be frightened if you see them perhaps there will be some testing somewhere at the interviews or
- 1:55:03you will be asked how you can abbreviate these names just memorize it these are
- 1:55:08basically abbreviations for their English names as for localization testing it's the process of
- 1:55:14adapting our software products to the language and culture of the client for example if we are
- 1:55:18entering some other market for example uh an english- speaking Market market then we have
- 1:55:24to verify whether our product is completely translated into this language or perhaps there
- 1:55:30are some Financial designations used there for example the pound we need to check that
- 1:55:35as well we can also incorporate controler format date and time legal peculiarities
- 1:55:40of the state we are entering user keyboard layout control of symbols and colors and
- 1:55:45other aspects that might be related to this or that local on which we will present our product
- 1:55:57unlike localization internationalization testing also covers how well our product
- 1:56:03can be adapted to specific locals for instance When developing a product we need to consider
- 1:56:10the potential for unic coding coding this is a standard that supports nearly all languages
- 1:56:16globally and it's crucial for ensuring broad compatibility or we must include in the
- 1:56:22application the possibility of supporting elements that cannot be localized in the
- 1:56:27usual manner for instance it could be vertical text in Asian countries or reading from right to
- 1:56:33left in Arab countries that is even if we do not currently use our application in Asian countries
- 1:56:39for example we still need to Envision that in the future this application can enter these markets as
- 1:56:45well so we have to test internalization as well there is also such a gradation
- 1:56:55as script execution testing sometimes in interviews they ask for example what is
- 1:57:00ad hoc testing and not everyone can answer this question let's understand a little bit what it
- 1:57:06is here we can distinguish two types of testing these are exploratory testing and ad hoc testing
- 1:57:21ad hoc testing is testing without using any specifications plans and develop test cases
- 1:57:27it is your pure improvisation that is for example you have received an application
- 1:57:31for the first time and on some empirical intuitive level you understand how to work
- 1:57:39with it exploratory testing as opposed to ad hoc is a more formal version of testing it doesn't
- 1:57:47require writing test cases but at the same time it implies that each subsequent test is ch chosen
- 1:57:52based on the result of the previous test or if you know how your application works that
- 1:57:58is it is not the first time you see it then you can also follow some kind of plan without
- 1:58:04necessarily documenting it that means you know the expected result in a module and you test it
- 1:58:10but you don't document it formally the last one is scenario testing which is our classic testing
- 1:58:22by pre-written and already documented test scenarios there's also such a classification
- 1:58:29as by running code if you remember the lesson about verification and validation we talked
- 1:58:40to you that verification is a static check and validation is a dynamic check this applies to
- 1:58:47this classification as well that is there is static testing and dynamic testing in static
- 1:58:53testing it is not assumed that the program code will be executed during testing then we don't
- 1:59:01start it static testing starts at the early stages of the software life cycle and is a corresponding
- 1:59:07part of the verification process this can include testing of any form of documentation such as code
- 1:59:14deduction inspection of design documentation functional specifications and our requirements
- 1:59:23Dynamic testing involves launching program code to
- 1:59:26analyze Its Behavior while running for non-functional testing there's also Gua
- 1:59:31testing that is it is checking whether the application complies with the requirements
- 1:59:48of the graphical interface how professional it looks whether it is made in the same style that
- 1:59:54is whether the buttons we have on the mockup are in the same place that is in the template
- 1:59:59provided by the designer that is we check all this when testing the GUI and uh is also such
- 2:00:05an interesting area as accessibility testing or in English it sounds accessibility testing that
- 2:00:15is here we test the compliance of software with generally recognized accessibility standards
- 2:00:22it must be accessible for use by people with disabilities there is a separate document that
- 2:00:28regulates how our application should be accessible for such people again this is a separate area of
- 2:00:36testing so I will not do all on it in detail but it's a very interesting one it's worth noting that
- 2:00:42a lot of people have the misconception that people with disabilities must have some kind
- 2:00:46of health problem that prevents them from using our software in fact this is not quite the case
- 2:00:52such people for example can include those who for example are driving in a car and concentrating on
- 2:00:59traffic that is looking at the road but at the same time he is using some kind of Gadget that
- 2:01:07is he is limited in his abilities he cannot see that happens on the screen of her smartphone but
- 2:01:14can for example here or if a woman has a child for example she holds it in one arm and uses again our
- 2:01:21gadg at the smartphone she has to use only one arm this limits her movements we must consider
- 2:01:30that possibility too it's not always people with disabilities who face health issues this final
- 2:01:37session on classification and testing is extensive initially I thought of splitting it into several
- 2:01:44sessions but I realized we had already covered this topic extensively so I hope you found this
- 2:01:52interesting if you have any questions at all be sure to ask them in the comments below also
- 2:01:55don't forget to subscribe to this Channel and put your likes your support is very important
- 2:02:01to me and that's all for now Welcome to our tent [Music] goodbye hello YouTube in today's session
- 2:02:18we are going to continue our study of testing and discuss very software development models except
- 2:02:24perhaps agile methodologies this topic is quite extensive so we will devote a separate lesson
- 2:02:31to it and the first model we will talk about is the classic Model of software development
- 2:02:39uh it is called the waterfall model or Cascade model in English it is known as the waterfall
- 2:02:45model in this model each stage of development in the appropriate stage of the software life
- 2:02:54cycle continues the previous one on the left you can see a diagram of the waterfall model it
- 2:03:00is already familiar to you we discussed it in the very first lesson what would you like to note from
- 2:03:07the peculiarities of this model as you can see in order to move to a new stage we must completely
- 2:03:13finish the current one that is if we are talking about the requirements Gathering stage we cannot
- 2:03:20move to the analysis stage until we finish gathering the requirements the same applies
- 2:03:25to the design phase coding development testing and support of our system the Cascade model is quite
- 2:03:31simple and straightforward however it is somewhat outdated and not as practical as it once was given
- 2:03:40that we are currently in an era of dynamically changing and evolving requirements this type of
- 2:03:45structured process can turn the advantages the system used to offer into some significant and
- 2:03:51disadvantages let's talk about such pros and cons of waterfall model as for the
- 2:04:00pros of the Cascade model the pros include full documentation of each step meaning that we will
- 2:04:07always have clear requirements available to us also we can always plan our timelines and
- 2:04:14costs clearly and for the customer our processes will be quite transparent because they will know
- 2:04:20at what time this or that stages launched how much time will be spent on its realization and
- 2:04:26can calmly track it as for the disadvantages of the waterfall model they include the following
- 2:04:34first the complete scope of requirements for the system must be approved before the
- 2:04:39project begins if we need to make changes to the requirements later we cannot go back
- 2:04:44to the first stage and we will have to redo all of our work Additionally the disadvantage which
- 2:04:51is also include the increase in costs and time if it becomes necessary to change the
- 2:04:56requirements as I have already said in this case we will have to go back to the very first stage
- 2:05:05and start working again we have written down all the pros and cons now let's talk about when this
- 2:05:11model of software development is used at all first of all in projects with well- defined requirements
- 2:05:20for which there is no provision to change them during the development process the very first
- 2:05:24example that comes to my mind is some government agencies or some banking structures this is
- 2:05:30typically where this particular development model is employed it is also utilized for projects that
- 2:05:38are migrating from one platform to another that means the requirements stay the same and only
- 2:05:44a specific system environment changes or when the development company is not responsible for
- 2:05:50performing testing for instance if the company is only responsible for developing the program code
- 2:05:58and testing will be conducted by the customer or another party to the next development model
- 2:06:04we can refer to the V model or the model of software development it is a modified version
- 2:06:13of the classical Cascade model here as you can see on the scheme the current process is
- 2:06:18controlled at each stage to ensure it is possible to move to the next level in this model testing
- 2:06:24begins at the stage of requirements writing and each subsequent stage has its own level of test
- 2:06:30coverage here the development process is represented by a descending sequence in
- 2:06:43the left part of our conditional letter V and the testing stage on its right Edge the
- 2:06:50correspondence between the stages of development and testing is shown by horizontal lines the pros
- 2:06:58and cons of V models are as follows first we have strict stages This Is Us discussing the
- 2:07:05pros secondly the planning testing and verification of the system itself are
- 2:07:10done at early stages let's write early testing which aligns with the principle of testing I
- 2:07:17discussed in one of our earlier lessons and we also have a stage called intermediate testing
- 2:07:24this means that unlike the Cascade model where intermediate testing was not possible and was
- 2:07:30strictly after the development stage of our software here we can conduct testing at every
- 2:07:36level regarding the disadvantages we still face the inflexibility of our model [Music]
- 2:07:46here the program itself is written and created during the code writing stage that is as we can
- 2:07:55observe from our scheme it occurs in the middle of the development process we do not have the
- 2:08:02possibility to make any Dynamic changes this is because all the stages follow each other
- 2:08:09in sequence anyway when do we use this type of development model typically it is used
- 2:08:15in projects where there are certain time and financial constraints and and for tasks that
- 2:08:24require a broader approach compared to the previous Cascade [Music] model model test
- 2:08:35coverage this is what our final mind map looks like I hope you have no questions about this
- 2:08:40particular software development model and now let's move on to the next one before this you and
- 2:08:46I discussed sequential software development models however not all all life cycle models follow a
- 2:08:54sequential approach they are also iterative or incremental models which use a very different
- 2:09:02methodology here instead of one long sequence of actions the entire product life cycle is
- 2:09:13uh segmented into several distinct minic Cycles it is important to note that each
- 2:09:18of these Cycles comprises the same state Es as in other software development models these minic
- 2:09:26Cycles are referred to as iterations during each iteration a specific component of the system is
- 2:09:32developed afterward this component is integrated into the previously developed functionality and
- 2:09:40so that entire process is collectively known as incremental I believe each of you is familiar with
- 2:09:47a model such as plan do check and act each stage of development corresponds to one of these sectors
- 2:09:57for instance planning would be the phase Where We Gather requirements the due sector involves
- 2:10:04analyzing drawing something creating designs and writing program code testing falls under
- 2:10:10the check sector an act represents the review phase which includes evaluation revising current
- 2:10:16requirements and proposing additions to them and in eventually a point is reached where where all
- 2:10:21the requirements will be embodied in our product and the release happens now let's talk about the
- 2:10:25pros and cons of this model first of all the pluses include the fact that we have the early
- 2:10:29creation of working software since our aerations are usually short in time we can deliver some of
- 2:10:33the the functionality and our product in a small amount of time and very quickly this means that we
- 2:10:38can see results early on which helps in making adjustments and improvements based on feedback
- 2:10:41additionally U this approach allows for better risk management as issues can be identified and
- 2:10:46addressed sooner rather than later overall the ability to produce working software early in
- 2:10:49the process is a significant advantage of the model it is also an advantage that such systems
- 2:10:55are generally very flexible meaning they are prepared for changes in requirements at any
- 2:11:00stage of development as I mentioned earlier these iterations take a a relatively short amount of
- 2:11:10time if we refer to such a framework in agile methodology like agile it typically spans from
- 2:11:172 weeks to 4 weeks and it is this iterative model that has given rise to Agile methodologies so it's
- 2:11:25always easier to conduct testing and perform risk analysis for just a small part of our product life
- 2:11:31cycle and if we're talking about the cons each phase is an independent unit
- 2:11:40of some kind and the individual iterations do not overlap each
- 2:11:45other and unlike more classical models for example example if we even consider
- 2:11:52the same Cascade model not always are all the requirements known by the beginning of the design
- 2:11:59phase this can also complicate the work and implementation of our overall system
- 2:12:07architecture when should we use an iterative model usually it is well suited for some large projects
- 2:12:17when we do not know all the requirements but we know at least some key requirements and when the
- 2:12:24requirements we know exactly what will change during the development process and as I have
- 2:12:31already said it is the iterative iterative model that became the ancestor of agile approaches to
- 2:12:39software development we will talk to you about agile approaches in one of the next lessons I
- 2:12:46guess that's all I wanted to tell you in this lesson I hope that it was useful to you as usual
- 2:12:52and that you now have a little more understanding and understanding of all the models that there are
- 2:13:00in software development and when you come to work in a company where one of these models is used you
- 2:13:06will not be confused and will be able to quickly figure out how to work in the realities of this
- 2:13:12particular model the question about software development models is often enough asked at
- 2:13:19a job interview so be sure to note for yourself the pros and cons of each of these methodologies
- 2:13:28and be sure to remember where they can be applied and that's all for now subscribe to this channel
- 2:13:35as usual the new video won't be long incoming we'll see you very soon Welcome to our tent bye
- 2:13:53[Music] hello YouTube today's lesson will be dedicated to such important test artifacts as test
- 2:13:59cases and checklists after all it is their correct creation that will first and foremost determine
- 2:14:05the efficiency of your testing as well as the ability of other team members whether it's a
- 2:14:11tester or even a developer to smoothly understand how to conduct a test and its proper launch there
- 2:14:20are two main types of test documentation in order to run a proper and efficient
- 2:14:25[Music] test this is a checklist and test case let's begin with a simpler
- 2:14:35type of test documentation which is a checklist when we talk about a checklist
- 2:14:42first and foremost it is a specific list of checks it shows what we plan
- 2:14:48to test and consequently the result and status of these checks this list itself
- 2:14:54includes what we intend to do what we must not forget and what we will check
- 2:15:00directly so this is a kind of highlevel set of ideas for our tests now let's take
- 2:15:10a look with you at the highlights of a good checklist first it includes the version of
- 2:15:16our build the specific environment on which the testing was conducted
- 2:15:21the exact date of our test and the tester who performed this testing additionally
- 2:15:27in the checklist there can be the type of tests that we use for each specific test the detailed
- 2:15:35title of the tests themselves and the result of our testing that is to say whether this check
- 2:15:41passed or not and also to simplify our work we have taken some separate modules of our
- 2:15:47application the main modules and for them all the checks are already described as you can see
- 2:15:54the name of the checklist reflects the name of the application our test application was
- 2:16:00a calculator that is we used this checklist for it also the checklist can contain a list
- 2:16:08of unique identifiers for each check so that you can also safely find them in our system and give
- 2:16:14them a reference in some other artifacts that we will use in testing there may also be a reference
- 2:16:27to a bug we have discovered if again we already have this checklist in use in some backtracking
- 2:16:34system and uh we can the bug based on the result of some check if in fact the result is different
- 2:16:40from the expected one also in the description to this video I will give links to those materials
- 2:16:48that help me to understand this issue that is there will be some sample checklists available
- 2:16:54that you can also use for your preparation you can get your hands on these checklists and then
- 2:16:59utilize them to perform the test tasks or even in your main job let's go through it together
- 2:17:05and finalize what the checklist is all about as I have already mentioned it is a checklist this
- 2:17:15list shows what needs to be tested and must necessarily include the results of our checks
- 2:17:21let's talk to you now about another kind of artifact in another kind of test documentation
- 2:17:27the test cases this type of test documentation differs from checklist in the following ways
- 2:17:35first of all here we will already have steps that is it is a kind of step-by-step scenario here we
- 2:17:42will already have low-level checks that is they will be more detailed and unlike the checklists
- 2:17:48in which we said what we would test here we we already describe how we will test again here
- 2:17:54will be the result of our test cases also the test case is bound to have a header there might
- 2:18:00be a priority or the order of execution of our test case and a number of other attributes that
- 2:18:09I will tell you about a little bit later the most important thing that you have to internalize when
- 2:18:15putting together a test case that here we have some Trinity of basic attributes these are our
- 2:18:24action to be performed which is the step-by-step scenario the expected result and the actual
- 2:18:31result in the future our test cases can be grouped into sets of test cases which are
- 2:18:39known as test Suites let's also note that there is a type of documentation called a test Suite or
- 2:18:47test Suite in English sometimes a test Suite is referred to as a collection of test cases
- 2:18:53where the outcome of executing each test case provides some preconditions necessary to start
- 2:19:03executing the next one in other words these cases follow each other in sequence and now let's take
- 2:19:11a look at how TSU is generally compiled and what it might look like specifically for this purpose
- 2:19:18we will create a separate document where where we will further introduce our test cases let's
- 2:19:24name each column according to the attributes that should be present in a good test case the
- 2:19:31first one should be the identifier which will be unique for each of our test cases there can also
- 2:19:38be an attribute such as priority or this column could represent the type of test that is being
- 2:19:44conducted for this test case Additionally you can reference the requirement that our test
- 2:19:54case is related to meaning the requirement we are checking including the module title is also
- 2:20:01a good idea uh next uh describe the title this should reflect the main essence of our
- 2:20:08test case then describe the steps to reproduce it finally include the expected result [Music]
- 2:20:22usually it is spelled out for each step however this is not always necessary and
- 2:20:29sometimes the expected result is only spelled out for the last step but if we are talking
- 2:20:34about this document about test cases for training future employees for example if
- 2:20:40you come to some company where there will be well documented test cases that is there will
- 2:20:44be well documented steps to reproduce this test case and also the expected result for each step
- 2:20:51will be described it will be easier for you to learn to work in this system learn about
- 2:20:57it that is test cases are very often used to train employees in order for them to form an
- 2:21:03idea of the program this contributes to uh rapid ass simulation of information
- 2:21:09and the introduction of Specialists to the project and also we should have an actual
- 2:21:15result if we are talking about the fact that we have already prescribed the expected result
- 2:21:22so now you and I have created a template for completing the test case within Excel
- 2:21:29small companies can use for example Google Sheets to manage their test cases and share
- 2:21:36them with other team members or if we're talking about companies that can afford
- 2:21:41some paid resources for tracking test cases and executing them then you can
- 2:21:46buy for example test Trail and work with it or there is also a system called test
- 2:21:51link jir the back tracking system that we're going to talk to you about a little bit later
- 2:22:02also has a plugin called Zephyr that allows to store test cases and run them so it all
- 2:22:11depends on the financial capacity that the company has you can also for yourself sign
- 2:22:16up or for a test case there is a real version for 30 30 days and also try to
- 2:22:23start test cases there run them see how it works this system feel it out so it's all
- 2:22:30up to you in this class we are not going to work with you with test rails everything is
- 2:22:36quite simple intuitive there but in order for you to understand how to fill out a test case
- 2:22:43in general and what you should specify in it let's try to create one such test case
- 2:22:51everything is quite simple if we are talking about an identifier there will be a unique number let's
- 2:22:58assign it the number one here we either spell out the execution priority for example this will
- 2:23:04be the first order of magnitude we run this test first alternatively we can write the type of test
- 2:23:11we are using for instance this would be a smoke test since we don't have any specific requirements
- 2:23:19we can come up with some on our own again let's consider Recon the new user registration
- 2:23:25module when discussing the title let's specify for example new user registration using a cell [Music]
- 2:23:32[Music] phone yes it's important to note that you should have this pattern creating test cases
- 2:23:49firmly established lished in your mind first we create simple test cases and then we move
- 2:23:55on to more complex ones when it comes to simple test cases we start with positive scenarios if
- 2:24:02you and I recall the lesson dedicated to positive and negative tests I explain the main differences
- 2:24:08between them and what you should prioritize to summarize I will remind you that we always begin
- 2:24:14with positive scenarios first because initially we need to verify that our system works as per
- 2:24:21our requirement as that was planned and it will be interesting for our customer to know
- 2:24:29first that indeed the system works out those scenarios positive scenarios and can quietly
- 2:24:35already be launched for our users in use by them at the top you will now see a link to the sessions
- 2:24:44devoted to negative and positive tests where I talked in more detail about their differences
- 2:24:50and how to run them make sure to thoroughly review it to refresh your memory on this
- 2:24:56information now let's discuss a block like steps for instance Begin by starting the site next enter
- 2:25:09your cell phone number in the designated field and wait for an SMS with a code once
- 2:25:16you receive it enter the code into the feeli that appears and then click the registration
- 2:25:24button these are the assumed steps for this test case let's correct it by not starting
- 2:25:31the site but opening the site additionally there should be a link to this site included
- 2:25:36Here and Now for each step we need to write down our expected result first open the site
- 2:25:48let's assume that the site is currently loading then enter the cell phone number
- 2:25:53into the designated field the phone number should be displayed in the mobile field next
- 2:25:59the code will be sent to the provided phone number this code will then be displayed in
- 2:26:06a new field after that a successful registration message should appear finally when we perform our
- 2:26:13test case directly together we will compare the expected result with our actual result
- 2:26:28[Music]
- 2:26:29and in the case of any inconsistency we might have a defect let's go ahead and add
- 2:26:37such a column here as well in this column we will simply insert the number of our defect so that in
- 2:26:43the future we can easily track where it is and what test case it is related to this is what a
- 2:26:50test test case looks like within Excel as I mentioned earlier there are separate systems
- 2:26:57where you can track all of these enter our test cases and run them directly within that
- 2:27:03[Music]
- 2:27:07system so I believe you will not have any problems with that quite often employers
- 2:27:17send test assignments in which they ask you to write detailed test cases for a certain module
- 2:27:24or perhaps to test specific functionality therefore it is essential to have a thorough
- 2:27:30understanding of how to create test cases get a good handle on it and then use this
- 2:27:35template to successfully pass such test [Music] assignments also at the uh interviews themselves
- 2:27:44very often shows some functionality for example a screenshot of the screen of some application
- 2:27:51where you are also asked to write some test case is already within the framework of your technical
- 2:27:56interview technical interview um I would also like to mention the fact that as you may have
- 2:28:04already noticed impersonal verbs are used here that is we never write verbs such as open I will
- 2:28:12open so we always put ourselves in the shoes of some unknown user who will performed this
- 2:28:19task there therefore everything here should be maximized and impersonal so that a person
- 2:28:25having read your steps and expected result can carry out this test case without being
- 2:28:31tied to any specific personality looking a little ahead the same model is used when
- 2:28:37creating reports and defects where we use any impersonal verb when describing this or that
- 2:28:46action and to conclude clude our lesson I would like to tell you more about the criteria for
- 2:28:53choosing one or another test documentation for a project first it depends on the complexity of
- 2:29:02our project in general if we are talking about some simple project it is quite enough to use
- 2:29:08a checklist but if our project becomes more complex there are a lot of requirements that
- 2:29:14are quite difficult to implement and there are a lot of aspects that we have to check
- 2:29:20and we need some more detailed checks then then of course it is better to use
- 2:29:26test cases the second aspect is the duration of our project if we are talking about some
- 2:29:34small projects in terms of duration then it is more logical to use checklists if
- 2:29:39our project is long then we should use test cases also related to the complexity of the
- 2:29:44project is its size that is the bigger the project the more people are involved in it
- 2:29:50it if there is a possibility that our team will be joined by new Specialists who will need to be
- 2:29:55trained then again here is where better to use test cases and again if we talk about the team
- 2:30:04itself if it changes frequently there is such an aspect as stability again test cases are used if
- 2:30:10our requirements are not subject to very strong changes then it is also better to use test cases
- 2:30:23is quite difficult to maintain that is if we change our requirements very often we need
- 2:30:28to constantly make changes in the test case the checklist is easier to work with as you've seen
- 2:30:36it's a simple document so it just covers some general things about our required testing and
- 2:30:41it's very easy to make changes to it and we should not forget that in many ways the choice of this or
- 2:30:49that test document ation may depend on the wishes of our customer for example even if our project
- 2:30:57is simple and fast but a customer wants to be more involved in the process so that the process
- 2:31:02is transparent to him he may choose such test documentation like test cases and in such a case
- 2:31:11we will not be able to refuse him and we will use exactly them in our work that's all for today I
- 2:31:20hope that this lesson has helped you to understand such types of test documentation as checklists
- 2:31:27and test cases and you will be able to use them without any problems when performing test tasks
- 2:31:33for your future employers or to successfully pass the interview and further use these techniques in
- 2:31:40order to effectively and successfully create test documentation already on your current projects
- 2:31:47in the next lesson we will discuss the two most popular test design techniques these techniques
- 2:31:53are frequently mentioned during interviews both when you are being asked questions and when you
- 2:31:58are asking them after this lesson you will be able to apply these test design techniques to
- 2:32:05create optimal test cases this will allow you to test your application in the shortest possible
- 2:32:11time but with maximum efficiency for both you and your customer we would really appreciate it
- 2:32:18if you could subscribe to our Channel and share your thoughts on this video we look forward to
- 2:32:23seeing you in our next class Welcome to our shalash goodbye for [Music] now hello YouTube
- 2:32:41in this lesson we are going to discuss the two most famous and popular test design techniques
- 2:32:46that I frequently use in my work these techniques are are also the ones most often asked about in
- 2:32:52job interviews and test assignments in fact there are many more test design techniques
- 2:32:57out there and you can read more about all of them in the book titled a practitioner's guide
- 2:33:03to software test design by Lee Copan I will leave the title of the book in the description
- 2:33:10[Music] below let's understand what test design is it is a stage in the testing process of our
- 2:33:22software where test cases the ones I mentioned in the last lesson are designed and created according
- 2:33:30to Quality criteria defined earlier in test objectives in simple words this means coming
- 2:33:37up with our tests that is designing them test design has two main [Music] goals the first thing
- 2:33:49is that we need to come up with tests that can detect the most serious bugs in our product
- 2:33:57and the second goal is to minimize the number of such tests since we have already figured out what
- 2:34:04test design is let's talk about these two popular techniques that testers use in their work almost
- 2:34:10every day first it is equivalent partitioning also known as equivalence class testing
- 2:34:21and the second type is boundary value analysis now let's begin of course with equivalent
- 2:34:30partitioning first let's understand together what an equivalence class is it refers to input
- 2:34:39data that is processed by our application in the same manner or whose processing results
- 2:34:45in the same outcome in order to fully grasp what an equivalence class entails let's start
- 2:34:53by parsing the following example right away we have a task at hand um let's imagine that
- 2:35:00there is a company where the decision to hire an applicant depends on their age the conditions for
- 2:35:07our example will be as follows if the age of our applicant ranges from 0 to 13 we will not hire
- 2:35:15such an employee if the the age is between 14 and 17 then there will be a part-time position
- 2:35:23available if from 18 let's say to 55 is fulltime and from 56 to 99 we don't hire such
- 2:35:36[Music] employees and as you and I can see we have already formed four equivalence classes
- 2:35:49as I said said this is a certain range of values which is processed by our system in the same way
- 2:35:55or the processing of the range of which comes to the same result that is for example for the
- 2:36:01age from 0 to 2 the result is that we do not hire such employees this can already be taken as one
- 2:36:08equivalence class as you can see we already have four classes so these are some positive
- 2:36:15classes but also if we recall about positive and NE negative tests there are also positive
- 2:36:22and negative equivalence classes if we are talking about the age of employees that we are not hiring
- 2:36:29also you and I will be able to go beyond zero that is to take for example such a range as from minus
- 2:36:36infinity to zero such values can also be taken and if we're talking about employees that we
- 2:36:43don't hire you and I can also take from 100 to plus infinity this is also an ambivalent class
- 2:36:55plus we are likely to use these particular numbers in some sort of input field and in the input field
- 2:37:02we can enter for example letters or sing symbols and we will also have equivalence classes negative
- 2:37:11equivalence classes so we can take all these things into account in our testing and let's
- 2:37:16move on to the basic rules of this test design technique there are two of them one of which
- 2:37:21we have already performed together the first is the definition of an equivalence class and
- 2:37:28the second rule is to conduct at least one test for each class that means we must take at least
- 2:37:37one value from the equivalence class in order to confirm that the system handles all values in this
- 2:37:45class in the same way returning to our basic positive classes we take one value from each
- 2:37:52class the most common advice is to take values from the middle of a given class for example if
- 2:38:00we say from 0 to 13 then the middle of this class will be either six or 7even so this is the value
- 2:38:07we will test this is what we do for every class including our negative equivalence classes that
- 2:38:12I talked about a little bit earlier that's what we're doing for the equivalence partitioning
- 2:38:17technique that is you and I can already see how we have simplified our work and further improved
- 2:38:22the efficiency and time for our tests thinking back to the lesson on the basic principles of
- 2:38:27testing one of the principles clearly states that exhaustive testing is simply impossible and it is
- 2:38:35this particular technique test design that allows us to efficiently use just one value and avoid
- 2:38:43doing for example like in this case for and te tests for a given equivalence class this second
- 2:38:49test design technique which is closely related to equivalence partitioning also known as equivalence
- 2:38:56class testing is boundary value analysis going back to our particular classes of equivalence the
- 2:39:03positive ones here we see the boundaries of these classes that is 0 13 14 17 18 55 56 99 plus there
- 2:39:09are also these boundaries [Music] for all of our negative classes but now let us dwell with you in
- 2:39:22more detail on the positive ones what does this analysis of boundary values mean the first rule
- 2:39:29here is the same it is the definition of an equivalence class not a class but a class the
- 2:39:36second is to determine the boundaries of these ranges we have already talked about that too
- 2:39:44and the third is to perform three tests for the boundaries on the boundary itself on the value
- 2:39:51right above that boundary and on the value just below that [Music] boundary let's return to our
- 2:40:00example now and observe how this operates in practice look we have established boundaries
- 2:40:07for each class let's consider the range from 18 to 55 as an example what do our rules indicate they
- 2:40:15state that we take these boundary values 18 and 55 along with two additional values on this boundary
- 2:40:22that is one value less and one value more in this scenario it will be 17 18 itself as the boundary
- 2:40:31and 19 and also the value of 54 which is right at the border 55 and 56 if we were discussing how our
- 2:40:39system can manage decimal fractions then the value of would be as near to our boundary as possible
- 2:40:47so there would be a value here for instance 54.9 55.1 if we were only using one decimal place so
- 2:40:55this is something that you have to remember and make sure to use these values as you might have
- 2:41:00noticed when we employ the boundary value analysis Technique we also verify and test equivalence
- 2:41:07[Music]
- 2:41:11classes so we have equivalent partitioning involved as well that is we take values that
- 2:41:20are also part of the equivalence class for example that is it is included in this class from 18 to 55
- 2:41:30and it is quite possible not to conduct additional testing already by this test design technique so
- 2:41:35we kill two birds with one stone but as I said at the beginning of our lesson I would advise
- 2:41:41you to test the values in the middle of this range as this will improve the quality of your
- 2:41:47test and make it more likely you won't miss any values processed incorrectly by our system these
- 2:41:52two techniques are often asked about in job interviews I'm not afraid to repeat this for
- 2:41:58you to remember what to focus on when preparing for an interview yes you can also read the book
- 2:42:05I mentioned at the beginning of the class and learn about pair testing the creation of those
- 2:42:20[Music] we have a number of spreadsheets that allow us to do this using a tool like picked
- 2:42:28that's probably all I wanted to tell you in this class please internalize this information
- 2:42:34very well practice with other examples read Lee copland's book it also contains good examples on
- 2:42:42all test design techniques then you will be able to say with peace of mind that you have
- 2:42:47understood the test design Techni techniques and you'll be ready for your interview we will see
- 2:42:54you at the next session which will be devoted to the design of bug reports also known as bug
- 2:42:59reports in this class we will also understand the defect life cycle and learn how to work
- 2:43:07with you in a bug tracking system like jira so stay on this channel subscribe and put likes
- 2:43:14your feedback is very important to me and in my turn I say goodbye to you please come back to our
- 2:43:20tent [Music] bye hello YouTube in today's 10th lesson we are concluding the first block of this
- 2:43:39course called tester from scratch this block was dedicated to covering the main theoretical
- 2:43:45points related to getting immersed in the testing profession in this session we will be discussing
- 2:43:51with you an important test artifact known as a bug report or as it is sometimes referred to a
- 2:43:57bug report you will be creating and reacting to fixes specifically fixes of this test artifact
- 2:44:04which you will encounter most frequently in your work also we will look at how to start a
- 2:44:10bug in practice in such a popular bug tracking system as jira and at the end of this session
- 2:44:16we'll talk about the life cycle of a defect what is a defect or a bug it is a discrepancy between
- 2:44:26the actual result of program execution and the expected result defects are detected at software
- 2:44:33testing stage when you and I testers compare the obtained results of the program or its component
- 2:44:40Lily design with some expected result as soon as we find a bug we can see the actual result that
- 2:44:46we get after we have completed all the steps as as soon as we discover a bug we have to document
- 2:44:51it the document that allows us to do this is a bug report that is this document contains a full
- 2:44:58description of our bug and includes information both about the bug itself which we will talk about
- 2:45:03in more detail later and about the conditions of the bug occurrence first it is a short description
- 2:45:12of our problem if we are talking about such a bug tracking system as jira then usually in the
- 2:45:20description they also prescribe steps to reproduce that is steps to reproduce this bug which will
- 2:45:27lead to the fact that a person who reads this report will go through all these steps and
- 2:45:33we'll see our result actually which was obtained after he has performed all the steps we'll talk
- 2:45:39to you more about that when we go directly to Jura itself there is also such an attribute as
- 2:45:46project that is it is the name of our project for example if we are working on an application
- 2:45:53called for example an online store then the name of this project is specified here in this field
- 2:46:00so that later we can easily Trace to which project our bug report belongs there can also be such an
- 2:46:06attribute as the component in in which the bug was directly detected there can also be the version
- 2:46:13of our build that is the version of the build on which the defect was found and it is reproducible
- 2:46:19there is also such a field as severity in English it is called severity that is in fact it is the
- 2:46:28criticality of our bug that is the degree of influence of this bug on our application in a
- 2:46:35bug tracking system severity is usually denoted by a tester and in principle this person usually
- 2:46:42does it on the project itself also there is an attribute known as priority or in
- 2:46:48English it is priority priority indicates the order of fixing this bug usually it is determined
- 2:46:56by the PM which stands for product manager and they decide which bug gets fixed first
- 2:47:03once again we will discuss more about severity and priority that is severity priority a bit further
- 2:47:10on and I we explain what the evaluations of these attributes are there is also
- 2:47:19an attribute called status that is it is the status of our buck in its life cycle as I said
- 2:47:28we will deal with the life cycle in the final part of our lesson there can also be an author
- 2:47:33field that is the person who found our bug it can be the tester most often it is the tester
- 2:47:41but it can also be another project or team member who found some bug in the system and there is
- 2:47:49such a field as assignment or in English it will be assigned to and let's now talk in more detail
- 2:47:57about attributes such as severity and priority as I said defects can be categorized in terms of
- 2:48:05severity and priority in different ways let's talk about this categorization on different projects
- 2:48:11in different companies severity and priority classification May differ from one another however
- 2:48:17I will give you the most common one which will help you to correlate the degrees of impact that
- 2:48:23you have for example on a project with what I'm about to tell you first of all this is a blocker
- 2:48:34that is it's a type of bug that makes our program inoperable if we detect such a defect further work
- 2:48:40with the program or its functions becomes simply impossible the next type is critical
- 2:48:47critical defects cause our key functionality to fail it can also be a significant deviation
- 2:48:55from the business logic of our application or an incorrect implementation of a required function
- 2:49:02perhaps loss of user data unlike blogger our application does not become completely
- 2:49:13non-functional other functions can still work fine that's why there is a gradation called
- 2:49:20critical the next types are major and minor also known as major and minor bugs let's discuss them
- 2:49:28in more detail major bugs are some serious errors that indicate deviations from the business logic
- 2:49:38or disrupt the programs work but they are not [Music] critical impact on our application perhaps
- 2:49:48there's some workaround or it may also be called workaround where we can in principle if we use
- 2:49:57this function it will work in some other way but still again talking about the degree of
- 2:50:02impact the severity of it for our product it's quite large the next item is a minor or minor
- 2:50:11bug it is some minor defect that does not break the functionality of our application but which
- 2:50:18is a mismatch of the expected result for example this could be a bug in our
- 2:50:23design these are trivial some trivial bugs by the very name I think it is already clear to
- 2:50:33you that this is a bug that has no impact on the functionality or operation of our program
- 2:50:40but which can be detected visually for example it can be some typo in the text that is it is
- 2:50:47not a serious error but still there is a deviation between the expected and actual result once again
- 2:50:53when talking about various bug tracking systems and deciding on the project it is important to
- 2:51:00determine what attributes should characterize the severity for instance there might not be a
- 2:51:06class like blockers or there might not be trivial bugs at all there could only be categories such
- 2:51:14as critical major and minor once more there is usually detailed process documentation on projects
- 2:51:22that describes which bug should be assigned to each of these categories if you do not have such
- 2:51:28information on the project I have given you the basic information on the theory related to this
- 2:51:34classification in this lesson now let's move to such an attribute as priority as I said it's a
- 2:51:43kind of prioritization of fixing our defects that is the order of fixes on the project and usually
- 2:51:52priority is put up by the PM on the project but if there is no PM it could very well be either
- 2:51:59the elite testers or the tester himself who is working on that bug perhaps even analysts who are
- 2:52:05familiar with how your system is supposed to work and which functionalities are essential for our
- 2:52:11user currently and which should be delivered to the customer first and foremost then that can also
- 2:52:19be demonstrated by the analyst when discussing the categorization of defects solely in terms of
- 2:52:27priority there are three most common categories these are high medium and low by the name it
- 2:52:34is already somewhat clear to you which defects will be addressed first of course it's high that
- 2:52:41is this bug should be fixed as soon as possible because it critically affects the functionality
- 2:52:47of our program if we are talking about medium this buug should also be fixed but it does not have any
- 2:52:57critical impact on the application's performance if we are talking about low defects the error must
- 2:53:06also be fixed but it does not have a critical impact on the program and the fixing may be
- 2:53:11postponed for some longer period of time depending on the against other higher priority defects
- 2:53:18for example if we have medium or high we will naturally fix box with high priority first and
- 2:53:26then bux with medium priority low priority bux we will test at the very end speaking about
- 2:53:35whether severity and priority coincide that is for instance if a tester decides that this
- 2:53:41functionality is extremely critical for our application and sets severity to for example
- 2:53:47critical or blocker but at the same time PM understands that it can be postponed for a longer
- 2:53:54period of time and it's actually not so critical for our application then it can set a different
- 2:54:01priority for example medium instead of high often in interviews they ask for an example of bugs with
- 2:54:09high severity and low priority for example if we talk about such bugs then for example if we
- 2:54:18have some functionality that is quite rare for our user if we realize that it doesn't work we
- 2:54:25can put believe for example a blocker or a critic but at the same time our PM realizes that this
- 2:54:36functionality is not in high demand or it is not critical to the operation of our system and we
- 2:54:41can do without it for the moment it then decides that the priority will be low this is the the most
- 2:54:48common example where we have high severity and low priority if we talk about the other side of
- 2:54:54the coin when we have a high priority and low severity for example Google site often gives
- 2:55:00us the same example it's main when you open the page and you see a typo for example it is written
- 2:55:06Google not with two letters o but with one this brand is quite recognizable and such typos can
- 2:55:15affect the reputation of this brand very much but at the same time the seriousness of this
- 2:55:22error is minimal that is it is some kind of typo it is a trivial mistake but the priority of how
- 2:55:29it affects the reputation will be high here this could also be a great example for an interview you
- 2:55:36can look for more details on the internet to find the answer to this question with examples I think
- 2:55:42that if you give at least two minus three examples to this question it will significantly raise your
- 2:55:50chance of successfully passing the interview it is worth noting that in some systems such
- 2:55:55as priority can be replaced instead of high medium Low by the numbers 1 2 3 4 here the logic is the
- 2:56:03same that is if we have the digit one we will fix this defect in the first place if the digit four
- 2:56:09we will fix it in the last place again this can also apply to severity there can be numbers there
- 2:56:16too and they tell us exactly the same thing what is the severity what is the criticality of our
- 2:56:24defect for the operation of our system let's now go back to the attributes that can still be in our
- 2:56:31buck report it is always necessary to specify the environment where this defect was detected
- 2:56:38in English it will be environment speaking of environment we mean for example the operating
- 2:56:43system the bit capacity of this system possibly a Service Pack the browser in which this defect
- 2:56:52was detected again its version that is we describe in detail here in which environment or defect was
- 2:57:02detected it can also be specified in environment for example if we have several environments on
- 2:57:07the project for example there's an environment for developers there is an environment of stable
- 2:57:13version or it is also called stage and there is an an environment of production when our end user is
- 2:57:21already working in it let's label these three types of environments and I'll tell you uh a
- 2:57:28little bit more about them I mean look like I said each of these environments has a certain
- 2:57:34range of people working on them usually developers work on dev environment that is they pour some
- 2:57:42features there maybe also testers are involved in testing some separate features on dev environment
- 2:57:48and can also introduce defects and if we find defects like this on that environment
- 2:57:56we spell out deaf in that field the second kind of environment is staging on the staging we usually
- 2:58:04have some stable version of our application testers work on it most often and it is on
- 2:58:10the staging that they bring this application to a certain pre-release State and uh if there are are
- 2:58:18uh no uh defects there then such an application is usually moved from this environment to the
- 2:58:25prod stage and we already have our end users working on prod many courses don't mention
- 2:58:32this three environments and novice testers often have questions at their first meetings
- 2:58:38wondering what this is I believe that after this uh brief overview of these environments you will
- 2:58:45understand better and not be surprised by the presence of multiple environments in your future
- 2:58:51[Music] workplace going back to the description to the description field as I said reproduction steps
- 2:59:07can be prescribed here and most often they are indeed prescribed there if there is no separate
- 2:59:14field for example in that bacteria system that I work with at my job it's called Azure devops
- 2:59:22there's a separate field for steps to reproduce let me put an abbreviated title here so you can
- 2:59:29find an acronym like this Str this stands for steps to reproduce our actual result is also
- 2:59:37noted in English it will be actual result you can skip the word actual and just right result because
- 2:59:45the next we spell out is expected result or in English is expected result and if you basically
- 2:59:56write expected result then it is logical to assume that the first result you write down will be
- 3:00:03actual so the word actual can be omitted in the design of our bug report that is once again the
- 3:00:10actual result is the result we arrive at after we have performed all the steps of reproduction and
- 3:00:18the expected result the expected result is the result that should be in accordance with our
- 3:00:25requirements is what we really should get yes it is also worth noting that in the expected
- 3:00:32result you should write according to what you have come to such a conclusion that this is the
- 3:00:36result that should be of the playback steps it can be a reference to some requirement or uh a
- 3:00:45reference to a mockup of the design of our page for example on the internet so it is absolutely
- 3:00:53necessary to reference something just saying that there should be such a result without backing it
- 3:00:59up with some sort of evidence base is not a good idea and probably the last of the main things is
- 3:01:05attachments some kind of attaches usually there can be a photo a screenshot of your screen where
- 3:01:12it will be clearly visible where your defect is being reproduced or it could be a a video
- 3:01:18showing the steps that you follow to reproduce your defect in detail if we are talking about a
- 3:01:25screenshot it is necessary to indicate by some elements uh that it be for example red frames
- 3:01:35arrows or some inscription that will characterize that this is the place where the defect occurs so
- 3:01:42that the developer just by looking at this screenshot could immediately understand
- 3:01:48what really happens according to the results of the steps playback since most often a developer
- 3:01:56may not even read your playback steps he knows how the system works and by looking only at a
- 3:02:01screenshot he can quickly fix a bug detected by especially if we are talking about some UI bugs
- 3:02:09bugs related to design to some typing that is to say here we should definitely label it all
- 3:02:15somehow on our screen shot if we are talking about video make sure that you have the sound turned off
- 3:02:23which would record for example the environment in your office or the environment from your computer
- 3:02:30unless we are talking about some defects related to audio files this situation is also not very
- 3:02:36good I personally know very well of examples where reading testers do not disable it and
- 3:02:44you can for instance on on the video playback of this bug hear the music they are listening to or a
- 3:02:52conversation happening in an office cubicle or in an open space this does not characterize you very
- 3:02:58well from the tester side so be sure to pay close attention to [Music] it and the videos don't have
- 3:03:07to be very long believe me a developer will not want to watch a video for example even 1 minute
- 3:03:14as you reproduce your bug so you can omit some steps of reproduction if you think they are not
- 3:03:21so important and record some last part a small one just where it will be clearly visible how your bug
- 3:03:28is reproduced uh you can also put blogs of some of your bugs or some archives if we are talking about
- 3:03:37downloading information into these attachments about responses and requests in web applications
- 3:03:45we'll be talking about this uh with you in the second part of our course that is you can put
- 3:03:51all of this in there as well so that for example a developer who opens the attached file in the form
- 3:03:57of logs with errors that are reproduced can also read them and quickly react to the found problem
- 3:04:03basically this is all I wanted to tell you about the main attributes of a bug report there are of
- 3:04:09course still additional ones it all depends on the company I think if you do some investigating
- 3:04:17about about what other attributes there are you'll find a lot of information online I'll leave that
- 3:04:24up to you but some basic things I've told you especially pay attention to the blog related to
- 3:04:30seriousness with uh Varity prioritization because this is quite often asked in job interviews and
- 3:04:38also don't forget that you need to know all these things in order to successfully pass
- 3:04:44the interview and in the future make quality bug reports that will not cause questions from
- 3:04:50both PMs and developers the second part of our lesson will be devoted to the direct practice
- 3:04:56of working in such a bug tracking system jir what is a bug tracking system in general basically it
- 3:05:03is a system that allows us to enter all our bug reports in it and it also allows us to work in
- 3:05:10general with those reports more efficiently with our project that is all user stories are added
- 3:05:20here some requirements that we have to realize in the future here as I have already mentioned
- 3:05:27before is working with bugs as you can see we have several logical blocks here I.E backlog and
- 3:05:34Sprint in fact this tab itself is called backlog now what is backlog when we will discuss agile
- 3:05:43uh methodology like agile and scrum framework it will be covered in one of the upcoming lessons in
- 3:05:50other blocks of our course then we will be we'll talk in more detail of course about each of these
- 3:05:58entities of events in scrum but for your general understanding the backlog is a set of tasks we
- 3:06:07need to complete during our product development on a project this is where everything is stored
- 3:06:15from requirements by our business analysts or sales managers to the bugs we log into the
- 3:06:22system there's also a Sprint here a Sprint is an iteration remember the lesson on the
- 3:06:34iterative development model I mentioned that uh an iteration is a set period where we Implement
- 3:06:41certain functionalities and everything we complete adds to our increment which is
- 3:06:47already a part of our finished product so that's the Sprint or
- 3:06:52iteration and in this iteration we fulfill some stories or rather these are the requirements
- 3:07:02that we need to accomplish additionally here in the Sprint we include bugs that our developers
- 3:07:09must address this is typically decided in a ceremony such as a planning session a rally
- 3:07:15where the entire team gathers together and and determines what we are going to implement in a
- 3:07:22given Sprint once again we will cover all of this in more detail with you in the upcoming
- 3:07:27lessons now we are more interested in the design of bug reports in this system I would also like
- 3:07:37to note that you can try working in jury on your own and absolutely free of charge there
- 3:07:44is a special version of this software so that users can learn it it is enough
- 3:07:50to go to the official site of atlassian company which is directly engaged in the
- 3:07:55development of this Tula as jira and there you can click on the try to free button and
- 3:08:00then you'll be able to sign up and work in jira just like I'm doing now I mean
- 3:08:08I've created a free account for myself now too the only thing is that there are limits
- 3:08:12on the number of users who can work in it if I'm not mistaken it's 10 people
- 3:08:17but for some training purposes it's quite enough let's go ahead and create our first bug with you
- 3:08:23a bug report to do this you see there is a create button here we click on it and uh window opens to
- 3:08:31create our bug uh as I said has an attribute like project I have it already created it's
- 3:08:41test project that's what I've named a test see we don't have any other projects issue type is
- 3:08:47the name of our entity that we're going to use in this case it's bug uh we also have story here for
- 3:08:54example these are our requirements and epic is some set of our requirements that are combined
- 3:09:00together the big functionality that we need to deliver to our user story this is a more
- 3:09:07specific requirement usually it's spelled out in the user story format we'll discuss
- 3:09:13the user story format later in the next lessons and task these are tasks a team member performs
- 3:09:21when planning their work for an iteration we are interested in an entity called a bug summary is
- 3:09:29the name of our bug let's keep it for now so uh I have some notes by the name that you should use
- 3:09:38when creating the title of your bug report in the description field as I said we describe the step
- 3:09:47of reproduction our actual result and the expected result also sometimes there is a block like
- 3:09:56preconditions where we describe some preconditions for example that in order to reproduce our defect
- 3:10:04a user with such and such data has already been created in the system in order not to overload
- 3:10:10our steps of reproduction and in principle the developer will already know what he needs to do to
- 3:10:17the environment serves as a means to reproduce our defect in the future the reporter is essentially
- 3:10:24the author of our defect and in this case it is me fixed versions although we are not writing
- 3:10:31here I will explain what it is next priority as I mentioned this indicates the priority of our
- 3:10:37execution polic severity I don't see anything here as you can see all of this is customizable
- 3:10:45this means that uh for your specific needs and for your project you can select and use only certain
- 3:10:50fields from all the available ones but as you can see there is no check field here but uh we have
- 3:10:56already talked about check so we will use such an attribute as priority labels or in other systems
- 3:11:03it may be called Tags these are labels that allow us to search for our bugs in the future that is to
- 3:11:10categorize and combine them somehow environment as I have already said is the environment attachment
- 3:11:20here we upload some screenshots or video files link tisues and the issue itself here we can link
- 3:11:28our requirements for example which are related to our bug a this is the person who [Music] will fix
- 3:11:38our bug in the future usually connection on large projects is assigned by product manager but if the
- 3:11:45project is small it May well be a tester he can also assign a person epic link is the link to
- 3:11:55our epic and Sprint this is where we link to the iteration where we need to fix our bug now let's
- 3:12:03try to start a bug report of some sort for example let's take the login page of our application and
- 3:12:09for example some button has moved there uh as for the correct name of our bug there is such a rule
- 3:12:18you must be sure to answer the three questions in the title where what and when where this could be
- 3:12:27the name of your module where you discovered your bug what this directly happens when you
- 3:12:34discover your bug meaning what your defect led to and when under what conditions it happens
- 3:12:43for example if we're talking about a login page we can write it like this
- 3:12:47the login page is our module where our defect happens what happens for instance
- 3:12:52the sign in button is displaced after clicking on the page so you see it's
- 3:12:59important to clearly Define these aspects to understand the nature of the buck and its
- 3:13:04impact see here we have taken into account just the answers to these three questions first of
- 3:13:14all where our module is login page what happened the signin button is being shifted and under what
- 3:13:21conditions after clicking on the page here uh we have taken all these aspects into account when uh
- 3:13:28forming our header please remember it and use it in the future as for description let's start with
- 3:13:35the steps from of the piece also as I said here will be attribute. result is our actual result
- 3:13:43and expected result this is the expected result in order to to make our defect understandable
- 3:13:49to the developer and in principle those people who later work with it it is best to format it that is
- 3:13:56to apply some styles to its design in J you can do this in two ways first you can like in word simply
- 3:14:07select your text and click on that particular style font as you can see two asterisks appear
- 3:14:16in immediately which basically show the fact that TR will be bold if we click such a button with you
- 3:14:24you and I can see a preview and indeed our Str Str is highlighted in bold that is we can immediately
- 3:14:31use asteris to determine where we want our Str strr to be boled now as for the playback steps
- 3:14:38themselves here we spell out all the things that will lead to further reproduction of our defect
- 3:14:45let's write the following first we write here that we open open the login page if we were working on
- 3:14:54a real project we might already have a link to it and we could insert it here to simplify the work
- 3:15:00and immediately we could go to this page next we WR um navigate to the signin button and the last
- 3:15:08step is we click on this page in principle these steps of reproduction are quite sufficient for
- 3:15:15the developer to reproduce our bug in the future and once again in order for us to correctly format
- 3:15:22this text we have two possible methods one we can choose to list exactly using number list or
- 3:15:30alternatively we can place crits in front of each playback step once more we separate these out so
- 3:15:39that it is clearly visible into distinct blocks and if you and I click on the definitive view
- 3:15:46you and I will be able to see that yes indeed we do have these steps clearly labeled with numbers
- 3:15:52actual result we will have the same as the header in general it is recommended to invent
- 3:16:01another name for the header but I usually use this method as it simplifies the work and in principle
- 3:16:07everything is clear here there is no need to invent a bicycle and expected result is what
- 3:16:14we really should have seen after clicking on some empty space on the page let's have our expected
- 3:16:20result be as follows the sign in button is located on the page as per the mockups if we had mockups
- 3:16:28in a system like figma we could copy the link and paste it here clicking this link would take
- 3:16:36the developer directly to the mockup showing the systems Behavior and the sign in buttons location
- 3:16:54[Music]
- 3:16:55if we click once again on the preview we will see exactly what our bug looks like in principle I'm
- 3:17:03quite happy with how it appears and I don't think there will be any questions about how
- 3:17:08to reproduce it the defect is quite simple so we have not invented something complicated here
- 3:17:16speaking of playback steps try not to come up with a huge number of them you can combine
- 3:17:22them with each other I recommend using 7 to 10 steps at most it's better of course
- 3:17:27to have even fewer but at the same time try to write them in such a way that it is clear what
- 3:17:35is going on and if the steps cannot logically be combined with each other it is better not
- 3:17:41to combine them so that later there will be no misunderstanding on the part of the developer
- 3:17:47or a person who sees your system for the first time at all for example if we are talking about
- 3:17:52some novice testers who will learn to create bugs on the basis of of what you once did in
- 3:17:58this system or you will quit for example and a person will further work with your bugs that were
- 3:18:06created but not fixed at the time you left the company try to do it all in such a way that all
- 3:18:11people who will interact with the bug report in the future can safely read it and rep produced the
- 3:18:17whole thing so look polyfix versions are usually filled in after the bug has been fixed make sure
- 3:18:26to document everything clearly so future team members understand the context and can resolve
- 3:18:31issues efficiently the developer already does that now as you can see you can select that
- 3:18:38version of FX priority as I told you this defect is a UI defect and it doesn't carry any critical
- 3:18:45load so you can prioritize it here probably low or even lowest but as I told you usually it's the PM
- 3:18:55on the project who sets the priority severity unfortunately is not available here but again
- 3:19:04verify it would also be low here for example it would be trivial on labels this is where you can
- 3:19:12contribute some labels of your own or if they're already in the system they'll be shown to you in
- 3:19:17the drop down menu again this is to simplify the job of finding your defects by environment
- 3:19:25here you can write the version of your system for instance mine is Windows 10 I think everyone knows
- 3:19:32exactly how to see the version of your system you need to go to this computer and then click on
- 3:19:38properties and and here we have you see it says Windows 10 corporate LTC that's all we
- 3:19:52have to copy and paste into our bug report and also specify the business of our system
- 3:19:57I'm not going to do that now but I think you can see how it should work and speaking of
- 3:20:04the browser for example on which this was detected we have this Google Chrome in the
- 3:20:11browser you just open the Google Chrome browser help section and copy the version number [Music]
- 3:20:22since we don't have any Dev stage or prod environments we don't specify any of those
- 3:20:27things here either speaking of in the screens let me show you how it can be done with an example
- 3:20:35far from our buck but you will basically be able to understand in general how it should work yes
- 3:20:44there are paid and free screenshot tools that allow you to do all this take a screenshot edit
- 3:20:49it probably among the free ones the most common is shx which I use and it is quite
- 3:20:56convenient in the work one of the paid ones is snag it it is quite often used
- 3:21:04in it companies here you and I can select directly the area that
- 3:21:10interests us now we make a screenshot and edit the image for example we have
- 3:21:17here it should have been written not attachment but for example attachment
- 3:21:27that is I denote where we have directly observe the defect with uh red rectangle
- 3:21:34additionally I can use an arrow to further emphasize [Music] and
- 3:21:47write text with some description for example the attachment should be called
- 3:21:52attachment okay so that's basically how good our screenshot looks and when the
- 3:22:05developer just looks at it he'll immediately realize where the error is we save the image
- 3:22:11uh and then just drag and drop it it's going to load now it's loaded [Music]
- 3:22:20has appeared here for some reason that is then you can open this floor and see
- 3:22:28how this button is displayed on the UI furthermore by inter relationships
- 3:22:32here we can describe what type of entity this bug relates to that is
- 3:22:38whether it relates to this entity whether it blocks its work [Music]
- 3:22:54uh whether this functionality is blocked by another functionality whether this is a clone
- 3:23:02of some functionality Perhaps it is some duplicate of another bug that is we can specify all these
- 3:23:10things here usually we specify to we have several of them in the system now let's take bug report
- 3:23:17creation assign will be automatically assigned but again as I said it is usually assigned by
- 3:23:23the PM on the project or on smaller projects it is typically assigned by the tester epic link if
- 3:23:31we had an epic we could bind that as well and the Sprint where the bug needs to be fixed we
- 3:23:37also designate that right here Additionally you can click create another put a checkbox then this
- 3:23:48bug will be created and you will have a window that allows you not to fill in any
- 3:23:53other fields using pre-filled fields to create several buxs
- 3:23:58simultaneously if you just click create then this window will close completely and you will
- 3:24:13have to re-enter all the data from the beginning so basically we can check it together now if we
- 3:24:19click create you can see that our bug has been successfully created it now has an identifier
- 3:24:26a project name and an entity number in our system moreover here we have already saved
- 3:24:32some attributes which means we can avoid filling them in the future and instead use the pre-filled
- 3:24:38ones we've also had an update here we've got this bug gone in the Sprint
- 3:24:46here we have table by status meaning what we have in the works what we have in progress what's
- 3:24:53already done this also allows our PM product manager to keep track of the team's performance
- 3:25:01how they are executing everything on time and you and I can directly open our bug edit it in
- 3:25:07case we have some change is made at the bottom we see a reflection of all changes made to our bug
- 3:25:15look our bug has has been updated and created so everything we change here will also be reflected
- 3:25:22in history there might be comments written by you or other team members on this bug you can
- 3:25:28customize and manage it your way here you can also perform a search a normal search or an advanced
- 3:25:37search we won't go into more detail about the date with you now we'll probably have some additional
- 3:25:48lesson related to advance search in jira but as I can see this lesson has already gotten very long
- 3:25:55so let's move on to the last concluding part of this lesson the last part of our lesson will focus
- 3:26:00on the life cycle of a defect let's imagine that you have found some bug it appeared in your life
- 3:26:09in the life of your project and like any life form it has a life cycle so let's talk about it in more
- 3:26:17detail when we talked about the attributes of a bug report we talked about its status these are
- 3:26:24the statuses that we are going to talk about in the block dedicated to life cycle see as soon as
- 3:26:31our bug report is created in the system its status is new that is it is new the tester found the
- 3:26:41bug the bug was successfully entered into the bug tracking system in some bug tracking systems this
- 3:26:49status might be referred to as proposed following that our bug transitions to the open status which
- 3:26:56can also be termed assigned or active this occurs when our bug has been sent to the developer either
- 3:27:04by our product manager or by you especially if we are dealing with a small project a small team or a
- 3:27:10small company depending on the decision made by our product manager our bug might might also be
- 3:27:16postponed that is fixing this bug does not hold any value at this particular stage of
- 3:27:31development or for some other reason it will be addressed later on perhaps in other iterations
- 3:27:38or in other sprints again this decision is up to our product manager if our desk
- 3:27:45check has still been taken into work it is assigned the assigned status then when the
- 3:27:50development team fixes this bug it moves to resolve status and is assigned back to the
- 3:27:55tester but at the same time this bug can be rejected that is again it can be in the resolve
- 3:28:09status and there can be the following so-called decisions resolutions on this bug that is as
- 3:28:15I have already said it can be fixed if this bug already exists in the system we for some reason
- 3:28:26missed this fact and started it a status such as not a status but a resolution such as duplicate
- 3:28:36or or won't fix that is this bug will not be fixed at all perhaps this bug was introduced by mistake
- 3:28:46it can also be such as uh for me that is it works for this developer also this attribute
- 3:28:53may be called fat or function as designed if indeed everything works according to our
- 3:28:59specification and our requirements it may also not be written because this picture I took from
- 3:29:05the internet it may be written incomplete or to be reformulated that is when this bug is
- 3:29:11not very clear to ours to the developer it asks that the test rewrite it so that in the future
- 3:29:18our developer understands in general what it is and what it is eaten with there may even be such
- 3:29:24an attribute as fixed indirectly meaning when our bug is fixed by some bug fix or other bug
- 3:29:34and indeed this functionality worked can also be such an attribute if we still have it marked as
- 3:29:43fixed I.E truly fixed it it then this bug goes to our Tester the tester confirms the bug is
- 3:29:51fixed and it moves to verified status if the bug is indeed fixed for example it doesn't occur on
- 3:29:59dev stage or prod we close it changing its status to closed if the bug reappears we can reopen it
- 3:30:07from both verified and closed stages moving it to reopen status then it goes back to in
- 3:30:16status it goes perhaps to the product manager who decides which developer
- 3:30:34should handle it or directly to the developer originally worked on it so
- 3:30:39that's just the way it typically works and again we have the reopen status if after
- 3:30:46the result of verification by the tester this bug has not been fixed by the developers then we have
- 3:30:53the reopen status to and the cycle repeats itself after reopening the status resolves
- 3:31:01again if everything is fixed or there are other reasons we can close this bug after the status is
- 3:31:09resolved it goes to our tester this process can repeat many times until the bug is completely f
- 3:31:15fixed and everyone is satisfied you can study this scheme in more detail if you press pause
- 3:31:21now and in principle it will be enough for you to have a good understanding of the defect life
- 3:31:34cycle as you can see this lesson turned out to be rather long but it is very important for your
- 3:31:43further work since you will create bug reports I think most often on your projects and it is
- 3:31:50to understand them that is a must have for all novice testers and for all testers in general
- 3:31:56since this is the basic entity that everyone works with starting from you testers and ending with by
- 3:32:03the same developers business analysts or product managers so all of these project participants can
- 3:32:10connect to bug reports and maybe even start them therefore it is a very useful skill to know how to
- 3:32:17write highquality bug reports understand what the defect life cycle is and apply all this knowledge
- 3:32:24in your practice that's it from me as always I hope this lesson has been useful to you in
- 3:32:33the next lesson we will be starting a new block of our course this block will be dedicated to testing
- 3:32:40web oriented applications so please stay tuned to this channel as always I am looking forward
- 3:32:46your comments and perhaps questions as I believe this topic is quite challenging to digest and and
- 3:32:53you really need to invest a significant amount of time to fully understand both bug tracking
- 3:32:59and correctly creating bug reports so we will definitely be in touch and in turn I will now
- 3:33:05say goodbye to you farewell also Welcome to our tent we are glad to have you here
- 3:33:19[Music] hello YouTube today we start diving into a very interesting and extensive topic
- 3:33:25testing web oriented applications the standard start of any web application testing course is
- 3:33:32to break down the concept and model of client server architecture so let's talk a bit about
- 3:33:39it looking ahead I'll say that today we'll cover only some basic things related to this model but
- 3:33:47uh everything that concerns more detailed analysis will be covered in the next lessons so what is a
- 3:33:54client server architecture it is an architecture in which the network load is distributed between
- 3:34:02service providers called servers and service customers called clients in fact the client
- 3:34:09and the server are software of some sort usually these programs are located on different different
- 3:34:16Computing machines and communicate with each other through Network protocols but also a client and
- 3:34:23a server can be located on the same machine the most common protocol is HTTP we will talk about
- 3:34:29it a little later in the next lessons for now you should just remember that it is and that client
- 3:34:36server architecture is built mainly on interaction through this type of protocol if you and I now
- 3:34:43look at this diagram is you can see we have here is a client is server and is database server
- 3:34:55basically this is the standard scheme of the client and server sometimes there is no database
- 3:35:00in this scheme then we are just talking about having a client and a server that communicate
- 3:35:06with each other the client sends HTTP request or it is also called HTTP request to the server the
- 3:35:15server process es it and sends back to the client HTTP response that is a response from the server
- 3:35:22if we are talking about an additional element such as a database then everything is simple the
- 3:35:27client sends a request to server the uh server sends the request to the database the database
- 3:35:34sensor response to the server and then the server is already interacting with our client sending
- 3:35:41a response for the information it requested again to the client since one server program
- 3:35:47can perform queries from several client programs as you can see we have three of them here maybe
- 3:35:53many more This Server program is usually placed on a dedicated Computing machine usually with
- 3:36:00some other server programs so the performance of this machine would have to be very high let's talk
- 3:36:09about the disadvantages and advantages of this model in a nutshell to the pluses of course we
- 3:36:15can refer to the fact that there is no duplication of the server program covid programs since all
- 3:36:23the calculations are performed on the server the requirements to the computers on which the client
- 3:36:27is installed are reduced as I said before usually server programs are on more computationally
- 3:36:35intensive machines than client programs also on the plus side is the fact that all data is stored
- 3:36:43on the server which is usually well protected better than most clients and it is easier to
- 3:36:50organize Authority control on the server to allow access to data only to clients with appropriate
- 3:36:55access rights this is usually handled by a separately dedicated person a system administrator
- 3:37:00perhaps or devops the disadvantages of this type of Architecture is that if we have for example
- 3:37:06a server down then the whole Computing network is down will also not work as I said to support this
- 3:37:14system requires a separate specialist a system administrator and usually server Hardware is very
- 3:37:20expensive also talking about clients and servers it is worth talking about the so-called three
- 3:37:27tier architecture that is if we have only a client and a server and the link then this architecture
- 3:37:34is two level but when we have a database for example if we are talking about some kind of
- 3:37:42social network when a client sends information into the servers with a request of what he is
- 3:37:48looking for for example and this information is contained in the database then the server needs
- 3:37:54to address it to get this information so we have an additional database and its server and then we
- 3:38:01have these three links that is the information from the database goes back to the server and
- 3:38:05through the server gets back to the client often at interviews they ask you to draw such a scheme
- 3:38:11of client server architecture so remember the difference between the two-tier architecture and
- 3:38:16a client server architecture and a three tier scheme the most common example of a client is
- 3:38:24a browser all of you and I know what it is for example it's Google Chrome or Safari or Milla or
- 3:38:32Opera so we put some of our HTTP requests in there that's basically what we type into the address bar
- 3:38:40and that request goes to the server that's what a client is there are two types of clients Thin and
- 3:38:47Thick often at job interviews people are asked to give examples of Thin and Thick clients to tell us
- 3:38:53what they are so make sure you memorize it so that you don't get confused in future in a technical
- 3:39:00interview see a thin client is a computer or some kind of client program in networks with
- 3:39:09a client server architecture that shifts all or most of the information processing tasks
- 3:39:15to the server uh as I said an example of such a thin client is a browser which is used to
- 3:39:23work with uh web applications why is it called a Thin Client because all the basic business logic
- 3:39:31and all the computing power we have is actually located on the server computer and the client
- 3:39:38itself is essentially some simple software that helps us send requests to the server now if we are
- 3:39:45talking about a client it is an application that provides more advanced functionality independent
- 3:39:53of the central server often the server in this case is just some kind of data storage and all the
- 3:39:59work of processing and presentation of this data is transferred to the client machine for example
- 3:40:06if you take such complex software as 1C accounting I think that some of you have worked with it and
- 3:40:15know that in fact this application allows you to do all the accounting in a particular Enterprise
- 3:40:21that is it contains all of the basic business logic and we have only the data that needs to
- 3:40:27be stored in the database is sent to the server or when we need to retrieve them send some query back
- 3:40:34and retrieve them from the database and everything else the main thing is on these thick client in 1C
- 3:40:42you can also refer to this thick client as all the online games the same tanks again everything
- 3:40:50is basically on the client that is the client in fact is our computer game and already again
- 3:41:02the information about users what is stored in the database we have on the server so it's not
- 3:41:08such a complex computing power that can contain all the basic business logic of our application
- 3:41:13memorize these basic examples of thick and thin clients and you will have no problem explaining
- 3:41:20what they are at a job interview sometimes it is enough just to name these examples without
- 3:41:27any specification as to what business logic is contained in the thick client and and Thin
- 3:41:32Client in principle at first this information will be enough for us to talk about testing web
- 3:41:39applications next we will understand what is HTTP request HT GTP request what it consists
- 3:41:46of what in general we can send to the server in what form this information comes to us to the
- 3:41:52client how we can view it using built-in Tools in our browsers in our clients we will be able
- 3:42:00to test some web services and in general we will learn how to test websites as you can see I have
- 3:42:08already named three words with the key part web web services web applications and websites I think
- 3:42:16you have some questions about what they are and why they are different from each other let's now
- 3:42:21talk a little bit about it websites are usually informational in nature that is they consist of
- 3:42:28some kind of web pages linked together to form a single resource have some simple architecture
- 3:42:34based on HTML code again we'll talk about HTML CSS and JavaScript with you a little later uh
- 3:42:45but just so you understand this is just some basic information in the form of markup on our website
- 3:42:51and websites like this essentially serve as a platform to provide content for visitors that
- 3:42:56is they contain some text files images perhaps music the websites do not provide the opportunity
- 3:43:04to interact with our program that is users do not have access to posting their information
- 3:43:10except for filling out forms to get for example a subscription the most prominent examples of
- 3:43:17typical websites are news sites cooking sites and weather forecasts unlike a website web
- 3:43:25applications these are such interactive Computer Applications that are specifically designed for
- 3:43:33the internet and allow users to enter retrieve and manipulate data through interaction such
- 3:43:41programs have a very close connection with our server and send a lot of requests to it and such
- 3:43:50web applications may be embedded in web pages or the web pages themselves may be applications if
- 3:43:58you think of some of the main ones they include for example Facebook Gmail YouTube eBay Twitter
- 3:44:05Amazon various social networks including V contact a for example web applications use
- 3:44:11a username and password for authentication and they allow their visitors to exchange for example
- 3:44:17instant messages if we are talking about social networks or some blogs create content based on
- 3:44:25user preferences provide unlimited access to it also some many programs for entertainment
- 3:44:33can be embedded there and another difference from websites is that many internet applications may
- 3:44:41not have any real informative content so so what do they mean that is they are used to accomplish
- 3:44:48some additional tasks so they can be some kind of Internet translators Messengers file converters
- 3:44:55currency converters whatever and the last thing I wanted to tell you about today is web services
- 3:45:01if you and I recall one of the first lessons on testing levels one of them was integration level
- 3:45:10and it is the logic of the integration level that is tied to web Services I mean what exactly is
- 3:45:18a web service it's an application programming interface or API that uh operates on a server
- 3:45:25and supplies data to a client via HTTP this is the protocol we discussed with you in the first
- 3:45:32part of our lesson using a standardized messaging system web services in turn are classified into
- 3:45:39soap and rest once again we will discuss the soap protocol and the rest architectural style in more
- 3:45:45detail in a later lesson but what you need to know is that in today's scenario most of the services
- 3:45:53prefer to use just the architectural style of rest as opposed to sep why because sap is a protocol so
- 3:46:01it is some standardized protocol while rest is more flexible that is there are no any strict
- 3:46:09rules by which we have to cooperate with it and use it so it is more interesting from the point
- 3:46:14into view of web development and again since soap is a standardized protocol and it uses
- 3:46:20XML XML is basically an advanced markup language it's very similar to HTML if you're familiar with
- 3:46:30markup languages and in terms of the amount of information that we put into soap it's certainly
- 3:46:39much larger than in rest and we use Json there and the amount of information is much smaller
- 3:46:49so we can reduce the time here for all these responses and requests to the server again we
- 3:46:56will talk to you about all of this a little later so for now don't get too worked up just remember
- 3:47:01that websites are some simple web pages that are information of some sort web applications already
- 3:47:10allow the user to interact with these different web pages enter their some data interact with
- 3:47:15the content in a web service is essentially an API or some kind of prepackaged program
- 3:47:22interface that allows different web applications for example to interact with one another on that
- 3:47:30lovely note our initial session in testing web oriented applications is now coming to an end I
- 3:47:37hope that you have a bit of understanding in your mind about what client server architecture is how
- 3:47:41websites web applications and web services differ from from each other you should be able to answer
- 3:47:46these questions during your initial interviews um if you are asked for this information and you
- 3:47:53certainly will be in the next lesson we will continue to study client server architecture
- 3:47:58at deeper level we will thoroughly dive into this topic so make sure to stay tuned to this Channel
- 3:48:05please put your likes subscribe and leave comments with any questions you may have I will make sure
- 3:48:10to answer each and every one of you and that's all for now Welcome to our tent and goodbye for
- 3:48:16[Music] now hello YouTube today as promised we continue learning about testing web oriented
- 3:48:35applications and this lesson will be dedicated to the HTTP protocol we will talk about what a
- 3:48:42response request consists of we will we also touch upon such topics as status codes what versions
- 3:48:48of HTTP protocols exist or existed and some other things that are directly related to this protocol
- 3:48:55first of all let's understand what a protocol is a protocol is a set of rules for transmitting
- 3:49:03information that is with the help of protocols we regulate how our information is transmitted
- 3:49:09on the internet if we talk about the HTTP Co it's full name is hypertext transfer protocol
- 3:49:18so what does an application layer protocol mean there are several Network models there's the OSI
- 3:49:25model and the TCP IP model TCP IP is the most modern model widely used in internet networks
- 3:49:31today the OSI model is already updated and within the framework of this lesson we will not dwell
- 3:49:42on each of these models but I will will tell you what you need to know in order for you to
- 3:49:48understand what protocols there are what levels there are in these models and to which of them
- 3:49:53the HTTP protocol belongs now you and I can see the two models that I mentioned above these are
- 3:50:00TCP IP model and OSI model in the OSI model there are seven layers in TCP IP only4 in more detail
- 3:50:11I will tell you about TCP I P model the very first level is the level of network interfaces
- 3:50:19that is in this case some physical impulses are transmitted that is for example fiber optics
- 3:50:25can be referred to here when we move to the next level this is the network level then here there
- 3:50:32is already a transfer of physical signals in the form of bits or bytes here for example we
- 3:50:39can distinguish such a protocol as AP when we discuss the transport level we already see some
- 3:50:46transport interactions within our Network at this level we have two types of protocols TCP and UDP
- 3:50:53it's important to note that these two Protocols are quite different from each other often during
- 3:50:59job interviews candidates are asked about these differences speaking of the TCP protocol it is
- 3:51:06known as a reliable transport protocol this means that when transferring files there is a guarantee
- 3:51:14that the information will successfully reach our client if within the transfer of information
- 3:51:21happens that the information does not pass that is there is no certain conviction and guarantee
- 3:51:26that client received this information then there is a resend of information this is what concerns
- 3:51:34the TCP protocol if we talk about UDP then here we do not need to be convinced that our
- 3:51:40information has reached the client that is it is a continuous flow the information is transmitted
- 3:51:47and there are no mechanisms that would say that it is guaranteed that our information has reached
- 3:51:51the client either to the server this is the main difference between these two protocols I will not
- 3:51:57tell about these protocols any technical things within this course this answer will be enough at
- 3:52:03the interview for your interviewer to realize that you know the difference between these protocols
- 3:52:09if we are talking about UDP protocols then in practice they are used for example in online
- 3:52:14games where it is not necessary to make sure that the information is transferred from the
- 3:52:20client to the server if we are talking about TCP protocol this protocol can be used in mail
- 3:52:28services so here we have to make sure that indeed our client has received some mail and the next
- 3:52:36level is application Level or the same application Level in Russian this is a specific level for our
- 3:52:43application that is how various interactions take place in our application this is the very last
- 3:52:49level and as I said the HTTP protocol refers specifically to application layer protocols
- 3:52:58if you're interested you can pause this video and see what other protocols can be attributed
- 3:53:02to these layers often in job interviews you may be asked what other protocols besides HTTP can
- 3:53:08be classified as application layer protocols that is these other remaining Protocols are
- 3:53:14included here also at interviews sometimes they may ask about the SI model also about
- 3:53:21the name of the levels what kinds of Protocols are there are used on each of them so if you
- 3:53:26are interested in this topic please feel free to leave your comments I will definitely pay more
- 3:53:31attention to these two models we'll talk about the differences in the protocols what pitfalls
- 3:53:37there are in them and perhaps what else you might be asked in an interview about each of
- 3:53:42these models now let's talk more more about what the HTTP protocol requests and responses
- 3:53:48consist of in general it is uh obligatory to highlight the main part because in English it
- 3:53:56is called payload that is in fact it is what we have to convey the main part is also called the
- 3:54:03payload also in a request or response there can be so called headers or headers this is service
- 3:54:10information then already describes how our main part of the payload should be
- 3:54:17transmitted if we talk about the HTTP protocol and remember its
- 3:54:21full name which is the hypertext transfer protocol you might have a
- 3:54:25doubt that we must necessarily pass hypertext which means some text files in the payload in
- 3:54:38the main part however this is not the case in fact you can pass more than just texts
- 3:54:45in the main part um you can pass pictures you can pass some code so all of this can
- 3:54:52also be encrypted in our main part and most often the answers come in HTML format this
- 3:54:58is a special markup language which we will also discuss a little bit later in the next
- 3:55:04lessons let's now take a look at uh examples of HTTP request tests and HTTP responses what
- 3:55:17they consist of in general what the main parts of them are and what you should pay attention to in
- 3:55:22your preparation for the interview I hope we all remember the difference between a request and a
- 3:55:28response a request is sent by a client to a server and the server in turn responds to the request and
- 3:55:34gives its HTTP response that is response so here we have two examples of our HTTP request
- 3:55:44and HTTP response what does uh HTTP requests look like first of all we have a method a little bit
- 3:55:53further on I will tell you what methods are so just remember that the first thing in the response
- 3:55:59is the method next is the version of our protocol again we will talk about protocol versions in
- 3:56:06the last part of our lesson and uh host machine that is where our application resides in general
- 3:56:11which is our server also we have headers in the requester as I have already said this is
- 3:56:18some service information that characterizes our main part it may or may not exist that is these
- 3:56:24headers are an optional part and uh they can be different in each separate request also the first
- 3:56:33line of may contain a URL that is what resource we are accessing if we're talking about HTTP request
- 3:56:43then here here we also have information about the protocol version also contains the status
- 3:56:48code I.E the status code tells us whether is successful or not that is whether the server
- 3:56:57responds to us or not and each status code has a numerical designation and textual information so
- 3:57:04as you can see this is the status code itself and the status message a little further on I will tell
- 3:57:09you more about status Cotes what they are and what you should pay attention to when testing
- 3:57:16responses and requests to the server further we have the date when the response from the server
- 3:57:21was sent at all information about server and also again some headers that characterize our main load
- 3:57:31also here we usually put an empty string and if our response contains some payload then further
- 3:57:39goes the information exactly with this payload for example a document in HTML format this is how HTTP
- 3:57:47requests and HTTP responses look like now let's talk in more detail about the components of each
- 3:57:55of these entities first let's talk about methods there are a few basic methods that are used when
- 3:58:02generating requests these are get and post the most basic to there are also put delete connect
- 3:58:11options patch methods that is uh the they are not always used anymore and are not the main ones if
- 3:58:19we are talking about the get method here it is now by the way we have it on our example this method
- 3:58:26precisely characterizes the exact requests for information from our server in other words our
- 3:58:32client simply sends some information and requests it from the server if we are talking about the
- 3:58:38post method in this case we send a payload to the server that is we have this Main part the
- 3:58:44payload for example in the body of our request this payload can be some picture text or other
- 3:58:53data and we send it to the server the put method also works in a similar way that is it also sends
- 3:58:59some information to the server and it is usually used to create an object on the server and there
- 3:59:05is such a method as delete that is to delete data again from our server or database server
- 3:59:15another method is connect in addition to the HTTP protocol there is such a protocol as https the
- 3:59:23difference in these two protocols is that https is encrypted so our information gets to the server in
- 3:59:32some encrypted form that's why most often now use https protocols because they are more reliable the
- 3:59:41information is encrypted some attackers can't get get it so easily so be sure to pay attention to
- 3:59:47this if for example you use some resource and in order to trusted it is better that it was written
- 3:59:54using https protocol if you pause this video you will see detailed information about these methods
- 4:00:01that I have discussed including their names and a general overview of each method additionally
- 4:00:07we will discuss these methods in more detail in future lessons likely even when we cover API test
- 4:00:14understanding these methods what's encrypted within them and their main components is
- 4:00:19crucial what differences there are what you should pay attention to when testing the API
- 4:00:30after all this will be in this block for now it is enough for you to know just their name and what
- 4:00:35they are coming back to the response that is the response from the server I mentioned such aspect
- 4:00:42as status code and status message as I said these status quotes characterize the success
- 4:00:50of our request to the server and whether it can actually give us a response or whether there are
- 4:00:55some obstacles to it as you can see the status code is encrypted numerically and there are five
- 4:01:02main groups these are hundreds 200s 300s 400s and 500s each of these types has its own name
- 4:01:12that is hundreds are informational messages 200s are informational messages 300s are messages from
- 4:01:19both directions 400s are client side errors and 500s are server side errors we are not going to
- 4:01:27dwell on 100 errors because in fact there are just some informational messages which in fact
- 4:01:33carry semantic load as testers we are primarily interested in 02 two status code and 04 and 05
- 4:01:44because they tell us that we have some critical errors the main code we are interested in in 02
- 4:01:52is 200 status code which says that everything was successful both on the client side and on
- 4:01:58the server side that is the server has processed our request from the client gave the answer and
- 4:02:05really we had some kind of success the 300 status code as I mentioned indicates that
- 4:02:13the server returned the information to us in the response but it was found elsewhere here
- 4:02:18we will be particularly interested in such a code is 301 which means that the client
- 4:02:25accessed a certain page but this page has been moved and is now located at a new address the
- 4:02:32server managed to handle this case and return the new address in the header then bad errors that is
- 4:02:40we should always pay attention to it because these are potential threats we may not always
- 4:02:45have information about the new address of our resource that is it can just disappear at some
- 4:02:51point and then a 301 error can turn into a more serious error for example into a 404 error we
- 4:02:59will talk about it a little later so pay attention to the 301 error also the status code 304 is not
- 4:03:06listed here it's is important to this is code not modified as you know I hope we have information
- 4:03:16about our sites stored in the cache that is locally on our computer so that in the future
- 4:03:21when the client accessed the server there was no loading of additional resources that is this
- 4:03:26information is stored in the cache information about our site for example some pictures from
- 4:03:32it and takes information already from the local machine and exactly 304 code not modified says
- 4:03:40that that the information in this site is stored in Cache and in such case when requesting to the
- 4:03:49server it can return this error and take some payload from our local computer however it may
- 4:03:57not take this load and reload us some server data this is very good for performance if we really
- 4:04:03have a working cache so pay attention to it too and here we come to the most interesting status
- 4:04:10codes which are 0.4 and 05 as I said 0.4 are errors on the client if we are talking about the
- 4:04:20main ones you should pay attention to it is the 04 error itself which says that the request could not
- 4:04:29be processed by the server it was made incorrectly and in case of such an error you should be sure to
- 4:04:34copy all the information about this request to our bug report if you have forgotten how bug reports
- 4:04:41are created now there will be a link at the top and you can go to this lesson that is if we see
- 4:04:48400 bug I will tell you further where we can see it then we must attach our entire request to the
- 4:04:54bug report so that the developer having received information about this report about this defect
- 4:05:00can easily understand what is the main cause of this bug also such an important status code AS 401
- 4:05:07is not specified here that is it characterizes the fact that we have entered some incorrect login and
- 4:05:14password and then our system swears this status code is differently called unauthorized if we are
- 4:05:21talking about its textual name code 403 staus code tells us that even though we have entered
- 4:05:27the correct username or password our system has imposed some restrictions on us that is there
- 4:05:33are limitations perhaps we do not have enough rights to enter this or that resource again you
- 4:05:40should pay attention to this if for example you have different roles in your system for example
- 4:05:45just a user a moderator an administrator and you should definitely check the fact that when
- 4:05:51we enter the password and login for example a user he cannot make any significant changes
- 4:05:57in the work of our site so we pay attention to that as well and of course the most common and
- 4:06:03well-known error is 404 when our client accesses a resource that is no longer on the server and of
- 4:06:10course server errors they are the most critical that is the most basic of them is 500 if we see
- 4:06:19this error then we must necessarily have a bug showstopper critical blocker that is we mean
- 4:06:25such severity necessarily that is in this case something happened on the server some fatal error
- 4:06:33that prevents it from responding to your request so this is very serious for our software that's
- 4:06:38about status codes in a nutshell I would like to point out that you should definitely know all five
- 4:06:43of these types know a few examples of each of them at least the most common ones which I have
- 4:06:49told you today as part of this lesson because at job interviews you are often asked to give
- 4:06:54these examples and tell what they represent in fact there are a lot of status Cotes and
- 4:07:00it is unrealistic to memorize them all this is um reference information that is if you find a
- 4:07:06status code that you don't know that is not one of the main ones you just Google it and see what
- 4:07:11it is also some comp companies have their own custom status codes meaning developers can assign
- 4:07:17them to some certain specific functionality and responses so again when you come to some project
- 4:07:25a new company and you see code that is unknown to you you can first of all find it out in the
- 4:07:34documentation if you have it on your project or go directly to the developer and find out what it is
- 4:07:40that's the status of the code and the last thing I wanted to talk about today is the HTTP protocol
- 4:07:47versions as I said this information is in both the requester and the responder the very first
- 4:07:52version of the HTTP protocol is 0 to9 then is not even one why is that because this version was
- 4:08:02invented spontaneously and it simply could not be assigned a certain number then there was already a
- 4:08:09version of http1 that is when there were already some standardized things in it me and there was
- 4:08:18information about if I'm not mistaken three methods get post and put and then was the HTTP
- 4:08:27111 version which is actually now most often found on some resources after HTTP 1 there was http2
- 4:08:35Z in fact this protocol was originally called cbpi that is if we are talking about version 20
- 4:08:43it was invented by Google in order to raise the performance of this protocol because already at
- 4:08:48the stage of modern technology this protocol HTTP 1.1 was becoming obsolete but later all
- 4:08:56other companies picked it up and realize that some improvements were needed in version of the
- 4:09:04previous one one and this protocol was taken standardized and now it is called HTTP 220
- 4:09:13the http2 turo protocol has undeniable advantages over HTTP 1.1 so if you're company has to choose
- 4:09:22between these two versions of Protocols of course it is better to use two what are these undeniable
- 4:09:30advantages unlike one one20 uses binary format that is zeros and ones the one one version uses
- 4:09:39a text format as you realize using zeros and ones greatly reduces the amount of information that
- 4:09:45needs to be transmitted to the server and the server transmits it back to the client the text
- 4:09:53format has its disadvantages here because it takes a lot more space and it takes longer to transmit
- 4:10:01so it has a very good impact on performance the second plus is that HTTP to T is faster that is
- 4:10:09there is a reduction of information there again due to the same bu binary format and because of
- 4:10:15the fact that there is compression of our header headers if we take the HTTP protocol
- 4:10:24version 1.1 and study the various requests and responses that are written using this
- 4:10:29protocol then you may notice that there is a lot of header double posting this is not the case in
- 4:10:35http2 the main reason for this is that http2 is multiplexed so what does that mean if version one
- 4:10:48one each of our request whether it's sending HTML code sending CSS sending JavaScript they go over
- 4:10:56a separate TCP connection if we remember this is a transport protocol so every request is a
- 4:11:04separate TCP connection if we talk about protocol version 2 Z then all these requests pass through
- 4:11:12one single TCP connection that is there is no distinction as to what information they send
- 4:11:18to the server they always go over the same TCP in version 1.1 as I said there will be as many
- 4:11:24of these TCP connections as there are requests and types of information that we send to uh and
- 4:11:29receive from the server again if we're talking about multiplexing then in the one one version
- 4:11:37all of these requests come one after another for example first we get some text information h HTML
- 4:11:44then we get some style information CSS then we get JavaScript information some Dynamic update
- 4:11:50of our page and so these are all these connections going through one after another in 2.0 there's no
- 4:11:58such thing that is we have one connection and the information is transmitted simultaneously both
- 4:12:05from the request side and from the response side from the server that is they all these
- 4:12:11actions happen in parallel you don't have have to wait for the end of a certain type of request
- 4:12:17everything happens at once these are perhaps the main differences between these two versions of
- 4:12:23protocols and now I remember what I wanted to tell you more today this is how we can visually see how
- 4:12:30our requests and responses come where we can see the information about the protocol version and
- 4:12:36the status of the code so let's go with you now to the browser and I'll show you how to do this
- 4:12:43I've opened the onliner site in advance if you live in bellarus I think everyone knows
- 4:12:48what kind of resource this is if not you can open any site that you are interested in and
- 4:12:56perform the same operations in order for us to work with requests and answers we need to
- 4:13:02open the so-called Dev tools that is developer tools already inside our browser these tools
- 4:13:09are available in all known browsers and and they usually open after clicking F12 next we
- 4:13:18navigate to the network Tab and refresh our page as you can see our initial requests have
- 4:13:24already passed and we have received some responses from our server and here we can
- 4:13:30already discover some initial information that is we can see the method that is used
- 4:13:35and we can see the status code in other words everything has successfully passed here and the
- 4:13:43version of our protocol if you don't have any of these columns you just rightclick
- 4:13:48and customize them as you need based on what you're interested in when we open any of these
- 4:13:54requests then here you can already see detailed information about what we sent
- 4:14:02to the server and what we received from it this includes information
- 4:14:06about our requested URL the method that was used and details about our status code
- 4:14:20we have everything here the Header information is included in our
- 4:14:25response you can see all of it right here if we notice any errors like the status code 404
- 4:14:36or a 500 error then we definitely have a bug the bug is typically logged as we've already
- 4:14:44done in jira or Azure devops or another tracking system or even in Excel ideally you should copy
- 4:14:51the information about our quester and take a screenshot make sure that it's the dev tools
- 4:14:56information to get in the screenshot and on top of that you can save all this information in a
- 4:15:03special archive which your developer will be able to open on his computer and view all the
- 4:15:09information about responses requests and what happened when you sent this or that request to
- 4:15:15the server further on in our lessons we will work with devv tools in more detail I will tell you
- 4:15:24about the basic elements blocks that are in this tool they work similarly in all browsers there's
- 4:15:31some additional functionality somewhere but will probably most often refer to Google Chrome and uh
- 4:15:37the dev tools that are in this browser all also this tool has a great written documentation that
- 4:15:46you can also read familiarize yourself with it I will leave a link to this documentation in the
- 4:15:53description of this video that's all I wanted to tell you about the HTTP protocol today I
- 4:16:00hope that this information has made your heads a little clearer about how this protocol Works in
- 4:16:05general and how we send requests the responses that we receive from the server what we should
- 4:16:13pay attention to when testing and in the future at interviews or in real work you will have no
- 4:16:19questions and you can easily understand what the bottlenecks are in the answers or sending
- 4:16:27requests to the server additionally I would like to remind you that I have a telegram
- 4:16:33Channel where I regularly post information on what you should focus on when preparing for an
- 4:16:37interview for a novice tester position there are already multiple articles available with useful
- 4:16:44links and answers to the most frequently asked questions moreover I will be sharing links to
- 4:16:51literature that I personally read when I decided to pursue a career in it and to become a tester
- 4:16:58and of course links to my videos on this channel and perhaps things I don't have time to cover in
- 4:17:04these classes that's all for me please subscribe to this channel Welcome to our shalash bye
- 4:17:30[Music]
- 4:17:31hello YouTube in today's lesson let's continue studying web application testing and talk about
- 4:17:37the basic concepts that will make it easier for you to understand the subject area and
- 4:17:42give you the necess necessary theoretical background to continue our work together
- 4:17:47don't be frightened we will spend the next few lessons in the Practical mode but for now let's
- 4:17:52bear with the theory for a while let's start with a simple one let's imagine that we open
- 4:17:59a browser what's the first thing we do most likely we type a URL into the address bar
- 4:18:05or uniform resource locator this is a unique address of a website on the web which defines
- 4:18:13its location on the internet there are also two other Concepts uran and UI uran
- 4:18:19is an unchangeable sequence of characters that defines only the name of some resource this name
- 4:18:25defines only the name of the resource itself but it does not tell you how to connect to
- 4:18:31it there is also a concept known as urai which stands for our unique identifier
- 4:18:41this is a broader notion encompassing multiple ways to identify our resource it includes both
- 4:18:47URL and earn and it can incorporate them either separately or together therefore
- 4:18:53we can consider in identifier as our locator or an identifier as a name or
- 4:19:01even an identifier as both our URL and earn combined now let's examine some examples to
- 4:19:08give you a clearer understanding of how these three types of entities differ from from one
- 4:19:13another so look here what in our address bar stands for identifier what stands for locator
- 4:19:27and what stands for name as you can see our locator defines the way that we're going to
- 4:19:32access it and the address bar itself which is directly the address of the location on the
- 4:19:38network if we are talking about the name then we are not interested in how we are going to
- 4:19:46access the file we are primarily interested only in the name of the file so we are not
- 4:19:54interested in the name of the protocol and the address itself in this case and as I said an
- 4:20:02identifier includes both the locator and the name but can also include them separately since we are
- 4:20:09talking about addresses then of course if we are talking about the internet it is necessary
- 4:20:14to pay attention to the IP address what is it it is a unique Network address of a node in
- 4:20:21a computer network built on the IP protocol and IP address is either 32-bit by ipv4 or a [Music]
- 4:20:30128bit the IPv6 version is a binary number here we have four binary numbers Each of which can
- 4:20:40include eight bits there are four such clusters in total so 32 bits or four bytes but using the
- 4:20:46binary number system to write IP addresses is not very convenient they get cumbersome so most often
- 4:20:53IP address you see in the form of decimal numbers that is they are simply translated into them and
- 4:21:03each such decimal number cannot be greater than 255 sometimes at interviews you may be asked how
- 4:21:11to translate IP addresses from decimal to Binary and vice versa let's review together how this
- 4:21:18can be done easily and simply let's convert a number from decimal to Binary for example
- 4:21:26let's take 19 how can this be done without using any calculators or the same converters to other
- 4:21:35systems to do this we take the number itself for instance it will be 19 and divide it by two
- 4:21:45[Music] here the usual rules of arithmetic apply that means if we cannot divide this number without
- 4:21:54a remainder we take the closest possible number that is divisible by two we write it down and this
- 4:22:01remainder will be one then we divide the number we have as a result of the division which in this
- 4:22:06Cas is 9 by two again this situation is repeated once more meaning we again write down the closest
- 4:22:12possible number and the remainder is one so we keep doing this until we have such a situation
- 4:22:18that we cannot continue our division by two that is in this case we have one last when we
- 4:22:25divide it by two we get a number not integer 0 five we write it as zero and here again we
- 4:22:33write the remainder this zero we do not take into account the last one but we take into
- 4:22:40account only that we can easily divide it by two and further we write down this number starting
- 4:22:46from the most recent obtained uh and to the very first this number we will get in binary system I
- 4:22:56hope it is clear to you how to do it in any case I will post these pictures in telegram
- 4:23:03so that you can easily look at them and refresh your memory and somehow structure the data that
- 4:23:12you have received in the framework of this lesson if we talk about the reverse
- 4:23:18situation when we need to convert from binary to decimal then we take our number in binary
- 4:23:24and starting from the last one number it that is0 1 2 3 4 we have a total of five
- 4:23:32digits in a given number and then we start multiplying our digits in this number by
- 4:23:41two to the degree that will be given at the top that is the ordinal number of this number after
- 4:23:47that we plus all the values that we got and we get our number in decimal form that is there is
- 4:23:55nothing complicated about it you just need to practice on some numbers on examples in order
- 4:24:01to build up your hand and in case you do get asked this I've never actually been asked this
- 4:24:06in interviews but in my course that I took at the it Academy we looked at examples like this and in
- 4:24:13principle it's never unnecessary to study these translations of course there are online converters
- 4:24:22and even the built-in Windows calculator has the ability to convert numbers from decimal to Binary
- 4:24:28and vice versa so uh you can use that too but there's always the possibility that you'll be
- 4:24:37can still ask in interviews how this can be done simply on a piece of paper the next aspect that I
- 4:24:45would like to touch on within an IP address is the subnet mask when an IP address is assigned to an
- 4:24:51interface such as a network adapter on a computer or router then in addition to the address of that
- 4:24:57device itself the IP address it is also assigned a subnet mask computer subnet mask is needed to
- 4:25:04define the boundaries of the subnet itself so that everyone can determine who is in the same
- 4:25:12subnet network with him and who's outside of it a subnet mask is essentially a 32-bit tool but
- 4:25:20unlike an IP address zeros and ones cannot alternate there are always a few ones first
- 4:25:26followed by a few zeros for example if you and I look at the subnet mask in English it is called
- 4:25:31the subnet mask you can see that we have only ones first and then zeros that means we cannot
- 4:25:38have such a thing as in IP address where there is alternation in in a subnet mask the structure is
- 4:25:44much stricter and more predictable I think that after considering the IP address it became clear
- 4:25:49to you that's such a record in the form of binary system of calculations is not very convenient so
- 4:25:57they use a simplified version write just the number of units that we have in the mask under
- 4:26:02the network that is here we have them 25 so after IP address can put a slash and write the number
- 4:26:0825 I think that those of you who have ever set up a browser or network connection on a Windows
- 4:26:16system you have paid attention to IP addresses and how they are written there subnet mask that
- 4:26:24is sometimes you can meet such an entry with a slash in the number of these very units that
- 4:26:30we have in the subnet mask but also you may have met another entry when we do not write this subnet
- 4:26:35mask with a slash but in general the boundary of our sub network is written in this form
- 4:26:42then here is already taken into account both the subn network mask and the IP address itself how do
- 4:26:50you define the subnetwork boundary in general that is we take our IP address takes the mask under the
- 4:26:59network and each digit that is contained in these addresses it is multiplied by each other and as a
- 4:27:06result we get this record which is also further translated into to a distitch system of calculus
- 4:27:13for convenience record that is if we pay attention we have 25 units in the network mask we multiply
- 4:27:20all of them that is this address is completely the same as in the IP address and where we had
- 4:27:26zeros and units which are multiplied to zeros meaning they are all written as zeros also when
- 4:27:36they talk about a IP address there is a static and a dynamic IP address if we talk about Dynamic IP
- 4:27:45address it is automatically assigned when the device connects to the network and is used for
- 4:27:51limitted period of time usually until the end of the connection session this does not happen with
- 4:27:58a static one that is we always have the same IP address also in the topic of all these addresses
- 4:28:05it say also worth mentioning Mac address this is the physical address of our device it is written
- 4:28:12to when the network card is manufactured that is if you are suddenly asked in interviews how many
- 4:28:20Mac addresses there are in a system you should always say that it is the same number as the
- 4:28:27number of network cards we have installed in the equipment that belongs to this system I mean if we
- 4:28:33have a a network card in our printer it would also have a MAC address and be counted in that total
- 4:28:38number that is it is not always true to say that if we have for example uh a network card in the
- 4:28:45computer that is responsible for our connection via Wii it is one we always count all the devices
- 4:28:51that are connected to the computer and that have a MAC address meaning that uh they can go online
- 4:29:00now we know what an IP address is that is it is unique number of each device on the internet and
- 4:29:10to get to the site we need to know IP address of the device on which this site is located let's
- 4:29:17imagine with you how many sites you visit every day if they were all encrypted in this digital
- 4:29:23form in the form of IP addresses then imagine how many numbers digits you would have to keep in your
- 4:29:30head it's unreal therefore for our convenience for the convenience of working on the internet
- 4:29:37back in 8h years was created a system of domain names or it is still called DNS domain name system
- 4:29:48the meaning of it is that each digital IP address is assigned a clear alphabetic name or it is also
- 4:29:54called a domain that is when you enter a domain name in the browser these DNS servers converted
- 4:30:01into an IP address that is each of our domain each URL has a corresponding IP address server and with
- 4:30:09the help of DNS this information in the letter value is converted into a numerical value and
- 4:30:16the server can understand what they want and what information they want to get so we already get
- 4:30:25information from the servers in this alphabetic form using the to DNS conversion and the last
- 4:30:34part of our lesson will be devoted to browser cache and cookies what is browser cach a and what
- 4:30:42is it for when you surf the Internet downloading browsing web pages you may not even be aware of it
- 4:30:49your browser automatically saves certain data to your computer's hard disk this can include various
- 4:30:58elements of website design such as pictures images video files music and much more this
- 4:31:05process is done so that the next time you access the page it will load more quickly this is because
- 4:31:11some of the information information is downloaded not from the server but directly from your hard
- 4:31:16disk this end is our cache that is it is data which are downloaded from our computer in order
- 4:31:29to simplify our work on those sites that we used to visit that is to speed it up and not to load
- 4:31:37so server as it could be if we every time turn into it in search of the necessary to Us Media
- 4:31:45information for example if we are talking about cookies these are also temporary files that are
- 4:31:49stored on the hard disk of the user's computer however cookies are used to store users's personal
- 4:31:55data what can it be it can be authorization data or login and password settings on certain sites
- 4:32:02your preferences that is at the moment when we visit a page the browser sends this data
- 4:32:08to the server thanks to which for example allows us to get to our personal page in a social network
- 4:32:16without having to constantly enter our login and password on the page of authorization to
- 4:32:22this network also this data can be taken into account by when providing you with contextual
- 4:32:32advertising that is your preferences are saved in the browser and based on these preferences the
- 4:32:38advertisements that will be shown to you will be the ones you are most likely to be interested in
- 4:32:43this is an important aspect of cookies and cache that you should be aware of in the next lesson we
- 4:32:49will explore Dev tools which we mentioned in our second lesson to review the main tabs within it
- 4:32:57and understand how they can assist us in testing perhaps I haven't decided yet I will tell you
- 4:33:04about HTML and CSS in a couple of words or if we won't have time or if the lesson will be very long
- 4:33:11I will tell you about CSS and HTML in the next lessons so be sure to stay with me the Subscribe
- 4:33:18button will help you it's only going to get more interesting from here on out in the meantime write
- 4:33:24in the comments whether this lesson was useful for you and what else you would like to learn about
- 4:33:29testing web applications I remind you that you can find useful links to articles and literature in my
- 4:33:37telegram Channel or in the description of to some videos and that's all for now Welcome to our tent
- 4:33:45[Music] bye hello YouTube it's been a while since we've seen each other but that's for a reason uh
- 4:34:07as you know I live in the Republic of bellarus the last video was just recorded about this situation
- 4:34:12in our country now in principle it continues it is developing nothing much has changed only that
- 4:34:19law enforces now do not use Force no matter how topological it sounds but the situation is still
- 4:34:27difficult on top of that during this period of time I managed to change my job now I work in
- 4:34:33a product company and I'm also going through the process of onboarding so free time is not so much
- 4:34:41now all my thoughts are occupied with both work and events happening in my homeland but still to
- 4:34:48distract myself I decided to record this video and still continue our training in testing uh in this
- 4:34:56case testing web applications as promised today we are going to talk about Dev tools this is a
- 4:35:04special package for web application development it is also used for testing and is built directly in
- 4:35:11to the browser itself whether it is Google Chrome or Mozilla they're of course a little differently
- 4:35:18called the development package in general every browser has it but today we will consider this
- 4:35:24tool within the browser uh Google Chrome as it is currently the most common the most used and
- 4:35:32in principle everything you learn today you can apply to other tools that are built into the other
- 4:35:40browsers 2edge which is now by the way written on chromium so there in principle it is exactly
- 4:35:46the same as in Chrome in Mozilla in Firefox in Opera and in Internet Explorer there are
- 4:35:52also similar Utilities in all these browsers why are we going to study this tool together because
- 4:35:58it is quite common in the development environment and it helps to develop and test web applications
- 4:36:12there is some truly excellent documentation written on Chrome Dev tools you can read it study
- 4:36:17it and learn all the features that suggest using Dev tools so I highly recommend that you read that
- 4:36:25as well I'll make sure to leave a link to that documentation in the description of this video
- 4:36:30now let's get down to business so how do we invoke Chrome Dev tools well there are several ways to do
- 4:36:36it the easiest method is to rightclick and select view code espe especially if we're talking about
- 4:36:43Russian if we say in English then there will be an inspect if I'm not mistaken inspect element and
- 4:36:53you can click that too and you'll see Chrome Dev tools you can also do it by pressing key F12 also
- 4:37:01by default this key brings up all such Tools in other browsers in the same way you can also invoke
- 4:37:07this utility how can we customize this console at all as you can see it is currently located on the
- 4:37:15right if you click on the three dots here you can change its location Al together it can be a bottom
- 4:37:22it can be on the left or it can be in a separate window for example if you have two monitors that
- 4:37:28you're working on you can simply move these Dev tools to a separate monitor on a separate
- 4:37:34screen and work directly on the browser itself on one Monitor and in Chrome Dev tools on the
- 4:37:43let's go back to the view we had originally and here's another way to call this console
- 4:37:53for instance if you close it now click on it and then click on view code as I mentioned
- 4:38:02earlier it will directly open dtml file it will open on the element that you wanted to inspect
- 4:38:11so when you click view code here it opens up a line that specifically spells out how this
- 4:38:17file how this particular element should look on the page as I said we will also talk about HTML
- 4:38:23and CSS but not within the framework of this lesson but a little later in other lessons
- 4:38:30within the framework of studying and testing web oriented applications here you can when you open
- 4:38:36the console in the elements tab after inspecting an element see how it is written in the layout
- 4:38:42in HTML file view its Dimensions there is also information about accessibility that is all of
- 4:38:52this will be written here also you can directly here to change this file and the change in this
- 4:39:01code in this attribute will be directly displayed on your page for example if you and I look at the
- 4:39:09code of some header and start to change it for example remove the word mobile then as you can
- 4:39:17see the information on the page itself will change this is how you can test for example headlines
- 4:39:23when you enter a large number of characters how they will be displayed whether they will
- 4:39:29not Drive In on other elements on the page or vice versa if you enter one character or no character
- 4:39:36at all how it will also be displayed you can see how on UI will we displayed this element on the
- 4:39:44page so this is used in testing also if you and I go a little bit lower you will see the Styles
- 4:39:50tab here you will already have information about CSS about the design of all these elements that
- 4:39:56is the sizes will be describ the fonts that are used when writing and all of this can be checked
- 4:40:03out here paddings margins that is all of this we will also discuss a little bit in detail in the
- 4:40:11next next lessons just know that in the Styles tab for example you can see what color was applied of
- 4:40:18this or that element what font that is when you test the UI opening some mockups templates of
- 4:40:24your page which were provided to you by designers they will also have information about what fonts
- 4:40:29what size what uh elements pictures should be used what color what size used and you should
- 4:40:35definitely check whether the developer really took this into account when writing the code
- 4:40:41when layout of this page so you're just comparing to see if that's really the case
- 4:40:47and if it matches our template directly also the next tab is the console in the console
- 4:40:54we have the JavaScript execution errors and in general in this console you can
- 4:41:01execute various scripts written in JavaScript that is Su see we have some errors here there
- 4:41:11are warnings about some errors that may occur in the future we should definitely study all this and
- 4:41:16in case we find such bugs we need to introduce bugs tring system bugs how is this done uh you
- 4:41:25directly write under what conditions this or that error is reproduced and displayed in the console
- 4:41:31that is what you opened what steps of reproduction and then you copy just all the information that
- 4:41:38you have there is in the console on this buck and and attach this information to the buck the
- 4:41:45developer having received this information later can process it and find out what the main reason
- 4:41:51is that is we as a manual tester especially at the level of June do not need to know all the
- 4:41:57peculiarities of JavaScript how it is processed why does such an error occur this is already the
- 4:42:05developer's task the main thing for us is to find this error formalize it write a bug report and
- 4:42:12see if the developers have really fixed it this or that error we should definitely report all
- 4:42:18errors too checkout critic or blogger depending on what you have checkout on the project if again
- 4:42:27we have some warnings which in future can also lead to errors they are highlighted in yellow
- 4:42:36here they should also be reported because they can lead to some serious errors in the future
- 4:42:41future therefore in the same way as described above we formalize these
- 4:42:48errors in our backtracking systems or in other systems used in your project
- 4:42:53typically these errors are written by the developers themselves meaning they do not
- 4:42:58use the default ones however if the developers are lazy they might resort to using the default
- 4:43:05errors provided by our browser regarding this tab we can also select what we want to see in
- 4:43:14general for example if we remove error information it disappears and we only see some warnings in the
- 4:43:25earning if we add it we can see it that is all this can also be customizable that is at your
- 4:43:32leisure you can click through everything that is written here and see what it can lead to the next
- 4:43:37tab is sources here we have information about the servers that our client accesses that is is
- 4:43:44information that is directly on the server of the onliner itself but also for example some pictures
- 4:43:50or I don't know information about exchange rates maybe media files are taken from other servers so
- 4:43:57we can also see where they come from all of this information is contained here in fact I probably
- 4:44:03have not used this tab once in my work but it is quite possible that your project will use as well
- 4:44:11the most important tab that is generally used during testing is the network tab here we have
- 4:44:19information about communication between our server and client this is an important tab because here
- 4:44:28we can see the requests that the client sends and the responses that the server returns all of this
- 4:44:34can be explored here you and I are in our first class on testing web Centric applications the link
- 4:44:39will appear at the top now we talked about this a little bit when we looked at the HTTP protocol
- 4:44:45but we can definitely come back to this again so what can we actually have in this tab directly in
- 4:44:53xhr this is where we find detailed information about requests sent directly to the web server
- 4:45:01and also about downloading the responses from those servers that directly call the scripts
- 4:45:08this is our main tab within Network additionally here there are tabs like all meaning here we have
- 4:45:16requests of all types displayed if we're talking about JS this is where you'll find information
- 4:45:21about the JavaScript we're running on the page CSS is information directly about CSS image this is
- 4:45:29information about the images that we have loaded media information about various media files be it
- 4:45:37videos or some audio files Foundation information about fonts doc this is the information that we
- 4:45:45enter into the address bar and send a request to the server that is here we display such requests
- 4:45:52W is websocket websocket is a protocol that allows exchanging messages between a browser and a server
- 4:46:00in real time mode time that is here are displayed exactly these messages of our client and server
- 4:46:10manifest is a special Json files we will talk about Json format in more detail when we start
- 4:46:18the topic of API but just to give you a simple understanding of what a manifest is as I said
- 4:46:24these are special Json files special information about our web application for our browser and in
- 4:46:34the other tab we have everything else that didn't get differentiated by these different tabs here
- 4:46:41going back to xhr which is our main tab where we work in network here we can see directly the name
- 4:46:51of our request the method that our HTTP request uses the status code that Returns the server
- 4:46:57protocol here we will have information about the version of our protocol as you and I remember
- 4:47:03there are versions one: one and two if you forgot again you can go back to to the video dedicated
- 4:47:11to the HTTP protocol where I talked in detail about the differences in the versions of these
- 4:47:17protocols type okay that would be xhr which stands for XML HTP prequest initiate is the
- 4:47:26file or site that initiated this request meaning where the request originated size is the size of
- 4:47:30the request or response in bites there's also time here which represents the total processing
- 4:47:34time for this request and waterall this shows you a timeline of how our events have progressed in
- 4:47:38general if we look at the status bar we can see a detailed breakdown of how much time was spent
- 4:47:42sending the request and receiving a response from the server that is we can analyze all this too
- 4:47:50in order to understand if we have any performance problems there is also such a checkbox as disable
- 4:47:57cache that is we disable cash sa saving on this page this is necessary so that when we
- 4:48:03accept some requests during testing does not use old data that could somehow affect the further
- 4:48:10outcome of our actions so the cache is turned off preserve log is a record of our log that
- 4:48:16is the logging of the process again so that if we have some errors that appear as a result of
- 4:48:22our work we can save this log and pass it to the developer for further analysis there is also the
- 4:48:27possibility of simulating different conditions that is we can set it as if we have a fast 3G
- 4:48:32internet connection or a a slow 3g connection or if we are offline at all what will happen to our
- 4:48:40internet connection if you are using the page what status codes will be sent you can customize and
- 4:48:47select all this here and it is not necessary for example to connect specifically to some dedicated
- 4:48:55network adapter that uses for example 3G or 4G or Wi-Fi we can customize that here there are also
- 4:49:05some custom settings that you can add yourself in order to simulate the work of areas connections
- 4:49:12the next tab is performance this tab is essential for both you and me to generally keep track of
- 4:49:20the performance of our site for instance observe how it is done for example if you and I initiate
- 4:49:27the process of recording what occurs during the operation of our site we can click record refresh
- 4:49:33our page and then click stop let's wait a moment while the processing of what was happening takes
- 4:49:39place and here you can see information about how long certain processes took place on our
- 4:49:47site and how they could affect our performance then you have a diagram like this where there
- 4:49:54are different ratios of certain processes in terms of time how long they took this can all
- 4:50:01be analyzed as well if we talk about this diagram something is not indicated if we're talking about
- 4:50:09lowing that's the low time of our page scripting is the time of running scripts on our page and
- 4:50:15some math calculations rendering is the time rendering processes that is the arrangement of
- 4:50:22layers and blocks on our page are colorless and paging is when we have these colorless layers and
- 4:50:29blocks are colored that is how much time it takes system is some system processes idle is the time
- 4:50:37of inactivity in general that we have had during the time of our post what is this good for because
- 4:50:47we can analyze how much time was spent for example if you have some standards that it should take you
- 4:50:52so many milliseconds to load and you realize that during performance testing this time has
- 4:50:59increased very much it means that something affected it you have to analyze it or if you
- 4:51:06do not have enough knowledge for this analysis you can simply save information about how you
- 4:51:12head this process of loading the page it's easy to do so you just save by clicking this button
- 4:51:20and then you send it to the developer for example in a bug report of some kind that is you indicate
- 4:51:26that your page load time is greatly exaggerated compared to for example some empirical data that
- 4:51:33were obtained earlier and it gets this file it can upload it back to itself so our file here it
- 4:51:41is it downloads it and it also displays all the same information that you had in
- 4:51:49your browser at the moment when you started this process of recording the performance of this or
- 4:51:57that resource and he can see it all analyze it look at it understand in general maybe depends
- 4:52:04on the browser what was happening in general what influenced the process of loading rendering bring
- 4:52:10scripting all this he can view plus here again you can simulate some processes related to the
- 4:52:18speed of the internet or it's complete shutdown or or slowing down our CPU that is speaking in a
- 4:52:27enjoyable manner all this can be done here as well another tab is security here you can see
- 4:52:35in general what protocols are applied on the page you are testing whether they are secure that is
- 4:52:40as we know there are two types of protocols there are HTTP and https which we mostly use on the
- 4:52:47internet to display this or that page if we are talking about HTTP this protocol is insecure and
- 4:52:56is potentially insecure if we are talking about https this protocol is secure and encrypted that
- 4:53:04is we already use an SSL certificate and you can also view this information exactly
- 4:53:10the security tab what protocol you are using view the certificate itself information about
- 4:53:16whether it is valid or not if we had HTTP protocol used here there was information
- 4:53:23highlighted in red it says that this protocol is potentially insecure and in the page loads
- 4:53:31uh we would have that information displayed you are sure that you want to use an insecure
- 4:53:36connection why is it important to open the security Tab and check this because
- 4:53:42often some sites use information from other sites from other servers that may already be
- 4:53:46using the HTTP protocol that insecure and for example if you have some financial information
- 4:53:53on your project passwords addresses appearances then it is not safe to transmit this information
- 4:54:01via HTTP protocols that is when you study this information you will see that you do have sites
- 4:54:07that are accessed directly by the resource that you are testing and those sites are using the
- 4:54:13HTTP protocol you should also report this to the developer that the potentially insecure
- 4:54:19protocol is being used on your site um and we need to do something about it uh maybe you have
- 4:54:27some agreements requirements where this HTTP protocol is spelled out on your project that
- 4:54:32we can use it on other resources but um again if that's not the case it's better to once again Ask
- 4:54:39the develop velers business analysts production designer if can really use this protocol directly
- 4:54:46on this site and if it's not an issue that's about the security tab when you practice for
- 4:54:53example with def tools I believe that you will definitely take a look at the security tab on
- 4:54:59various resources and then you will observe when we use the HTTP protocol and what is specifically
- 4:55:06shown in this tab additionally besides the main tabs that we have examined today there are also
- 4:55:16tabs that are directly related to extensions that are used in the browser although it is not part of
- 4:55:23the the scope of this tutorial and in principle you will not need to use these tabs for your work
- 4:55:34I would also like to note that on this panel in Dev tools there are additional buttons
- 4:55:40that also simplify the work of the tester for example you can inspect an element as
- 4:55:45I've already told you you can do this by simply right clicking on some element and view the code
- 4:55:50or you can click on such an arrow and point to the element you are interested in and there will
- 4:55:57be information about that element some basic information about that element plus if you
- 4:56:03click on it you will be taken directly to the line in the HTML that describes the element it
- 4:56:08is also very convenient for or for example mobile testing or if you suddenly know that
- 4:56:14you will use Mac 4 of your site here you can customize different resolutions for different
- 4:56:22devices that is you can select for example some pre-installed for example pixel 2 it
- 4:56:28will automatically to you draw the resolution that is used in the pixel 2 smartphone and you can see
- 4:56:34how this page will be displayed on the screen of this Smartphone this is very convenient if
- 4:56:40for example you don't have a mobile app but you need to test on some specific resolution
- 4:56:45then you can customize it all here and again this is where you can simulate different connections
- 4:56:52soon we can also see how the page behaves if we flip the phone vertically horizontally so you
- 4:56:59can see that here as well I would also like to tell you that you can simulate the work
- 4:57:04of various sensors that can be used in mobile devices this is also very easy to do we click
- 4:57:13on three of these dots right here click mod tools and select sensors
- 4:57:21and here we have sensor for example we can look at GPS that is we can customize
- 4:57:28it as if we had a device in London in Moscow in some other city that
- 4:57:33is we can customize all of this here you can uh also simulate the excelam
- 4:57:42you can find that there as well there's also an interesting option to connect our cell phone
- 4:57:47directly to our computer and use Chrome Dev tools and view the of this phone screen directly in our
- 4:57:54Google Chrome browser this topic is more related to mobile testing so I will not be covering it
- 4:58:00in this particular lesson however if you are still interested in learning how this can be
- 4:58:06done and how you can connect your phone and use Chrome Dev tools using our computer or laptop be
- 4:58:14sure to write about it in the comments section I'll make sure to talk about it in detail in the
- 4:58:21mobile app testing videos uh and that's all for me today we've had a very productive day diving
- 4:58:26into the details of a tool like Chrome def tools we covered what tabs are available and how you can
- 4:58:33effectively use them during testing I truly hope this video has been really useful to you if it has
- 4:58:40please leave your likes write some comments and subscribe to this channel your support
- 4:58:45means a lot to me we are already more than 300 strong I am extremely pleased
- 4:58:51that this topic interests such a wide range of viewers let's call you that
- 4:58:56you and I are doing a Good Deed by learning I hope this knowledge helps you become more
- 4:59:02confident in testing and land your first job see you soon Welcome to our tent bye
- 4:59:29[Music]
- 4:59:30hello YouTube last week we had a fruitful conversation about what Chrome Dev tools is
- 4:59:36what tabs it has and what this tool can be used for when test ing web oriented applications as
- 4:59:43promised this week we'll cover HTML and CSS but I will warn you right away not in the
- 4:59:49direction that we will learn how to lay out Pages describe the design of these pages and
- 4:59:54style in CSS files no we will learn in general what HTML code consists of where you can see a
- 5:00:04description of it code and a description of it's St style and design with CSS this way
- 5:00:12you can get an idea of how to test these two elements using these two formal languages uh
- 5:00:17let's begin with HTML what exactly is it HTML instructs the browser on what elements should
- 5:00:25be present on the page in other words it is with HTML that we define various text blocks
- 5:00:32the information within them and how they should appear on our page essentially laying out our site
- 5:00:46plus with the help of HTML you can also set some simple Styles describe fonts add various elements
- 5:00:53to the page or or even add pictures but for customization in a significant way we use CSS we
- 5:01:03will talk about that a little later when we disc C HTML in English its full name is hypertext markup
- 5:01:15language that is it is a hypertext markup language let's design a separate node which we will call
- 5:01:23HTML right away I want to point out that HTML is not a development language a programming
- 5:01:34language so don't fall for it when you are asked for example what programming languages
- 5:01:41do you know you don't need to say HTML that is programming languages are Java JS Python and
- 5:01:48other programming languages known to everyone please do not call HTML HTML is a subspecies
- 5:01:55of XML XML is extended markup language so it's an extended markup language and it's used for
- 5:02:03API testing it is prescribed in subprotocols which we will disc us a little bit further on
- 5:02:11within the framework of testing as I mentioned apis that's where XML comes into play so these
- 5:02:17languages are quite similar we will later go over the rules of writing files in XML because
- 5:02:24this is frequently Asked in interviews and it is crucial when testing apis now let's return to
- 5:02:32HTML a unit of information in HTML is a tag that is bracketed I think that tags with you we have
- 5:02:45all seen that is it [Music] is such brackets which contain some tag that is the name of
- 5:02:54this tag for example there is such a famous tag as a this is hyperlinks that is we can
- 5:03:01write hyperlinks here tag B for example says that our tag should be written in bold and such Texs
- 5:03:10should have a closing part with the slash what it looks like for example is for B that is again
- 5:03:20our curly bracket SL tagname and then we close that Curly bracket so we will definitely need
- 5:03:27this kind of closing tag such closing tags are used if there is some information between our
- 5:03:36two tags but there are also tags that do not need to be closed for example such tags include
- 5:03:44the input tag the IMG tag that is as you can see you just need to put it before the second closing
- 5:03:52bracket slash what is the difference between tax with a closing element and tax without it in
- 5:04:00that if there is some information between these tags for example if we are talking about tags B
- 5:04:10which indicate that our font is bold that is bold then for example there may be some text let's
- 5:04:18put it this way text that is this text will be displayed in bold on the page as input for example
- 5:04:25it says that this field is water so it is just writing that this tag says that we have a water
- 5:04:31field displayed on the page that is to say it is a separate element if we are talking about IMG then
- 5:04:39here we need to to add some attribute with a link to our picture now what is an attribute it is
- 5:04:47used to specify information as I mentioned such as the location of our picture if we talk about
- 5:04:54attributes going back to our hyperlink the a tag that is for instance the hrf
- 5:04:59attribute and if we write here the name of some site for example yandex.ru here will
- 5:05:14be the name of the site itself for example Yandex and closing our tag then we have then
- 5:05:20on the page that we lay out it will display this Yandex in the form of a hyperlink that
- 5:05:27is it will be in blue font underlined and when you click on this hyperlink which we
- 5:05:32have as me. Ru we will go to this side so this HF will serve as an attribute
- 5:05:42the attribute clarifies tag info there's also an attribute like CRS
- 5:05:48which links to our pictures location either on our server or the Internet
- 5:05:53it's similar to HF we write image SRC equals picture location [Music]
- 5:06:12[Music]
- 5:06:16for example dis C folder image and file name for example one PNG and then on our side is put the
- 5:06:27image which is located at this location and it is also important to know about what structure in
- 5:06:34general has an HTML document what Texs we use the m in order to write this structure usually the the
- 5:06:43very first tag is the document type definition and then we have the main Tech of HTML which
- 5:06:50must necessarily contain a closing element and between them there are two tags head and body head
- 5:06:58this [Music] is some service information that our user does not see that is this is the information
- 5:07:07that is used for the browser and search engines next you and I are going to open up Dev tools
- 5:07:13on some of the sites and see how to look at this at all and also body this is where our document
- 5:07:20content is already placed what our user sees so this is what we have displayed on the site itself
- 5:07:29and already inside these two main tags closing elements there are other tags which characterize
- 5:07:37either service information or information for the user if we talk for user information then here we
- 5:07:45can call the same tags a which leads to some sites contain Cipher links in itself B if we
- 5:07:54want to write our text in bold input this is a location of some elements in this case elements
- 5:08:00to enter information and some pictures for example with links to these pictures on our local machine
- 5:08:07or on the Internet that is all these tags are further used and it is necessary to remember
- 5:08:14that there are closing elements in them some tags do not require these closing elements that is all
- 5:08:22of this can be additionally learned in various sources for example on the same YouTube I will
- 5:08:28definitely leave a link for you in the description too those resources those channels that I myself
- 5:08:35used when I was studying HTML and CS ESS there is quite detailed about how you can make your
- 5:08:43first page what you need to do for this some basic tags are described that is if you are interested
- 5:08:51in this topic and you want to try to make your own simple site you can easily use this link
- 5:08:58and learn to understand in general what an HTML document is what it consists of and how to live
- 5:09:03with it in principle the information I'm going to tell you now is enough for beginner testers that
- 5:09:09is you need to dig somewhere deep most of the time even you will not resort to studying the structure
- 5:09:16of HTML document when changing Stacks that is of course it all depends on the specifics of
- 5:09:22your companies work but in general I will tell you that it is the HTML document HTML markup is very
- 5:09:34rarely used for front end testing purposes basic basically you will have some mockups
- 5:09:41by which you will look at the sizes of certain elements that is to inspect with the help of are
- 5:09:50def tools these elements to look at their sizes to look at the fonts that are used there to look
- 5:09:56at some distances from one element to another that is it is all described in all tools for
- 5:10:04the development and uh design and mockups that is you should not not have any problems with it
- 5:10:11and if you have any questions about HTML please feel free to write in the comments and I will do
- 5:10:16my best to answer them if you still cannot find this information on the internet remember that
- 5:10:22for a tester is extremely important to be able to Google what you don't understand therefore if you
- 5:10:28have any questions you should not immediately run to a knowledgeable person instead first
- 5:10:34Google it read thoroughly and try to understand everything yourself and if you don't understand
- 5:10:39it only then you need to contact your Mentor for example at work or to me if you're watching this
- 5:10:47video here and you're just learning and as I said let's use the example of our favorite and famous
- 5:10:54onliner site which we have already used in our previous lessons to see how it looks like in a
- 5:10:59browser in Dev tools so as I said there is dog typed. HTML that is written in HTML language
- 5:11:12there are HTML TXS that both open and close and there are also head and body TXS additionally
- 5:11:18Within These head and body tags you can open them up and examine the other tags
- 5:11:23present there as I mentioned earlier at the beginning we have in the head section
- 5:11:28information that is not for users but rather for our browser and it includes various tags
- 5:11:34this section contains encoding information as well as information about the script
- 5:11:39that are being utilized on the page furthermore there are the various links that we have on the
- 5:11:47page which we do not need as end users and it is more for the operation of the site itself we have
- 5:11:55all this stuff laid out here and if we are talking about a baaa this already contains information
- 5:12:02about what we have on the page as you can see we have mostly everything in scripts here because
- 5:12:09online it is written in JavaScript and that JavaScript already draws all the elements on
- 5:12:14this page so you cannot see some tags that we talked about earlier because they are not used
- 5:12:21here here that is at leure we study watch videos learn to recognize these tags remember remember
- 5:12:39their basic properties and if you are asked for an interview do not get lost tell everything we
- 5:12:48know about HTML and I'd like to tell you a little bit more about CSS CSS stands for
- 5:12:55cascading stylesheets let's type it out right away so that you can keep in your
- 5:13:00head what it sounds like that is a formal language for describing the appearance of
- 5:13:07a document that is written in HTML in simple words is how the elements on our page should
- 5:13:13look like in general CSS can be set in three different places that is we can specify our
- 5:13:22test listic features of certain elements and set them in three different places first can
- 5:13:29be set inside the HTML itself inside the style tag I mean it all looks pretty straightforward
- 5:13:37this will be again our known tag structure that is inside this tag will be written for example
- 5:13:42the size of the font its color the location of this element on the page that is all this can
- 5:13:48be specified inside our HTML code using style tags the second way is inside the attribute
- 5:13:58that is for example we already have familiar tag image IMG and with the help of tag style
- 5:14:04or rather not a tag but an an attribute sorry we can also specify information for example about the
- 5:14:10background here we use not our style tag but the uh attribute inside some tag for
- 5:14:23example image and the Third Way is when we set some style features inside a separate document
- 5:14:29for example style CSS then is an extension of this document CSS and we inside our HTML make
- 5:14:38a link to this this document with the help of tag link that is link relationship at we will
- 5:14:45have stylesheet and HF is a link to where we have our file style. CSS that is these three ways we
- 5:14:55can also utilize where can we find information about what we have encrypted in CSS once again
- 5:15:03we have the elements tab in Chrome Dev tools and this is where the style section is located
- 5:15:09this is where all the relevant information is contained as well for instance if we inspect an
- 5:15:14element that we have on the page here we can see details about the width about the height about
- 5:15:22its position what background images we're using and the dimensions of those background images
- 5:15:31images fonts that is all of this here you can look at the position is also drawn here that is
- 5:15:39if we have on the mockup for example it is written that the borders should be 3 in six pixels then we
- 5:15:47can see it all here compare whether it is really so so this is basically what CSS is used for the
- 5:15:55Styles tab the computed tab that is we have all this information written here too we can open it
- 5:16:01look at somehow more detailed in general what we have written here you can see all of this here
- 5:16:07what else is it useful to know for example HTML for in order to use information about locators
- 5:16:15that is about the location of our elements on the page in the future when automating we can look at
- 5:16:23that here too unfortunately I am not involved in automation so I will not be able to give
- 5:16:28you a more detailed Tour on this topic but I know for sure that if you are going to do this in the
- 5:16:35future to develop in automation this knowledge of HTML will help you in the future further for
- 5:16:43example you will know this locator and already in the code in your script which must be run to
- 5:16:49perform a particular test you will prescribe a specific locator on the basis of which when
- 5:16:56performing the test will be exactly clear where you need to click for example in order to log into
- 5:17:02the system on what button this is what locators are used for to put it simply and returning to the
- 5:17:08beginning of our lesson as I said we did not set ourselves the goal of learning how to lay
- 5:17:14out a page and bind to it CSS file also using some attributes and tags inside it but just
- 5:17:21learned in general what HTML consists of tags attributes the structure of the HTML document
- 5:17:26itself and where the information about styles of various elements from CSS is pulled from
- 5:17:33how we can bind it to our HTML document or create a separate document with extension
- 5:17:39style.css bind it to the HTML document or create a separate document with the extension style.css
- 5:17:45it with an HTML document and later utilize it to describe the styling features of our page for a
- 5:17:53beginner tester these fundamental concepts will be sufficient if it's your work you are going
- 5:18:01to be engaged in testing web applications in the future and a lot of attention will be paid to HTML
- 5:18:08CSS I believe you will be informed about it and will be guided on where to find
- 5:18:13more information perhaps Mentor will share his knowledge make knowledge transfer for
- 5:18:20you so do not be afraid study read watch type all information and that's it for me I'm glad
- 5:18:31there are more of us every week that is every time I record a new video and post
- 5:18:38it on YouTube I look at the number of my subscribers and I am truly happy
- 5:18:43that this topic is interesting to so many people and I always enjoy your
- 5:18:47feedback so make sure to put your likes and uh if you are here for the first time please
- 5:18:55subscribe to this channel also write in the comments whether this video was useful for
- 5:19:00you and what else you would like to learn about web application testing there are not
- 5:19:06so many tutorials on this topic left so your feedback is really valuable perhaps you have
- 5:19:12some unique requests these requests might find their way onto my channel as well Welcome to our
- 5:19:20shalash [Music] bye hi YouTube I'm really glad to see you all in another session on testing web
- 5:19:33applications this session is incredibly important to us so make sure you join in because today we're
- 5:19:40going to dive deep into learning how you can actually test various web forms this
- 5:19:45is essentially what beginner functional testers do for the most part make sure to stay until the
- 5:19:52very end of this video because there's some really interesting information waiting for you there that
- 5:19:58will definitely help you get more excited about this before we talk about the forms themselves
- 5:20:04of which there are a huge number now you can see on the screen that there are not 10 pieces
- 5:20:09but about 20 if not more and each of these forms has its own peculiarities in testing somewhere
- 5:20:16they overlap but to understand for example how to uh test text fields or some text areas you must
- 5:20:26first understand the issue of validation on pages there are two types of validation on web forms on
- 5:20:34web pages these are known as client sit validation and server side validation so what does that mean
- 5:20:44when we talk about client side validation this type of validation happens before the moment we
- 5:20:50send a request to the server so for example we have a text field where we can enter a first and
- 5:20:59last name this field has a limit on the number of characters we can enter for instance we can
- 5:21:05enter up to 15 characters into this field if we enter for example 16 characters the system frowns
- 5:21:14and gives a validation message a popup window shows us that the maximum number of characters
- 5:21:22you can enter in this field is 15 this is client side validation meaning even before our request
- 5:21:30reaches the server the client processes it and tells us there's an error this is written in the
- 5:21:36code itself When developing the front end and this validation is not considered the best so there are
- 5:21:45always server side validation because on the client side we can change our layout as we have
- 5:21:54already seen on the HTML example we can enter some data we can change the same validation messages
- 5:22:00that are displayed on the front end and adjust the number of characters so the server always
- 5:22:08has its own validation that also checks that for example in field name we have entered no more than
- 5:22:1815 characters and indeed such information can be processed by the server if we have entered
- 5:22:2516 characters in this field this request gets to the server and the server returns its own error
- 5:22:31for example a status code indicating that we have entered more characters than allowed and thus this
- 5:22:38request cannot be processed by the server that's why there should always be validation on the
- 5:22:44client side as well as validation on the server side and we should always ensure that the client
- 5:22:50handles this validation if it is specified in our requirements and also verify that the server does
- 5:22:57to that is it cannot be that on the client for example we show a revolutionary error message
- 5:23:05that we have a greater number of characters than planned that is instead of 156 but the server
- 5:23:14safely eats this information processes it and does not realize that it is an error that is it will
- 5:23:20already be a critical bug because such errors on the server can be for example related to security
- 5:23:29now we have field is not particularly secular that is it is first name and surname but it can be
- 5:23:38for example a password or information about your card and if for example such information gets to
- 5:23:47the server incorrect information and it processes it correctly as if this information really meets
- 5:23:54all our requirements and validations then various risks can arise now let's go directly to the forms
- 5:24:02themselves which we can apply on the site When developing the design when we wrote Our code
- 5:24:09and how can we validate these forms what are the mandatory checks that we have to do the
- 5:24:13first field which I've already talked a little bit about is just our text field where we enter
- 5:24:18some text what should we be checking here as you can see these two fields are mandatory so
- 5:24:24it is logical to assume that one of the checks will be related to the fact that we leave some
- 5:24:30of the fields empty or we leave two Fields empty and for example we try to register in the system
- 5:24:36the system should show us some error information that these fields are mandatory and must be filled
- 5:24:42in that is we check each of these fields and the two Fields together also we are likely to have a
- 5:24:49character limit here as I said earlier in the examples client and server validation and here
- 5:24:58we have to enter so the number of characters that will exceed that allowable limit either be equal
- 5:25:05to that limit and necessarily a value that will be be one less than the allowable limit if you
- 5:25:16forgotten why these are the values we should be testing make sure you go to my lesson on
- 5:25:20test design techniques where I talked about what test design techniques we can apply and so one
- 5:25:26of them namely boundary value testing is what we apply here the same goes for the number of
- 5:25:32minimum characters that we can enter in this field again we test the value from the minimum minus one
- 5:25:41the value on the boundary itself and the value of the minimum value plus one if for example it says
- 5:25:50here that we can only enter Latin characters then we should check other characters as well
- 5:25:55such as ceric how will the system react to this input will it show some validation message that
- 5:26:00only Latin characters can be entered in this field the same applies to various numbers some special
- 5:26:08characters we can also enter just spaces because spaces themselves are counted as one single
- 5:26:16character that is when we say we can only enter 15 characters into this field we're not flushing
- 5:26:23the spaces themselves they will count as full characters you should also verify when entering
- 5:26:29one space at the beginning one space at the end how the system will react also try entering spaces
- 5:26:37in the middle of our input additionally speaking of security we must definitely check the input of
- 5:26:44various tags as I mentioned in our last lesson tags are very easy to distinguish from plain
- 5:26:50text that is it will necessarily be parentheses in the form of a greater than and less than sign
- 5:27:02that is an opening and closing tag why is it important to check tags attacks are used not
- 5:27:09only in layout but also in various scripting languages for example in JS and an attacker can
- 5:27:15take advantage of this and enter some WordPress script that for example will get your information
- 5:27:21when enters it directly into this field so we make sure to check this fact we also check the Tex for
- 5:27:30example bold as we remember it's a bold font and again not whether or not our system is trigger
- 5:27:38that is whether or not it will tempt this tag and for example whether or not it will be able
- 5:27:43to display the values that we've entered in bold again this would indicate that
- 5:27:49the system understands these tagon doesn't treat them as just text so these are again
- 5:27:56potential problems that we have related to security to securitization and also in these
- 5:28:03fields must be checked necessarily here is our dat data from the clipboard that is just ctlc
- 5:28:11ctlv whether our system can process it and whether we can insert this text here so you
- 5:28:20have to look at that too in principle the same rules apply to some text areas that
- 5:28:25is for example a text field is limited to the number of characters 15 a text area is
- 5:28:30a certain large area where we can enter a large text usually these areas can also be stretched
- 5:28:38which means in that case there will be this kind of triangle in the corner here we can also
- 5:28:43check whether this area can be stretched how much it stretches how the text adapts to the
- 5:28:48size of this field that is we can check all this here as well uh so the checks here are the same
- 5:28:56the next point is our prefixes in links usually these are the names of HTTP FTP https protocols
- 5:29:08what are we checking here we check the fact that when we leave this field empty that is we do not
- 5:29:13enter any prefix or we enter it and um various types of protocols so for example we know that
- 5:29:24our site runs on https so we enter https here if we enter here for example FTP and they link to our
- 5:29:32site and enter this site then in theory the system should show us some kind of validation message and
- 5:29:39not find this site because another protocol is already applied here I mean you can see all of
- 5:29:45that here too directly uh we can check the Inc itself that is here we also have we enter with
- 5:29:53our ww without it we enter the maximum number of characters that can be entered in this field if
- 5:30:00it is limited again we remember our border checks minus one plus one and On the Border itself enter
- 5:30:07some Russian characters for example if our system can eat them and process them then okay if not
- 5:30:14again there should be some kind of error or the resource that we're loading should show some kind
- 5:30:21of message or a status quoe that this page was not found please check what you entered in this
- 5:30:26field that is everything will depend on how much you have client validation client site validation
- 5:30:34whether there are any validation messages usually all all of this is specified in the requirements
- 5:30:40that is you open the requirements and judging by them decide what you have should appear is it a
- 5:30:47bug if for example you don't have any validation message and again don't forget that you can
- 5:30:53always make some improvements for example if you don't have the fact that when you enter Russian
- 5:31:01characters the system for example doesn't swear doesn't give a validation message but it's good
- 5:31:06practice best practice ice to have that validation message appear and warn you that you're entering
- 5:31:12Russian characters in that field then you can come up with such an improvement put it in the system
- 5:31:18and maybe in the future it will be reviewed and the same business analysts will write requirements
- 5:31:24that that yes indeed this validation message should appear that is we as quality assurance
- 5:31:33Engineers even if you are not one but just a tester we always keep in mind that we are working
- 5:31:38on improving our quality and it's not only that we find some bugs but in general improve the quality
- 5:31:48of our finished product bring some Concepts that can significantly impact enhancing the usability
- 5:31:55of the product itself enabling our users to learn more learn better and fully grasp how to work with
- 5:32:02this system we can explore various other resources where similar mechanisms are implemented the same
- 5:32:08features and analyze how it is done there and how we can further improve our product because this
- 5:32:16can provide us with both improved usability for our users and increased Revenue as we will stand
- 5:32:23out much better among other such similar products we make sure to pay attention to that also I think
- 5:32:31you are all familiar with such a phenomenon as checkboxes such elements on pages so they can
- 5:32:38look like this that is we just have such squares in which we check check and select the options we
- 5:32:45need also these checkbox lists can look like this that is there are some lists that can
- 5:32:52be expanded and inside they can also choose the options we need or if we have again these lists
- 5:33:01then typically has some sort of main element that includes sub elements and we can put a check box
- 5:33:07on that main element how we check data web element view be sure to look at how the system
- 5:33:16behaves when we don't select anything and again if we have for example like here the effects are
- 5:33:24perhaps mandatory to select after for example submitting our form we should see if the system
- 5:33:30is swearing that you don't have anything selected in this area let's see how the system behaves when
- 5:33:38we select one checkbox when we select several checkboxes when we select all of them again
- 5:33:45it's good practice that we have for example when we have a a very large number of different options
- 5:33:51there should be a checkbox like check all so that we select all at once rather than sequentially
- 5:33:57checking each of these available options so again if that's not there you can put that in the system
- 5:34:06as an improvement so that you can consider it in the future and put it into your project yes it
- 5:34:15is worth noting the fact that it is also a good practice to make not only the area inside that
- 5:34:21box clickable but also the area around it that is when we click somewhere near it also a checkbox
- 5:34:30should be placed so we check that as well the next element is a radio button or in the it environment
- 5:34:37can be called a radio button in our let's say slang so do not be frightened if you hear such
- 5:34:44a name the unique aspect of this element is that we can only select a single parameter unlike
- 5:34:51checkboxes where we can choose multiple options here we are limited to one typically by default
- 5:34:58some element is already selected which can be modified later it is also important to note that
- 5:35:05in radio buttons there isn't an option for no ele element to be selected in other words one element
- 5:35:11must always be chosen let's verify the fact that we cannot select multiple elements in radio
- 5:35:18buttons we check the facts that uh when we click next to with this element we also have a check of
- 5:35:28the option that we select the next element is multiple selector that is that is as the name
- 5:35:37makes clear we can select multiple options from a large number of them here we check the fact
- 5:35:43that we can select the parameter itself one we can select several parameters we do not select
- 5:35:52anything as the system behaves for example if you have a drag and drop feature that is when we take
- 5:35:58some element and drag it for example to list of selected elements that is that it should work well
- 5:36:07this applies to other elements on the page as well so that's something we can test as well
- 5:36:12also usually in multiple selectors we have the ability to both add an element with plus
- 5:36:18and remove it that is we check if we can do that we add an item by clicking on the plus sign and
- 5:36:25delete it by clicking on the minus sign if we have any sorting we also check the fact that we have
- 5:36:30everything sorted correctly this also applies to other elements on the pages that is we also
- 5:36:35pay attention to the fact that if we have sorting there is some filtering that is all this we must
- 5:36:40necessarily check if if it is possible to delete all elements delete them if it is possible to add
- 5:36:49all elements then add them again if you have the ability to do some kind of search we type in the
- 5:36:56search box and see if the search actually works you can do all of that here again it also depends
- 5:37:06on what is specified in the requirement now I am telling you about some variant that I know
- 5:37:12of again in your system it may be implemented quite differently so paying attention first
- 5:37:19of all to the uh rivers that you have on your project the next element I'd like to talk about
- 5:37:25is the uh element that allows us to upload any files it usually looks like this I think it is
- 5:37:33also familiar to all of you what can we check here first of all don't select any file to upload see
- 5:37:39how the system behaves again if this is some kind of mandatory attribute and at submit for
- 5:37:46example of this form they do not show validation of some kind the message then again it could be a
- 5:37:52bug we also check the download of the file itself that is here we have it written that the maximum
- 5:38:00size of the uploaded file is 10 mbes that is it gives us a hint that this file cannot be larger
- 5:38:08than 10 megabytes let's check it again at the very boundary 10 megabytes we check because we have two
- 5:38:14digits after comma 10 1 and 9 99 megabytes that is we check all of this there are special resources
- 5:38:26that can generate the files we need if we have requirements to format that is we can for example
- 5:38:35upload doc files XLS and pictures then we check all the invalid file formats that we can think
- 5:38:42of we check the valid file formats as you and I remember the first checks that we always do they
- 5:38:48are positive positive checks are those that meet our initial requirements again if you've forgotten
- 5:38:57what positive tests negative tests are I have a separate video dedicated to this point related
- 5:39:02to test classification now the link will appear at the top go through remember be sure to leave
- 5:39:10your comments if something is unclear to you if it is possible to enter for example information
- 5:39:17about the path to a given file that is we also entered here look really whether it handles bugs
- 5:39:26that is we find them and there are various other interesting things here I mean we can go through
- 5:39:31these challenges as well if you know something it is for yourself for your development for your
- 5:39:37practice is you can click through all of this here look through it and the most interesting
- 5:39:41thing is that there is a Hall of Fame here this is information about those people who have scored the
- 5:39:47maximum number of points for this or those other challenges it's also a cool competitive effect
- 5:39:52that comes into play game uh also leave a link in the description to that as well that is go to
- 5:40:00it study it I hope that these links will be useful to you they will all be in the description of this
- 5:40:05video I would also like to note that there are a huge number of checklists on the web dedicated
- 5:40:11specifically to testing web forums you can find them download them save them for yourself and
- 5:40:16use them for your practice for the future I will tell you uh there are such checklists for testing
- 5:40:21mobile applications and for testing accessible applications and for some other testing for
- 5:40:30security testing for performance testing they are made to simplify your work and to make sure that
- 5:40:36you don't forget anything again these checklists are not the only source of truth that is you study
- 5:40:44them memorize them save them and can make some changes in these checklists and use them in the
- 5:40:49future for your practice for your work so that you don't forget these or those checks that you
- 5:40:55should do for web form I hope that this video was useful to you you learn something new for yourself
- 5:41:00you will learn how to test these web forms in the future and you will not be confused at interviews
- 5:41:05when you for example will be offered to test the form with a password and its confirmation how it
- 5:41:12should be done what checks you will perform uh as this is often really asked at uh real
- 5:41:19job interviews in real interviews as always I ask you to support this video with your likes
- 5:41:27write your comments so as comments promote this video in Search and more people will learn about
- 5:41:33my channel learn and in the future can apply for position of a tester of some IT company
- 5:41:40develop and take their place in the it sphere and that's it for me as usual Welcome to our Shellos
- 5:41:49[Music] bye hi you tube it's been a while which means it's time for another lesson on testing
- 5:42:11web Centric applications there have been a lot of requests related to the fact that people want to
- 5:42:17know tell us ROM please about how to test apis how to test web services about rest about soap so we
- 5:42:27are starting this topic today and I decided that it will be more efficient to divide it into two
- 5:42:35parts today I'm going to give you a theoretical background I'm going to talk about what the
- 5:42:41protocols are what the architectural styles are with a which in app service communicate with each
- 5:42:48other in general today we will discuss this topic and in the next lesson we will begin practicing
- 5:42:55testing apis and sending requests I will explain tools such as soapui and Postman additionally I
- 5:43:03will show you Services where you can practice including some test apis and documentation so
- 5:43:11make sure to stay tuned to this channel I think this information will be useful to you because API
- 5:43:20testing is quite in demand for testers nowadays and even a novice tester a genie needs to know
- 5:43:27the basic aspects and the basis of how to test web services I have already said such a phrase or word
- 5:43:35as web services a few times so let's talk to you about what it is web services or web services is
- 5:43:44a program that organizes the interaction between websites that is information from one portal is
- 5:43:52transferred to another this is in simple terms if you wrap it up a bit more cleverly it is such
- 5:43:58a web oriented technology which allows programs to communicate with each other using standard formats
- 5:44:05such as XML and Json on and through special protocols now here I will immediately correct
- 5:44:10myself protocols like sub and the uh architectural style rest how they differ I will explain a
- 5:44:19little further so for example you have a certain Airline which has a large number of flights and
- 5:44:27consequently a lot of tickets the information through a web service is sent to a travel
- 5:44:33aggregator site which is from our Airline with the API we can connect and build in some functionality
- 5:44:41that will directly with this action when a user goes to this aggregator they will be able
- 5:44:47to directly purchase some airline tickets on the same side without needing to go to the company's
- 5:44:53site or another example of web services is a weather tracking site which contains
- 5:45:05some information about weather condition in a particular city or country this information is
- 5:45:10also used by third party applications or some other sites so we just embed this form where
- 5:45:17we have the weather information it can also be projected for example on currency rates
- 5:45:23that is you have often seen that websites have embedded some kind of forms where you can make
- 5:45:31online conversions from one currency to another or for example authorization with the help of some
- 5:45:38social networks like Google vont or Facebook that is when you for example navigate to some site and
- 5:45:46it says that you can register using your accounts in other social networks it also functions through
- 5:45:53an API I talked about the different interfaces including apis uh a little bit earlier in the very
- 5:46:01first lessons on the types and categorization of testing that is I told you what interfaces exist
- 5:46:08in general now the link to this lesson will appear at the top so you can go there either to refresh
- 5:46:13your knowledge or to learn something new for yourself if you are on this channel for the first
- 5:46:18time and you have never heard about different interfaces and then we're going to go smoothly
- 5:46:23to what I said at the beginning which is the soap protocol is used or the rest architectural style
- 5:46:30let's start with the soap protocol this is an acronym the full name is simple object access
- 5:46:38protocol so it literally translates the simple object access protocol that is this protocol
- 5:46:44exchanges structured messages in a distributed computing environment it sounds really hard but
- 5:46:51I'll explain it in a moment that is this protocol is used to exchange arbitrary messages in XML
- 5:46:58format XML doesn't remind you of anything you and I were talking about HTML at some point in essence
- 5:47:09the form of writing itself is the same in HTML and XML but this format has its
- 5:47:15own peculiarities which we will talk about a little later in this lesson also sap can be
- 5:47:20used with any application layer protocol if you and I recall a model like OSI there was
- 5:47:27an application layer again now the link to the video on this model will appear at the top and
- 5:47:34such Protocols are SMTP FTP HTTP HTTP as that is that is sa can use these types of protocols
- 5:47:43however the interaction of this protocol with other protocols has some peculiarities that
- 5:47:50we will not talk about in our course and this lesson so if you are interested you can Google
- 5:47:56this information it is publicly available these are shall we say the materials with
- 5:48:04an asterisk first of all you just need to know that there is a soap protocol and it is used in
- 5:48:10web services and let's move right on to the next aspect that we need to look at within
- 5:48:15soap this is xcd and WSL what are these as I said in soap XML files are used to convey any
- 5:48:29information and it's xcd it's XML schema definition it is describes the structure
- 5:48:37of our HTML document and the types of data that can be stored there so you have this xcd file in
- 5:48:44your web service and with the help of it we can define various elements data inside our XML I and
- 5:48:52transfer them via internet that's the interesting thing about CD the next aspect that I wanted to
- 5:49:00look at is vsl that is it is such a file with such an extension and with such a format it is written
- 5:49:10in vsl which stands for web services description language and what is this file for it describes
- 5:49:18messages headers and events that are specific to our web service that is this file describes
- 5:49:25the entire structure of our web service and it is absolutely mandatory for this app protocol
- 5:49:33that is to say without this particular file we simply cannot not utilize the sa protocol at
- 5:49:38all in further testing this file makes the work significantly easier this is because unlike the
- 5:49:45rest architectural style where there is no such document that clearly structures the work of our
- 5:49:51web service testing can be somewhat challenging so when you have a vsl it is indeed a very beneficial
- 5:49:59thing each vsl document can be divided into the following logical Parts there is a small sample
- 5:50:07here what do we even have in stdl first of all has data elements it's message that is it's the
- 5:50:16message that our web service uses also there's information about data types its type as you can
- 5:50:26see and this information defines the types of XML messages that are sent and received by the service
- 5:50:34as you can see here we have strings so these are just plain strings there is also a block like
- 5:50:41Port type this is a list of operations that can be performed on our messages that is as you can see
- 5:50:52in principle I think it will not be difficult to translate from English that is there are different
- 5:50:58types of operations here get term get term request get term response responses requests that is all
- 5:51:05of this here can be encrypted it and spelled out how we will interact with the service in general
- 5:51:12with our messages here what you need to remember is that always if we have soap we always have vssl
- 5:51:20because sometimes in a job interview you might be asked for example what is the difference between
- 5:51:25soap and the same rest architectural style one of the key differences is the presence of vssl
- 5:51:31and the fact that as I said messages are exchanged using XML and the information about how that XML
- 5:51:39should structure the information is contained in the xsd then is XML schema definition and make
- 5:51:46sure you memorize the rules that are used when writing these XML I XML documents again these are
- 5:51:55very often asked in interviews so let's break them down in more detail as I said if we're talking
- 5:52:00about XML it's a language that's very similar to HTML but unlike HTML it has has as you can see
- 5:52:07a different decoding which means it's an extended markup language and if HTML is used for marking up
- 5:52:14the page for layout then XML already stores some of the XML is a structure of information and with
- 5:52:22the help of it this information can be transferred in the communication of our web services the
- 5:52:27structural unit of XML is elements here is a scheme of such elements what are they made of
- 5:52:35again let's think back to our HTML we covered the basic aspects of it in our last lesson as you can
- 5:52:43see in an element we have an opening tag a closing tag content that is stored between these two tags
- 5:52:50and attributes so everything is quite similar to HTML however what do you need to know when
- 5:52:57writing or testing XML and what should you pay attention to first of all XML has only one root
- 5:53:05element I mean look here we have a root element called person that's the correct way to spell it
- 5:53:12so here's the opening tag and here's the closing tag and we don't have any other root elements then
- 5:53:20we have an incorrect format which happens when we have the root element person as you can see and it
- 5:53:27is duplicated again for some reason so it really should not be like that we should simply have
- 5:53:36an opening and closing tag for this root element the next important aspect is that all elements
- 5:53:43should definitely have closing tags as you can see here we have two tags person and family they both
- 5:53:51have opening and closing tags however there is one element that does not have a closing tag as we
- 5:53:58remember the closing tag consists of curly braces and we have a slash before the tag itself so it's
- 5:54:05so wrong we shouldn't leave just one opening tag the next aspect is that the names of our tags are
- 5:54:15case sensitive what does that mean in case you don't know what case sensitive means it refers
- 5:54:22to the fact that our tags are either uppercase or lowercase sensitive so we should always use
- 5:54:30the same characters at the beginning of our tag so as we can see here we have it right here we don't
- 5:54:38because in one case we have a tag that starts with capitalized otherwise lowercase so it's wrong the
- 5:54:46next point is that the elements must not overlap what does that mean let's pay attention to the
- 5:54:52second element which contains an opening and closing tag and inside this element contains
- 5:54:58another element also with an opening and closing tag so everything is correct here we have opened
- 5:55:06a tag we wrote some information into it closed it and inside it since there is another element we
- 5:55:13also opened tag and closed it there is no overlap if you and I pay attention to the wrong writing
- 5:55:21here we open the tag then we wrote a new tag for some reason close this tag and uh the next moment
- 5:55:29we close the tag that is contained inside so it's not right that way I hope I explained it properly
- 5:55:37if anything pause just look at the way our elements are written here the way the tags
- 5:55:43are written I think you'll understand when you do a little resurvey literally just Linger on
- 5:55:48this rule for one minute the next aspect is that all attribute values must be in quotes as
- 5:55:55you can see here we have a name attribute with a value of John but for some reason that value
- 5:55:59is not enclosed in quotes So that is incorrect here's the second correct option where we have
- 5:56:07attribute its value that value is in quotes the next attribute its value is in quotes so that's
- 5:56:13the correct one the next rule is that that the greater than sign the less than sign the UN icon
- 5:56:20cannot be used in text blocks instead we should write them in text format like this that is you
- 5:56:27can also pause make a screen and memorize for yourself how it should be recorded I don't think
- 5:56:34it's worth explaining because as we understand we use the greater than lesser icon tags themselves
- 5:56:42and the system may not process them correctly if we are talking about the imperson icon then as
- 5:56:48you can see it is already used for text recording of all these elements and quote marks are used to
- 5:56:57to separate attribute values that is also they may not be handled correctly by our system one
- 5:57:03last point is that an XML declaration is always the first line what is an XML declaration it is
- 5:57:10a separate line that contains information about the version number of our XML an indication of
- 5:57:19the encoding of our characters and Standalone parameter that indicates whether references to
- 5:57:26external documents are forbidden that is remember that we have XML declarations in the first line
- 5:57:34these are the basic rules that apply to XML you need to memorize them because in a job interview
- 5:57:41for example you might be given an XML with errors and ass to find them so you need to be prepared
- 5:57:48for that and the next aspect to consider when testing web services is rest rest as I said is
- 5:57:55an architectural style just so you understand the difference between an architectural style
- 5:58:02and a protocol an architectural style does not apply any rigid rules it does not require any
- 5:58:10vsl although there is a document format called Fadel but it is not necessarily required that is
- 5:58:16if it is not present then everything is still fine and that is why rest is being used more
- 5:58:22and more often now because this architectural style allows us to write information in a more
- 5:58:29convenient format which takes up less space and increases the performance of our system and it is
- 5:58:38also let's say not rule dependent meaning it has fewer requirements so it's used more often now if
- 5:58:45we talk about the full name it's representational state transfer also I want to highlight the term
- 5:58:52restful what's the difference between rest and restful rest is just an architectural style with
- 5:58:59which we describe the structure of information transfer in web services generally speaking
- 5:59:15in general there are some rules related to how this information should be transmitted
- 5:59:19then restful is already a characteristic of our web services that is these are web
- 5:59:24services that fully meet the requirements of rest which impose this architectural style that
- 5:59:31is rest essentially describes the structure of our web service and restful is the web
- 5:59:37service itself which meets the requirements of rest also don't get confused or scared if
- 5:59:43you are asked in a job interview about the differences between these two concepts and
- 5:59:49unlike sapi we use Json in rest Json stands for JavaScript object notation what you need to know
- 5:59:57about Json is that unlike XML it doesn't have very strict rules it is much more flexible as
- 6:00:05I've already mentioned mentioned Json takes up less space and is much more convenient to work
- 6:00:10with and let's dive into the basic elements that we have in this Json to start with Json
- 6:00:22documents are composed of objects now objects are essentially an unordered collection of
- 6:00:30pairs specifically name and value pairs here we can see the very first node which
- 6:00:36is associated with Json it is an object an object is typically enclosed within curly brackets and it
- 6:00:42includes as I mentioned earlier name value pairs for example name equals name value equals Peter
- 6:00:50name equals name value equals Ivan and these name value pairs are separated by a comma and the name
- 6:00:57and the value itself are separated by a colon that is also nothing complicated here just remember
- 6:01:03that there are curly brackets that [Music] our name and value are enclosed in a code between
- 6:01:10themselves the name and value are separated by a colon and the name value pairs are separated
- 6:01:15by a comma a name is always a string meaning the data type for it is a string and the value
- 6:01:23itself as we have here for example Peter can be either a string in in double quotes or a number
- 6:01:31some logical value that is true or false an array or the value now we will discuss arrays a little
- 6:01:38further on and the value now that is just here is essentially a value of now if we're talking about
- 6:01:48a data type like a string it's an ordered set of zero or more uni code characters enclosed in
- 6:01:55double quotes that is as here is our name which is essentially the data type string is enclosed
- 6:02:07in double quotes a string is easily distinguished from any other data type if we're talking about
- 6:02:14prime numbers they don't need to be enclosed in quotes and just by the example of an index you can
- 6:02:19see the difference if we use a number as a value we do not write these quotes and then our system
- 6:02:26perceives this data as numeric only you and I use quotation marks to write our number do not confuse
- 6:02:36number record and data type number when we use quotation marks then automatically this data type
- 6:02:42turns into a string and is perceived by the system as text if you and I use some Boolean values then
- 6:02:50we don't need to use them in quotes as numbers that is true false we do not put in quotes as soon
- 6:02:57as we enclose true or false in quotes then again it is perceived as string and the last type of
- 6:03:04data we will discuss is arrays so what exactly are arrays they are essentially a set of our objects
- 6:03:13as you and I remember objects consist of a number of pairs specifically name and value pairs once
- 6:03:20we have several of these objects that we want to use we then enclose them within arrays an array is
- 6:03:26always enclosed in square brackets and the values within that array are separated by commas so as we
- 6:03:33can see here we have an object which consists of a name and a value and this object is enclosed in
- 6:03:42curly braces and there's another object that also contains a name and a value also in curly braces
- 6:03:49we separate them from each other with commas and the whole thing the array itself we put in square
- 6:03:55brackets this is what concerns rest it's much simpler here in the next lesson I will show you
- 6:04:02the postman tool in which you can take test both swap requests and rest requests that is we will
- 6:04:12see and feel it all and you will learn how to send some simple requests there is nothing complicated
- 6:04:20about it another thing that I would like to point out as I mentioned in this lesson very often in
- 6:04:27interviews people ask what is the difference between rest and swap web services let's list
- 6:04:35these differences rest supports different formats so here I've given you Json that's the most common
- 6:04:41but you can also use and XML and text formats but soap we can only support XML rest only
- 6:04:50works over HTTP or https protocols sap unlike rest can work with a variety of protocols read
- 6:05:03based sap cannot be cached unlike rest which can then be cached well these are such basic aspects
- 6:05:11and as I said rest is an architectural style which doesn't have such a huge number of rules
- 6:05:19that it has to obey making it more flexible in many scenarios sub is a protocol that is
- 6:05:27highly restricted by the rules that applied to it again remember at least the XML car and
- 6:05:35all the rules I have listed in Json where there are no such critical rules so what should be
- 6:05:42chosen on a rest or sub project usually when one asks this question rest against sa it can
- 6:05:47be rephrased as Simplicity against standard in the case of rest this Simplicity you will have speed
- 6:05:57extensibility and support for many formats and also not as tied to those rules that are to sub
- 6:06:06in the case of Saab you will have more Security
- 6:06:08Options and also you will have uh let's say if we are talking about testing more opportunities
- 6:06:18uh conduct this testing qualitatively because immediately in sappi you will
- 6:06:23have fsls where samples of your requests will be prescribed that is you will not
- 6:06:29need to address to the developer once again to ask him to provide you with information some
- 6:06:35Le requests that is you can immediately take and use them testing well on top of thatp is much
- 6:06:44more resource intensive it takes up more space and it's slower and generally if we're talking
- 6:06:51about development development using CP takes longer that's probably all regarding the theory
- 6:06:57behind web services within the framework of this lesson of course I cannot and could not tell you
- 6:07:04everything that could be related to the testing of web services but this knowledge pertains to
- 6:07:12safe rest the format used there the documents involved which one is faster and which one is
- 6:07:19easier in other words this is all you will need to successfully interview for
- 6:07:28an entrylevel tester position I will definitely leave in the description of this video links
- 6:07:35to lectures classes that can help you let's say to learn about web services with an asterisk if
- 6:07:45you're interested by all means go over there because it's more structured people have been
- 6:07:50working with these Technologies much longer than I have so you'll probably learn a lot more from
- 6:07:55them also as I promised in the next session we will cover with you the Practical aspects
- 6:08:03of testing web services and testing apis so be sure to subscribe to this channel leave your
- 6:08:10comments and ask questions I'm always interested in getting some feedback from you I also want to
- 6:08:16remind you that I have my own telegram Channel where I periodically post useful articles there
- 6:08:23you can learn about aspects related to both employment in ET and useful resources and links
- 6:08:30that will help you even further get yourself pumped up for testing any application whether
- 6:08:38it is desktop web or mobile so thank you very much for watching Welcome to our tent [Music]
- 6:08:54goodbye hello YouTube finally we have your long awaited video about testing web services from a
- 6:09:09practical point of view that is today in class you and I will learn about tools like SOI which helps
- 6:09:16us to test swap we will also learn what Postman is we will learn how to send some simple requests
- 6:09:23um additionally I will also show you different test beds where you can practice so let's get
- 6:09:29started and dive into the fascinating world of testing web services together and in general I
- 6:09:36will show you how you should write test cases how you should create them including positive
- 6:09:42tests negative tests mock tests critical path tests and extended tests that is I will explain
- 6:09:51all of this in detail so that you won't have any questions in the future the topic of API testing
- 6:09:59is quite extensive and complex but we will try to discuss it thoroughly and it will help
- 6:10:05you to pass the interview successfully in the future I will not tell you about all features
- 6:10:11that are in this software it's a topic for a separate much larger course but the data
- 6:10:18and knowledge that I'll provide you with will be sufficient for you to learn these tools on
- 6:10:23your own it will give you a solid foundation so that you won't have any silly questions
- 6:10:29when you come to a project where you will encounter API testing so let's get started
- 6:10:35first and foremost I would like to say a few words about the principles that I will be guided
- 6:10:40by in this lesson there is such a wonderful uh tester or tester uh Olga kisela by her maiden
- 6:10:59name or Olga nazina in marriage she is a great teacher she has her own course on API testing
- 6:11:07this is not as an advertisement just so you know and she has a wonderful Block in which
- 6:11:13she collects very useful things and articles just for uh beginner testers as well as for
- 6:11:20continuing testers and these are exactly the resources that she is hosting and we will use
- 6:11:26them that is we will not invent a bicycle for educational purposes the user system has been
- 6:11:32developed which we are going to feel a little bit and find out what it is I'll be sure to leave you
- 6:11:37with links to all of the Articles and all of the resources that we're going to be looking at today
- 6:11:44but let's start with the users backward system in principle we will need it today in class and here
- 6:11:54is also if you follow this link it will be wsdl if you and I remember the last lesson this is our
- 6:12:01schema where various methods for so requests are described and there's also information
- 6:12:07about rest when you and I will be testing rest with Json but I'll get ahead of myself right
- 6:12:14away you and I will not need this information we will use the already written documentation
- 6:12:22where examples of requests and responses are written because in this form it is not quite
- 6:12:27it is convenient to understand in general what is wanted from us and in a good way on all projects
- 6:12:34you should have sample queries with ROM that is you contact the developer it gives you some
- 6:12:41example of a query and perhaps answers to this query and you already test with the help of this
- 6:12:48input data if there is no such thing then of course your life becomes complicated but in
- 6:12:53any case you should start your work with communication with the developer if there
- 6:13:00is no documentation on the project if there is documentation available then we will address it
- 6:13:06directly so you can close this tab as we won't need it today additionally there are links to
- 6:13:13other resources dedicated to this topic however we will not touch upon them today and that is
- 6:13:20perhaps all for now as for this article here is the second article that we will need there
- 6:13:28is also a link to the test jira which Olga and her team initiated for training purposes but
- 6:13:35they shared it with the entire internet and we can also make use of it here we will be primarily
- 6:13:43interested in Confluence what is Confluence in case you haven't heard it is a Wiki system
- 6:13:49where all the project data and documentation are collected that is usually projects always have
- 6:13:54such Wiki like systems if we are talking about jira it is Confluence if we are talking about
- 6:14:00Asia devops it is just a Wiki that is they use the markup language similar to what is
- 6:14:09written on Wikipedia to collect information about the project requirements specs input
- 6:14:16data there are some credentials everything is stored there so we can always go to wiki system
- 6:14:27and see where the project stands and usually within the various requirements that we already
- 6:14:33have in our buck teing system or just project management systems they ALS give links to the
- 6:14:39wiki where that information is stored so just so you don't get intimidated you might have these
- 6:14:46systems on your projects where you can always look at and find out information about your project
- 6:14:53clicking on this link will take you to Confluence which already contains the documentation for our
- 6:14:59user system so there's information about soap and rest and the methods that this system uses
- 6:15:05again information on fsdl and rest files with samples of our requests and the methods themselves
- 6:15:15today we will use such a method as door register which allows us to register to the system we will
- 6:15:21come back to this a little later let's start by installing swapi and Postman itself again I will
- 6:15:30leave the links to install these resources at in the Des description just follow this link for SOI
- 6:15:38there is a free version that you can download this is SOI open source that is this is where
- 6:15:45the code of this product is stored in Source form when you click on this link an installer
- 6:15:52will be downloaded you run it nothing complicated just click next next next next next it installs
- 6:15:58it's software and you can use it I already have it pre-installed so we don't have to waste our time
- 6:16:07now it's going to load up and I'm going to tell you a little bit about this system in order for
- 6:16:14us to get started we need to create our project to do this we click on the file new sub project
- 6:16:22we write the name of our project and here we need to insert vdl Cod either you have it downloaded
- 6:16:31beforehand or just the URL of this V sdl we have this URL and we copy and paste it uh we don't
- 6:16:44need to enter anything else here just click okay all the methods available for our system
- 6:16:52are then loaded as I mentioned earlier we will work with the door method so we open it click on
- 6:16:58request one and here as we can see we already have the parameters that we need to fill in
- 6:17:09as I said before we have documentation let's go back to our Confluence Let's
- 6:17:15uh move it over here a little bit and it says here that we have these parameters
- 6:17:23email name and password typ string they're three mandatory and the description of these
- 6:17:28parameters so it's user email or user and password what is good about wstl CA is that
- 6:17:35we have everything already written here on the question mark we have to write our values
- 6:17:40valid as you can see we have here three of these parameters they are mandatory so we have in our
- 6:17:52positive test we put all these data here and run our request everything went smoothly and
- 6:17:59as you can see we have entered our data here and also here we have additional parameters
- 6:18:05that were not specified in are the register methods these parameters are used for other
- 6:18:11purposes for other methods according to the specification we don't need them now
- 6:18:16so don't be alarmed if you see such an extensive output when you run your
- 6:18:20query as you can see there is absolutely nothing complicated about this what is particularly good
- 6:18:33about sap and wsdl is that it is always on the project there is a specific scheme where you
- 6:18:41simply enter your parameters knowing whether they are mandatory or optional and through
- 6:18:46various combinations you achieve conducting both positive and negative tests so for instance here
- 6:18:51we can remove some of these mandatory parameters and attempt to send such a request as you can
- 6:18:57see we uh we encounter an uh here an incorrect email we can also enter for example some inval
- 6:19:04valid value here for instance an invalid email address we can leave all the fields
- 6:19:10empty that require mandatory data additionally we can duplicate several parameters to observe
- 6:19:17what happens in this scenario that is we are already incorporating here the
- 6:19:24process of modeling our test cases using the so-called test design techniques essentially
- 6:19:29as we work with ordinary applications we apply the same principles when working with
- 6:19:34apis it just depends on your imagination and the test design techniques you use when you come to a
- 6:19:51project where swap is used there will be basically no complications that is you will be given an sdl
- 6:19:57you will go to swapi create your projects and start testing I advise you to download swapo
- 6:20:05in advance and go through it search for some examples of other wsdls click through all the
- 6:20:13methods that are in test based confluency here too everything's also described in detail so
- 6:20:21that you simply lost your fear of the tool since at first it may seem that this application is
- 6:20:27very complicated there is a lot of things there are but in fact for your work as beginner tester
- 6:20:35you will probably only need to create a project load into STL and work with the parameters
- 6:20:42themselves and with various combinations of them that's what the swapi tool is all about again I
- 6:20:50will not talk in detail about each functionality of this application in this lesson but only give
- 6:20:58a short tour of the application I think everything is clear about sapi does not need any additional
- 6:21:05clarifications if you have any questions about installing the software then be sure to leave them
- 6:21:12in the comments I answer to everyone I think that my subscribers can confirm it by 100% that is at
- 6:21:21we have a good communication going on so feel free to ask your questions yes by the way I completely
- 6:21:28forgot to tell you so now we have done everything under the hood but we also need to check whether
- 6:21:35we have this user in our system as we can see we have this user in our system that is the email
- 6:21:43that we entered the fio is displayed also here is provided the fact that the author of sap or rest
- 6:21:50s this information that is you can immediately see here the dates of changes and also you and
- 6:21:56I can attempt to log in using our password 123 to do this we first enter our password and then our
- 6:22:03email after that we click authorize and we will successfully log in that means we encounter no
- 6:22:10issues so we need to ensure that we check how our web service is functioning under the hood sending
- 6:22:17requests and on the UI how it is displayed and uh whether everything is operating correctly and
- 6:22:25the next aspect that we must examine is rest requests alongside the postman tool [Music]
- 6:22:35once more type in Google Postman and find the official site it will be the very first one
- 6:22:44again I will leave the link for your convenience also in the description below and download this
- 6:22:51application that is just download the app it is downloaded again to the computer no problems
- 6:22:58first the installer then again next next next next without any changes and it installs additionally
- 6:23:06Postman is available in the web version as well here you can for instance log in using your Google
- 6:23:13account the same feature is available in your accessibility version will be accessible on the
- 6:23:19web too however there are still some limitations so I recommend downloading postmen directly to
- 6:23:25your computer I have already downloaded that tool as well let's go ahead and open it up
- 6:23:37and here we see the UI of our application now what is good about Postman well because
- 6:23:43an entire team of testers can collaborate in it simultaneously developers have the
- 6:23:49ability to share their test cases and you can also automate and write
- 6:23:53scripts in JavaScript you can share this valuable information with your team create
- 6:24:00various collections of your queries work in different workspaces and create different
- 6:24:04parameters the tool is a very interesting multifaceted tool it is not the most complex
- 6:24:19I will tell you right away so that you do not have again fear of this tool at first
- 6:24:26you will just use it for testing purposes to select a method to enter your request
- 6:24:31parameters and send directly this request to the server receive a response and study
- 6:24:36this response already from the point of view of testing whether everything came
- 6:24:41successfully or not let's go back with you to our Conflict at the very bottom of the method
- 6:24:50the register enters information about Json with an example of how to call it so there will be
- 6:24:56this Json formatted request and the response to it what it should look like there is not always
- 6:25:04good documentation for rest requests so always shake your developer so that they provide you
- 6:25:13with test data sample queries sample responses based on which you will test don't be shy
- 6:25:20communication is our everything also there are schemas like in stdl and for Json for rest but
- 6:25:28uh they are not required so usually they sin and do it and do not write such waddle so once again
- 6:25:36all hope is just to have a good relationship between you and the developer and establish
- 6:25:42a process within your team to communicate the information that you need for testing
- 6:25:47before we get directly into testing with Postman let's talk literally a little bit more about the
- 6:25:57methods sometime a long time ago at the beginning of the web application
- 6:26:06testing block I promised you that I will tell you about methods how
- 6:26:10they differ from each other what it is a method is a type of HTTP
- 6:26:15request that tell the server to what action we want to take with a resource
- 6:26:26that is you may counter wording such as HTTP method and HTTP uh request
- 6:26:34type these are the same thing there are four basic types of methods they are get post put
- 6:26:42and delete what are these methods aimed at the get method in principle by the name it is already
- 6:26:50clear that it is aimed at getting information from our server the post method usually serves
- 6:26:56for adding information to our resource for example if we want to upload some
- 6:27:05music or to enter password and log in in the input fields and send them to the server or
- 6:27:12to upload some text to our server that is for this purpose we will put a post there is also a
- 6:27:19path according to the classics put serves to replace some information to change the
- 6:27:28her on server the delete method as its name suggests is used to delete
- 6:27:35information various sources mention that the post method can also change
- 6:27:41information similar to the put method or even delete information the put method
- 6:27:46can also add information ultimately it depends on how developers choose
- 6:27:51to use these methods as you can also create custom methods that will be
- 6:28:04to perform any of the functions but what else do you need to know about methods well methods are
- 6:28:11responsible for what's called crud operations or crud operations you will come across This
- 6:28:19Acronym very often in testing and what does crud mean it stands for create read update
- 6:28:28delete usually whenever we test something we have to consider our test object in terms of these four
- 6:28:34actions as an example there are different permissions for instance in ordinary user
- 6:28:43has permissions only to read a moderator can modify some data on your system a
- 6:28:51super user can create read and update data on the system and then for example
- 6:28:57there's an administrator who can do all of those things simultaneously
- 6:29:15and we should always use various combinations of these four methods four operations this is
- 6:29:22so that you will not be frightened in the future when you come across such a formulation and here
- 6:29:28you see in brackets I have specifically written about each method what it can do do in terms of
- 6:29:35operations that is get is just reading post depending on the source in your developer
- 6:29:42can be responsible for creating update and delete of some information put is creating
- 6:29:48or modifying and delete is purely deleting any information also quite often during interviews
- 6:29:59they ask about the differences between get and post methods so you should definitely
- 6:30:04remember that the get method is very easy to detect and identify because it always appears
- 6:30:11in the address bar so whatever we write in the address bar we are trying to get some
- 6:30:17information from the internet and there we can enter various parameters that we are interested
- 6:30:24in always pay attention to the address bar get is an address bar and unlike post method
- 6:30:36get has no request body that is we cannot use get to download any information in the body of
- 6:30:43the request as I told you before we can have different payloads different payloads that is
- 6:30:49text music code anything can be contained in the body of the request and that's what's uploaded
- 6:30:56to our server so the post has the request body the get doesn't have it get requests
- 6:31:04as I said always have parameters that are contained in the address bar get is limited
- 6:31:10by the length of the address bar you need to keep that in mind too and in principle you can always
- 6:31:15test this that is if you know you have limitations uh you can enter the number of characters in The
- 6:31:22get request and see how the system will behave whether it will generate some kind of error
- 6:31:27whether this request will be processed at all get is cached on the client side too if it should be
- 6:31:34remembered that data from get requests fall into the cache and since get is in fact our
- 6:31:41address bar it can always be saved as a bookmark in our browser so keeping these differences in
- 6:31:48mind you can successfully answer this question when you're asked what the difference between
- 6:31:54get and post requests are uh I've been asked in my first interviews it's almost every time
- 6:32:04so pay attention to that for sure if you need to rewind make a note to yourself what the difference
- 6:32:10between get and post requests are or simply uh find information on the internet in the form of
- 6:32:15table comparisons they are on many resources and also read about other methods besides these four
- 6:32:22basic ones how do they differ I will tell you right away that pay attention to such
- 6:32:27a method as option I will not tell you what it is responsible for but in principle it is also
- 6:32:33inter interesting and even when they ask you for example what methods you know if you name more
- 6:32:39than these four it is already a big plus to your success in the interview we have talked a little
- 6:32:45bit about methods let's go back to our sheep our Postman and right away you can see that we
- 6:32:51have a get method when you click here you can see a huge number of methods that are there by
- 6:32:59default here are our four basic ones which are get post put and delete and then there are the
- 6:33:07other ones that are different options which I've already mentioned be sure to read about it too
- 6:33:13and if you're interested you can explore the other methods that are here but again I would not advise
- 6:33:20you to go into this topic very deeply because the methods can be invented by the developers
- 6:33:25themselves and they can be custom so they may be different for each company let's go back to
- 6:33:31our conflict with you let me say right away since we are going to be loading some information about
- 6:33:37our user we're going to use uh the post method I mean I think it's understandable we don't want to
- 6:33:45find some information on our resource but to add a new user to our database to our users's bucket
- 6:33:53what do we need to do in order to submit a request copy our that we need it's in the document mation
- 6:34:05let's select the post method as I mentioned above and also enter our request and since we have it
- 6:34:12in Json format we need to upload it to in the body that is our body that we sent to the server select
- 6:34:23row and select Json here that is so we can now safely load this Json and send the information
- 6:34:33to to the server since we already have such a user on the site uh we can see an error message in the
- 6:34:41response but as you can see the system is not very
- 6:34:47well has been finalized we should not have the status code 200 okay here but another status
- 6:35:02code that would tell us that we have some kind of error let's come up with a new mail of some
- 6:35:09sort a new name and password let's try to send it or send it it went through successfully 200
- 6:35:18status code our user has been created and let's log in refresh the page yes everything is fine
- 6:35:25that is we have our user file author already rest and date of change and we can also verify this
- 6:35:32with you provided we have have authorization to access our site now let's go ahead and copy our
- 6:35:37password everything is fine we have successfully logged in and this user has been created so we
- 6:35:56can work with him further you may also notice that there is additional information here that
- 6:36:01we did not send in our request for for example there is the date of birth gender meaning we did
- 6:36:09not send this information either here again this can be done through some other methods we can also
- 6:36:16achieve this not by using our Json which we had in the example but by just entering the value key
- 6:36:24pairs to accomplish this task we need to memorize which parameters are mandatory
- 6:36:37and what their types are specifically these are three parameters first go to postman and
- 6:36:43select the params tab then we enter these three parameters and send the request as you can see
- 6:36:50we have successfully sent everything and the parameters appear directly in our request URL
- 6:36:58we can verify this again on the resource itself [Music] our email F and author once more using
- 6:37:10the same system we log out and authorize again let's confirm that yes indeed such a user has
- 6:37:18been created this in summary is about Postman and how we can work with it so you should not
- 6:37:25encounter any difficulties with other methods either that is we simply select a method and
- 6:37:34we send our requests in the same manner again combine different test cases that
- 6:37:39is we remove some mandatory parameters we delete them leave the fields empty or swap them
- 6:37:45around that is we are all examining how it can be I believe that will suffice for you in the
- 6:37:54future I think this will be adequate for you to to parse all the methods available in confluency
- 6:38:02for users block red this will be your initial homework assignment that I am announcing in this
- 6:38:09let's say course go through all these methods both in soap and in rest that is in suu and
- 6:38:16imp Postman and let's note in the comments whether you succeeded and if you have any
- 6:38:21questions what else I'd like to tell you about are some very very useful links and resources
- 6:38:35that can help you a lot in mastering and testing the API once again back to our
- 6:38:42favorite test Bas that I previously mentioned once again I leave the link in the description
- 6:38:47below here is various detailed information of bug trackers that you can practice on
- 6:38:53and recall the topic on back tagging J systems and filing comprehensive bug reports and defect
- 6:39:03reports a test storage system again you can poke around here take a look test link for example is
- 6:39:11free where to test apis there are free sites with test apis where you can poke around also regress
- 6:39:17a in is a very popular resource more full-fledged systems again are those that have been developed
- 6:39:27either directly by ogga and her team or they're just also once developed that is users the system
- 6:39:37that I have already shown you today shop and Swagger C I'll be twiddling our thumbs sometime
- 6:39:42later very soon there's also a test design which means there are simulators here that you can
- 6:39:49look at as well the triangle for example is an interesting simulator on one of the most popular
- 6:39:55interview questions but I won't say it's the most popular I for example was not asked it we can
- 6:40:02also go and click all this and practice there is also such an interesting Resource as swappy this
- 6:40:12is where information about the Star Wars movie universe is stored and you can also use the API
- 6:40:18to test and find information about the various characters that were part of this movie Saga so
- 6:40:25you can you can look at all of this here in a very interesting way planets weapons creatures
- 6:40:33I mean is very interesting for those who were once fans or still are Star Wars fans and again
- 6:40:41on the API there's a huge number of different simulators available for example the API of the
- 6:40:47vonty social network is publicly available that is you can easily find this documentation on
- 6:40:52this API and also send some requests there will uh likely be some authorizations using tokens I
- 6:41:03have not doubled with this but I know that it is definitely there and some other resources
- 6:41:08have apis too so you can look at all that I also recommend if you have the opportunity for example
- 6:41:14or if show some Ingenuity and search on various resources such course as API testing from MGA
- 6:41:22Nina I believe you will really like it and find it highly useful because she discusses apis in a
- 6:41:29lot of detail there on this resource users talk about automation with the help of apis it's very
- 6:41:37detailed and suitable for both beginners and advanced testers so it comes highly recommended
- 6:41:43again this is not an advertisement but simply because the course is genuinely not bad at
- 6:41:50all and uh let's discuss the final unit within our
- 6:41:58class this is about how to write test cases in general
- 6:42:04specifically for testing epis what we should consider there I will also show you an example
- 6:42:11of such a test case let's begin with the work plan it is standard just like it is for any testing any
- 6:42:19feature first we study the requirements or write them if they do not exist then based on these
- 6:42:26requirements we write our test cases and of course proceed to test them um requirements are directly
- 6:42:34our documentation is badl wsdl samples of our requests sample responses that you can get from
- 6:42:41the developer we write cases based on again this documentation that is nothing complicated again we
- 6:42:47include test design techniques for this and we have already talked about testing a little bit
- 6:42:54earlier in this lesson with the help of subi or with the help of Postman also in subi you
- 6:42:59can test and rest requests as well as in postmen you can test rest requests so this is already at
- 6:43:09a more in-depth level if you are interested you can find information on the Internet or you can
- 6:43:14poxb the T data yourself so to speak requirements input data what parameters and attributes does the
- 6:43:22service have this is for example if we have vsl we can look there and again as I've said a few
- 6:43:29times today in class these are sample queries that we can ask developer what are the test
- 6:43:35cases we categorize them into our three main ones which are smoke critical path and extended I've
- 6:43:44talked about all of these types of testing and test cases in classes before so I won't repeat
- 6:43:49myself if you're interested the link will now appear at the top you can go and study refresh
- 6:43:54that information as far as smoke is concerned that's one requisite for the method critical
- 6:44:00path is all the valid requests we can think of for our method and methods and extended is
- 6:44:11all invalid invalid are any queries so what are some specific tests for web services and for our
- 6:44:20queries as I said we can send some empty values in the parameters to see how the system behaves
- 6:44:27it should give errors if that value is mandatory if it is an optional value then it is a acceptable
- 6:44:33that there are no errors if it is specified in the requirements we can try to send in Json for
- 6:44:41example comments comments if you are interested in programming are such strings which are formed
- 6:44:49or consists in several slashes or justified by asterisks and they are not perceived by our system
- 6:44:57as executable code that is there are just some notes on what we have written in our product code
- 6:45:03so we can try to send such comments inside our uh Json for example or in XML and see how it
- 6:45:12behaves system whether it perceives them as executable code the validity of the answers
- 6:45:18agrees with the scheme if available which is what we mean subcircuits these are our wsdl and
- 6:45:26wadel as I said just open our wsdl in sapi when creating a new project and start testing that is
- 6:45:34we enter in these parameters in these hour tags the information that we will pass to the server
- 6:45:41and see how the server perceives it what status codes it returns to us for example and the answers
- 6:45:47checks with required and optional attributes again as I have already said a bit above let's
- 6:45:57see what we have required and mandatory must be sent in the request again how the system behaves
- 6:46:04checks with optional and invalid values again we add some parameters that are not specified
- 6:46:10in the test documentation or in the examples of our requests let's see how the system behaves
- 6:46:18or if we have for example specified that we have in the parameters is a numeric type and
- 6:46:26we write letters then the system should also swear and give us the wrong answer the system
- 6:46:32but the server different data types instead of a string of numbers while these things are
- 6:46:38comparable duplicate attributes of elements take our element for example passport copy it several
- 6:46:44times send it see how the system behaves the order of attributes in elements if we have a clear order
- 6:46:51set and we violate it then the system should give an error the service should send us a status code
- 6:47:01indicating that the information we sent to the server hasn't been processed we deal with long
- 6:47:08strings of numbers and invalid data I discussed invalid data in terms of Json and XML syntax in
- 6:47:17the last session there's a lot of information there so we revisit the last class to study
- 6:47:23it if you suddenly for example even opened this class before you learned about the theory in terms
- 6:47:35of testing web services you study this information too that's something that relates to our queries
- 6:47:41and what about the responses like I said we look at the status code we look at the response body
- 6:47:46and what kind of error text we're getting again if it is specified in our documentation that a
- 6:47:52certain status code and a certain error text must be received and they do not match then this bug
- 6:47:59we introduce this bug into the system and as I promised here is an example of our test case it
- 6:48:07is created according to the same Principle as our regular test cases this is a summary our
- 6:48:14header name and this is the priority which is the order of execution of these test cases test
- 6:48:21type here we have regression and automation our steps include running arrest request our
- 6:48:30request and a specific UR method that allows us to run this method the headers that we include
- 6:48:38in our request and Buddy which is already written in Json format detailing what we are
- 6:48:44sending to the server the expected result is written in
- 6:48:53the form of our response then it is body from the
- 6:48:57response also such and such group with such and such ID should have been created make sure like
- 6:49:05I said we test this on the UI this means we go to our URL and verify that the group was
- 6:49:12indeed created so this is what our test cases look like nothing complicated standard in our
- 6:49:19steps we specify for requests the data that we send to for so the results we WR here we
- 6:49:28already have our information about the body what we should generally get from our server
- 6:49:33this is how we design our test cases in our systems which allow us to save them the same
- 6:49:38is true for dealing with box that is during playback steps we attach it to the process
- 6:49:47if something goes wrong for example if we receive an incorrect response from
- 6:49:52the server we attach this Json directly to our bug report and the developer will work with it
- 6:50:06here is such a very long lesson we have turned out a bit more than I initially planned because
- 6:50:13I want to tell you so much about this particular topic if you are interested in learning how to
- 6:50:20work with Postman how to work with soap UI on a more in-depth level then please be sure to let
- 6:50:26me know in the comments below I think after I'm done recording the entire basic tester course
- 6:50:32from scratch I'm going to start taking apart some things in much more detail some tools so that you
- 6:50:40can learn them not just at the level of a beginner tester but perhaps as a continuing tester and I
- 6:50:46sincerely hope this information will be useful to you the same applies to other tools that are
- 6:50:53frequently mentioned in the comments of my videos such as git Jenkins or Docker I didn't really
- 6:51:03encounter these tools very often in my work at the first place I worked I mostly used backtracking
- 6:51:09and I've been testing from a UI perspective so I don't have that much expertise on this stuff
- 6:51:25but I'm slowly starting to get it now at my new place of work because at my new place of work
- 6:51:32we're using it so I think that when the last lesson on testing from scratch is released
- 6:51:40uh I'll start recording videos for you as you asked about the Practical aspects of different
- 6:51:48tools but I think I'll be able to tell you some basic things before that so be sure to
- 6:51:57post anything that interests you I create a Content plan based on your requests and
- 6:52:02interests for example if you want to learn something about API testing I have prepared
- 6:52:08such a session for you if you want to learn something about git I will definitely record
- 6:52:13a basic lesson for you as well in this lesson I will tell you about what repositories are what
- 6:52:20branches are how you can clone these repositories how they are interconnected in general and overall
- 6:52:27what git is used for from the perspective of development and even testing so subscribe to
- 6:52:33this channel click the Bell to not miss new videos we will see you very soon Welcome to our tent
- 6:52:40[Music] bye hello YouTube I'd like to start by by congratulating you on the fact that we've
- 6:53:04completed learning about web application testing at the novice tester level and are now ready to
- 6:53:10move on to the next unit testing databases why databases and not mobile application testing
- 6:53:17it's quite simple because by knowing the theory of testing from the first block web application
- 6:53:23testing from the second and understanding databases you will already be prepared to
- 6:53:30interview for the position of a novice tester in the field of web application testing that is
- 6:53:37you will no longer need the knowledge to test the mobile or if your company plans to move to them in
- 6:53:45the future you can easily learn them already either in my classes or already inside your
- 6:53:50company with the help of your mentors before we move on to today's session I would like to
- 6:53:55draw your attention to the following in the last lesson I made a mistake when I told you about the
- 6:54:01post method and where we should enter values in order to send a request to the server I told you
- 6:54:15that you should send them in the param stab this is wrong as this tab is used for get requests to
- 6:54:22send data to the server via post we must use exactly the request body that is we select
- 6:54:28the body tab select the form date with the radio button and enter our already key value here and
- 6:54:36send our request this is how uh request post works correctly so uh I apologize uh everyone can make a
- 6:54:46mistake so pay attention to this when you will be you can watch the previous video or go back to it
- 6:54:57if you forget something and now directly about databases why it is necessary for a tester to
- 6:55:04know them data is a very useful tool that is used not only in testing but also in development itself
- 6:55:12even in business analysis that is it is quite a powerful tool as data is our everything I would
- 6:55:20like to draw your attention to the following in front of you you now see a familiar form
- 6:55:26for registration on the site such a form is very often shown during job interviews and they ask
- 6:55:32you to explain how you would test it the most significant mistake begins when you start saying
- 6:55:39that you would for example enter the maximum number of characters in the login field or use
- 6:55:45the same password after carrying out all the tests that we discussed in the testing of the web form a
- 6:55:53link will now appear at the top yes that's right but this is not the initial step you should take
- 6:56:01the most common case study user story requirement from your interviewer typically goes something
- 6:56:07like this please test that you can log into the system how can we accomplish this all data about
- 6:56:15logins passwords or any other information that may be contained on this form is stored in a
- 6:56:20database that means our form which is the client sends a request to the server with some data
- 6:56:34that is he writes there that please return me the information about whether there is
- 6:56:39such a user with such a login and with such a password in the system that is
- 6:56:47whether they coincide or not whether they are in the database and the server sends
- 6:56:52this request further to the database if it matches the database says okay the
- 6:56:57server receives this information and sends it directly to the client and we enter our site
- 6:57:02that is necessarily our first point is that we have to go into the database and check whether
- 6:57:09there is information about this user using a query which we will talk to you about in the next
- 6:57:16lessons so remember this is your very first step and then after we have checked that yes indeed
- 6:57:24we can log in that we have entered the database that it contains the information we need only then
- 6:57:30do we proceed directly to testing the form itself entering invalid values or acceptable values in a
- 6:57:38given range which are in the requirements that is we pay our attention to it also works absolutely
- 6:57:46everything related to datab Bases since it is simply impossible to store all information and all
- 6:57:52data inside the same document of Vera or css so we resort to some storage which contains our data
- 6:58:02this is the database that is the database is a set of information stored in an organized
- 6:58:08form and let's see generally what there are databases their types there are three main
- 6:58:16types of database hierarchical Database Network database and relational database hierarchical as
- 6:58:23is clear from the name is as follows that is we have a single root node and from It Go branching
- 6:58:31to others directly at this Noe which belongs to our root Noe there are some other nodes and so
- 6:58:37they Branch further and further so there is a certain hierarchy consisting of several levels
- 6:58:43it's known as the ancestor descendant system to explain an ancestor could be our root node
- 6:58:49for instance and descendants would be the nodes that Branch off from this root node therefore
- 6:58:53for uh level three the ancestors would be those at level two and level three would be the descendants
- 6:59:00of level two and this pattern continues onward the next type of database is a network database
- 6:59:07in this type we also have a data set but the key difference is that this data set depends
- 6:59:11on other data sets as well so they have some kind of relationship that is not just a one
- 6:59:16to many relationship but here we can already have relationships like many to many many to
- 6:59:22one we will talk about these inter relationships a little further on so that you understand what
- 6:59:28a network model is it looks in the form of a network like this hierarchy in the form of a
- 6:59:34tree Network in the form of a network and the one that is used now in all databases is relational
- 6:59:42model when we have many two-dimensional tables that contain our data and these tables can also
- 6:59:52be related to each other we need to understand relational databases and so what do you need to
- 6:59:58know about relational databases first of all what do they consist of there is a so-called
- 7:00:04primary key also known as a primary key which is the unambiguous identifier of a
- 7:00:10given row and it is mandatory for a relational database why because it's Unique um and if for
- 7:00:18example we take the value column name we will see that there can be identical names
- 7:00:26in this case our database might sometimes work incorrectly when we query a particular name it
- 7:00:32could return many identical values providing us with numerous results for a single query
- 7:00:37therefore we use identifiers that uniquely Define the rows in our database these
- 7:00:45identifiers are crucial they are known as secondary keys or external Keys these keys
- 7:00:52are particularly useful for instance when we have two tables containing related data
- 7:01:03then how do we link these tables together we use a secondary key this means we enter some
- 7:01:09identifiers for these two tables and with the help of this identifier we link our two
- 7:01:15tables for instance the identifier 11 will correspond to the data Ivan single Osa and
- 7:01:23male 25 in this way we are linking multiple tables the secondary key is optional and
- 7:01:32appears only when we have several tables and need to maintain some
- 7:01:36patterns the interrelationship between the two I would also like to know that rows in such tables
- 7:01:49are called records and columns are called Fields the next aspect I would like to touch upon is the
- 7:02:00aspect of normalization what is normalization it is the process of making tables look normal it
- 7:02:08sounds quite strange but let's understand what normal look or normal forms are these are the
- 7:02:15requirements for tables in relational database theory that is we have some rules by which our
- 7:02:21tables must be created in order for them to be adequately processed by our database management
- 7:02:29system which we will talk to you about in this lesson a little bit further on and you need to
- 7:02:35know at least two of these normal forms there are more there is also a third normal form but I will
- 7:02:41not dwell on it in detail because usually it is not asked either at job interviews or in ordinary
- 7:02:48life you do not meet it so if you're interested you can Google what that is I'm sure you'll find
- 7:02:54the explanation on the internet without any problem now if we talk about the first normal
- 7:03:01form it requires that each element of the table has only one value meaning it should be Atomic
- 7:03:08as we can see here in this particular row we have multiple values in a single
- 7:03:14field it's incorrect we need to split This Record to make it Atomic allowing
- 7:03:26us to use each field separately so here is this record now correct and meeting
- 7:03:32the first normal form requirements remember atomicity the second normal form necessitates
- 7:03:41that the table is in the first normal form that means if we don't fulfill the first
- 7:03:47normal form requirements we can't claim that this form is also the second normal
- 7:03:52form if other conditions are met and all Fields must depend entirely on the primary key not just
- 7:04:08on any part of it so look carefully in this table we have two keys here department and
- 7:04:15position and our salary depends on both of those keys however the need to have a computer in the
- 7:04:23workplace depends solely on the position meaning the department does not affect it
- 7:04:29at all this is incorrect so we must adjust this form to comply with the second normal
- 7:04:35form in this case we keep the salary in this table and it depends on the department and position and
- 7:04:48the need for a computer is transferred to another table and it depends only on the position I hope
- 7:04:56that it became a little clearer to you what it is I remind you that you should uh read about about
- 7:05:01the third form on your own also since there is a normalization process there is such a process as
- 7:05:08denormalization in queries to a fully normalized database it is not uncommon to join up to a dozen
- 7:05:15even more tables and each join is a very resource intensive operation as a consequence such queries
- 7:05:23require a huge amount of server resources and are executed very slowly therefore the process
- 7:05:30of denormalization comes into play there are several ways in which this can be accomplished
- 7:05:37for example denormalization by reducing the number of tables that is it is better to combine into one
- 7:05:44table several tables of small size containing rarely changed information and the information
- 7:05:52should be closely related to each other in terms of meaning in this way we reduce the number of
- 7:05:59queries to our database and to the amount amount of information we need to process and the second
- 7:06:06common way is denormalization by introducing an additional field into one of the tables in
- 7:06:12this case some redundancy of our data appears so additional actions are necessary to preserve the
- 7:06:18Integrity of our database to run a denormalization process you need to know our database very well
- 7:06:26how it behaves with the amount of data that's in it how long it takes to process so I think
- 7:06:33that you as novice testers don't need to get into this operation head-on but you just need to know
- 7:06:39that not always bringing it normal form Center requirements can very well affect the performance
- 7:06:47of our uh database I think if you are brought into the dynamization process you are LED through what
- 7:06:57you will need to do and how these actions of yours will affect the data database the next aspect that
- 7:07:04I would like to touch on today is the relationship in the database there are three types and uh one
- 7:07:11of these types can go by different names we're uh we're going to talk to you uh a little
- 7:07:17bit more about them now there is the onetoone relationship this means that each record in one
- 7:07:22table corresponds to only one record in another table it's nothing complicated a on to many
- 7:07:28relationship means that each record in one table corresp responds to one or more records in another
- 7:07:33table a many to one relationship is exactly the same as one to many it's just that this type of
- 7:07:40relationship depends on your point of view and the last type is many to many when a relationship
- 7:07:49between two tables occurs when each record in one table corresponds to one or more records in the
- 7:07:56other table a table corresponds to 0 1 2 or more records in another table and vice versa that is at
- 7:08:04your leisure read in more detail what it can mean and memorize these three basic types of one to one
- 7:08:11one to many and many to many as it will help you better understand the relationships within your
- 7:08:17tables within your database and lastly let's talk about the database management system it is a set
- 7:08:27of language and software that allows us to create modify Del delete our data access and secure our
- 7:08:33data as well as all possible uh modifications of this data that is everything you can think of that
- 7:08:42we can do with our data inside this database very often people ask what is the difference
- 7:08:50between a database and a dbms and sometimes this question is confusing so pay your attention that
- 7:08:57a database is first of all an object and and uh it is always just a set of some data and a
- 7:09:05management system is an entity that let's say manages our data and to a first approximation
- 7:09:11it's just a program some kind of software so a database is just our data a dbms is a program when
- 7:09:17you memorize this and understand it for yourself you will not have any questions related to how a
- 7:09:24database differs from uh dbms there are several kinds of basic databases this is not all of them
- 7:09:33that is the most common is myql which we will work with in the next lessons I will teach you
- 7:09:40how to install my gcal server we will learn how to write queries selects which will be useful for
- 7:09:47you 100% joints which you probably won't need but usually some normal companies ask for them at job
- 7:09:56interviews there is also micro Microsoft Squall Oracle postris koal mongodb and many other dbms
- 7:10:08app all these systems share a common feature they are built on seal which stands for structured
- 7:10:15query language this is a programming language for structured queries that's what all these
- 7:10:21databases use while there are some differences in various systems the basics remain the same
- 7:10:29in the description I will include a link to kof's book which discusses different dbms and
- 7:10:35various we will learn about the differences that may occur there it is quite difficult to
- 7:10:48understand for people who have never encountered DB databases or dbms if you are interested you
- 7:10:54can read more about it but actually the data I will provide in the next lesson
- 7:11:02will be enough to learn how to write queries however you need to practice a lot because in
- 7:11:08interviews they always ask about queries selects sometimes even joints you need to be able to write
- 7:11:16queries how to write them I think that's all for today that is some theory that it is necessary
- 7:11:24to know the minimum that we will need with you in the future and in general you may be asked all of
- 7:11:30these things in an interview in the next lesson we with you will install our cql server and we
- 7:11:37will work directly with our queries we will learn what types of data there are in the database we
- 7:11:43will learn how to write selects and possibly if we have time joins as well if not we will learn
- 7:11:50how to write joins on the next after the next class right away I would would like to say that
- 7:11:59you often write to me why so much the the I would like more practice but guys when you come for an
- 7:12:05interview most often you are asked just Theory so you will be asked a lot on testing Theory
- 7:12:13which we covered in the first block on application testing you will be asked about the HTTP protocol
- 7:12:19about HTTP requests about the different models that are out there about databases yes you will
- 7:12:26be asked most likely what ddbms you have used and asked to write some queries that is you'll
- 7:12:34probably be given a list of tasks where you will need to use a query to get some selection from a
- 7:12:38database so you and I will certainly consider this so don't forget about the theory I understand that
- 7:12:45you want to practice Perhaps it is somehow more fun and you have the impression that is nowhere
- 7:12:51without practice yes I agree practice is necessary but when you come to work on a
- 7:12:59project you are usually taught a lot of things things are new because courses even paid ones
- 7:13:04do not always cover all those practical aspects in programs that you will need in your real work
- 7:13:10but I try to introduce practical classes as much as possible and I think that what I'm telling you
- 7:13:20is enough to successfully pass the interview for the position of jun a novice tester everything
- 7:13:27else is only in your hands that is you go through some theoretical moment be sure to see in practice
- 7:13:35how it can work check out additional videos that are available on the internet there are a huge
- 7:13:41number of useful YouTube channels with quality presentation of information but you just have
- 7:13:49to look for them learn to search learn to Google this skill will never hurt you because in your
- 7:13:56real work you will very often encounter such sters and dead ends and you who don't always need to
- 7:14:03run immediately to a knowledgeable person or to a developer who already has a lot of work to handle
- 7:14:10or to your lead or manager they have a lot of work to do don't forget that always make an effort to
- 7:14:20find the information you need by yourself only if you have tried everything and it did not help
- 7:14:24you and you find yourself at a dead end then and only then should you contact an expert in
- 7:14:30this matter someone who who can assist you this is my message it might seem a bit aggressive at
- 7:14:36the end but I just want to remind you to never forget about Theory we will have practice of
- 7:14:42course there will be more of it I am trying to balance these lessons and not overload them with
- 7:14:47just theory yes the first blocks were quite heavy with Theory but you cannot progress without it
- 7:15:05and that's it for me thank you so much for sticking with me and writing such a
- 7:15:09huge number of nice comments I'm actually very pleased and warmed by the feedback I receive I
- 7:15:14realize that all this work has been done for a reason so I will of course continue to record
- 7:15:21lessons for you it is not difficult for me it is useful for you welcome to our tent bye [Music]
- 7:15:44hello YouTube today we're going to continue our study of databases and directly learn about my
- 7:15:51school how to set up the server will be working on and the commands that will help us interact
- 7:15:59with the database and the tables that are in it we won't be looking at selects and joins
- 7:16:05in this class I decided that it will be fully devoted to the initial work changes deleting
- 7:16:13adding tables to the database and in the next two lessons we will deal with selects and joins so
- 7:16:21let's not delay and get started first we need to download cql server to do this we go to myql.com
- 7:16:30scroll to the bottom find the downloads Tab and select my cql community server
- 7:16:35this is where we can download our cql server for free since it is
- 7:16:39the community version what do we need to do click on the go to download page
- 7:16:45Banner this version works for both 32bit systems and 64bit systems despite saying
- 7:17:0632bit and download our installer directly click on download no need
- 7:17:12to register here click no thank you start downloading the installer is downloaded
- 7:17:18I already have it run it wait a bit totally agree if we see these
- 7:17:24values we have some updates here so naturally we update two this installer which I downloaded
- 7:17:37the other day already has some new updates in the meantime you can see that there are
- 7:17:41new updates available and we choose what we want to download for our purposes we
- 7:17:47will only need the server however you can also download the full version then you
- 7:17:53will have the eell available which is the UI that we can directly work with I still think
- 7:18:01that you and I are going to go hardcore and start this whole thing first on the command
- 7:18:06line so we we download just the server click next select default folder since I already had
- 7:18:16this server created here so it writes that there is already such a pathway most likely
- 7:18:25won't be so we don't change anything here click next click yes in my case
- 7:18:30it shows the status that yes ready to install and start we wait for our server our local machine to
- 7:18:38install it will take literally a couple of minutes click next then we get the status that uh our
- 7:18:49server is ready for configuration click next here we do not change anything we leave the defaults
- 7:18:55click next again again we do not change anything here choose to use a a strong strong password for
- 7:19:04encryption since I have already created a password it is root a simple password that is usually
- 7:19:12used that's how it's spelled so you'll probably just uh a box popup for you to
- 7:19:25enter that password you enter it and most likely confirm it I on the other hand click check to
- 7:19:33verify that my password actually matches the one that was already entered earlier
- 7:19:39after that we click next again here we also do not change anything we leave it at the default
- 7:19:46and thus starts our process this is where the process of configuring our server begins and
- 7:19:53that's it that concludes the server installation process we are now finishing up our installation
- 7:20:00next we need to locate our server directly within our program panel for our work we will need to
- 7:20:06use MySQL version 8.0 common line client unic code simply run it and the server will prompt
- 7:20:15you to enter the password you said earlier my password is root but yours may be different if
- 7:20:19you chose another one and that's it a welcome window appears and uh we can directly work with
- 7:20:26the databases that we have on the server but first let's see what types of data are used in
- 7:20:32databases and in general what we are going to work with today when we create tables and modify them
- 7:20:39first of all let's talk about data types there are certain types of data that we can enter into our
- 7:20:47spreadsheets and use them these data in principle are standard they are even used in programming so
- 7:20:53if you memorize them it will later help you in some other aspects related to your work
- 7:20:59because you will often counter with such names of data their types first of all it is integer
- 7:21:08abbreviated as int which is what we will use in our databases these are integers this is from the
- 7:21:15English decimal decimal fractions decimal numbers so it is also clear what it is if we have a large
- 7:21:23amount of textual information the following data types are used they are blob text and memo if we
- 7:21:31have small amounts of textual information then our strings are used these are chaar from 1 to
- 7:21:43250 characters if we're talking about text it's about 65,000 characters the next type is our
- 7:21:52different date formats that is it includes our dates days time and year then we have a format
- 7:22:00known as flat or double which represents floating Point data there is also an intriguing data type
- 7:22:07called time stamp this type stores a 4 byte integer that equals the number of seconds that
- 7:22:13have passed since midnight on January 1st 1970 grenage meantime that is the zero time zone the
- 7:22:21origin point of all time zones that is it is also a data type that allows us to judge when we have
- 7:22:30created for example this or that element in our database and usually time stamp depends on what
- 7:22:37time zone you are in that is it can be different for different time zones in different databases
- 7:22:47there can also be such a data type as Boolean that is just our value true or false and you
- 7:22:52can separately refer to such data type as not null that is it is obligatory for this string
- 7:23:00for the given the fields must be for example these values either or empty or if we say about not null
- 7:23:11they must be filled with something this is what I wanted to tell you about data types in principle
- 7:23:18you can read more about them on the internet I will try to include in the description a link
- 7:23:25to some adequate article devoted to this aspect because there are actually many more more data
- 7:23:31types these are just some of the most common ones and they are used far not everywhere next you and
- 7:23:39I will proceed probably to the most interesting part of our today's lesson that is we will learn
- 7:23:44how to write some simple queries we will be able to view our databases create databases
- 7:23:51delete them use them and then we will create our first tables and we will also be able to
- 7:23:57add some values to them delete them change them that is that's not talk about it for a long time
- 7:24:02and go directly to now onto our server and working with it as we remember we already have a my school
- 7:24:09server open CLI for it and we can directly start doing something with it let's start by
- 7:24:16looking at what databases we have pre-installed here to do this we need to enter such a command
- 7:24:23as show databases nothing complicated here the SQL language is built in English and English is
- 7:24:30not complicated that is if you know some of the key verbs that are in there then will be
- 7:24:36the key words that are are used in our queries it's simple here show databases that is so we
- 7:24:46will see our databases so we already have some databases that were probably pre-installed in
- 7:24:51the system itself and a test that I created when I was remembering some aspects to prepare for
- 7:24:57this lesson and then once we've already been able able to see what databases we have we can either
- 7:25:03use some existing database or we can create our own new one let's go ahead and create our new
- 7:25:08one to accomplish this we use a command such as create database and we need to provide it
- 7:25:17with a name let's name it students one important thing you need to know about syntax is that you
- 7:25:24must include a semicolon at the end of each of your queries if you don't ql will complain
- 7:25:31well not SQL exactly but the subd you are using will you can even test this
- 7:25:36out it won't just complain it won't let you execute the command until you add a
- 7:25:40semicolon so for C it doesn't matter what row you have data on it's still going to read this as
- 7:25:51one query as one row and now we have our database created with students we can check if it's really
- 7:25:59like this show databases we'll use the command again and yes as we can see we have a new database
- 7:26:08students we can delete this database let's delete just not this one but my Su test database that I
- 7:26:18had created beforehand that is here we write drop database and the name of our database it
- 7:26:24is deleted again we're checking in order for you to go back and not to re-enter your query
- 7:26:30if it is very large for example and if you knew for sure that you have it in one line that is
- 7:26:36you have not moved them you can use the up key and find your command we used show databases to
- 7:26:45check what databases we have we can use it again now and as we can see we now no longer have a
- 7:26:52test database it's been deleted and since we have decided to work with with the students database we
- 7:26:58have to use it that is we must indicate that yes we will work in this database otherwise the system
- 7:27:04will swear in the future and will not understand at all what you want it to do and which of the
- 7:27:08databases that are available in this dbms you want to work with so we write use and the name
- 7:27:15of our database is students you see the database has been modified that's it we are now inside this
- 7:27:22database and to check for example if there are any values inside this database meaning some tables
- 7:27:30we can use this command show tables this command shows all the tables that are in
- 7:27:36our database empty set which means it is empty because we have not created any of the tables
- 7:27:45yet this is something that concerns the use of databases how to enter it how to create it how
- 7:27:55to delete it and now let's go directly to work with tables for this we also have a list of our
- 7:28:03commands that we can use our queries let's first create some table to do this we should use the
- 7:28:11create table command and then enter the name of our table that we want to create within the
- 7:28:18students for example let's call it courses and let's go to the next line so that it's
- 7:28:27more clear to us what we should do next next we open the brackets and start writing the name of
- 7:28:36our columns the name of our Fields uh and the type that will be applied to that field for example for
- 7:28:45coures let's come up with a column like faculty that is our faculty let's not even start with it
- 7:28:54but uh let's start with the Ed since we have to have a primary key next we write the data
- 7:29:03type in our case it will be integer that is integers numbers then we write the number of
- 7:29:12numbers that can fit inside our field that is inside this value that will be in the string
- 7:29:18for example we can have a maximum of 11 numbers in our string in our record and we write that
- 7:29:26it's well that is it should always be filled in this string this record and that these are
- 7:29:34our primary keys so we also specify right away in the system with ubd that this is the primary
- 7:29:41key and let's come up with the fields like I said this is going to be faculty here we're
- 7:29:47going to use a varar which is our string Let It Be 55 characters maximum and let
- 7:29:55it be for example at the moment it's zero so this entry can be empty what else can
- 7:30:02we think of for courses and let's write let's not invent some very complicated
- 7:30:08tables and we are going to have an integer here as well let's have two
- 7:30:17numbers at most also let it be zero our query has been processed now we
- 7:30:24can see what values we have in this table for this purpose we use the most famous
- 7:30:30select statement with which any learning of SQL begins but we'll talk about them with you
- 7:30:37a little bit further just so you know it's a select an ASAT from and then the name of our
- 7:30:43table our table is called courses don't forget the semicolon Yes I know what my
- 7:30:56mistake is it's that we don't don't have any values in our table yet so let's start
- 7:31:04by checking the description of this table What fields we have there and what Fields
- 7:31:09contain what types of data to do this we use such a query as desk and the name of our
- 7:31:16table yes and now we can see what fields we have in our table what data types these fields have
- 7:31:29and whether they can be used for the table uh whether there are null values there or not the
- 7:31:34ID field is our primary key and default values are also written here this way we can see the table
- 7:31:41description if we need to know in which fields we can use which data we can also delete tables just
- 7:31:50like we can delete databases but let's not delete our beautiful students table that we create and
- 7:31:56there's also the same command as deleting database is there's deleting the tables themselves also
- 7:32:04with our commands which are quite similar with the keyword drop so we write drop by table and
- 7:32:11the name of our table and the table is deleted let's not delete the students table anymore and at
- 7:32:17your leisure you can also practice creating some tables and deleting them that is this command is
- 7:32:24not complicated now our table as you and I have already seen when we performed our select that
- 7:32:31is in this case we asked to show all the values from of the course's table I mean it is also very
- 7:32:39simple we don't have any data here yet so let's create this data to do this we use a command
- 7:32:48a query known as insert into we need to insert some values into our table the next thing we do
- 7:32:55is we write the name of our table which is courses then we write values which are our values and what
- 7:33:02you need to pay attention to is the order of our Fields inside our table that is the first field is
- 7:33:11ID the second is faculty and the third is number and in the same order we enter values into these
- 7:33:20fields so the first ID we have will be one and yes I wanted to point out that in faculty we use our
- 7:33:30Word chart here that is we use letters here it's a string format and so we need to enclose it en
- 7:33:38quotes it's a value just like we did when we were learning Json if you have forgotten what this is
- 7:33:46you can go to the API lesson the Practical part now the link will appear in the description and
- 7:33:51a little bit of refresh your memory but for SEC ql and in general for any programming languages
- 7:34:00remember that string values alphabetic values are always enclosed in a quotation mark let's
- 7:34:07think of a bio my favorite biology Department if you haven't passed I graduated in the number of
- 7:34:15our course let it also be one and put a semicolon we have our first value created and we can also
- 7:34:23add as many values as we want or database yeah so that I don't make too many mistakes I've created
- 7:34:32some more values here and now we can look at our table display the values that are contained
- 7:34:39there and as we can see the table is filled we have five values with our unique IDs primary
- 7:34:50keys of our five faculties and five courses next we will look at such an aspect as deleting certain
- 7:34:57values from our table when once again there is nothing complicated here it uses the keyword
- 7:35:03delete from again we use the name of our courses table and if we stop here then all the values from
- 7:35:12our table will be deleted however we don't want all our values to be deleted and uh generally I
- 7:35:20would like to draw your attention to the fact that you should always carefully look at these keywords
- 7:35:25especially delete and drop because you can drop your some very important database that way usually
- 7:35:32of course rights for testers are restricted to some really serious databases for example
- 7:35:38if you're working on prod but a lot of people have limited rights on prod in general so there
- 7:35:44most likely unless some fools are working with databases then those rights are not restricted
- 7:35:50there but still pay attention to it do not forget for example if we use the command from our table
- 7:35:57some information if we want to delete then we must somehow specify this case with the help of
- 7:36:03the word where that is where and here we write the name of our field and the value so for example we
- 7:36:09want to remove information about the humanities faculty so we write that where faculty a is equal
- 7:36:16[Music] to and the GU value now let's go ahead and run onun our Command to see what remains
- 7:36:32in the table as we can observe our gu value has been successfully deleted in this straightforward
- 7:36:39manner we can remove our records from the table the next topic I would like to explore
- 7:36:46is modifying and existing excused upon value in our table this can be achieve by using a command
- 7:36:54such as update we aim to update certain values in our table table specifically the name of our
- 7:37:01[Music]
- 7:37:10table for instance we aim to replace the value of Gio in poly faculty
- 7:37:23we want to set a value for it example once more let's use our favorite gu V
- 7:37:33faculty equals go now we have to replace that value let's remove select all from
- 7:37:40courses as we can see the goo value has been replaced by the gum value
- 7:37:46we use the keyword update so it's not that complicated either finally the last thing I
- 7:37:53wanted to cover today is when we want to add a column to our table for example or delete
- 7:38:00it let's start by deleting our column specifically we want to remove our ID column to achieve this we
- 7:38:25use a keyword like iter table followed by the name of our table then the keyword drop we have already
- 7:38:33learned this word before next we use column which signifies a column and finally we specify
- 7:38:39the field we want to delete which in this case is the ID as we are about to observe it will be
- 7:38:47deleted yes so now we don't have the ID column anymore and now you and I want to
- 7:38:59add back our primary key to accomplish this we use once more alter table followed by the
- 7:39:06name of our table which is courses then add column ID integer and the name of the field
- 7:39:15behind which we want to place our new column alternatively we can use the words first or
- 7:39:21second if we are certain that this column should be positioned first however let's choose to
- 7:39:29that place it behind the number our Command has been successfully executed
- 7:39:35now let's proceed to verify the command our identifier has indeed been added
- 7:39:59[Music]
- 7:39:59[Music]
- 7:39:59your homework is as follows install Seagle server as I demonstrated and create some
- 7:40:09test tables make sure to remove values from them add values modify delete tables
- 7:40:15and delete databases basically experiment with all of this practice and remember how we do it
- 7:40:22since various queries are often asked in job interviews you need to be able to write them
- 7:40:33[Music]
- 7:40:34the queries that we've looked at today may not be asked that often in job interviews but here
- 7:40:40are the next ones select and join especially the first selects at almost every interview you will
- 7:40:46be asked to write these queries that is you'll be given some kind of spreadsheet with data in
- 7:40:52it and based on the job for example please show us the value from such and such a field in such
- 7:40:59such a table where these values are greater than five for example this will be the task and you
- 7:41:06will have to analyze this all quickly and write a select which would allow you to Output values
- 7:41:12because today we output values absolutely all from tables but there you will somehow
- 7:41:17specify this case and we will talk to you about it of course in the next lesson that is the next
- 7:41:21lesson let's get ready again download ql server for yourself learn it today I want wanted to show
- 7:41:29you a way to practice and even before the next class learn how to write some selections using
- 7:41:37different conditions go to lety schools.com select
- 7:41:44SQL and you'll find a huge number of different queries what's good about
- 7:41:50this site you get general information not the types of queries and you can directly
- 7:42:04to attempt writing these queries that is there are numerous test databases here that you can
- 7:42:10effortlessly work in and learn SQL on your own additionally as you can observe at the top
- 7:42:17there are identical simulators for mail email CSS JavaScript python PHP and all these things so you
- 7:42:26can certainly read all of that click around if you wish to learn something additional you always ask
- 7:42:33me about where to practice and this resource is fantastic for you I will not use it specifically
- 7:42:39in this lesson and in the next ones because you and I would rather learn how to create some
- 7:42:43tables ourselves enter data into them and not use readymade Solutions basically that's all I have
- 7:42:51for now thank you very much for your attention I will be glad to have your likes and subscriptions
- 7:42:56if you are on this channel for the first time and you are interested in the topic of testing I
- 7:43:01would like to remind you that I have course tester from scratch which is posted on this channel it's
- 7:43:08constantly being updated we've got a few more Skillet classes ahead of us then we will touch
- 7:43:13on such a topic as Testing mobile applications and finish everything on a good note on agile
- 7:43:19on scrum that is we will learn and find out what it is and already with all this knowledge I think
- 7:43:25you will be ready to be interviewed you can also safely respond on to various vacancies and try to
- 7:43:32go for an interview even if you will be rejected I would still advise you to go through different
- 7:43:40interviews learn uh memorize some slippery questions as they are often caught in other
- 7:43:45interviews and pump yourself up because when you already go to five or even a dozen interviews you
- 7:43:52will already have an idea of how they are held you will not be particularly nervous and I think you
- 7:43:58will successfully pass it and get your first offer that's what we are all here for that's what we are
- 7:44:04learning and all the information I give you is for this final amazing result Welcome to our tent
- 7:44:13bye [Music] hello YouTube today we are continuing our deep dive into database testing and my squal
- 7:44:35we will talk about the selections that are most often asked in interviews and break down the basic
- 7:44:40queries that you will need to learn and practice writing in order for you to be successful in your
- 7:44:47interview if this is your first time joining this lesson I would like to remind you that I have a
- 7:44:55course called tester from scratch in which we already had two lessons focused on database
- 7:45:01testing now the link to these lessons will appear at the top well let's get started
- 7:45:11and let's take apart first the most standard our very first phrase so to speak our query
- 7:45:18this is the output of all values from our table but first of all let's remember our
- 7:45:24previous queries that we've looked at in the last lesson this is to show all
- 7:45:29our databases that we have and we need to select the uh database that we are going
- 7:45:35to work in we're going to use the same database which is students I hope you manag to download
- 7:45:43and install Su server so we can all work on the same page you can follow along in parallel to
- 7:45:50practice the technique immediately we've logged into our database and here we have a table named
- 7:45:57courses which is what we will'll be working with so let's first retrieve all the values
- 7:46:03from this table from the courses table here we have three fields or columns faculty number and
- 7:46:09ID that is all the data that we have in the table can be outputed with the help of such a
- 7:46:20query also known as an operator here we have our keyword select the value and and and our table
- 7:46:29from which these these uh uh values are outputed furthermore for instance if we do
- 7:46:35not want to see duplicate Fields like when we have two duplicate fields in number we do not
- 7:46:43want to see all the freshmen but rather only one record that contains this value to do this we have
- 7:46:52to enter the following query select distinct memorize this word we will need it to separate
- 7:46:59at all the duplicates in the field we will take our number and the name of the
- 7:47:04table as a result as we can see we cut off duplicate values and we see only
- 7:47:13what does not contain duplicates next let's analyze such a command as limit
- 7:47:21that is for example we want to display only the first two rows of from our table
- 7:47:29most often your database does not consist of just these five rows or five records instead there are
- 7:47:37usually hundreds and sometimes even thousands of values therefore we don't need to work with that
- 7:47:43many values all the time let's focus on outputting only the first two records to achieve this we use
- 7:47:49the following command select all values from courses the limit is the keyword that will
- 7:47:54determine how many rows we want to see followed by the number of rows as a result we will only
- 7:48:00have the first two rows outputed so we can for instance eliminate unnecessary values and focus
- 7:48:09only on what we are interested in additionally there is a uh feature known as aliases or aliases
- 7:48:18these are temporary names for our fields for example we might not want the number field
- 7:48:24to be displayed as number but for instance as the name number to achieve this we write select
- 7:48:31number as number from the name of our table and remember to always put a semicolon at the
- 7:48:37end in the end as we can see we have a name change but this is just temporary
- 7:48:53if we now apply our select whole values from courses we will notice that the name of of our
- 7:48:59field has not changed that is to say we can assign some values for instance if we create
- 7:49:05some complex queries then we can rename them to make it a bit clear what exactly we are
- 7:49:11doing the next thing I wanted to go over with you is a comparison or the
- 7:49:22exact match of some values so we have our select statement and we want to pull
- 7:49:28some field from a table the name of our table and we have to assign some condition that we're
- 7:49:35going to look for these values for example let's find and select the faculty number
- 7:49:42here we will get two fields or two columns from the courses where faculty and make
- 7:49:48sure we use bio quotes this is important because it ensures accuracy in our query
- 7:50:05and as we can see here we enter those columns and those specific fields that we are interested in
- 7:50:12such as faculty and the number provided we have faculty equal to bio also in this case we can
- 7:50:19use the greater than sign the equal sign greater than or equal to or less than or equal to so for
- 7:50:25example we can select the number from course our Es as you realize we can only use greater than
- 7:50:35or less than for numeric values that's why we use the number here where the number is greater than
- 7:50:42one and as we can see we have only found values for course numbers that are greater than
- 7:50:54one I also wanted to point out that when we use greater than or equal to
- 7:51:01or less than or equal to we write the greater than equal sign first and the
- 7:51:06same for less than equal it is in that sequence so that it works for us that's
- 7:51:12the thing about comparisons and we can also use different logical operations like and or
- 7:51:20or that is if we are talking about end then we must have two conditions that we set if we
- 7:51:31speak about or or in translation from English it is or then we have either one condition or
- 7:51:40the other being met and these values are then output let's check this out together select
- 7:51:47let's output everything from courses where number equals one and faculty equals bio
- 7:51:54as we can see only the values where the faculty number is one and in faculty the value is bio or
- 7:52:03output as you can see we also have the theological faculty including in the table where we also have
- 7:52:31course number one but this value is not displayed because it doesn't meet the criteria for instance
- 7:52:38if you and I were to use the value o here and for example The Faculty gum then we would have all the
- 7:52:45values displayed where we have course number one and where we have the faculty name gum Unitarian
- 7:52:52that is either this condition or the other must be fulfilled that's the reason why we have values
- 7:52:58output in this manner this is as far as the logical operations are concerned the next
- 7:53:06aspect I'd like to examine is finding similar values for instance we want to locate words
- 7:53:13that have the letters all at the end in that case we need to use this type of query and the
- 7:53:20keyw we use is like that means let's retrieve all the values from courses where faculty and
- 7:53:29as I mentioned before we want to have the letter O at the
- 7:53:33end here we can do two ways if we're not interested in the number of characters that
- 7:53:43will come before this letter O we use the percent sign put o and run our query and for some reason
- 7:53:51we didn't find anything why didn't we get anything because I didn't use the like keyword so we
- 7:53:58repeat our query as you can see I have already run it several times here to refresh my memory
- 7:54:06in general what is going on and it was only the fourth query that I realized that I did not
- 7:54:12use the word like it happens when faculty is not equal we should enter like yes now we will discuss
- 7:54:19underscores by the way this is the last this is the final query as we observe two values appeared
- 7:54:28bio and Teo from The Faculty field with the final letter O so everything worked correctly for us now
- 7:54:36when we talk about the underscore the underscore always represents one character that is not
- 7:54:45present so we can use it for instance if we want it to show us only those values that end in iio
- 7:54:58then we enter the underscore followed by EO and as expected we are shown the bio so just one
- 7:55:08character is replaced with this underscore we can also combine these with each other so for example
- 7:55:14we might be interested in a query like this the first letter we have one we do not care what it
- 7:55:23is then there should be the letter and and then a percent sign that is it does not matter how many
- 7:55:30characters come after we run it and it shows us tail that is also nothing complicated as
- 7:55:38you and I can see it is very convenient to use so remember we search for similar values using
- 7:55:45the keyword like then we can also search for some ranges for example in order not to write very many
- 7:55:53times conditions that for example where number is one and number is two and and number equals 3 and
- 7:56:00number equals 4 and so on add infin item you can make it easier for instance if we are interested
- 7:56:07in a range from two to four then we can write the following query please show me all values
- 7:56:16from courses where number the keyword is between and we write the values we are interested in from
- 7:56:25two to four and two and from let's run it it and as we can see we are shown only those fields in
- 7:56:32which the condition matched that we would have in the range from two to four that is the ones in
- 7:56:38the we are not shown here we can also look here from the contrary that is we need on
- 7:56:48the contrary to show those values that are not within the range from 2 to 4 to
- 7:56:55do this we use the word not after dou so we're not a number between two and four
- 7:57:01we run it and we are shown only our ones also as you and I can see it's nothing
- 7:57:08complicated it also works with other words just remember to place the word not after
- 7:57:15where and again as we can simplify our life if we are interested not in a range
- 7:57:24but in hitting some specific numbers we can use the keyword in that is in this
- 7:57:32case we use the word in that is show me all the values from courses where
- 7:57:41number in um and these values we have to spell out through commas in parentheses
- 7:57:48for example we are interested in the values 1 and four that is we
- 7:57:53will now be shown those values in which we have an equal number of one and four
- 7:57:58as you and I can clearly see everything worked correctly and we didn't need to write a huge
- 7:58:03canvas with numerous conditions you and I can also combine various logical functions like this that
- 7:58:12is we are interested in some pair of values which is not important meaning it can be either this or
- 7:58:20that and some value is mandatory that is we can use this type of query in other words show me all
- 7:58:28values from courses where we open our bracket write the value for instance faculty is equal
- 7:58:35to TA or faculty equals bio and number equals 1 here we are shown all the values
- 7:58:51that will meet all these conditions so we remember that we can also combine these
- 7:58:56logical functions among themselves there are literally a few aspects left that I
- 7:59:01wanted to cover today firstly our sorting for instance we want to sort all the values in our
- 7:59:07table we want to sort them in alphabetical order
- 7:59:33for this we use the keyword order Bay and if we want to use alphabetical order then we do
- 7:59:40not need to write any additional conditions or additional words but just the field by which
- 7:59:45we want to perform this sorting let's sort by faculty this is the so-call ascending order
- 7:59:53that is in alphabetical order and as we can see we have sorted alphabetically if we want
- 8:00:00to do this same sorting in reverse order we have to use the word desk abbreviated
- 8:00:06to descending and we have reverse sorting we can specify the fields we are interested in by
- 8:00:16which it should be performed Additionally the last aspect we need to consider is aggregate
- 8:00:22functions this includes the sum which gives us the minimum and maximum values
- 8:00:28count which tells us the number of Records filled and average which calculates the
- 8:00:34average value for instance if we want to select the average value for the number field we use
- 8:00:41our favorite select statement we then write the name of this aggregate function which is
- 8:00:45average the field by which we desire to find this average value value in our case
- 8:00:59is number and the name of our table we have successfully calculated the average value
- 8:01:05for PO number if we wish to calculate the sum it operates in a similar manner select
- 8:01:12some poly number from courses and we have computed the sum in this particular field
- 8:01:28what else can be done here you can for instance find the minimum value in the field like a number
- 8:01:34that is once again select mean in the number field we can assign it some value that we would
- 8:01:40like to see some Alias we use the S keyword for this purpose let's call it minan number
- 8:01:47from courses and here it is uh replaced by an alias the minimum value we have is one
- 8:01:58and we are shown it the same thing applies to the maximum but I won't show you it works in a similar
- 8:02:04Manner and additionally you and I can also output the number of records that we have
- 8:02:20filled with some values so how this works is we output for example select count by faculty
- 8:02:27let let's go uh from courses we have here five values and they are all filled meaning we do not
- 8:02:35have any zero or empty spaces so five records They are filled and uh this table shows us that
- 8:02:44there are five essentially these are all the basic selections the basic queries that you need to know
- 8:03:01your homework assignment will be as follows first go through the floor I showed you today if you
- 8:03:09have any other tables created go through those tables and practice each of those Cy types also
- 8:03:18go to the W3 schools website under the cql tab and practice all of these selections there as well
- 8:03:25Additionally you can so to speak Aster risk to go through the other selections that are available
- 8:03:31there well I think these are all enough for you to write your interview requests when you
- 8:03:43get your assignments I will see you at the next session it will be devoted to joins so get ready
- 8:03:49practice get your hands full and I in my turn will say my catchphrase Welcome to our 10 bye
- 8:03:58[Music]
- 8:04:07bye hello YouTube today we have the final session of the database testing block and I'm going to
- 8:04:25explain to you about join and queries like this additionally we'll delve into how subqueries
- 8:04:35are nested just a little bit so you understand how we can locate the data we need using extra
- 8:04:41conditions but before we dive into this topic I also want to tell you about the UI component of
- 8:04:48rql and how you can aside from the command line utilize the tools that my SK offers us absolutely
- 8:04:57free fre of charge for this we need to download workbench now I will show you exactly how to do
- 8:05:04it most likely you have our myql installer left in your system and if you run it you need to wait a
- 8:05:11little time I've already done this ahead of time so as not to waste your precious minutes you'll
- 8:05:17get a screen like this that tells you which MyQ products you already have installed since
- 8:05:23I already have workbench installed it is displayed here you will just have one line with the my skull
- 8:05:30server so what do we need to do next to configure the workbench well you need to click on the add
- 8:05:38button here you will see all the available products that we can install and use you can
- 8:05:44read about each product separately to understand what it is there are quite a lot of them here also
- 8:05:50here you will find uh various samples and examples for your work these include ready
- 8:05:57made databases and tables with test data that you can also use you can download them from here
- 8:06:04as well but we're going to be interested in names applications we open it we choose MySQL workbench
- 8:06:11and we choose here is the only option it is to install my S workbench and the latest version
- 8:06:16because I already have it installed so I have everything here but you choose you click next this
- 8:06:22application is installed and you can work with it that is there are no problems peing in a enjoyable
- 8:06:30manner after that we can close the installer and run our my workbench when it starts you will have
- 8:06:39your local instance here which you have already prepared and probably worked with before you
- 8:06:44click on it and it prompts you for a password I believe you have a standard root password
- 8:06:53which you can save so that the system does not ask you for it in the future then it opens an
- 8:06:58application where you can enter the queries that we have studied and will'll continue to study
- 8:07:03today how do you do this to enter the query for instance show datab basis you
- 8:07:14need to do more than just press enter simply pressing enter will not work you must click
- 8:07:20on the lightning bolt icon to execute this query and then we are shown all the database
- 8:07:27just like we had in Comm online which we have speaking in a enjoyable manner furthermore we
- 8:07:36can write the database that we are going to use and for instance see what values we have in the
- 8:07:44courses table that we have what is convenient about this tool is that first of all it shows you
- 8:07:53errors if you enter something incorrectly right on the UI it also prompts you for some keywords that
- 8:07:59you can use in tables to substitute which is quite convenient another good thing is that you can run
- 8:08:06these commands all at once that is in this way or individually by highlighting a given command and
- 8:08:13clicking on the lightning bolt icon basically that's all you should be interested in at the
- 8:08:20moment in this software memorizing workbench is very handy probably more accessible than
- 8:08:28in common line here you can see it all at once and everything is quite clear so let's continue
- 8:08:34our work here today so that you get used to this application a little bit but before that let's see
- 8:08:41what joins are in general what kind of queries are they joins are queries that allow us to join two
- 8:08:50or more Tables by some field that is the same in these tables that is if we need to join multiple
- 8:08:58similar tables in the same database we can use joints there are three types of joints inner
- 8:09:04join right join and left join for our convenience I found these schematics to explain to you how it
- 8:09:13works the simplest join is an inner join that is an internal join that is if we have two tables
- 8:09:21and there is a field that is identical for A and B and the values in it are the same then we can
- 8:09:29perform such an inner join that is one table joins to the other table let me use an example to show
- 8:09:37you what this looks like that is the query itself looks like this this is our normal select we have
- 8:09:45to enter the fields that we want to combine next I'll explain why table a is written here table
- 8:09:51B is written here from table a join table a with table B End by the field by by which we are doing
- 8:09:58this join let's look at an example first let's take a moment to see what tables we even have
- 8:10:06in our database under students to do this we're going to use the show tables query and run it as
- 8:10:12of now we have two tables courses and general that is as you and I remember courses is the table we
- 8:10:19created in the previous two lessons and general is the table I create additionally so that we could
- 8:10:27merge values from these two tables now let's take a closer look at the values present in the general
- 8:10:35table we have four Fields here our ID first name last name age and gender and now we can focus on
- 8:10:52this ID field since we also have the ID field in the courses table we can and merge our values what
- 8:11:01is really good about using this application is that we can for example run two queries
- 8:11:06simultaneously and we will end up with two tables one will contain the general table and the other
- 8:11:13will have the courses table so let's get right down to business and merge these values together
- 8:11:28see first we write our word select and then we write down the values
- 8:11:33we want to Output however it is absolutely necessary that before each value before its
- 8:11:39field we need to write the table that contains it that is we write that in
- 8:11:47the table courses for example we will be interested in let's see what we have in
- 8:11:52courses faculty and let's have let's just have faculty we've only got two fields
- 8:11:57here and in the general table we're going to be interested in for example first name and
- 8:12:11last name so we write General first name and general last name next we write our
- 8:12:19table which is a from courses and then join specifying which table we will join General
- 8:12:24to additionally we have to write the value we are going to match for us it's IDs therefore we
- 8:12:32write courses it equals General it first finally we close our point with a comma
- 8:13:03let's run it and see if it works yes we did it as we can see we have just merged the values where
- 8:13:15IDs coincide and the Common Table is displayed that is now we can find out which faculty a
- 8:13:20person studies it let's run three queries simultaneously and see how it works in detail look
- 8:13:27we have we have the general table where the ID number is
- 8:13:32six and in the courses table there is H neck 7 since we don't have the same
- 8:13:49values of for six and seven in these two tables our resulting table in which we did the merge
- 8:13:57will not have these two rows that's why left and right join come to our eight
- 8:14:02let's see how they work that is there is nothing complicated here either in
- 8:14:07a left join we merge as if by our left table while in a right join we merge by our right
- 8:14:12table that is we will have all rows from table a displayed even if they are missing table B
- 8:14:24and similarly for the right hand side merge we will will be shown all rows from table B
- 8:14:30even if they are absent in table a so what we're discussing now is our icons the left
- 8:14:39join and right join primarily depend on how you configure these tables and write
- 8:14:43your query the resulting table joints will also be influenced by this so let's take the time to
- 8:14:50run these two queries together and observe with a real example how they differ from one another
- 8:14:57first let's begin with the left join we will select the fields we are interested
- 8:15:01in courses number General first name and general gender from our first table which
- 8:15:08we will call tab a we have courses apologies I meant to say courses then we join this with
- 8:15:15our second table general based on the already known fields that can provide us with a match
- 8:15:21yes we need to ensure we add left here to specify the type of join we are using using
- 8:16:06and now let's take a look at uh
- 8:16:09result observe how our query has worked we have a table called courses meaning all the
- 8:16:18rows from this table will be displayed even if they do not appear in table B we can verify
- 8:16:23this together now so we have an ID number ending with a seven which corresponds to physical four
- 8:16:32if you and I check we can see this four right here however since we do not have the same ID
- 8:16:40ending with a seven in general these values are recorded as nullable which means they are
- 8:16:47null but uh as we know left to right join shows all rows from a even if they are not in B so we
- 8:17:02just replace B with null values if we compare to our table that we did just an inner join here we
- 8:17:11have five values and there was only a match on our IDs that are in the two tables where are those
- 8:17:18values we have six and now let's perform the join operation for the right join for this we are going
- 8:17:26going to use our select again this time let's also output the ID pin General let it be the first
- 8:17:34name General the last name General the gender and let's add some more courses faculty right
- 8:17:43from courses the right. jooin dogen on courses General it and then uh we will run our query
- 8:18:04for
- 8:18:34this is causing an error because I didn't write it correctly let's execute our query
- 8:18:41and what do we observe we now have data on the sixth ID on the sixth ID which
- 8:18:49was missing in the courses table however since we performed a right join we we are
- 8:18:57presented with all the values from table B the general table if we examine the order
- 8:19:03we can see it right here even though this specific ID number is not present in table
- 8:19:10a this is how our joints work in principle there is nothing complicated perhaps there
- 8:19:20are some difficulties with readability and syntax of writing the queries but again this is a matter
- 8:19:29of practice so you need to practice these joins at home on our favorite site W3 schools that is where
- 8:19:38we practice it all there are already readymade databases there you don't even have to use my
- 8:19:47ckl workbench and other gadgets let's put it that way so let's go over there and practice practice
- 8:19:53practice because in job interviews they might ask for joints more often than not they just ask for
- 8:19:58selections but I would like to draw your attention that there can be tasks we an asterisk and joints
- 8:20:07and if you do them it's a big plus for you and the last aspect that I would like to go over with you
- 8:20:12is nested subqueries what are these in general what are they for for example if we are unable
- 8:20:18to use our single select and the conditions we specify need to Output the values that we are
- 8:20:26interested in we can use another select within our query to understand how this all works let's
- 8:20:33look at an example let's consider our second table General where we have many more fields
- 8:20:40and records and come up with a complex query let's call it that to accomplish that we would
- 8:20:48like to Output the first name the last name and the gender for instance let's
- 8:20:56also include the ID taken from General where H and let's devise another query that our H field
- 8:21:04should also utilize select in order to Output it let's choose H from General where let's
- 8:21:11specify ID greater than one and first name not first name and age greater than or equal to 21
- 8:22:00this is the query that we have and let's run it together with a query that shows us all the values
- 8:22:09from General that's what we get now let's see if we really got what we were interested in first we
- 8:22:16wanted to get the first name last name gender and ID fields from our spreadsheet where age matches
- 8:22:23the following aspects ID is greater than one and age is greater than 21 we need to ensure that our
- 8:22:30query captures these specific details accurately by doing so we can confirm that uh our data
- 8:22:37extraction is precise and meets our requirements let's see age is greater than 21 that is greater
- 8:22:44than or equal to 21 so what we have here is Alan Peter and Jack they have IDs greater than one so
- 8:22:54those are the three values that we should have here yeah that's really it so if we can't use one
- 8:23:01query and the conditions that we write in it to Output the values that we're interested in we use
- 8:23:08nested queries yes most likely this query that we have written is not so indicative but in principle
- 8:23:17in interviews when you need to do something and you are unsure how to achieve it with a single
- 8:23:23selector you can actually use another selector within it this is a useful technique that can
- 8:23:28make your work much easier so here is a little tip on how to accomplish this task you and I
- 8:23:33have collaborated very fruitfully over these four classes we have learned a variety of important
- 8:23:37skills such as how to install a SQL server and how to install workbench workbench is a very powerful
- 8:23:42tool that allows us to digest and present in a more readable and understandable way the
- 8:23:48information that we can extract from our databases and the tables that they contain also you should
- 8:23:52learn the most popular selections that you 100 100% will need during a job interview if they want
- 8:24:00to check you out and suddenly they really like you your robot employer they will want to know
- 8:24:07that you have more knowledge so make sure to learn join and how they are written additionally learn
- 8:24:14how to create tables and how to modify the data within them this is also quite useful if you need
- 8:24:20to complete test tasks or come up with test data directly at your work in the workplace I hope you
- 8:24:27enjoyed this block of classes in the next lesson we will start Testing mobile applications this
- 8:24:36will be the penultimate block before we finish this course all together all that will be left is
- 8:24:42agile and that's basically it I think that by the end of the Fall you and I will have finished the
- 8:24:49course tester from scratch and then there will be more courses more classes more realization of your
- 8:24:55wishes so please be sure to write in the comments what else you would like to see on the channel
- 8:25:02I'm outlining everything memorizing everything I have a separate Trello table where my let's
- 8:25:08say content plan is so everything you mention will definitely be implemented to some extent I remind
- 8:25:16you that I have a telegram which also contains a lot of useful things such as free courses
- 8:25:22links to them or my thoughts out loud which will help you to adapt a little bit in the it
- 8:25:28sphere uh and helpful articles that you can read as well and Instagram where you
- 8:25:36can also ask your questions there I also try to periodically post post related
- 8:25:43for example to test artifacts that we for example here do not consider in our course
- 8:25:50and I try to communicate with you there as well so if you are interested please join
- 8:25:56other social activities that are related to this Channel and its author Welcome to our tent [Music]
- 8:26:11bye hello YouTube today we are continuing our tester from scratch course and we're starting
- 8:26:24an intriguing new unit on mobile app testing that many of you have been requesting for a very long
- 8:26:29time there will be a few lessons where we will delve into and understand in general what mobile
- 8:26:36applications are how to work with them how to select the appropriate tools to work with them how
- 8:26:42to operate within those tools and how to install them on your computer how to test a mobile app and
- 8:26:50what specific checks we should use I'll also share some uh cheat sheets and check list to help you
- 8:26:57conduct your checks quickly in the future all of this in just a few lessons so plugin and explore
- 8:27:03is going to be very interesting let's start with some theoretical background I'll give you some
- 8:27:10context and what's the very first thing we should do before we start Testing
- 8:27:19mobile apps of course we need to choose the platform we want to develop on the
- 8:27:26devices we want to use and the form factors that means we need to gather
- 8:27:30the right statistics usually of course this task is not done by the testers but you might
- 8:27:37also be involved in these matters because you are the one who will need to conduct this very
- 8:27:42testing so the first thing we'll discuss is collecting statistics on mobile devices
- 8:27:50where can this be done first we have two official Resources with all the information for Developers
- 8:27:56of mobile apps whether for Android or iOS the two most popular platforms I'll
- 8:28:03provide links to those sites so you can explore and find all the information you
- 8:28:09need what will interest us here first on developer android.com we are interested
- 8:28:21in information about platforms do unfortunately this information
- 8:28:26is not displayed here right now as you can see uh it says here that uh we can find information
- 8:28:32about the required versions and Platforms in Android Studio next I'll tell you about Android
- 8:28:37studio and when we install this tool we'll be sure to check if we can do that because before
- 8:28:44this information used to look like a pie chart and you could see these ratios which versions of
- 8:28:50Android are the most common at the moment and this information would be very useful to us in case
- 8:28:56when we were choosing this or that device for our testing but here we have information about
- 8:29:01the size of screens and their resolution that is we can study this here as well that is all this
- 8:29:07statistical information can be obtained on the official website um there is also a similar site
- 8:29:14for iOS device that is is developer.apple.com there is also information here that is we can
- 8:29:23immediately check which iOS vers versions are the most common at the moment and also form
- 8:29:31that necessary pool of devices that we will test because not all versions of iOS are supported
- 8:29:37on all phones so we need to choose the one that is optimal for us to affect as many versions as
- 8:29:43possible and further testing that is all this can also be found and read here another good resources
- 8:29:50mix panel where we collect statistics by on how how widespread Android and iOS devices are that is
- 8:30:01you can see here that for example there are more Android devices at the moment in principle this
- 8:30:07is logical since iOS devices are produced only by Apple and Android devices are produced by almost
- 8:30:14all other major companies therefore there's more of them and here we can sort by the period we are
- 8:30:19interested in so we can find out for example how in the 2020 year this statistic changed
- 8:30:26I'm not going to do that now that is I've brought you the statistics for September through October
- 8:30:3124 October and it's formed statistics take quite a long time to form if we take a long
- 8:30:36period of time so let's not waste time on that additionally this can be downloaded and further
- 8:30:42utilize to select the devices we need to test on and if we still want to enter a more competitive
- 8:30:48market where there are more users we probably need to develop apps for the Android platform first
- 8:30:57there are also other statistics available here for instance on the distribution of iPhone 12
- 8:31:03iOS 14 and different versions of various phones you can see everything here as you can see there
- 8:31:11is a lot of information here on iOS system but in principle for your work for your interest you are
- 8:31:20likely to be interested specifically in statistics on comparing the distribution of Android and iOS
- 8:31:26devices also not a bad resource is statcounter.com that is here too you can for example find
- 8:31:32information about how widespread are the models of certain phone companies that is again to choose
- 8:31:40our devices for testing we can use it and for example realize that we need to purchase Samsung
- 8:31:46and Apple phones for our work possibly Huawei and xiaomi is the most common manufacturers
- 8:31:52that is also here you can see over time how this is a statistic also here we can select directly
- 8:32:01in the country we want to reach for example if we are interested in bellus we look at it if we
- 8:32:07are interested in the United States we look for this country for the whole world again we choose
- 8:32:14for the whole world and see how it can affect us there's also other information here that is we
- 8:32:19can see for example by changing screen resolution that is we can also find out what's screens are
- 8:32:26common now and what we should use for testing and for the development itself you can also see
- 8:32:32information for example about form factors that is how they are also common mobile tablet or desktop
- 8:32:40applications all of that can be explored here a very good resource that you can use to get the
- 8:32:45statistics plus there is also such a resource app brain basically it works in a similar way again we
- 8:32:54choose the country we are interested in let's take Greenland for example and here it is written down
- 8:32:59how many phones were sold and used in this country again so that we know which devices we should take
- 8:33:05for testing also a good resource that can help you for example in order for you to determine
- 8:33:12with the necessary mobile devices if you have for example limited budget in your company this
- 8:33:19resource is good because it has information about for example if you do not have a lot of money you
- 8:33:26are just starting some for example startup and you need to cover as many cases versions platforms as
- 8:33:33possible then here I prescribe the devices that you need to purchase the same applies to a growing
- 8:33:39business of some kind or already Enterprise so you can look at all of this here and see how much you
- 8:33:45can cover those cases that are generally all over the world most likely you will not have to do this
- 8:33:55that is is it will most likely be done either by marketers or by the customer himself or by
- 8:34:01the customer when he contacts your company or by your test lead who deals directly with all kinds
- 8:34:07of Financial and Regulatory issues and they need to filling out this Fleet of devices that you're
- 8:34:13interested in but for the future I think it's good enough to know where that information can
- 8:34:19be found going back to our mind map we've talked now about statistics and the resources that allow
- 8:34:26you to do that and find the information that you need let's now talk in general about mobile
- 8:34:32apps what they are there are three types of uh mobile applications these are native hybrid and
- 8:34:39web applications let's start with you with web applications I think that with web application
- 8:34:48testing unit you are familiar with this definition so I will not repeat it but if you are not
- 8:34:52familiar with it and this is your first time here there is a link at the top of the lesson where
- 8:34:56I talked in detail about the difference between websites web applications web services where you
- 8:35:00can learn what they are to a first approximation web applications are more hyped in terms of
- 8:35:07functionality a website and basically it's basically a website that's customized for our our
- 8:35:14uh mobile apps or mobile app screens the simplest example to me is if you and I remember our good
- 8:35:21Social Network v Conta that is if we just go to it we open a regular website uh a web application
- 8:35:28for our work on the desktop but uh this website also has a mobile version and it is the one that
- 8:35:39is already adapted for mobile devices so this has a mobile web application let's talk to you
- 8:35:44now about what exactly are the pros and cons of mobile web applications let's start with
- 8:35:50the pros the web application is one version for all platforms that is we do not need to develop a
- 8:35:56separate application for iOS for Android I do not know they are for Windows phone if it still lives
- 8:36:03for Blackberry that is we do not need to develop it all there is one version for all platforms it's
- 8:36:10basically a website that is adapted to work with a mobile device also from pluses it is possible to
- 8:36:18deduce that updating of this resource is carried out on a server that is we do not need to involve
- 8:36:24users to this work every everything happens in automatic mode and web applications are quite easy
- 8:36:29to develop because they use web Technologies HTML for example so there is nothing complicated about
- 8:36:36it of the disadvantages can be attributed to the fact that for a web application in principle it
- 8:36:42is clear from the definition always need internet connections to work there is no possibility to use
- 8:36:49the functions of a mobile device that is what does this mean for example we have in the cell phone
- 8:36:55camera we have push notifications we have for example access to GPS all of these things web
- 8:37:02applications can't use and that application cannot be downloaded from the app store or
- 8:37:09Google Play Market Google market I mean they're not there because it's basically a website I
- 8:37:14mean you can't distribute it that way and these applications are not very well protected because
- 8:37:20they are written in HTML 5 for example and we can easily download code of this application
- 8:37:28of our web and is at best to use it in the worst case in this code can be encoded some information
- 8:37:38sensitive that is sensitive data of our users for example and again it can be used this is
- 8:37:45something that concerns web applications there are also native apps native applications are
- 8:37:52those applications that we directly download from our store from playm Market or app store and they
- 8:37:58are developed directly on those tools those tools in those languages that are needed and used for
- 8:38:06the platform they are specific let's fix the typo here because I know a lot of people notice them
- 8:38:13and write to me in the comments this is very good you see I have already notice these points myself
- 8:38:22coming back to Native applications application for iOS for example are developed in Swift Android
- 8:38:29applications are developed in Java or cotlin that is these are specific languages peculiar
- 8:38:35to these platforms this should also be borne in mind on the plus site these native applications
- 8:38:43work without an internet connection and they have access to the mobile device capability
- 8:38:49so you can send push notifications you can for example use camera resources you can use G PPS
- 8:38:56that is everything that we have in the application we have access to it well if of course the users
- 8:39:02allow us to do this and these these applications are distributed through stores so this is also a
- 8:39:09big plus because you can download it in a store you can buy it for money so the company makes
- 8:39:14a profit on this um you can embed for example advertising on it and companies get some money
- 8:39:19for that too in principle it is at the expense of advertising that various conditionally free
- 8:39:25applications live one of the disadvantages is that a separate version of the application is developed
- 8:39:32for each platform as I said these applications are specific and are written in certain programming
- 8:39:38languages plus we are going to talk a little bit more about guidelines what they are that is each
- 8:39:44platform each store has its own guidelines we have our own requirements for the development
- 8:39:51of this or that application for its design and for example if Android has some requirements that are
- 8:39:58specific to that particular platform then iOS has requirements that are specific to that platform so
- 8:40:05we can't release the same apps written in the same language for those two platforms the thing about
- 8:40:12Native apps that's why we develop separately for each platform in principle this has the following
- 8:40:18disadvantage we need more money and time for development in principle it is understandable
- 8:40:24because there are two separate versions two platforms and we with several teams are engaged
- 8:40:30in this particular development on top of that more money for example can go to buying various
- 8:40:35test devices for example if we do decide that we are releasing for each separate platform we have
- 8:40:42to buy a device on iOS Android device but since there are so many for Android devices you have to
- 8:40:48buy them in different variations and necessarily the updating and downloading of these apps is
- 8:40:55with the involvement of the user that is we cannot automatically perform these updates whenever we
- 8:41:00want so the user has to download it this also causes some risks because for example if you have
- 8:41:07a critical bug in your application and a user has not downloaded it for a long time update that is a
- 8:41:14user can perceive this as a poor quality product poor quality of your work put a negative review
- 8:41:19the review has a very negative impact that other users see it and won't want to download the app
- 8:41:26that is we cannot update it all in a centralized way so that's a big disadvantage on the plus
- 8:41:32side these applications are quite high speed and due to the fact that we can involve the various
- 8:41:37functions of the mobile device that is they are more more interesting than other kinds of apps
- 8:41:44whether it's hybrid or web that's the thing about Native apps and the last type left is hybrid apps
- 8:41:51as the name implies hybrid applications include both web elements and Native application elements
- 8:42:00again this kind of application has its pros and cons first the pros include the fact that they
- 8:42:06are crossplatform why because most of the time they are written using different web technology
- 8:42:11languages so there's no such binding to the fact that we have to write only in Java or in cotlin
- 8:42:19or in Swift so again it's good for making sure that we don't have to develop separate versions
- 8:42:26for different marketplaces hybrid apps have access to phone features meaning we can plug
- 8:42:33them in they have access to apis internal to that phone just like native apps and they're cheaper
- 8:42:41to develop the native again because we don't have to develop 100 minus 500 versions let's say for
- 8:42:49different versions of platforms and the platforms themselves and we don't need such a large number
- 8:42:55number of large devices that we need for testing to the minuses can be attributed low speed of work
- 8:43:01because we have here used web Technologies we cannot optimize some things plus they are
- 8:43:06impractical because of the long updates of the framework that is if we for example used the
- 8:43:12our apps and wrote it on some kind of framework then basically it could take there about three
- 8:43:19to 6 months to update it and again that's a very long time and they're not secure because
- 8:43:24most most often again as I said it's using web Technologies it may be using HTML 5 and as web
- 8:43:32applications we have some security holes in those applications on top of that again going
- 8:43:37back to our mobile app design guidelines there may be issues related to with the fact that for
- 8:43:45this or that market even though we are using the same version we have to make changes in the design
- 8:43:50in order to comply with the guideline and not to be rejected for uploading this application to or
- 8:43:55Market that's the thing about the types of all these apps if we're talking about Native apps
- 8:44:00for example we can include the same Instagram that we download through the market hybrid maybe some
- 8:44:09kind of news aggregators so you have some kind of PC files that you're you download install there is
- 8:44:17information about various news resources and it is when you click for example on this news resource
- 8:44:23you are transferred to the web version of this application perhaps so it can be realized various
- 8:44:28applications related for example to photography also use this hybrid type that is you can find a
- 8:44:33lot of examples on the internet and prepare yourself for the fact that if you are asked
- 8:44:39for a job interview for example give an example of all of these types of mobile apps so that you
- 8:44:46know at least a few examples the next point is the guidelines that I've already talked about today
- 8:44:53these are the requirements for our design let's go back to our development sites for Android and for
- 8:45:00iOS if we're talking about Android we have we have guides directly where we have information on the
- 8:45:10user interface and navigation uh when we click on the element we need it opens up information about
- 8:45:16how it should look like how it should work and we must necessarily conform to everything that
- 8:45:21is written here in case we don't comply with that your will just be decl ConEd and they'll say we
- 8:45:29can't download this app because you don't meet our requirements so it's very important if you decide
- 8:45:35for yourself to choose the path of Testing mobile applications you should learn these guidelines the
- 8:45:41basic principles that are used in them often at job interviews they ask you exactly about these
- 8:45:45guidelines how familiar you are with them they ask you about the elements what differences there
- 8:45:50may be in iOS devices what differences there may be in Android devices that is we have to
- 8:45:58memorize all this a similar principle is used on the developer.apple.com website then there
- 8:46:04is information about the different operating systems that are used on different form factors
- 8:46:08of Apple products and again when we go for example to iOS if we're talking about a cell
- 8:46:14phone there's a detailed description of how it all works how it should look like that is also
- 8:46:20we have to memorize it learn it know it and be ready at interview to to be asked about it so
- 8:46:29paying attention to uh those two guidelines and uh the last point that I wanted to touch on today it
- 8:46:35will have to do with where do we get the device for testing not always your company or if you
- 8:46:40work on freelancing you have the opportunity to buy the necessary Fleet of devices and use them
- 8:46:44in your work that's why emulators come to our Aid as I said we use statistics for our work we found
- 8:46:52out for example that we have are two platforms we found out the versions that we are interested in
- 8:46:59that are the most common now we choose a device and we choose a form factor a tablet a phone or
- 8:47:07I don't know for example a watch a smartwatch that is we have to formalize our Fleet of devices the
- 8:47:16easiest option is of course to buy them that is we go to the resources he showed look at what devices
- 8:47:23are the most common what their model are and just send the customer this big list of what we
- 8:47:28need to buy for testing mobile applications if we don't have such an opportunity then emulators and
- 8:47:35mobile application simulators come to the rescue let's discuss them uh a little more first let's go
- 8:47:44back to our favorite developers from android.com and apple.com dot there are two primary aits used
- 8:47:55by default to emulate either a mobile device or another dot these are the Android SDK and X code I
- 8:48:02have not worked with xcode 12 and have not worked at all with testing Mobiles on the iOS platform
- 8:48:09so I cannot provide detailed information about this Tula about this tool therefore it is left to
- 8:48:17your own study and search for more information on the internet I worked on the Android SDK as part
- 8:48:26of the course when I took it again I work in web application testing now so I don't run into Mobile
- 8:48:31either but I know something and what I know I'll tell you and in principle for a successful start
- 8:48:39this information will be enough for you because in any case the Android SDK is quite an interesting
- 8:48:46tool there is a lot of functionality in it and it is used not only to emulate our applications
- 8:48:53we will talk about it in more detail in the next lessons we will learn how to install it I will
- 8:48:57show you what you will need to work with it how to emulate it what we will need to test in mobile
- 8:49:04applications so be sure to join the next lessons on this topic I will not talk about it in more
- 8:49:09detail right now that is we can as I said emulate our mobile device here choose which device we are
- 8:49:14interested in and the Android SDK allows you to create a these emulators and some access to
- 8:49:22the functions of this device there are and we can emulate them also to Android SDK can be connected
- 8:49:30directly to your phone and also in real time to work exactly with it using this Tula there is also
- 8:49:39a possibility to take logs from the device in case we have some errors and send these logs to the
- 8:49:44developer so uh we will talk about this in more detail in the next lesson I think it's probably
- 8:49:52the same thing with xcode you can develop our mobile apps directly within xcode and also test
- 8:49:58them using various kinds of emulators and then there's also this great resource called In Motion
- 8:50:07which I've worked with as well here there is let's say a fleet of virtual devices you will have the
- 8:50:15opportunity to use a free version of this tool this application there is a simple registration
- 8:50:22process here create your account and you'll have a few minutes to click on it and try it in your
- 8:50:30work again let's talk about this in more detail about when we're directly testing something I'm
- 8:50:37going to show you the basic testing that you can do here the emulation interface is very similar to
- 8:50:45the Android SDK although it's more limited here so you and I are going to look at that as well
- 8:50:51it's also possible to for example test different resolutions of our screen directly in the built-in
- 8:50:58Chrome Dev tools we probably talked about this when we looked at the dev tools device in general
- 8:51:04but let me remind you once again that you click F12 in your browser select toggle device toolbar
- 8:51:10and here you can select the resolution that we are interested in and see how the Adaptive
- 8:51:14layout works for this resolution you can also select the resolution of different devices
- 8:51:26that are already pre-installed here or you can add them here to custom devices or if they are
- 8:51:33not on the list look maybe they are here and they are just not checked off for you to use
- 8:51:39them and you can do all of that here in search for it we'll come back to Dev tools as well when we're
- 8:51:45going to look at mobile app testing I we also show you how you can connect for example your
- 8:51:53phone directly to your computer and working it through Dev tools that is it uh it will
- 8:51:59be displayed on the screen and we can conduct for example testing of mobile web applications
- 8:52:07directly using Chrome Dev tools that's the kind of lesson we have today I think you
- 8:52:12will find the information useful the homework assignment is as follows explore all of these
- 8:52:19resources that I will leave in the info box also study the various guideline related to
- 8:52:26design if you have decided for yourself that you want to try testing mobile applications
- 8:52:35and learn memorize what elements of are in the user interface how they should look like and
- 8:52:43how these elements May differ on Android and iOS you can also for yourself for example try
- 8:52:49genim Motion download and see how it works but keep in mind that there are only 60
- 8:52:54minutes there most likely if you're connecting from different emails you'll
- 8:52:59have the option to just extend that time also perhaps if you have some extra money
- 8:53:04and you like this tool you might consider buying a pay subscription and then you can
- 8:53:11work in an unlimited mode that's all for now Welcome to our tent goodbye [Music]
- 8:53:32hello YouTube in the last lesson you and I went over the main theoretical points that
- 8:53:38could relate to Testing mobile applications and today let's get familiar with a tool like
- 8:53:43Android Studio the Android SDK I will teach you how to install it and show you the main
- 8:53:49functions that you can use in your work and in the next lesson we will look at a list of all the
- 8:53:54tests that can be performed in mobile applications so that you know what you will need to do to do
- 8:54:01directly on our work let's get started to begin we go to developer.android.com to download our
- 8:54:11installer directly which will allow us to install the Android SDK very simple to do we click
- 8:54:21download select that we agree to all the terms and conditions and then start the installation
- 8:54:26process I already have the installer installed so let's proceed to installing the application
- 8:54:34itself we launch our installer and then we wait a little bit for the Preparatory work to take place
- 8:54:44this process usually takes a few minutes after that we get this welcome window where we click
- 8:54:50next and choose what we need to install make sure to check check that we have a check mark
- 8:54:57against Android virtual device because this is what will allow us to use the emulator for
- 8:55:02our work with you click next if you have enough space on your hard disk insert the default path
- 8:55:09where this application will be installed here we don't change anything either and install
- 8:55:15our application as standard when we use any installer again we wait for a few minutes so
- 8:55:24a few minutes have passed the installation as we can see was successful and we click next and
- 8:55:31right from here we can launch our Android Studio let's go ahead and do that and depending on the
- 8:55:37performance of your computer of course the time it will take to download this toola may vary the
- 8:55:43whole thing is quite a lot and requires quite a bit of performance characteristics of your
- 8:55:49computer shall we say so again we get the welcome window our installation is not yet complete I'm
- 8:55:56telling you right away and here we can either customize our installation somehow or we can
- 8:56:01choose the default path let's take a look at what we have in the customizer that is again
- 8:56:07here we have information about where we're going to install these additional packages that we're
- 8:56:11going to need for our work we can choose the themes that we like better I like dark themes
- 8:56:17always and this is where you need to choose what you want to install as as you can see I
- 8:56:25already have something installed because I've installed some packages before to refresh my
- 8:56:30memory a little bit on how this goes but most likely there will be check marks everywhere
- 8:56:36here except Android SDK platform so you'll just have the API selected here click next and finish
- 8:56:43and now we wait until we have all the necessary components installed this will take quite a long
- 8:56:49time so get ready okay we've got everything installed it took about 10 minutes probably
- 8:56:54because I have a slow internet connection because this I understand is downloaded exactly from the
- 8:57:01worldwide web and uh after that we have our Android Studio directly open and what we need
- 8:57:10using in order to work in this application we need to create a project a new project let's do that
- 8:57:24our new projection is created as this uh application is created so that we can also
- 8:57:32test our applications written by ourselves here or we can upload already readymade applications
- 8:57:39here and explore them as well that is here we have the opportunity to upload
- 8:57:43different templates that allow us to do this let's choose without any activities directly
- 8:57:51you will have to choose the version of the operating system which is used on your phone
- 8:57:57or which you will be use it for testing whatever you want to test and then click
- 8:58:02finish after that we will start preparing our workspace which is the environment where we
- 8:58:08will work we will be particularly interested in the avd manager the pixel 3 emulator is already
- 8:58:15pre-installed here and we can run it as you can see there is still some additional installation
- 8:58:22required it is necessary to to set how much RAM will be used to work with this
- 8:58:27emulator the default is 2 GB as we can see everything was successful everything updated
- 8:58:45we click finish and for some reason it tells us that we cannot start avd
- 8:58:51why can such an error occur we need to in all this H xxm let's install it and
- 8:58:59again we get an error we have installed the necessary tool but we also need to
- 8:59:05enable Hardware acceleration in the Bios how is it done now I will find out on the
- 8:59:12internet and I be sure to tell you so in general I have figured out this problem
- 8:59:27and I will tell you in a nutshell what you need to do to avoid this error if it appears
- 8:59:33I will definitely add two articles to the info box on how to set hardware virtualization in
- 8:59:39BIOS there is nothing complicated here that is you just enter the bios of your
- 8:59:44system depending on the type of your laptop or computer and the company that released it
- 8:59:56it's all detailed here on what needs to be done I have an HP that is you restart
- 9:00:00the laptop press f2 I had Escape go to in BIOS system configuration
- 9:00:04select virtualization technology and here you will need to turn
- 9:00:08on this function and after that the computer will reboot again and uh you should not have
- 9:00:22this error again that is I'll discount all this I can't show it in real time because it all happens
- 9:00:27at startup of your computer and I can't use a screen capture application and from a cell phone
- 9:00:33I would not really want to capture it because the quality will be so bad nothing complicated here
- 9:00:39once again I will leave all the links to these articles and after that we again return to our
- 9:00:48avd manager and here we have the opportunity to choose a pre-installed emulator or create
- 9:00:54your own virtual device that is some cardboard settings in it to do what will be of interest to
- 9:00:59you on my computer unfortunately does not work so fast Android SDK as I said it is quite demanding
- 9:01:07to the system of the application although I have a gaming laptop but as you can see even
- 9:01:14for him 8 GB there's not enough memory and here we can customize the whole thing choose those
- 9:01:25emulators and devices that you are interested in that is you can hear and TV and the smartphone
- 9:01:30itself and smart watches and tablets are tablets all of this can be done here
- 9:01:35configured pre-installed that is it will all just take up a certain space on the disc as
- 9:01:40you can see the pre-installed pixel 3A takes up almost 10 GB on the disc after that you launch
- 9:01:50the emulator by clicking on that green triangle see during the first installation you will have
- 9:01:56your emulator turned on the first time you run it the device will also be affected for
- 9:02:01a while now I've already done this so it goes a little bit faster for me all of that and now you
- 9:02:10basically have a a cell phone a smartphone which you can test what can you do in this
- 9:02:17emulator in the former scenario you have the ability to test the sound and adjust the volume
- 9:02:27accordingly it may not be the fastest application as we can observe however you typically have high
- 9:02:34performance computers at work which enable you to complete this task much more swiftly
- 9:02:41furthermore you have the option to change the spatial orientation of your device Additionally
- 9:02:48you can take a screenshot of the screen you're currently working on for instance if you need
- 9:02:54to address a bug a screenshot can be taken downloaded and subsequently attached to your
- 9:03:00bug report what else can you do here you can go into the so-called Zoom mode this means it
- 9:03:10just Zooms in on the place you're interested in Additionally the navigation buttons that we have
- 9:03:16in Android work here as well that is the back button the home button and the overview button
- 9:03:24and what else can you do here by pressing these three points you can use GPS and test it also
- 9:03:33you can add additional displays of some kind moreover you can emulate the operation of your
- 9:03:38network so for example you can emulate such conditions when you have GSM or 4G or 3G or
- 9:03:525G that is you can do all of this or full then you have absolutely all kinds of connections you
- 9:04:00can also emulate the strength of your signal so again if you are for example in a place where you
- 9:04:08have a weak signal where you have a good signal all of that can be adjusted here as well plus
- 9:04:14you can also choose viip status that is roaming for example or you are calling from home that is
- 9:04:24you can do all of that here too so it's all at your discretion what you need to emulate and what
- 9:04:29test conditions you need to create you can also modulate for example the operation of your device
- 9:04:35when your battery level is at the minimum level that is you can do it all here too as you can see
- 9:04:41you can immediately set up push notifications that tell you that you have a certain amount of percent
- 9:04:46left speaking in a enjoyable manner you can also emulate what you have plugged into an outlet that
- 9:04:57is charging your smartphone directly you can also emulate the state of your battery for example if
- 9:05:05it suddenly died if it's overloaded you can do all of that here too you can also emulate the
- 9:05:11fact that it is charging or not or it is not clear whether your phone is charging or not
- 9:05:16all of that can be done here as well you can also emulate for example directly calling your
- 9:05:23phone and here as you can see you have tapping triggered in the same way as it is
- 9:05:36on your mobile device this directly emulates the various navigation buttons for instance
- 9:05:43if you have some kind of game you can also use microphone emulation fingerprint if you
- 9:05:49have for example a fingerprint lock you can do that as well there are also some virtual
- 9:05:55sensors for example the same accelerometer gyroscope magnetometer or whatever it might
- 9:06:01be all of this can also be emulated here and here you can also directly create bug reports
- 9:06:12what is done here at once a screenshot is created if you left this checkbox you can also write the
- 9:06:18playback steps right away and the lcks of your device are also written also very cool if you uh
- 9:06:27for example emulate some error and you need to show the locks that directly happens with your
- 9:06:35application then you can copy all this and save this report again send it to your developer so he
- 9:06:41can directly fix this bug snapshots unfortunately I don't know what they are I can't tell you record
- 9:06:49and Playback if I understand correctly you can do something on the device and it's being
- 9:06:53recorded and you can also attach This Record to your bug report for example various settings that
- 9:07:22is where we save screenshots some hot Keys used or not that is all this can also be customized
- 9:07:29here directly for you even you see you can set a proxy that is some intermediate server between
- 9:07:37your client directly to the final server so you can test all this here very well if you
- 9:07:44for example do not have access to some kind of to the device I think this is a great Tula but
- 9:07:53not without flaws as you can see there are issues related to Performance and optimization of this
- 9:08:00application in general Android SDK but Tula is very powerful and it helps very well in working
- 9:08:08and emulating directly your devices what else would I like to tell you about Tula for example
- 9:08:15you can connect your phone directly here is a real device and you can also work with it directly here
- 9:08:23how can we accomplish this task it is done and I will demonstrate it on the emulator
- 9:08:30first you need to enable developer mode on your phone to achieve this we must go
- 9:08:35into the settings you will need to locate a specific button or tab such as about the
- 9:08:43device on your phone we navigate to this section especially if we're referring to a real device
- 9:08:51once we find the build number or it might be labeled as the build number we have to press
- 9:08:55it multiple times after doing so you'll see a message saying now you're a developer what
- 9:09:03does this give us that you can use additional features in your phone and for us we will be
- 9:09:11specifically interested in the debug mode which will give us the ability to read logs when we
- 9:09:18connect the phone to our computer and when we use our Android SDK how is is done so you and
- 9:09:26I have entered the developer mode and now we need to connect our phone via USB cable to our
- 9:09:33computer after that you will need to go to developer options and find an area
- 9:09:41like debugging make sure that you have USB debugging enabled if you don't have that
- 9:09:47enabl just change the toggle to indicate that you have USB debugging enabled what do we do
- 9:09:54next let me remind you this is for a real device don't forget you need to do all this
- 9:10:04on your actual smartphone especially if you have an Android device for
- 9:10:08example once you have connected the debug mode you can now work directly with the Android SDK
- 9:10:19and your smartphone to do this you need to go into the Android SDK and then connect your smartphone
- 9:10:24via a USB cable after connecting make sure to enable file transfer on the smartphone itself
- 9:10:34following that you will see a popup window on your smartphone screen that says allow USB debugging
- 9:10:39you should select okay on this popup window as we can see our smartphone is now successfully
- 9:10:46connected to the Android SDK and here we can see all the information that we have stored in our
- 9:10:51smartphone additionally if we utilize a tool like logcat which is right here we will have access
- 9:10:58to the device logs this means that anything you do on the device will be directly shown
- 9:11:04here if there are any errors this information will also be displayed in these logs for us to
- 9:11:10review these logs you can download and if you need to attach them to the report you
- 9:11:18attach them that is these errors will be directly seen by the developer and he will
- 9:11:25know what the problem really was this is much more effective than just describing
- 9:11:30the steps to reproduce a particular bug this is what concerns working with logs that is
- 9:11:38there is nothing complicated about it either find the bug and be sure to connect logging
- 9:11:44to our device we need to attach these logs to our bug report another thing I forgot to
- 9:11:50mention is if we for example want to install some application on our emulator this is done
- 9:11:56quite simply again you start your emulator in the way we already know you wait a little
- 9:12:03bit and beforehand I downloaded the APK file which is the uh file for installing
- 9:12:13our application and what can we do we simply drag and drop it right here into our emulator
- 9:12:22and then the installation of this application takes place this is incredibly convenient for
- 9:12:27instance you have a final build that needs testing the developers have uh prepared an APK file for
- 9:12:36you and you can install it on the emulator this way and conduct the testing directly within it
- 9:12:45as we can see we have installed telegram because this is an APK for installing Telegram and we can
- 9:12:51go into it and in our usual way work just like on a regular phone we'll talk to you about the
- 9:12:58checks themselves which we need to be sure to do on mobile devices in the next session that
- 9:13:03is you get this APK install it on an emulator for example or on a real device and then carry
- 9:13:10out all the checks that we will understand again there is nothing complicated about it
- 9:13:17it's a very handy tool basically for you for beginner testers I think this will be enough
- 9:13:23that is you just learn how to install this to learn how to the emulator how to load apks into
- 9:13:34it how to perform some test in it understand all these available functionalities that are
- 9:13:40here because the other things that are here except for logging I don't think you need to
- 9:13:45know at this point and most likely all of this will be taught to you directly at your work
- 9:13:53place also today let's take apart Jenny motion which I showed you during the first class let's
- 9:14:00set it up and see what we can do there let's go to the official Jim motion website and register let's
- 9:14:07take advantage of this nice offer that we have 60 Minutes for testing let's register using some data
- 9:14:18and let me demonstrate the possibility of using some test emails to obtain an unlimited number of
- 9:14:24these licenses remember not all Sites allow this if I recall correctly Jenny motion permits us to
- 9:14:33do this there is a resource called mailinator that lets us use public mailboxes for purposes related
- 9:14:40to needing to register somewhere uh and use the real version this site will be sufficient that is
- 9:14:50here we can create our own kind of test boxes for example a test let's call him artm and we have an
- 9:14:58opportunity to use it for a certain period of time and gather some data here let's register
- 9:15:05with you test RTO doog mailinator.com company name test it's quite interesting how everything
- 9:15:12here is highlighted in red for example from a UI ex perspective it's not very good cuz it's
- 9:15:18not clear we seem to have entered our data but for for some reason it's highlighted in
- 9:15:26red I have so many questions for the developers of this system oh
- 9:15:42come on now all right let's try to come up with some kind of password
- 9:15:53we confirm it we select our location and then we confirm that we are not a robot by doing the
- 9:15:59so-called capture so we confirmed that we want to use it for free well for some reason the system's
- 9:16:06crashing apparently it didn't like mailinator so let's use a real maybox so we have managed to
- 9:16:13get into our Genny motion account that is we have registered and we have confirmed our email address
- 9:16:23here we also have the possibility to use some pre-installed virtual devices which
- 9:16:29are there's one here and and again just a reminder that we only have 60
- 9:16:47minutes so we can also create some of our own devices we can also upload
- 9:16:57some applications that we need to test here but let's use some default device
- 9:17:02and look at the functionality of this web application let's select let's go
- 9:17:07ahead and again our Google pixel 3A our virtual device is loaded that is it is
- 9:17:15created it takes a little bit of time to load a message pops up informing us that
- 9:17:25we're on a time limit and here we have our emulator our device running with our Android
- 9:17:31system we can also utilize similar features here that we had in the Android SDK so this
- 9:17:37is volume control this is for changing the position of our picture or our smartphone
- 9:17:45we can also choose to display it in full screen next we have some sort of clipboard functionality
- 9:17:58unfortunately I don't know what that is let's try to input some
- 9:18:03information here hm nothing came up that's very interesting apparently
- 9:18:09these are some notes that we can create right here we can also upload some files
- 9:18:14here once again we can use our webcam as a camera for this device emulate different levels of
- 9:18:23battery and see whether or not our device is charging
- 9:18:27again our fluff notification appears indicating that there is 15% left to
- 9:18:34discharge we can also play around with geolocation using GPS next we can create
- 9:18:46some screencast which means recording our screen or take screenshots if we need to
- 9:18:52find a way to to fix our bug next is identify that is we can apply some identities of our
- 9:18:58device like generating an Android ID all of this can be done here once again we can
- 9:19:05emulate various kinds of signal strength or the type of connection we intend to
- 9:19:13use that is all this can also be done here you can emulate a call or send some message to our
- 9:19:27device you can directly change the resolution of our screen which will also affect the performance
- 9:19:32for example or the discharge rate of our device dis iio I unfortunately do not know what it is so
- 9:19:42I will not tell you once again navigation buttons and turning off our device that is we can also do
- 9:19:50all this here and we can use it well just like in the Android SDK this application as you can see
- 9:19:58does not require as much performance power as the Android SDK but its disadvantage is that it is of
- 9:20:04course paid and again it doesn't cover everything that can be done in the Android SDK the Android
- 9:20:11SDK in turn doesn't cover what you can do on a real device that is it doesn't cover every feature
- 9:20:18therefore we cannot fully guarantee the fact that a particular Buck will not actually be reproduced
- 9:20:23on a real device that is we should also test on real devices emulators are not a substitute for
- 9:20:33this kind of testing this is such an interesting application so you can double with it too to
- 9:20:39practice to see how it works in the next lesson I will tell you what all these buttons in the
- 9:20:45Android SDK and in J motion are for that is I will tell you about the types of checks that we should
- 9:20:53simulate events interrupts for our smartphone or tablet or Smartwatch that is a mobile device
- 9:21:02that we're testing and how we should be testing this whole thing and what to pay attention to
- 9:21:08first so be sure to stay tuned to this channel I think it's going to be very interesting the next
- 9:21:14session will be the last one in the framework of mobile application testing because in my opinion
- 9:21:20I can't give you more than what I know myself myself I don't work with mobile apps myself
- 9:21:26everything I remember everything I know everything I find on the internet I tell you as well and this
- 9:21:32knowledge was also given to me in the courses in principle I think that this knowledge will
- 9:21:37be enough for a position of a beginner tester or for a position of a trainee so thank you very much
- 9:21:42for your attention be sure to leave your questions in the comments if you have any subscribe to this
- 9:21:47channel if this is your first time here and check out my social media channels like like
- 9:21:52Telegram and Instagram lots of great stuff there too and we communicate with everyone there as
- 9:21:59well if I don't answer the guys who have been on this channel for a long time or who work in
- 9:22:06testing answer because I know that there are also current testers in the ranks of my subscribers so
- 9:22:12we don't put you without attention thank you very much gracias to our shalash bye [Music]
- 9:22:34hello YouTube today I'd like to conclude our dive into Mobile app testing on a positive note
- 9:22:40and discuss the checks that must be performed on our mobile apps directly to ensure they function
- 9:22:47correctly there are several basic checks that need to be conducted on our mobile apps
- 9:23:01let's talk about each of these first there are the interrupt checks what is an interrupt it is
- 9:23:08when the work of our application is interrupted by something from the outside what are some of
- 9:23:14the checks associated with this in general for example someone calls us and we're sitting in some
- 9:23:19application either in a toy or in our our browser and we should definitely check what happens to the
- 9:23:25application after the call ends for example it may crash crash out or hang so we need to make
- 9:23:33sure that everything is working correctly the same applies to incoming calls that is for example if
- 9:23:40we minimized our application in word Ray and we call someone and then we want to go back
- 9:23:47to our application we should see if everything is fine there if the information about what we
- 9:23:52did in Ram is still there and this information is loaded and shown to us in the same unchanged form
- 9:23:58so that's something we can test as well there are also types of interruptions like popups
- 9:24:03notifications push notifications so for example again you're playing something and you receive
- 9:24:08a message from some social network and a push notification appears again we can test this see
- 9:24:15how the main application we're working in reacts to this the next kind of interrupts are discharge
- 9:24:21interrupts recharge interrupts so for example if our phone is at the minimum threshold in terms of
- 9:24:29charging how does the app behave again there may be some sort of notification that you need to put
- 9:24:35your phone on charge or that your phone has been put into economy mode so again we're looking at
- 9:24:40the fact that our app is working correctly charging means that for example we take our
- 9:24:44phone and put it on our charging station again see if everything works correctly in our application
- 9:24:50that is whether it does not fly out does not minimize to the tray does not start to slow
- 9:24:54down that is we look at this again application minimization and modification again everything
- 9:25:00is simple here if we minimize our application in the tray and expand it back we see that yes
- 9:25:05there is really saved information again if the amount of RAM on our phone allows us to do it
- 9:25:10because if we do not have enough memory and our application does not work in the tray we can see
- 9:25:14that it does not work in the tray application for example some heavy toy then of course we have the
- 9:25:20possibility that it is simply because of ROM not is loading this data the next type of testing is
- 9:25:29testing the installation that is we check that our application is installed correctly that we
- 9:25:33can remove it for example as from some Market or we can remove directly from the phone by
- 9:25:39long pressing pressing the cross and everything is really removed or from the tabina applications
- 9:25:45inside the settings delete so we have to check all that and see that yes we do have
- 9:25:53everything goes well reinstallation again we uninstalled this app some time ago and
- 9:25:58we decided to reinstall it back we may have some I don't know data folder from this app saved how
- 9:26:04could that affect us reinstalling this app and the app possibly from that could not work properly I
- 9:26:10mean we should definitely check that as well and of course upgrades when we make an update from our
- 9:26:18Market that is again to see that the transition to a new version does not affect does not affect
- 9:26:24our main application its work uh that is also we check all this the next aspect is to check various
- 9:26:31things related to connectivity to the internet that is we have to check how our application works
- 9:26:38on different types of connection whether it is Wi-Fi 3G 4G 5G 2G and all of these G that can be
- 9:26:47connected to our phone and its updates so we are looking at that as well we also have to check the
- 9:26:52quality of connection that is when we have a bad connection when we have a good connection when we
- 9:26:57have a great connection when we have no internet at all for example so we have to look at that loss
- 9:27:03of connection when we have for example I don't know the internet is blocked in the country as
- 9:27:09it happens in bellarus or or you just go somewhere outdoors and there are no Towers there that allow
- 9:27:17us to give out a normal signal so we are also looking at how our application works and ch
- 9:27:22in the connection typee for example we're sitting on 3G or 4G and we change that connection type to
- 9:27:28Wi whether it's really going to work well whether the connection is going to be intermittent we have
- 9:27:34to test that as we remember all of these functions at least the ones that I have shown you today are
- 9:27:40implemented in emulators as well so you don't have to do all this on a real device although of course
- 9:27:48it is recommended to perform all the checks on a real device but but if there is no such
- 9:27:53possibility you can emulate simulate all these let's say unfavorable influences or favorable
- 9:28:00influences for your phone directly in the emulator itself I'm not going to show it again today if you
- 9:28:06don't know how to install the emulator how to work with it what features they have then now at the
- 9:28:13top there will be a link to my past video where I tell you in detail how to install Android Studio
- 9:28:20if we are talking about Android devices show you what features there are be sure to go over explore
- 9:28:25and test everything according to the checks that we're going to go over with you today the next
- 9:28:31type of checks is working with the Phone features that is we have some built-in features phone for
- 9:28:37example there is GPS there is video photo there are other phone functions like I don't know
- 9:28:43gometer or there is support for push notifications so we have to check all that if we're talking
- 9:28:48about GPS we look at what for example with API we can connect to the phone's IP and use the GPS
- 9:28:54that's there we look to see if our geolocation is actually working correctly again if we have
- 9:28:59the ability to use the camera that's on the phone we can test all of that check front camera check
- 9:29:07rear camera check sherik check telecamera that is everything that we have and that our application
- 9:29:13should support work with what that is all these things we have to check screen size resolution
- 9:29:19orientation the same thing that that is we have to check on different form factors for example
- 9:29:25if it is stated that our product can work for example on a tablet can work on a phone where
- 9:29:32the resolution is full HD where the resolution is full HD where the resolution is HD where the
- 9:29:39resolution I don't know what others have there's 4K 2K I don't know if they are for phones or not
- 9:29:46in general we have to check all of this again whether is working correctly whether is rendered
- 9:29:52all our pages in our application we check all of this we also have to check for orientation that
- 9:29:58is if it is stated for example that it can work in horizontal and vertical mode does it really work
- 9:30:02when we turn the phone upside down there for this purpose the phone has just the accelerometer which
- 9:30:07allows us to determine its orientation in space working with gestures that is also I think do not
- 9:30:12need to explain here we check for example there tap different on our phone screen check minimizing
- 9:30:18unfolding some phones now have support for example for knuckle tapping that is also somehow it should
- 9:30:25work that is we have to check all of this all of our gestures there swipes zooming in zooming
- 9:30:32out of our picture we check all of this well and other features of the phone again everything that
- 9:30:39we can just think of that we have in the phone and the features that are application supports let's
- 9:30:45say and the access that we give it that is how it works the next aspect is performance test testing
- 9:30:52here too everything is quite simple we check the speed of our application that is how fast it works
- 9:30:58responsiveness for example if we tap on it then for example that should quickly go for example to
- 9:31:03the next page or if we make a swipe then also after it should come some action how fast it
- 9:31:10happens Ram load that is we should definitely make sure that for example our application is
- 9:31:16well optimized for this or that one platforms and did not load the phone very much depending
- 9:31:22on the battery level that is interconnected with interruptions again we look to see if our
- 9:31:28application is not slowing down when their battery level drops by a certain amount we can check just
- 9:31:33about every 10% as it can happen that is how your imagination will suffice and what the end user and
- 9:31:40the business itself wants to get from you in the end run internal memory from a flash drive so this
- 9:31:45is more relevant to in an Android app we can for example install an app both on the internal memory
- 9:31:52of our phone and install it on a flash drive that we have and see again how our app works again the
- 9:31:58rest of all the other checks are connected to that which means we can definitely check for installing
- 9:32:03on a flash drive deleting from the flash drive updating on the flash drive reinstalling it on
- 9:32:09a flash drive I mean it's all interconnected and again I repeat the number of checks depends only
- 9:32:16on how thoroughly you need to do it all how your imagination Works what your customer wants to see
- 9:32:21from you and most importantly how much time you have for this testing in general so this is the
- 9:32:26basic list of testing you can do but beyond that there are our standard all of our standard all of
- 9:32:31our testing all of our testing types that we can also apply to our mobile apps let's take
- 9:32:36a look at those as well in the description of this video I will attach two checklists where
- 9:32:41all the checks that you can perform are also spelled out and in general for mobile devices
- 9:32:47there are a huge number of checklists cheat sheets in the public domain on the internet
- 9:32:52so you just type in checklist for mobile app checks and you'll get just um huge pile of
- 9:33:00all kinds of checklists that can help you with your checks and going back to the aspect of what
- 9:33:05else we can test here that is we can test this documentation that is we test our requirements
- 9:33:12functional testing that is about what we test here is what I told you a bit earlier that is all these
- 9:33:17checks for interruptions installation and so on we should definitely of course check that those
- 9:33:22functions that are declared in our application that are in the requirements they also Implement
- 9:33:29so I would generally say that functional testing is the most important thing you should do and the
- 9:33:35first thing you should do usability testing that is for example how our buttons are well placed
- 9:33:40whether they comply with Android or Apple's guideline I mean we all have to test that UI
- 9:33:45testing again going back to these guidelines that is we also compare whether everything everything
- 9:33:51corresponds to way it should be implemented according to the guidelines and the mockups
- 9:33:56that were provided by to us uiux designer what's good about mobile testing is that while there's a
- 9:34:05huge amount of testing that we have to do there's also always documentation available that is you
- 9:34:11already have documentation in the form of the same guidelines it describes in great detail
- 9:34:17how your application should look how buttons should be placed how they should react to your
- 9:34:22actions clicks and so on that is you have already simplified your work in collecting and analyzing
- 9:34:28requirements for your mobile application again compatibility configuration testing that is again
- 9:34:35we look at compatibility testing configuration testing performance testing which we have
- 9:34:40already talked about today security testing that's security testing so we're looking at for example
- 9:34:46what if we're giving access and permission to use some of the features of our phones that we are
- 9:34:51inside our application we do not use any other features that are not declared in this excess
- 9:34:56which was given to us by the user because it can cause huge losses and risks for you as a developer
- 9:35:01and for your customer and cause a big Scandal because the issue related to sensitive data of
- 9:35:08your users is very critical especially now so you can get into a very big amount of money Recovery
- 9:35:15testing that is failure and Recovery testing again recalling our lesson on types of testing
- 9:35:22recall the types of testing that we do there if you forgotten there's a link at the top right now
- 9:35:26go over take a look and uh all of this again can be applied and to mobile testing again very often
- 9:35:31for example localize some games for different locals that is there's a game in Russian for
- 9:35:37I don't know there are games in English for the USA uh and there are a a huge number of games in
- 9:35:41Chinese that is we're testing our localization or we're testing our internationalization depending
- 9:35:47on what our goals are for this functionality and our application beta testing well again it's also
- 9:35:53very pretty straightforward Certification testing as far as I understand is compliance with the
- 9:35:59requirements of Apple or Google according to our guidelines according to the requirements
- 9:36:05for uploading our applications to the store in various markets that is if I am wrong please
- 9:36:10correct me in the comments and tell me what Certification testing is because I know that
- 9:36:14I am watched by mobile application testers as well maybe they are more knowledgeable in these
- 9:36:19issues and then it goes on to spill out all these all these basic checks that you have to do so you
- 9:36:27can rely on them in your work when you're I don't know you're at a dead end and you don't know what
- 9:36:32to do or you want to simplify your work you can refer to these checklists and this checklist is
- 9:36:38also in principle quite detailed about what you can do what checks you do you can also
- 9:36:44find additional checklists for Android additional checklists for so it all depends on how much time
- 9:36:53you are willing to spend and how many checks you can perform again there is such a test artifact
- 9:36:59as a test plan which allows us to prescribe even at the beginning of our testing uh what kinds of
- 9:37:06testing we will use what tools we're going to use what checks we're going to run and this can very
- 9:37:13much limit the checks that you need to do for a particular functionality so also pay attention to
- 9:37:18that and ask your team leader for example if you are coming for the first time or the person who is
- 9:37:24responsible for your management team for example how it is implemented in your organization what
- 9:37:28kind of checks you do you may not be checking or testing something then you don't need to come up
- 9:37:34with a bicycle and remembered something else I wanted to tell you about this part of Mobile app
- 9:37:39testing such a topic on the edge of let's say web app testing and mobile app testing is how
- 9:37:45do we work in Chrome Dev tools using our actual device let's switch to our Chrome Dev tools and
- 9:37:51and see how this can be accomplished to connect to our phone particularly to the Chrome installed
- 9:37:58on it we must first access the Chrome that is installed on our computer we then click on the
- 9:38:03three dots at the top right corner select more tools and choose to connect to remote devices this
- 9:38:09action will open a new tab where you you will see a console at the bottom of the screen click on the
- 9:38:15link provided after doing this you should receive a message on your phone asking if you want to
- 9:38:21allow USB debugging for this device if you watched the previous video I detailed how to set this up
- 9:38:27on a Android device so you can go ahead and watch that nothing complicated about it you just need to
- 9:38:34will need to enter developer mode for that device and select the debugging over USB permission after
- 9:38:44that you have your phone displayed and you need to go exactly into from Dev tools that you have
- 9:38:50on your phone and then you can directly from def tools which is right here write some kind of link
- 9:38:58for the browser that is installed on your phone so for example we take a link We paste it and
- 9:39:06then click open after that you will have that link displayed on the phone itself you can also click
- 9:39:13on inspect and then when the screen is on you will see the information that you have on your phone
- 9:39:24and if you do something directly on your phone then all the requests and responses
- 9:39:30that go through your phone will show up just like in regular Chrome Dev tools this allows
- 9:39:35us to analyze everything that's happening on your phone as well that means in this manner without
- 9:39:41even downloading any sniffers such as Fiddler or Charles which we will discuss in the course
- 9:39:48for continuing testers let's call it that you can still an analyze what is happening on your
- 9:39:52phone if you have Chrome installed on it this is the way in which it can also be
- 9:40:03carried out very similar feature if you need to analyze this I hope you enjoyed
- 9:40:10this lesson learn something new for you and now you will be ready to interview for the position
- 9:40:15of a beginner mobile application tester you should definitely read all of the guidelines
- 9:40:21as I said in the previous lesson probably even in the first lesson learn it make sure you memorize
- 9:40:27all of those basic checks that are we have learned with you today to memorize those emulators that
- 9:40:32we have worked with what functions they have to learn how to shoot logs from your devices that
- 9:40:38is you need to do all this before you apply for a position as a mobile application tester in the
- 9:40:44next session we will talk about requirements how to analyze them in what form they can be presented
- 9:40:51how to collect them who to communicate with about these requirements in general in case of finding
- 9:40:57any errors in them make sure to stay tuned stay tuned with me and definitely subscribe to this
- 9:41:04channel also be sure to leave your comments if you have any questions related to this lesson
- 9:41:11visit my social networks where there is a lot of useful information and where you can ask questions
- 9:41:16directly to me and to members of our already large software testing community and that's all for now
- 9:41:24Welcome to our tent [Music] bye hello YouTube we have come almost to the end of our course tester
- 9:41:46from scratch and it dawned on me that I forgot to tell you in the very first block when we talked
- 9:41:52about testing theory about such an important topic as requirements analysis and how we work with them
- 9:41:58as testers why is it important everyone knows such an expression as the theater begins with the
- 9:42:05hanger and the development process essentially begins with requirements that is without
- 9:42:12requirements without any idea without realizing it in the form of documentation we cannot get to
- 9:42:18work and realize what the business and the user wants to get from us so let's talk about this
- 9:42:24topic there are three main levels of requirements they are the business requirements level the user
- 9:42:30requirements level and the product requirements level let's talk about each one of them and I
- 9:42:36really hope that my friends business analysts or product managers project managers don't imprison
- 9:42:42the me if I say something wrong because I still do not work directly with the co-creation of
- 9:42:49requirements but everything that I know and used or use in my work I tell you now so let's get
- 9:42:54started from the concept of business requirements level it is clear that this is something that is
- 9:42:59necessary for our business that is the purpose for which our product is created for what what is the
- 9:43:07use and how to get profit from this product that is anything that our business is interested in
- 9:43:15for example a business has a goal to create some kind of website that promote their products that's
- 9:43:22their Core Business requirement then we move on to the level of user requirements that is it is clear
- 9:43:30that this site will not exist without users who will use it so the user requirements level covers
- 9:43:37the tasks that the user can perform with the product like registering communicating looking for
- 9:43:44information about our product that we promote on this site that is everything that our user can do
- 9:43:51and already the product requirements level is how this is all going to be implemented in our product
- 9:43:58from a development perspective given the context of business requirements and the context of user
- 9:44:04requirements and the product requirements layer is divided into functional requirements what our
- 9:44:10system should do and non-functional requirements how our the system has to do that does that ring
- 9:44:16a bell I think we all remember both functional and non-functional fun testing these concepts
- 9:44:23are closely interrelated meaning that functional testing covers the area of testing functional
- 9:44:29requirements non-functional testing on the other hand with all its various types of which there are
- 9:44:34a huge number covers non-functional requirements and that's essentially all you need to know about
- 9:44:41these three levels make sure you memorize their names what they stand for and what they are used
- 9:44:46for because often in interviews they may ask you about the types of requirements you know and to
- 9:44:54describe them a bit plus try to find additional examples on the internet for each of these levels
- 9:45:03I think it won't be a huge hassle as it's not that difficult so we figured out what levels we have
- 9:45:09and now let's talk about how we can identify our requirements most often this is done by business
- 9:45:15analysts but in small companies the function of analyst for example can be performed by college
- 9:45:21and Engineers for example this also happens so how can we even identify these requirements first
- 9:45:29of all we can talk to our business customer or to the users of some focus group that will be working
- 9:45:35with our product and find out from them what they want to see in it find out all these requirements
- 9:45:42next we can observe for example there is already some product that is used in the company that
- 9:45:48ordered our services and we are trying to develop some new version of this product more improved so
- 9:45:56we can observe how users work in that product and find out what they are interested in what
- 9:46:01they would like to improve in their product so we're observing that there's also such a thing
- 9:46:08as self-description that is for example we do not know how our product works that is we do not have
- 9:46:16some prototypes which we will talk to you about a little bit further then we can turn on Common
- 9:46:21Sense and describe these requirements ourselves taking into account for example the interview and
- 9:46:27observation phase and WR them and prototyping that is if we have for example a certain website and we
- 9:46:35are developing a competitor to that website then we can go to it and see how it works how certain
- 9:46:41features are implemented on it and also to spell them out in our requirements so there is nothing
- 9:46:47complicated about it either it is also absolutely necessary to constantly ask questions clarifying
- 9:46:54how this or that functionality should be realized in our product and you should not be shy to ask
- 9:47:02them plus when you come for example to a project you also need to find out one of the very first
- 9:47:07things you need to know where the requirements are stored in this company for example if they
- 9:47:13are stored in some kind of tracking system like J or Azure devops or if they are some kind of
- 9:47:19specifications that are stored in word somewhere or if they are a Wiki that is in Confluence for
- 9:47:25example or again in Azure devops so we learn all of this we learn how these requirements change
- 9:47:31who is responsible for Gathering requirements who we can talk to if we don't understand something
- 9:47:36about a requirement that is we must specify all this so that in the future our work would be the
- 9:47:43most convenient for us and for the people for whom we develop this product next let's talk in
- 9:47:49general about what we check these requirements for there are so-called properties of a good
- 9:47:54requirement that is in essence the requirements have requirements to their writing and composition
- 9:48:00this is what we will mainly deal with when we study some requirements for example let's
- 9:48:05imagine a situation that analyst for example or product owner has collected information from our
- 9:48:12customer formalize these requirements in the form of user story which we will talk about a little
- 9:48:18bit further and we are connected to reviewing this requirement and what we should check in
- 9:48:23it there are seven requirements highlighted here that we need to look at the first is completeness
- 9:48:31what is that completeness means that the uh requirement must contain all the information
- 9:48:37necessary for developers testers or other people who will work with it so we have to verify that
- 9:48:45there's all the information in that requirement and we shouldn't get distracted and go to other
- 9:48:51requirements that we have in that system what does consistency mean for example you have some
- 9:48:57pictures in your requirement for example mockups templates UI that will be implemented in the
- 9:49:04product as part of this functionality and there's text for example acceptance criteria that we have
- 9:49:11in user story again we'll talk about user story a little bit further on so don't be intimidated
- 9:49:16these are essentially acceptance criteria which are the criteria that determine that
- 9:49:20our requirement is realized in this functionality and for example this picture this mockup does not
- 9:49:25correspond to the text that is written in the requirement this means that the data in this
- 9:49:31requirement contradicts each other the same applies to various tables or if we know that
- 9:49:36a requirement says one thing but this requirement says something else that does not fit with what we
- 9:49:41know about again there is a contradiction that's not the way it should be we should
- 9:49:47write to our business analyst for example and say that this requirement contradicts for example the
- 9:49:54picture that is attached to it next there is such a property as correctness that is the requirement
- 9:50:02should clearly indicate what the application should do there should not be for example some
- 9:50:07double meaning words that is the system must work correctly we must enter valid data that
- 9:50:14is there should be no such thing we must clearly understand what kind of data we must enter if it
- 9:50:20is valid data then for example it must be clearly stated that it is letters or it is numbers or it
- 9:50:28is decimal fractions or it is special characters or both that is all this must be correctly spelled
- 9:50:34out the next property is interrelated with correctness is not ambiguity again we have to
- 9:50:43be clear about what we have written in this requirement for example we're looking at a
- 9:50:48six-pack there are two people on both sides one person sees the six and the other person sees a
- 9:50:54nine there shouldn't be anything like that we must all work in the same information field in the same
- 9:50:58context the next property is verifiability that is our requirement must be unambiguously verifiable
- 9:51:05as to whether it is fulfilled or not that is for example if you realize that you cannot check it
- 9:51:13in any way that is there are no such tools tools or perhaps lack of your knowledge is a little bit
- 9:51:19different question that is you can then turn to a more experienced tester or developer and find
- 9:51:25out whether it can be done at all or not if we can't test it then uh there is no need for
- 9:51:32such a requirement to be prescribed that is we must be sure to tell the business analyst
- 9:51:37about it or already developed these templates mockups it can also look simply in the form of
- 9:51:43a certain scheme for example it simply spells out all the blocks that we have to have in our
- 9:51:48application and for each block it spells out what should be on each of these pages that
- 9:51:52is to say there can indeed be such a variant of writing requirements at times it might simply be
- 9:52:00I don't know a piece of paper where it's written that I want to get this that and the other just
- 9:52:05in a very high level manner without any let's say further clarifications on the topic so this
- 9:52:12also happens if we are discussing startups or smaller companies where there isn't a budget to
- 9:52:16hire analysts or even where there are no testers and then people just brainstorm and come up with
- 9:52:22what should be implemented they get paid money and in the future the customer just wants to get
- 9:52:27a finished product so that for example he is not Disturbed and doesn't have to specify what else he
- 9:52:32wants from it this happens too but it's probably extremely rare nowadays there can also be large
- 9:52:37specifications that is these are documents that also spell out our requirements business analysts
- 9:52:43for example are already in charge of writing them again if the customer requires it if that is the
- 9:52:48way the company's process is structured then can also happen and we test specifications in
- 9:52:53the same way we find requirements we check these requirements inside the specification according to
- 9:52:58the properties of a good requirement and we give let's say our verdict so that in the future we
- 9:53:06can correct it and our requirement meets all the necessary properties that you and I have studied
- 9:53:11today this topic is very important for a tester because testers are involved in requirements
- 9:53:17analysis and you need to understand very well all these properties that we have studied today today
- 9:53:23we have studied what types of requirements there are and in what form they can be presented don't
- 9:53:28be alarmed if you get requirements as I said in the form of a piece of paper that can happen too
- 9:53:33that is anything can be in the form of claims the main thing is how we will be able to test these
- 9:53:38requirements and among other things how we will be able to influence our requirement to be written
- 9:53:46correctly in the end that's the kind of lesson we got today I think you've learned something new if
- 9:53:52you still have any questions then be sure to write in the comments as usual I will try to answer them
- 9:53:58all I also remind you that I have a telegram Channel I also periodically post interesting
- 9:54:06information about testing and eat there is also our our little chat room where we discuss any
- 9:54:12difficulties you have or questions related to employment related to aspects of testing and
- 9:54:20there's also Instagram where I occasionally answer your questions and try to keep you entertained
- 9:54:28with interesting posts about testing processes and insights from my work be sure to subscribe to
- 9:54:35this channel if you haven't and with that I bid you farewell Welcome to our shalash bye [Music]
- 9:54:58hello YouTube well I want to congratulate you the day has finally arrived you and I are finishing up
- 9:55:06a basic course for testers tester from scratch on a topic like agile and we're going to take
- 9:55:12a closer look today at one of the most popular Frameworks that is used in agile which is Scrum
- 9:55:19there are also a number of others which we won't be emphasizing today if you're interested in
- 9:55:25learning more about them we can talk about them in the next few sessions so what is agile in general
- 9:55:34agile is a a set of methods and principles agile project management let's call it that you and I
- 9:55:41remember the basic methodologies and software development models that we covered a long long
- 9:55:47time ago in one of our very first lessons on the topic of testing from scratch the link to this
- 9:55:53lesson will appear just above that is we talked to you about the waterfall model about V model
- 9:55:59about iterative models it is the iterative model that is fundamental let's say in scrum in this
- 9:56:05framework what are these agile project management methods good for as we remember in the waterfall
- 9:56:12model all the stages of development followed each other that is first for example there was
- 9:56:18gathering ideas writing requirements ments then there was development then there was testing and
- 9:56:24we could not return to the previous stage if we were already at one of them that is we had
- 9:56:29to start everything from the very beginning Beginnings what are these Ed methods good for
- 9:56:37because we can change our requirements we can go back to the previous stages of our software
- 9:56:42development without having this interconnection with other stages that's why in the year 201
- 9:56:51and 117 developers got together somewhere in a resort if I'm not mistaken either in Canada or
- 9:56:57in America and collected all their comments on how they work with agile methods in development
- 9:57:07so we wrote what we call the agile Manifesto in this agile Manifesto there are four fundamental
- 9:57:14values which became the progenitor of further all these Frameworks and in general the system itself
- 9:57:21the first is that people and interaction are more important than processes and tools what does that
- 9:57:29mean for example if your team has some principles structures tools conditions that can hinder your
- 9:57:38work then you need to get rid of them the most important thing is that people should themselves
- 9:57:45choose the way of this organization a set of some processes tools and it it is these tools
- 9:57:51and processes that should help the work not hinder it that is why we first of all pay attention to
- 9:57:57people and interaction but right away I would like to point out the fact that even when we say that
- 9:58:04something is more important than something else we do not forget that processes and tools must
- 9:58:09still be present in our project management and we cannot somehow work without them the same goes for
- 9:58:15the other Clauses for example the next value that a working product is more important than
- 9:58:20an exhaustive documentation that is not to say that we shouldn't have any documentation at all
- 9:58:25on a project but this documentation should not be redundant and we should not spend a huge amount of
- 9:58:31time and resources on it the main thing for us is to deliver our working product our functionality
- 9:58:37directly to the customer that's our number one challenge so sometimes we can sacrifice exhaustive
- 9:58:46documentation but again we can't exist without documents either the next value is cooperation
- 9:58:52with the customer is more important than agreeing on the terms of the contract what does this
- 9:58:57mean again there should not be any redundant attachments to our contracts any documentation
- 9:59:02that regulates our relationship with the customer that is we should first and foremost pay attention
- 9:59:08to the fact that we are comfortable cooperating with each other we do not want to spoil our
- 9:59:14relations with our customer therefore any of our documents agreements cont contracts and so
- 9:59:20on should contribute to maintaining a positive relationship with our customers but in no way
- 9:59:25should they spoil it so that's what is embedded in this value and lastly the willingness to change
- 9:59:32is more important than strictly following the original plan so even if we have some kind of
- 9:59:37project plan if we have some requirements spelled out clearly we should always keep in mind that we
- 9:59:45will still have some changes over time even if for example we had some user story that we implemented
- 9:59:51in some past iteration but still over time the business may have other needs this functionality
- 9:59:57may solve some other tasks in the future it may need to be extended so it is important to
- 10:00:02remember that there are always changes in agile and in principle this system was created for this
- 10:00:09purpose also in addition to these four values there are 12 principles in the agile Manifesto
- 10:00:15but we are not going to dwell on them in more detail because in fact they just clarify these
- 10:00:21four values and I will definitely leave a link to this agile Manifesto that you can read everything
- 10:00:29that concerns principles everything that concerns values will be described there in great detail
- 10:00:36that is you and I are doing a small overview looking at how these processes can be implemented
- 10:00:41in your company what ceremonies there will be what there are rallies meetings artifacts and so on so
- 10:00:48that you will not be afraid when you come to the project and for example you will be invited to
- 10:00:54some iteration planning that is uh you will not be afraid of this rally you will know what objectives
- 10:01:01are pursued it is this rally for you for the tester as a member of the development team that
- 10:01:08later on you will be trained how these processes are organized in your company that is not always
- 10:01:13companies use pure scrum there are some enhancers for example something is not used in the scrum
- 10:01:19that you have in your company of course this is not quite right because we are going to talk about
- 10:01:24pure scrum now and all these modifications do not allow us to say that your company used exactly
- 10:01:31the following pure scrum here these are let's say the initial things that you should generally know
- 10:01:38about agile about the agile manifest principles and values next as we can see we've got 47 items
- 10:01:47today that we need to cover within scrum of this framework so the session is likely to turn out
- 10:01:54to be quite long but I think it will be useful for you so that you will not be afraid of this
- 10:02:00name and this framework in your work in the future there are three such main parts in scrum that is
- 10:02:05the scrum team these are the events that we have in scrum and the artifacts these are the ones that
- 10:02:11we're going to talk about in detail now there are also various metrics that allow us to evaluate the
- 10:02:19effective iess of your team the effectiveness of each individual team member and allow you to
- 10:02:24make various reports reports for management and for your customer we will also look at some of
- 10:02:31them let's start with the scrum team there are three links in a scrum team it's the product
- 10:02:39owner it's the development team and it's the scrum master and let's talk in more detail about each of
- 10:02:45these members of our scrum team and what they do product owner manages the product backlog next
- 10:02:53we'll take a closer look at what it is but for you to understand it's just a set of requirements
- 10:02:57that we generally have to implement completely in order to make our product is ready this backlog is
- 10:03:05constantly updated new features new user stories new requirements are added to it but it is the
- 10:03:13product owner who collects these requirements and let's say describes the backlog clarifies
- 10:03:18it makes it transparent and understandable for the development team which in the future
- 10:03:23will be engaged in the implementation of this functionality this user story in pure scrum
- 10:03:28there's no such position as a business analyst so basically the product officer does the tasks of a
- 10:03:36business analyst to some extent yes despite the fact that in many scrum companies there is such
- 10:03:41a role as a business analyst but when we talk about pure scrum there is no such specialist
- 10:03:45no such separate let's say allocation we have a product officer that is is the main task of the
- 10:03:51product owner is to collect our backlog to bring it into such a form that all members of the scrum
- 10:03:58development team team understood requirements that they need to realize also product owner
- 10:04:06prioritizes the execution of these tasks in our let's say backlog so that we understand what we
- 10:04:13do first what we do second and basically those are these are the kind of basic Tas TKS of a product
- 10:04:21owner the next link is the development team or the development team usually we have about 3 to nine
- 10:04:28people in the development team so we don't need more than that we don't recommend to include more
- 10:04:34people in this development team because the more people we have in our team the more we have let's
- 10:04:40say dispersion of attention and our team ceases to be as flexible as it would be if the team was
- 10:04:47much smaller so what should be emphasized about the development team the fact that
- 10:04:52this part of our scrum team is self-organizing in other words we don't need any leader to tell
- 10:05:05us what we need to do all team members have an equal influence on what are we going to
- 10:05:14do every voice of a team member needs to be heard and we self organize as a result of
- 10:05:20working in one iteration or another in Sprints and in general while working on a project when
- 10:05:25we talk about cross functionality this is the next aspect it means that every
- 10:05:30team member possesses all the competencies needed to to anything at all within your
- 10:05:37team that is to say we do not separate our team members into developers into testers or
- 10:05:46into analysts that is we uh we assert that if this person needs for instance to write code
- 10:05:53he or she will be able to write it even though he or she is primarily a tester yes of course
- 10:05:58you might think now that this scenario seems somewhat ideal um when we still maintain some
- 10:06:06degree of specificity or specification let's say of the people who work within the team yes that's
- 10:06:14the way it is actually it is extremely rare that absolutely all the team members have absolutely
- 10:06:21the same competence in all the issues related to requirements analysis development testing
- 10:06:28and usually just some person let's take the same tester he performs most of the tasks related to
- 10:06:35testing but we should strive to ensure that we still have guys in the team who perform
- 10:06:40absolutely all the functions and can cover them in case for example if one of the team members gets
- 10:06:45sick so that can happen as well so it's perfect scrum pure scrum we just memorize for ourselves
- 10:06:51how it should work in an ideal world and what we should remember is that there is such a concept as
- 10:06:56collective responsibility that is for example even if you are a tester there so you are essentially
- 10:07:02responsible for the quality of the product but we should always remember that every participant in
- 10:07:07the team is responsible for the quality of the product that is even including the law of some
- 10:07:13simple logic we can say that in principle the developer allowed the probability that we have
- 10:07:20some bug in code in its implementation that is in fact he's also responsible for this quality
- 10:07:27even though for example when the tester misses this bug and could not find it in full at the
- 10:07:33right time in the right place because as we remember exhaustive testing is impossible and
- 10:07:39it is impossible to release a product that won't have any box at all in any case something will
- 10:07:47come up at some point so we have to remember remember this that everyone is collectively
- 10:07:52responsible for creating our increment increment is this one piece of our functionality plus all
- 10:07:58the other functionality that has been previously implemented it's called an increment next we will
- 10:08:04talk about it in a little bit more detail and there is also such a role as a scrum master
- 10:08:12so this is a separate person it's also called a servant leader so this is a person who facilitates
- 10:08:17the work in the team according to the SC scrum that is he knows absolutely everything about
- 10:08:22scrum how it should work what the main stages are we have in scrum what ceremonies what artifacts he
- 10:08:31helps us teaches us in case we have any questions related to scrum how it should be realized guides
- 10:08:37us but he is not involved in the development of our increment he just gives us advice and can
- 10:08:45tell us how we can do things better our task as a development team with which basically decides
- 10:08:50how we will behave during the iteration what we will do by what deadline we will implement it how
- 10:08:57we will evaluate certain requirements how we will prioritize them after they have been prioritized
- 10:09:05for example by the product owner he just helps us that is the scrum Master facilitates the work of
- 10:09:11the team and is responsible for making sure that we work according to the scrum if we have such a
- 10:09:17process adopted in the company so most likely when you come to the company for example as a newcomer
- 10:09:24and everything will really work according to scrum the scrum Master will teach you train you tell you
- 10:09:31how it should work tell you how the processes are organized in your company and we'll let's
- 10:09:35say morally support you so that you do not have any questions related to the functioning of the
- 10:09:40scrum scrum within your team within your project the next aspect is events that we have in scrum
- 10:09:50first of all let's talk about what a Sprint is in general either you may often hear a
- 10:09:54name like iteration a Sprint is a certain time period about 2 minus 4 weeks that is
- 10:10:02on average during which we create an increment of a product that is ready for use that is that
- 10:10:09already fully meets the requirements that we take into work during the Sprint and that we
- 10:10:13can say with complete confidence at the end of the Sprint that they are ready to be used by our
- 10:10:18end user or customer and we have four let's say events that are tied to this Sprint this
- 10:10:26is first of all Sprint planning or iteration planning you may also come across that name
- 10:10:33it's a daily scrum daili standup you also see that name the Sprint review Sprint review and
- 10:10:40retrospectives let's talk to you in more detail about each of these ceremonies so what is Sprint
- 10:10:46planning we usually have our entire SC scum team come together for Sprint planning which
- 10:10:52means product owner development team and uh scrum Master it is held exactly at the beginning of our
- 10:10:59Sprint and during this planning we decide what our increment will be at the end of our Sprint and how
- 10:11:08to organize our work during this situation here to get a finished product increment next we're
- 10:11:15going to look at what the backlog is but just so you understand that is during our Sprint
- 10:11:21planning we have a product backlog where we store absolutely all the requirements that we
- 10:11:25have for our product but during our planning we choose what requirements we're going to implement
- 10:11:30during our Sprint what we're going to take into this iteration and what we're going to use to
- 10:11:35work this is let's say the main goal of this event is to Define exactly the Sprint backlog from the
- 10:11:42product backlog the Sprint backlog is already a set of requirements that we will Implement in our
- 10:11:49Sprint in our iteration there is also such an event such a ceremony as daily scram or delic
- 10:11:55it is also called daily scram it's usually once a day and at that daily scram you talk about what
- 10:12:01you did yesterday what you're going to do today and what are the obstacles you have for the goal
- 10:12:07fulfillment that is if we talk about testing for example yesterday I wrote a test case for
- 10:12:13such and such a user story today I will write a test case for the next user story and what what
- 10:12:19are the obstacles to fulfill this goal for example it's not entirely clear to me how developers will
- 10:12:25Implement data use the story so what I want to do today is to contact for example the developer
- 10:12:33who's tasked with this requirement and find out from him how it's going to be implemented what
- 10:12:37he's going to do that's what you're saying if you don't know how to get rid of that obstacle
- 10:12:42for example you don't know what you need to do the team comes to your Aid and tells you how we
- 10:12:48can help you when you you have this or that obstacle or hurdle to realize your goal for
- 10:12:54example for today goes through for each member of your development team they talk about all the
- 10:13:03work they have planned or done and uh the problems they have encountered and it usually takes about
- 10:13:0915 minutes every day just to keep your hand on the pulse and know what you're working on right
- 10:13:15now we uh also have a Sprint review with which is the task of which is to summarize what we
- 10:13:24did during our Sprint we do a kind of review of what we implemented during this Sprint checking
- 10:13:30if all tasks were completed and all user stories were closed so we are on this let's
- 10:13:36say that's what we're discussing it is also worth mentioning that there is also such a
- 10:13:46thing as demo or demonstration of our increment to our product owner or to the customer depending
- 10:13:53on how you have this process organized and you don't want to confuse the fact that at the Sprint
- 10:13:58review we have to show how that increment Works show that demo this is usually a separate event
- 10:14:04that takes place after the Sprint review and in principle we will not discuss it inside the scrum
- 10:14:10now you just show this or that user story demo it to the product owner for example and it says
- 10:14:19yes everything is really implemented the way we want it so these are small demonstrations
- 10:14:25like this depending on the company it can be after the Sprint review itself when you show
- 10:14:31Absolutely all the user stories that you have implemented in the course of this iteration or
- 10:14:36for example by the degree of fulfillment of all the user stories that is you have fulfilled one
- 10:14:42particular user story you have carried out demo did the second user story did demo that
- 10:14:48is you can do it not in one event but just on the outcome of when you do and do this or that user
- 10:14:57story that is you develop it validate it during the testing process and then you show it to your
- 10:15:04product owner I hope I have clearly explained what this is and there is also such an event as
- 10:15:10a retrospective again you should not confuse a Sprint review with a retrospective you'll
- 10:15:15see why in a moment because in the retrospective we have the main goal is that we find out again
- 10:15:22whether we have accomplished all the tasks but in relation to people to the development team
- 10:15:27and in this meeting we find out what we could have improved based on the results of your iteration
- 10:15:32that you participated in so you answer a series of questions usually how for example I have this
- 10:15:40setup in my company or how it was set up in a company where the I used to work before we
- 10:15:45have a board that's divided into four let's say columns in the First Column we write down what
- 10:15:50we did well in the Sprint in the second column we write what problems we had we in the Sprint
- 10:15:57next we write how we can improve performance that is how we can improve those problems we come up
- 10:16:02with some action items and uh if for example we have some ideas during the retrospective because
- 10:16:07usually we prepare for the retrospective and come up with action items before the retrospective so
- 10:16:14if we get these ideas already in the course of it then again we add this one to the board
- 10:16:19usually we just put some stickers for example if we are talking about retrospective when we have
- 10:16:27offline let's say all the team members are present but due to the current situation with the Corona
- 10:16:31virus we are working remotely now that is we just check the screen and write down all these let's
- 10:16:38say problems or some good things that we had and choose a certain top the main ones maybe some of
- 10:16:44the team members have the same problems if they're the same then we pick that top and decide how
- 10:16:48we can improve that come up with some action items that are carried over necessarily into the
- 10:16:53next iteration and we have to in that iteration improve our process in a way that solves that
- 10:17:00problem we appoint let's say responsible persons for this action item and we will also find out in
- 10:17:07the next retrospective whether we were actually able to get rid of this problem what was done if
- 10:17:13we could not and this problem remains for example and it is critical for us then we again move move
- 10:17:18it to the next iteration and again we decide what we're going to do how we're going to work on this
- 10:17:24problem this is let's say the main four ceremonies that we have associated with the Sprint I would
- 10:17:31also like to draw your attention to artifacts today we have already talked a lot about the
- 10:17:38product backlog that is about the user stories that we have to realize in order for a product
- 10:17:43to be released let's say absolutely all the user stories absolutely all the requirements that our
- 10:17:49customers have and that the product owner has added to our backlog we're going to see how
- 10:17:54Jura implements this a little bit further so that you have a picture of how you can track
- 10:17:59this in front of you attached to the backlog is shall we say such a ceremony as product backlog
- 10:18:06refinement product backlog refinement what is it in general the main purpose of this event is
- 10:18:13to refine evaluate and organize the elements in the product backlog that is for example
- 10:18:19a scrum team and a product owner get together and the product owner presents you some new
- 10:18:24user stories he has written and if you have any questions if you don't understand something you
- 10:18:29ask the product owner questions and he explains it and in case you need to rework this or that
- 10:18:37user story it reworks it so that it is clear and clear to you how this user story will be realized
- 10:18:44for example in my team at refinements we also evaluate user stories which we will talk about uh
- 10:18:49with you a little bit later that is we decide how many so called story points we assign to this or
- 10:18:57that stora that is in essence it is the difficulty of executing this or that user story but not the
- 10:19:03time we spend on its execution next I will tell you about such a thing as poker planning and you
- 10:19:09will probably understand a little bit more what I'm talking about there are also aspects such as
- 10:19:13preparedness criteria and Readiness criteria how are they different because sometimes the question
- 10:19:19arises we hear the definition of ready and the definition of done and in the Russian translation
- 10:19:25you can find just criteria of Readiness and we do not understand at all what this refers
- 10:19:30to and let's take a moment to compare what the Readiness criteria and the Readiness criteria
- 10:19:35are the Readiness criteria are specifically focused on the backlog level in other words
- 10:19:40we evaluate the user stories that are provided to us by the product owner to determine how well we
- 10:19:47understand them and how clearly they are spelled out for instance we check for any inconsistencies
- 10:19:52according to the properties of good requirements which we discussed in detail in the previous
- 10:19:56lesson on requirements testing now the link will appear at the top allowing you to refresh your
- 10:20:04memory a little bit about the features we have so these are specifically tailored towards the user
- 10:20:10story our backlog these definition of ready properties assist the customer in crafting
- 10:20:16well-written user stories that are prepared for development when we discuss the definition of
- 10:20:22ready criteria and the definition of done they already concentrate on the Sprint or release
- 10:20:27level and they are already directly related to the assessment of the degree of Readiness of our
- 10:20:36functionality for instance if we set the Readiness criteria at the moment let's say before iteration
- 10:20:42planning then we use the definition of done at iteration planning during Sprint planning here we
- 10:20:49establish some key points by which we will assess whether this or that functionality is ready or
- 10:20:54not that is our definition of done helps verify the work against all the requirements
- 10:21:05of the project not just demonstrate that the functionality works for example the definition
- 10:21:10of done might include the following that we have integration tests written and they all pass we
- 10:21:15have unit tests written and they all pass for example we have less than 10% of critical box
- 10:21:21that is we choose such criteria of product Readiness definition of done that allow us to
- 10:21:28evaluate what we have ready this or that area of work this or that functionality and we use
- 10:21:38exactly the Readiness criteria in this case I'd also like to draw your attention to user stories
- 10:21:45again we talked about this when we discussed and analyzing requirements and testing them let
- 10:21:51me remind you a little bit of what they look like so user stories are basically an intent statement
- 10:21:57that describes something that the system should do for the user so in the first approximation
- 10:22:03it is some requirement that we have to realize and it consists of the following some role in
- 10:22:12the system that is as some role in the system I can do something for something doing something is
- 10:22:22some functionality that we have prescribed in user story and for something is some value to
- 10:22:28let's say our business for example as new users in the system i' like to buy a phone to please myself
- 10:22:38let's say we have a user story like this here they are described like this that is there is
- 10:22:43a basic statement and then we have acceptance criteria that is acceptance criteria where we
- 10:22:50describe in detail how this functionality will be implemented in order to achieve this value
- 10:22:56for the business and usually these acceptance criteria when we talk about testing we take them
- 10:23:01into account and test each of these acceptance criteria we have to describe in our test cases
- 10:23:06every acceptance criteria if we're talking about any positive scenarios well also based on that
- 10:23:12we write our negative scenarios and we can use them for example to design design extended tests
- 10:23:19extended tests extended testing that is we take into account the acceptance criteria and test in
- 10:23:25the same way as all the other requirements that come to us for review according to the properties
- 10:23:30of good requirements that you and I have already talked about next what else I'd like to tell you
- 10:23:35about is poker scheduling as I said we evaluate our user Stories We rate them by complexity and
- 10:23:44let's say we rate them in these abstract things called story points there are several ways to
- 10:23:51rate our user stories one of the most popular is Booker planning let's take a look with you
- 10:23:57what that looks like there are a number of online tools that allow us to evaluate these user stories
- 10:24:02that is we create a room where we specify all the user stories that we are going to implement that
- 10:24:07we have to evaluate for example for example at the literacy plenary or for example at the reflection
- 10:24:14depending on how it is organized in your company and there is a series of numbers this is the
- 10:24:20so-call Fibonacci series that is that is so you understand usually in the Fibonacci series we use
- 10:24:30the first two numbers are either 0 0 or 1 one for example and the next numbers that follow the first
- 10:24:39two numbers they are the sum of the previous two numbers and so we have this Fibonacci series and
- 10:24:46we already have the story points what are story points they are such abstract numbers that allow
- 10:24:51us to estimate the complexity of execution and realization of our story point of our requirement
- 10:24:58of our user story so we get some user story and the whole development team uh development
- 10:25:05team gets together and they decide how many story points to assign we have this decision if we're
- 10:25:10talking about for example a team that took place based on our previous experience for example in
- 10:25:16the last iteration we had had to develop uh registration page which we spent this certain
- 10:25:24amount of time on and we have the second one we have user story which appeared in this iteration
- 10:25:30for example here we already have the functionality of password reset here we have for example the
- 10:25:35functionality of password update the functionality of for example updating your account name your
- 10:25:41login for example in the system and you and I compare these two Recs so we have the first one
- 10:25:47for example we gave one story point in the last iteration and we compare how much more complicated
- 10:25:53compared to this first counter where we just registered the system the second counter where we
- 10:25:58already have much more acceptance criteria and we assigned them this story point that is depending
- 10:26:03on what kind of experience the developer has what kind of experience for example the tester has how
- 10:26:09long has he been working on the project is it a new person or not he can have absolutely different
- 10:26:14story points after that when all the members of our development team team have voted we see if
- 10:26:19these story points coincide if our vision of the complexity and realization of this rack coincides
- 10:26:27and if we get some let's say drop offs for example someone voted one and someone voted 13 for example
- 10:26:35for this story point we start a discussion and people explain exactly why they voted that way
- 10:26:43and in case for example after this explanation we have the same let's say ideas that is someone can
- 10:26:50convince someone that yes indeed there is not one story point but 13 you and I revote and again look
- 10:26:56at how we voted and so for each user story and more team members have voted equally and evenly
- 10:27:03and there are no more of these big dropouts we decide how many story points to assign to
- 10:27:09each user story that is in no way says how much time we have to perform this or that user story
- 10:27:15because often many people are mistaken when they say that story points are tied to time now it's a
- 10:27:22tie to the difficulty of performing a particular task based on some of our previous experience I
- 10:27:28hope I've made that clear to you so here are these ways to evaluate and assign story points
- 10:27:36in our user story also for example some teams use uh jerseys Jersey sizes so there's XS there's s
- 10:27:43there's M there's L there's XL so we can also use t-shirts for example to assess the difficulty of
- 10:27:49a task we can also evaluate for example the size of dogs that is again there is a list of some dogs
- 10:27:56for example starting from a Chihuahua and ending with a Tibetan Mastiff that is we have such a row
- 10:28:03in which the size of a dog will be responsible for the size of a given user I mean that happens
- 10:28:09too and coming back to our backlogs we talked to you about the product backlog that is where we
- 10:28:15keep absolutely all the requirements that we have for for our product that we're developing there's
- 10:28:21also a Sprint backlog as I said we choose exactly what we're going to implement in this Sprint that
- 10:28:28is we just drag and drop from the backlog of the product backlog to the backlog of the Sprint next
- 10:28:34I'll tell you how you can calculate exactly let's say the maximum number of story points that we
- 10:28:40can fit into our Sprint backlog because that will determine how many tasks how many user stories we
- 10:28:47can take into the development of a given iteration product increment like I said is everything that
- 10:28:53we've developed before and we develop at the end of this iteration meaning you never have to say
- 10:29:00that product increment is exactly what we're developing in this particular of the iteration
- 10:29:06and we'll provide it to the customer when it's finished product increment is everything that
- 10:29:12we have already developed before this iteration plus this part of those Legacy features those
- 10:29:19functionalities that we will develop in this particular iteration and another aspect is
- 10:29:25the various metrics that we use which regulate for example how many tasks we can take on in a
- 10:29:30particular iteration how quickly we can accomplish them and generally view in Dynamics how it changes
- 10:29:39let's say the number of tasks that we complete over time so the first characteristic I'd like
- 10:29:45to tell you about is velocity this is velocity of our scrum team it is calculated as the arithmetic
- 10:29:55average of the completed story points in the previous Sprints so for example we have a new team
- 10:30:02and we don't know the velocity because for example we haven't finished the first iteration yet so we
- 10:30:09take a certain number of story points in a given iteration execute them and see how many we were
- 10:30:15able to execute and so on with each iteration and then when we have a certain amount of historical
- 10:30:22data we can collect the arithmetic average over these several iterations and say that according
- 10:30:30to the statistics we can for example take 30 story points per iteration no more no less and
- 10:30:37we set this goal so we can take more for example in the next iteration for the same iteration
- 10:30:45planning more than we have in our speed and the next characteristic is capacity or capacity the
- 10:30:51amount of available time of team members how is it calculated that is we simply take here those
- 10:30:58hours that we have per iteration for each specific full time developer in our development team that
- 10:31:07is if we have for example an iteration takes 10 days of which we know that we have two days off
- 10:31:13we subtract these two days off from 10 we are left with eight days and we know that the Working Day
- 10:31:18for example uh we have 8 hours so we are8 multiply by 8 and we get the figure 64 hours that is
- 10:31:25our capacity our capacity per developer and we multiply these 64 hours for example by the total
- 10:31:32number of developers in our team and again this helps us with our Sprint planning again we need
- 10:31:39to put different risks in here because of the fact that for example here we have a pandemic right now
- 10:31:45that speed and Capac capity for example may depend on the fact that some team members may get sick so
- 10:31:52we pay attention to that as well again capacity May decrease because we get some holidays again
- 10:31:58we're taking these holidays away from it that is we put all of this in right away and we assess the
- 10:32:06risks before we plan this or that iteration this is usually done by the scrum Master but just to
- 10:32:13let you know that there are such characteristics as speed and capacity and and then there are two
- 10:32:19other metrics like the burndown chart and the commodity flow diagram you and I we'll look at
- 10:32:27them a little bit when we look at jir so let's go over to jira with you and see how this can look
- 10:32:33at all visually in Buck tracking and in a project management system let's say I sincerely hope that
- 10:32:41you have already downloaded jira or rather that you have registered for it since we discussed
- 10:32:46issues related to with the design of backtracking reports in the 10 lesson and you should already be
- 10:32:52a bit used to the interface of this backtracking so let's go straight to the backlog tab here we
- 10:33:00already have some project created and we have a backlog I've created hypothetically several
- 10:33:07user stories so this is basically our backlog of the product where we have several stories
- 10:33:13I also created a Sprint directly and we can easily redirect let's say using drag and drop
- 10:33:19our Stacks into our Sprint and now we have in our Sprint backlog three user stories that we have to
- 10:33:28fulfill we can go to the board of our project and see that we have two user stories in total status
- 10:33:36in order for us to see how they can be dragged further I have dragged one of the total stories
- 10:33:41to the D1 status that is when for example we have already developed everything tested it
- 10:33:49and have shown for example a demo and our product owner has approved that yes indeed
- 10:33:54this story has been tried and done correctly according to those requirements those user story
- 10:34:00acceptance criteria in which he prescribed this is roughly what our board looks like
- 10:34:05exactly in scrum of course there can be many more stats many more let's say columns from
- 10:34:12which we can pull some or other user stories also here during our development we can have different
- 10:34:17shuffles bugs can appear which we also transfer by direct end drop from one status to another that
- 10:34:24is all this can be done visually here too there is nothing complicated about it just to get you
- 10:34:32a little bit used to how it can look like and in the user story itself we have as we see with you a
- 10:34:40story point that is when you and I have evaluated this uh the user story we add this evaluation
- 10:34:47because this evaluation we later influence various graphs and reports so that the product owner the
- 10:34:53scrum Master can understand how far we are moving towards the goal whether we are on time or not
- 10:34:58and can later suggest some corrective let's say measures in order to to improve our work and there
- 10:35:08is also such a tab as reports and here we have various kinds of analytical statistical things
- 10:35:17first of all you might be interested in looking at the burndown chart and the commodity flow
- 10:35:22diagram there's also a velocity chart that is how our velocity changes during an iteration
- 10:35:28there are also various charts and reports that allow management to evaluate team performance
- 10:35:35and somehow influence it in case we see some draw Downs if we talk about burndown chart then here we
- 10:35:43simply collect the number of story points that we take in our iteration that is for example we have
- 10:35:48laid down six story points that is the sum of all story points in our user stories is six and
- 10:35:58we have let's say our ideal chart how it should decrease that is we should gradually decrease
- 10:36:03the number of story points and take them to work so that everything would be smooth and when for
- 10:36:10example we have something Beyond this line we can analyze it for example scrum Master can analyze it
- 10:36:18and provide a decision to the management on how it can be improved what influenced it can communicate
- 10:36:24for example with the team on how we can improve it why we had such a jump in other words the
- 10:36:30management of all these charts is already doing the analysis so for example a tester a developer
- 10:36:36just for General development to understand where the team is at right now you can go
- 10:36:40in there and look at that as for this cumulative flow diagram it looks a little bit different here
- 10:36:47that is again we have a legend here how many entities let's say items are in total status
- 10:36:55how many items are in in progress status and how many items are in done status so again you and I
- 10:37:02can monitor all this see if we really finish our iteration on time let's say if the number of our
- 10:37:09items in the too status is decreasing how many items are in the done status that is all this we
- 10:37:17can also analyze and the management also understands if we really fulfill our goal
- 10:37:23if we have time in the iteration to close all the tests that we have planned and how we can improve
- 10:37:30our process as a whole so that we don't have these issues in the future that's probably all I wanted
- 10:37:37to tell you in this big shall we say overview related to Agile and in particular related to
- 10:37:46scrum I will leave you a link to Planet Oker so that you can see what this tool is and how it
- 10:37:52works I'll leave you a link to the agile Manifesto so that you can also familiarize yourself with it
- 10:37:58read about the principles read about the values that are in the agile Manifesto I will also give
- 10:38:05you a link to the scrum guide which you should also read Because here is a detailed description
- 10:38:11of what I told you today let's say so briefly plus there are some additional things that I didn't pay
- 10:38:17attention to because I think that for a beginner tester you don't need to dive into these points
- 10:38:24very much but for General development you should read it because it is a fundamental document to
- 10:38:30implement scrum in your company and to comply with it the requirements that we have spelled
- 10:38:36out in this guide and I'll also leave a link to kban guide which we haven't talk to you about
- 10:38:42today I've never worked with it with kba and I have a rough idea of what it means if you will be
- 10:38:47interested I can record a small video about kban but for this you don't need also to prepare but
- 10:38:54you can also read it that is here as well as about scrum all the basic aspects that are
- 10:38:59required to this framework are spelled out so it is also on Merit read about it's definitely
- 10:39:05not going to be redundant and at the end of our class I would like to congratulate you once again
- 10:39:11on the fact that we have finished the course of tester from scratch and in fact already now you
- 10:39:17can apply for positions in different companies respond try to get an interview try to communicate
- 10:39:25with recruiters make sure you have a page in LinkedIn design your resume design a cover letter
- 10:39:31so it's a great time for you to start looking for jobs once again I advise you to revisit those
- 10:39:38videos that you did not learn very well practice on the various resources that we talked about in
- 10:39:44this course practice on VAR sites that is just go to the site choose the registration form and
- 10:39:52test test test make test cases make checklists make bug reports download the mobile application
- 10:39:59test it according to the features and testing of mobile applications that we talked about
- 10:40:05spoke with you as well discover some bugs ask me questions inquire in our telegram channels which
- 10:40:12are specifically dedicated to assisting you in understanding various asp ects of testing you can
- 10:40:19message me on Instagram once again all the links are provided just like in the video description
- 10:40:24so they will appear on the screen shortly don't hesitate to chat chat explore google google google
- 10:40:31google and find answers to your questions and I truly hope that this course and these lessons will
- 10:40:38genuinely assist you in understanding testing and securing your first job oh see you very soon we
- 10:40:47will begin to delve into uh uh various aspects of testing more thoroughly and learn how to utilize
- 10:40:55the different tools that I employ in my work we will communicate share positive emotions and
- 10:41:01grow together this is the most important thing and as is our tradition please come to our Shala bye
- 10:41:17[Music]
About this transcript
This page contains the full transcript of QA Engineer From Scratch FULL AUDIO ENGLISH COURSE by Artsiom Rusau QA Life, generated from the public captions YouTube serves with the video. The transcript has 96,496 words across 5,573 segments, with the original timestamps preserved so you can click any line to jump to that moment in the embedded player.
What you can do with it
Use the transcript to take notes, quote the speaker, build a study guide, generate a summary with ChatGPT or Claude via the YouTube Summary tool, or export it as a timed subtitle file with YouTube to SRT. You can also re-open it in the transcriber to translate the transcript into 100+ languages.
Free YouTube transcript tool
YouTube2Text is a free YouTube transcript generator — no signup, no daily limit. Paste any YouTube link and get the full transcript instantly, with timestamps, click-to-jump, translation to 100+ languages, AI prompts for ChatGPT, Claude, and Gemini, and exports to TXT, SRT, VTT, or Markdown.