If New Year's resolutions have taught us anything, it's that sometimes people don't stick to what they said they were going to do. And in the lead-up to Kings of War 3rd Edition, we asked multiple people from the Mantic Bunker to assemble and paint an army ready for the launch. So, we're going to see what their favourite miniature is, if they actually achieve what they said they were going to do. And also, I'm going to see if I realise that I definitely didn't iron that backdrop. Let's have a look. Hello, I'm Martin and I picked Nightstalkers for my Road to 3rd Edition army. I am Rob and, like a madman, I decided to do a full model count, 2,000 point goblin army. So, I am Kirsten, I'm the resin caster here at Mantic and I picked the Bacillians. I am Elvis and I picked the Brotherhood, or a themed Brotherhood list. My name's Sonny and the army I picked was King of the Ogres. My name is Matthew and I picked the All-Mighty Dwarfs. My name's Duncan, I do graphic designer layout and I picked Northern Alliance. Oh, I've achieved more than I set out to do. We set out to do, I think it was up between 1,500 and 2,000 points and I ended up with 4,000, I think. So, I got a bit addicted and so, yeah, over and above. I achieved what I set out to do. In terms of making my life slightly miserable and deciding what to do a ridiculous task, yes I have. But no, in fact I've exceeded expectations and I've painted about 3,000 points of wonderful, lovely green goblins. Yes, I've achieved what I set out to do. I think I've changed my mind along the way about what that needed to be. But I have built the stuff that I got initially. So, yes, broadly. I think we were set out to do about 1,500 points, which I've done. I just want to do a few more units so I can call the army done. Yes, I do actually. I believe I achieved more than what I needed to do actually. I went a bit crazy, kept painting more and more. She's unusual for me because I'm a slow painter. So, I set out to achieve at least 1,000 points. I thought I might as well make it achievable by the most baseline standard. But I've actually managed to achieve 2,000 points. It's a bit of a ragtag group, but at the end of the day, 2,000 points, so I'm happy with that. Broadly speaking, yes. I intended to get 1,000 points done for the first few games. And then anything I did over and above that was kind of a bonus, so yes. But my own modest standards I've achieved what I set out to do. Have I got some more to do? I have got one, which is another regiment of phantoms. But I've also started something new, so they might sit on the shelf for a while. But I think I've pretty much covered everything I need for now. I mean, I've always got more goblins to paint. It's a permanent hobby. But yeah, I mean, I've pretty much painted everything that was on my to do list apart from I've got a couple of water and bones, maybe another slasher. Yes, so I've got probably lots more to paint. It's a never-ending task. Always. There's always more to do. You never finish. I've started three more armies since then. So, yeah, the elements that I would like to add to the battle lanes that I think would suit more what I was initially going for, like knights, paladins, El Ahai, got some chariots to build. The fast-moving, harder-hitting stuff that I would like to move towards. So, plenty to go. Yes, I have a unit of Pegasus knights to do and a regiment of regular knights and a horde of men-at-arms, which will be skeletons in my case because I am doing an undead fiend list. I have an endless pile to paint. I decided, like, I needed more chariots because I had no chariots. And that's my hurdle at the moment. It's like, I need to do loads of chariots. Oh, that's a lot of straps. There's so many straps. So, yeah, I got more chariots to do. I got the Ogre berserkers and my, what are they called? Siegebreakers, that was it. Converted those up from Palace Guard. You probably will see those at some point, but yeah. So, I've still got a dwarven standard bearer to do and I think I'm looking at getting some more brock riders done. There are a lot of fun when I've played with them, so I kind of want to build some more, just in case, a fancy bit more of a brock-centric army. And apart from that, I'm probably going to take a look at what else I can build just to give myself some more options. Oh, absolutely. Yeah, so I've got roughly a million clansmen to paint. Maybe, well, yeah, in various forms. I loved it. I mean, it was the first time I've built a seriously big army and been using them since. And to have that choice, I think, of the army was really good. But the actual painting and modelling and the whole experience was really good, especially seeing it all laid out beautifully.  I know I joke about it being a miserable process, but it is a long process, obviously, and setting myself a high target of, I mean, it's probably about 200 models, which is a lot to do. But I mean, I loved it. I think once I kind of got the core troops out of the way, it was really fun then to paint the trolls and the wing it and things like the giant were great fun.  Oh, very much. It was a really good time, particularly having everybody here so enthusiastic. You've never seen any hobby like it going on around. Everyone was busy every lunchtime. It's really, it's good motivation to keep going, particularly when you've painted your 80th metal arms and you just think, ugh, I'm kind of sick of this now. And someone else has painted another unit and more is going and you think, actually, yeah, continent. I like converting and fuming stuff, so I think I liked using models from the undead range to represent another army and converting them and keep bashing things together and stuff. I've enjoyed doing that. I loved it. Absolutely loved it. My favourite game by a mile. Absolutely loved everything about it. We kept up our humour here at Mantik. It was amazing. As you'll know, me and Matt had a little rivalry. We've settled that now, I believe. I didn't think the slight bitterness there. So I've really enjoyed the experience, especially within the Mantik headquarters. We've all been keeping each other going and motivating each other. It's been really nice to see everyone's tables grow. Probably really bad if we're trying to get work done because there's just nowhere to put anything. It's just filled with armies. I'm sure anyone that's visited the bunker during the time we've been building them, it's been like, okay, we'll have to find a different workspace because Rob's goblins are everywhere. They just keep spreading. But yeah, it's been a really fun experience to see it all grow and definitely rewarding. It's been great. There's so much sort of opportunities for doing hobby with that, especially the Clansmen sprues I couldn't talk about too much last time because I think maybe it was just announced or I don't think it had come out. So yeah, I can be more excited about it this time, which is good. I really love that. When you say I played, you don't want to know if I've won any games Yes, I've played quite a few games with the goblins, including some upper element games, some here as well, and I'm still experimenting with tactics. Let's just save that. Yes, a few. And how did they go? I've won, especially against Rob because he's been using his dwarves, I think, on these goblins, and they both get torn up. Two games so far. One we won't mention. One was much better. So we're looking forward to getting some more games going. We're going to have some games here on a Friday after work, which I think will encourage people to stay. Hopefully New Year, we'll craft on with some gaming. Yes. I actually played a game with Your Good Self, which I won, which was my first game of Kings of War, and I'm yet to win a game since. Not particularly well. I probably played quite a few, actually, yeah. Mixtures. It was so much fun. We thought, what would be like to play multiplayer? We tried that. That was great fun. Absolutely hilarious. Played, obviously, Matt himself. Played a lot of Duncan. Played against Dave. Yeah, it's been absolutely... I've absolutely loved it, the actual... The feeling as well. It's absolutely like... This is the first time I've actually got into Kings of War, so in-depth, and all I want to do is paint more and more, build more and more, and I'm already thinking of my next army. So I've played two games. I did a sort of 2v2 homebrew kind of thing with Elvis, Sonny and Duncan, which managed to somehow win. So that was good fun learning with three other people, and then Sonny came back for round two and absolutely wiped the floor with me. So I need to go back and have another go at Sonny, because his ogres are getting a bit too confident, and I don't like that. Yes, I've done a few. I haven't exactly won any yet, but... Yeah, partly. I mean, not them bitter, but Elvis' incredibly cowardly brotherhood army stitched me up, and I don't think I'll ever forgive him for that. I think that'll stay with me forever now. The model I'm probably most proud of is the dream hunter from the new diorama. I put a lot of care and attention into it, because I like individual hero models, but I quite like, from a scale point of view, these are the twin terrors, because they're quite fun, big, grippy things. Which one was my most proud of? Initially, I really, really liked the wingit. I thought that was my favourite, but then I absolutely loved the slasher model, and I was really excited about painting that. To begin with, I did a terrible job of it. So we had a little bath and dettle for a few other brands that were available. And then I kind of started again, and actually now I'm really, really pleased with that one. So I think it was such a great model. I wanted to do it proud, and hopefully I've done that. Ooh, that's a tricky one. Which am I most proud of? I'd say the Abes is my favourite miniature, but I've not quite finished it yet. So... Oh, it's probably the Tundra Wolf shaking hands with the man at arms, to be honest. It's probably my... necromancer slash druid-ish kind of guy. It's undead themed, it's very, very difficult to... It'd be a necromancer, because of undead stuff, but I like that model. It was new for Vanguard, and I got to paint it when it was fresh out and stuff like that. That was probably the first model I did for my army. So that was my centrepiece when I spent time on. So the miniature I'm most proud of is probably my garlic's fury. I'd already built a steel behemoth, which I'd posed in a fun way. But then garlic's fury was sort of a mad scientist moment where it was, what if I take this huge turret from one of our Warpath miniatures, and I just slap it onto a steel behemoth. And it's definitely a really fun piece when it's on the board. I got to try out a lot of different techniques that I hadn't really done before just building the rest of my army, like adding the steam, if it's together by moulding it out. So yeah, definitely my favourite one that I've done. I think it's my siege breakers, because I think the conversion, I'm not, well, kit bashing, slightly converting, I'm really poor at converting. I have all these ideas, but I always go like, ah, so much effort, I'm never going to get that done. So to do what I did there, I was really happy, and thereby far my favourite. And the game they were in, they were amazing. They just don't want to be shifted. It's hard not to say the giant, just because he's huge. I really enjoyed painting that. I did it over a good few lunch breaks, so it was nice to see that progress and come along. There was encouragement from the forums, the Facebook groups on the internet, and the office. So yeah, probably that one. Well we've joined, so Andy and Blackjack Legacy's just started a new group for Slow Grow Army Building. So I had a little bit of a head start, so kind of cheated, but I'm doing orcs for that group, and a few others from here are doing it as well, so I know Rob's doing his ogres. But yeah, I'm well away in doing that. I've got everything built and primed, and I've started a few of the hero troops and then get down to the nitty gritty of hordes and the regiments as well. Orcs next, and then, February comes, I've got to do Abyssal Dwarves as well, but I think that's going to be the choice for a lot of people. So I've got a busy two months, because they might have to go on a hiatus if they're not done. But yeah, orcs for the next two months. Obviously more goblins. More and more goblins.  But no, I currently decided to start a new ogre army, because I don't know if you've heard, but ogres do good combat. So I'm doing an ogre army, which does awesome. I mean, basically, ogres are kind of big, muscly goblins anyway, as far as I'm concerned. So I'm doing them mixed in with a few of the goblins that I've already painted. So up next, I've already got the Shadows in Northbox. I've got the ogre mega army as well. So the Northern Alliance, I'm trying to focus on some conversions and particularly multi-basing. The Nightstalkers are going to be more of a painting challenge, because I've never really been able to blend colours. So that's the perfect opportunity to try that out. And the ogres are... I'm trying some sculpting. So they've all got half cloaks and sort of sashes and things. So it's three different armies pushing three different hobby aspects. So I'm going to try and test myself a little bit. I don't know. I think I hit such a good one with the Brotherhood that people really enjoy seeing, that anything I do now, I'm worried about, can I get these to be as cool as the Undead Brotherhood? I tried a Varunga army, but it didn't quite feel right. So I don't know what I want to do next. I might do Abyssal Dwarfs, post down in some form of comment what army I should do next. And the one I guess the most I'll do. I'm going to end up doing elves, aren't I? Well, chariot's obviously to finish up the chariots. Once I've done chariots, I think I'm going to do a slasher. I have no idea how good it is in game, but the model is absolutely stunning and gorgeous. Who doesn't want a, you know, a big old, dragon-y, lizard-y thing going across the table shooting things. And the coolest thing is it's got goblins on there as well. Who doesn't love goblins? So up next is basically just more dwarfs. I'm trying to give myself probably up to 3,000 points. I'm going to sort of get involved with Blackjack's little campaign he's got going on. But sort of using that to expand my current dwarfs. Just to give myself more room to maneuver in my army lists and what I want to build. Because currently right now, if I'm doing a 2,000 point list, I have one army that I can use. It's not a case of, oh, I feel like more war machines would help or more Brock riders would help. So I'm doing that. So I've got a bit more options, a bit more creativity that I can involve when building my lists. Oh, like I said, I've got a whole bunch of clansmen, sort of two troops of the pack hunters. I'm doing a sort of slight kitbash conversion for my Lord Nanakai mirror, which I'm quite excited about. That's an idea I've had since way back when I first saw the unit entry before, you know, before I'd even seen the new model, which has made me question whether I want to carry on with the conversion or just dive into the new model now. So yeah, I'm looking forward to finishing that up. All resolution, basically paint more goblins. Same as my resolution every single year. Play more games. So I want to go to some tournaments as well. So I've already signed up for, I think it's one of the Northern Kings ones already. We're going to go to as many Black Dragon with Guy Sharp as I can, because he's fairly local. And we're going to have some here as well. So tournaments, I want to get into that and finish my walks. And yeah, maybe three armies by some, I don't think. But yeah, more games for sure. Oh, resolution for 2020. Probably to try and finish the four armies I now own. And then the Abyssal Dwarfs are out in February. So I'm going to need some of those, because they're honestly, I think, the nicest things we've ever done. So more building, more painting. I want to try and keep the painting momentum going for sure. And just definitely more games. To win a game? It's good and fun, yeah. Right. So I think at the end of this month in December, I want to finish up my ogres, get them all done and dusted. And then new year, new army. That is the plan. So I'm going to start bullying other people to join my little pledge here is to start a new army. And I'm torn. I'm torn at the moment, because I'm thinking of doing Kingdom of Men, but using Northern Alliance and mixing things in. So I've seen some great ideas. And yeah, I work with a company that has so many ideas. And it's great. The motivation here is amazing. And that's what powers me on. Hopefully you guys get the same feeling when you're gaming. So my Kings of War Resolution for 2020. I think it's just to take my time a bit more. I'm a pretty impatient person and kind of a speed painter. I like to get stuff done and assembled and straight onto the board. So I don't really take a lot of time with my mould lines. I'm a three colour blackwash kind of guy, which I like. So I think especially on some of my hero units that I've got assembled and painted. Just sort of take my time a bit more and really bring out some of those finer details and use some of the techniques that I've been learning. So yeah, I think that's a good one to do. It'll help me have some really nice miniatures at the end and I'll stop being jealous of everyone else's miniatures I see. Get 2019. 2020. Okay, that makes more sense. I like to get 3,000 points painted by the end of the year but 2,000 points in enough time so that I can do at least one event. Because I've never done a tournament before in my life. So yeah, I'll do at least one event next year. Because it seems like people always really like having fun and basically just get over myself and get out of there. And the most important question of all, do you think Ronnie would have an army done? No. And he still hasn't? No. Nobody imagined Ronnie would have an army done. So as a fellow dwarf player, I was hoping he would have his army done but as someone that I've seen him run around doing one job and then suddenly remembering he has another job I was thinking it might not happen but ultimately I think he's got his army done. I can only think he has it done. Please. Ronnie's got his army done. I mean I did. Unless he's got like Santa's elves and kidnapped them and forced them to paint his army. This is like the shoemaker and the elves. 100% he has not got that. That is six years in the making. Movies don't take as long. Half-life three will be out before his army is finished. They said it would never happen. They said it could not be done. Over eight years in the making coming to a gaming table near you Ronnie has painted his tour. A miracle. It's really a sort of a miracle. Yeah, there's two things. Firstly, he wanted to paint some more and then secondly, it had to be balanced. I'd obviously done all the fun stuff over the last 18 months but didn't know so when I plugged it into an easy army I didn't have quite enough regiments. But between when we last spoken now I think I've done four to six regiments plus finished off some of my vanguard stuff and it's legit. I think we're coming in and stonking just 3,000 points. So none of this easy thousand-point rubbish but it's a proper army now. It's nearly a real army. Yeah, I think there's two reasons I've got more to do. One, if I actually finished my dwarf army something catastrophic would happen to the world or me or something bad because just after eight years it simply can't be. So as I was doing it I started making one of those the doggy regiments, the massive regiment using up all my little spare dogs and I got one of those regiments from the vanguard range so purposefully have not finished that and never will without at least lining up one more regiment. Somewhere on my painted table will always be some dwarfs even over 20,000 points I'll still have another 500 on the thingy because I'm protecting the world and also there's just always cool things in there in the range that gets added in and bits of conversion and doing your hobby is a little bit of fun but I think there's enough that if I wanted to play a game I have enough choice and you can kind of call it done enough. I love it. I mean you just don't, you don't particularly when you work in the industry get your hobby time enough and having already been a slug into it which I know is a bit of a cheat but finishing it, making it third edition legal making it balanced so that I can really play but there's nothing better than kind of sneaking down on a Sunday morning and just getting an hour of hobby in and most of the stuff I was doing was also the stuff I was scared of doing so the last unit I did before I started this was my ball walkers which I didn't want to do because it's the metal plastics I already done quite a lot of the regiments it's one of my favourite regiments because you know I got a few arms from different places and did some conversions and then I did two more regiments which I can push together as a horde and again I had different heads I had different heads to them and so in some ways this stuff is actually my favourite stuff because I've not just done it vanilla it's had some extra bits and more conversions and you've got a bit braver so yeah I've thoroughly enjoyed it and what I was most fearful of have often become my most favourite parts of the arm let's not rush one thing at a time I think getting it painted is more than enough progress for this year and should we be having a large summer campaign next year then I think we can welcome out then but yeah that's a new year let's start a new, let's actually play with them how can I just dance with them it's the regiments I mean there's no single regiments but if you look at the units I've got these pictures they've got standard bearers it's a sack of just that we've got rid of that for gaming purposes but they've got the standard there they've got the dog, they've just got that bit of character I like the one where I put a big rot that I've found somewhere as you do when you do the hobby thing where you say ooh that'll make a great thing on a base and end up with tons of crap I actually used some of that and then I converted the metal levees that came with the vanguard added plastic heads to them so they didn't look too different or plastic shields to them so they blended in and I put those on one of those and there was my fourth or fifth or sixth regiment in the army and actually doing it with loads of character kept me sane so I put with that regiment I'm quite thinking about doing my gaming table I thoroughly enjoyed my Deadzone one which I did a couple of years ago for the Deadzone summer campaign and it's now very famous in all of our photography because for some reason muted colours, I did it in Ben loves to photograph it on rather than the really well painted stuff and there's also a trident realm vanguard faction that I glued together and got as far as basing and I don't think I've quite got the stuff up for another full army but a vanguard unit could be nice and then of course we'll have some new games coming out next year so we'll have to start picking up some of that to Bissell Dwarfs as well I've got a plastic sprue of those there very very very nice so yeah to play games well a few things play games in the summer campaign actually properly play and maybe play some vanguard and some King's war games together so definitely do some of that and the second thing that I'm super excited about is in the last couple of years obviously Adepticon and the American tournament scene has grown and grown and is huge and successful and we've added kind of Adepticon alongside the US Masters to be ages alongside Clash of Kings at the UK and I'm going to go down and see what's happening in Australia because that's our third biggest market and they've got an event that can come beginning of January so I want to King's at war, I want to get down there and celebrate the success I think it's the third biggest tournament in the world certainly in the third biggest country US and Clash of Kings so go down to see what's going on in that scene I went to the Masters this year and I want to go to Masters US this year I honestly can't comment Never in doubt not for one second I was going to go for 5,000 points but you know it would have been too easy and that is that so tell us what army you are currently assembling and painting right now in the comments below it's very good for the algorithm and what you're most excited for in King's War 3rd Edition is it the new Titans, new rules, new scenarios let us know and see you next time


This is the link to a sample framework with some example code that we'll be using in this talk, which will be present in my GitHub. How can you find me over the internet? I typically go by the alias automation hacks because it's primarily more easy for me to actually, what do you say? Like more easy, more easy for people to actually remember. Yeah. So cool. And you can check out my blog on automation hacks.io or Twitter and LinkedIn. So let's get started. A bit of information about what this talk is about and what this talk is not about, right? So whenever someone really learns Selenium or Appium or any other tool, the next step that typically like we encounter is to actually decide on how can we build a framework on top. So most of the times is to figure out what are the building blocks around it. So we'll discuss about some of them in this talk. We'll also discuss about what are the considerations you should have while building a framework and discuss some benefits and tradeoffs of either of them. We'll spend some time on useful design patterns, which come heavily recommended by many industry experts and are known to provide valuable for us. Also, knowing the good of everything is good, but we should also know the pitfalls by with something that we are working on, right? So we'll discuss on some anti patterns. What this talk is not about. This is not a discussion about Selenium API or how it's actually works and all that. There are much better talks and Selenium conference is a great medium for us to actually learn about that. This is not a definitive guide to building frameworks because framework building is largely dependent on the organization and the project that you're working with and actually depends on the context. So these are some guidelines that have worked well for me and I'm sure you must be having your own set of guidelines and we can talk about that after this talk as well. If you have questions, please part them or mention them in the Q&A section and we'll try to address them at the end and if not during the conference. Okay. So the first step when building a framework is actually to decide on what language you will choose, right? And there are typically some available choices for you. So you can either choose a statically type language like Java, Kotlin, C sharp and TypeScript. And while the compile time feedback is really awesome, because if you break something, your compiler is going to immediately flag that and that's really nice. On the other hand, you can also choose a dynamically type language like Python, JavaScript or Ruby, and it's quite flexible and quick to author tests in these languages. Since you, for the most part, you don't need to worry about types. So writing your tests is actually quite easy, but here are some additional considerations when deciding to choose a language for your framework. So you should try to choose something that the devs can also use. Why is that? Because in the end quality is supposed to be the whole team's responsibility, right? And if you choose a language with the devs are also using to code the app and there will be less friction for them to actually take a look at the automation and maybe contribute. And at the end of the day, that is something that would be very desirable. You should choose a language that's easy to learn and find skilled people in because beyond the initial POC, you would want something, which is some language, which is easy to onboard more people onto. And if you choose a popular language, then you would quite easily find people in the industry, try to choose a language that is undergoing active development and has a thriving and supportive community. But this basically translates to is a good ecosystem of tools and libraries that you can use and basically less work for you and more for the community. And probably if it's a very supportive language community, then you might also get a chance to contribute in. So if you're looking to for some suggestions here, you can't really go wrong with Python or Java Kotlin. Even JavaScript and Ruby are very good options. Selenium and Appium has line bindings for all of them. Cool. So now that you have decided a language, the next logical step is to actually choose a test framework and an assertion library. And the popular or the most common choices that you have is to either choose an X unit style framework like J unit test and G on the JVM side or Pytest or unit test on the Python side, or choose a behavior driven tool like cucumber or behave Pytest BDD. So the primary way of how I think about these is you should ask yourself this question of who are actually going to be the primary author of these tests. So if it is going to be an audience of developers and automation engineers, then choosing an X unit style framework might be actually quite good. And we'll discuss some of the benefits and trade offs of them. But if your audience also involves product managers and manual testers, then BDD can also be an option. And let's see why. So here are some of the benefits of choosing an X unit style framework. The first one is it's quite easy to actually author your tests. They are quite flexible and typically there is very less boilerplate. So you can quickly get down to the act of writing your tests. Most of these frameworks come with very good setups and tear downs at different level based on your requirements. So you can choose to either do setup or tear down at suit level, class level or test level. It is very easy to data drive your tests. Since at the end of the day, it's a very minimal layer with which you work. And very easy to actually paralyze these tests as well, using the build tool and stuff that is even built in out of the box. The main trade off with choosing an X unit style framework is the tests can turn to be a bit less readable if not very designed. So there are many patterns that you can follow to work around that. And one of the most common one is to use the range act assert pattern. And we'll discuss a bit about it when we comes to the design pattern section. So the other obvious choice is actually choosing a BDD tool like cucumber or serenity and whatnot. But before we start, if like the creator of cucumber himself says that if you think cucumber is a testing tool, then you should read this blog because you're probably wrong. And the blog is quite funnily titled as the world's most misunderstood collaboration tool. So I would encourage you to check it out. The main benefits of or the selling point for choosing a BDD framework is that it gives a very readable sort of layer with Gherkin wherein you can specify your business acceptance criteria as given when then and and whatnot. It can also provide a layer for people who are not familiar with coding such as product managers to actually contribute to your framework. It generally the report that is printed is actually quite readable because of the English like steps, right? However, there are some pitfalls while choosing this framework. Essentially, if you're going to follow BD if you're not going to follow BDD practices and involve all the three amoebos in the agile cycle into the development, wherein let's say your product managers are defining your specifications and the developers treat it as an outside in perspective into authoring your tests, then maintaining this BDD layer just for the sake of using cucumber is going to be an overhead because you have to deal with feature files, write step definitions and whatnot to basically achieve this on top of page objects. The other trade off with BDD is it can turn out to be a bit less flexible. To paralyze tests, you have to depend on a feature level, though this has been worked around, but it's still a bit more steps compared to a next unit framework. And it's quite easy to fall into the trap of writing feature files which are imperative rather than declarative. So here is an example of an imperative feature file, right? So given that you have this Gherkin syntax, you write all the steps to basically open the browser with a URL enter a username password, click on submit and whatnot, right? But this is not what the business actually cares about. And reading this for all the feature files that you write can be quite tedious. Instead, it's it should be written in a more declarative fashion wherein you go one higher level up in the abstraction. And you basically write something which the business can understand that given that you're on the login page and you enter correct credentials, you should be able to see the welcome page. So this is derived from one of the source labs, a blog on best practices for running tests. And I would encourage you to check this out. So now that you've decided on whether you will choose a next unit or a BDD framework, the next logical step is to actually choose a good assertion library. And we want to do that because we don't want to reinvent the wheel, right? There are good assertion libraries which can give a lot of the common methods that you can make use of without having to write them on your own. And there are good fluent libraries available. What do we specifically mean by fluent? So you can essentially chain multiple assertions one after the other. And it generally tends to be a bit more readable than the normal syntax. I've been playing around with Google truth for some time and it's a evolution on top of assert J. So this is probably something you can evaluate on the Python side, there is a cert by and the other choices are obviously Hamcrest and even native J unit or test in the assertions. So you can choose something that actually gives you the maximum value for your framework. Awesome. So now that you have a choice on test framework assertion library, the most important part or the lifeline of your test automation framework is actually logging and reporting, right? Because at the end of the day, if your test fails, you want to be able to quickly figure out why it failed and did it catch a legitimate problem with your application? Or is this an automation but that you have to fix and good logging and reporting is going to enable that. So while making your choice, you should consider something that is very easy to see exceptions track traces in. You should be able to quickly spot what are the failed assertions and be able to see what were the inputs to this test method and what were the logs around it, right? Your reporting tool should be able to give you good pass fail and skip the metrics. And the most important is you should have historical results comparison because if your test fails, you need to have the historical perspective of whether this started failing now or has been failing for a long time. If a test is consistently failing, then that's probably a lesser concern because you know you have something to fix. But if a test is failing in a flaky manner, then you have to really dig in deep and like identify what is the root cause behind that flakiness. So some of the available reporting frameworks are you can choose the native tools provided by grader test engine reports or even cucumber reports and cucumber reports can integrate very well with Jenkins wherein you can see that historical perspective. But if you want something with a bit more power and more features on top, then I've been trying out report portal for some time and it nicely integrates with test engine or cucumber and takes care of most of these requirements when like coming up with a reporting framework even integrates very well with logging libraries. Other choices are obviously a lure and extent reports and I'm sure there must be even more reporting photos that you might be using in your framework. So choose, ultimately choose something that's able to give you good feedback about why your tests are failing. Awesome. So now with logging and reporting done, the next thing that you should consider is continuous integration, right? And continuous integration is very important to build in into your framework right from the start because typically when someone starts building a framework, they start with thinking that I can write some set of sequential tests and make it stable in my local setup before trying in CI and the moment you push it into CI, you start seeing failures, right? So you want to avoid that trap and make sure that right from the start, whenever you write even your first test with the framework, it runs in a CI so that it's able to give the value to your project and your developers in terms of quick feedback about your application builds and whatever you are testing, right? So certain choices can be Jenkins, which is a very popular CI tool that's used, or you can even use a CI that your project or organization uses. Some of the other choices can be Azure Pipelines, GitLab, Travis and Circle CI. A couple of other key practices in terms of CI are you need to make sure that you have a good smoke suit defined that really identifies the critical flows in your app and make sure that they are stable before you like dig deep and like run the big regression suit, right? And you can set up your regression suits to either run on a nightly basis or on a bi-weekly basis. It really depends on how quickly and how frequently the developers and project managers really want that feedback. Another good tip here is to make sure your test suits are always healthy. So if you need to really spend time with your test framework and make sure that they are very maintainable. So if something goes wrong and it's a problem in the automation framework, which is going to happen because even the application that it automates is going to keep on changing, right? You need to make sure that if a test fails, it always fails for the legitimate reasons. And this basically means that your developers and your project managers will have good confidence in the framework instead of discarding it as a failed project if you start to ignore like all yellow and red builds. Okay, so I think we have talked about some of the basic pieces that make up a framework. In terms of Selenium, the next logical choice is to decide on where you're going to run these cases. So you have couple of options to set up a Selenium grid. Either it can be in-house or it can be on the cloud level. So if it is an in-house setup, there are some obvious benefits. The cost is obviously less because this is something that you are maintaining and it's going to run on your own server. Also, like you can have more control and customization for all your unique needs of your organization. The common trade-offs with this is there is a good amount of maintenance overhead to actually maintain something like this because it would ultimately need a good dedicated team of engineers to maintain if you are going to scale this across your projects and multiple teams. And there can obviously be a limit to the number of VMs or containers that you can really have. The cloud solution does work around some of these. So let's discuss about that. The main benefits of the cloud solution, it's going to be highly available and the management is going to be outsourced by a dedicated team of engineers. So if something goes wrong, you always have a set of people to offer you support and debug and fix that problem, right? A cloud infra promises a large amount of platform and browser combinations. Honestly, it could be more than what you can maintain in an in-house setup and plus the automatic update and the cleanup of these machines and containers are going to be taken care of by them. Obviously, there is a good amount of monitoring dashboards that's also present. So you can very quickly debug into what are the tests that are running, see the video and even get a good amount of initial reporting there. The main trade-offs with the cloud solution is at the end of the day, it can actually be pricey for certain organizations and that is probably one of the reasons for not going with that for smaller organizations. There can be concerns around network latency if the data center is in a different geographic location, but this is a common enough problem that most of the cloud solutions have worked around this. There can be certain concerns around data security. So your security team and security organization should be clear in terms of how your data is going to be managed and teared down. Some of the popular choices are sauce labs, browser stack, appletools, ultrafast grid, perfecto, headspin, among many others, and some of them are even gracious enough to support this conference so that you and me can actually interact and share these learnings. Awesome. So now I think we have discussed most of the basic considerations that you should have before starting a new framework. Let's discuss about some of the patterns and practices that have been heavily discussed by industry experts and proven to deliver value. So let's I want to first discuss about atomic tests. So this is a concept that has been written about a lot and what it essentially means is you should be writing tests that are very targeted on a specific piece of functionality that you're testing, right? So this is a contradiction to actually long winding end to end steps, end to end tests that you might be writing and we'll discuss why this makes more sense. The general aggressive recommendation there is to make sure you don't write more than two assertions per test and initially this can turn out to be quite challenging because most of us start with actually writing longer tests. You should ensure that the outcome of one test should not cause another test to fail. And this is probably a hint because like there are features in test energy and other frameworks where you can basically chain one method to depend on the outcome of another one. So the problem is it just becomes a maintenance problem because if the initial test fails, then a lot of the tests will be skipped and just the overall debugging is a bit more tougher. However, if you write atomic tests which are sealed in their own boundary, then you know that if a test fails, it's going to fail for only maybe one or two reasons and you have a very easy debugging path. Certain other heuristics around this is the Trims pattern that Richard Bradshaw from Ministry of Testing has suggested. You can check out this blog and it does talk about other capabilities that your test should have in terms of making it something that is more maintainable and better in the long run. So any discussion about sensible patterns in Selenium should include a discussion about explicit weights. However, we are not going to discuss too much about it because it's been talked about a lot and it's one of the most accepted good practices. In a nutshell, you should avoid writing any hard-coded sleeps or implicit weights in your framework. If you have any of these in your framework, then make sure you start replacing them with an explicit weight on a given expected condition. The next important pattern is to basically make sure that you use an API or a database or some of the other methods for actually set up and tear down. And why is this important? Because even though Selenium is capable of actually dealing with a lot of your set up cases, it involves more steps on the UI which is inherently slow and can be flaky. So if you remove these application state setup and actually replace it with one of these methods, your tests are ultimately going to be more reliable. So the most common method is to basically integrate API into your UI tests and use them to create any test artifacts that you need. You can also inject JavaScript or modify cookies or modify database. And these are just some of the ways that it's been written about a lot and this is honestly like really increases the efficiency of your automation framework and the reliability. So I think we mentioned a range act assert pattern initially, it's been written a lot in the C2 wiki and I have a link of that in a links section, which you can refer later, but it essentially divides your tests into four main blocks. You have a state setup. You basically do an action on the application, essentially just one action that you want to test. You write a singular assert assert on top and then you do clean up. If you're using a ex unit style framework, then you can even just replace the setup and the cleanup part with annotated methods that you can easily run. However, I like to divide the tests in these different blocks so that if anyone is reading that that test, it is very explicit for them. Like what is the state we are talking about in a test, right? So the next useful advice or practice is basically to make sure you are able to run your tests in parallel right from the start. And this can turn out to be like a difference between a successful automation project versus something that is disregarded. So I've been into situations where when you start authoring your test framework, it essentially is takes a long time to run, right? And the longer time it runs, the more difficult it is for depths to actually wait for that period of time to get feedback. So you should not fall into the trap of only writing a sequential tests all the time. Try to make sure that your tests are able to run in parallel right from the beginning. And atomic tests ties nicely into this principle because each of these tests are actually sealed in their own boundary and you can run them in any order and in any parallel threads that your infra supports. There is a great library, which is Selenium Grid, which obviously helps a lot with this. And with Selenium, we have the new Selenium Grid for, which is in alpha stages right now and has good amount of documentation. So you can check that out how to move to that part. Also, general bit of advice here is to make sure you create a new web driver instance for every test and do not share the web driver instances because the moment you do that, you're start going to get some weird behavior, right? You should try to avoid static keywords in your framework and try to minimize the amount of shared state between tests. Like basically, this is the reason for most of the tests to be heavily coupled and not be parallelizable from the start. So try to take care of that. Any discussion about page objects is like any discussion about Selenium patterns is incomplete without giving page object the respected deserves, right? So anyways, this is a pattern that has been talked about a lot. So I'm not going to deep dive into how this is structured. But I just want to add one additional insight that when you think of a page object, try to think of even components between the page objects. So try to break down your page into reusable components, which can then be composed into a larger page object that way you also follow the do not repeat yourself principle. So you make sure that you only write the minimal components and then you can very easily use them. Also good naming is at the heart of any good software development project. So make sure your page objects are well named with clarify the intent and what specific component they are actually dealing with. Cool. So the next pattern that I have come across in terms of UI automation or even automation in general is the fluent pattern. So here you have the simple to do MVC app that many people many of you might be already familiar with wherein you can add couple of to do's and then see how many to do's are left and also switch around with completed and to do's that are still active. So this is how you would actually write a test for it without fluent. You would basically create a page object for homepage and then call the add to do or other methods like this, right? But with a little bit of changes in the page object, you can make it something which is more readable and reads more like an English syntax. So this is how this looks once you have refactored it with fluent pattern. So essentially you can just create the page object once and then you can just chain all the methods one after the other and this can also be extended to be something like if there is a next logical action to be performed, then you can make sure that that is accessible right in your editor. So it's sort of creates a very friendly API for people to use and basically write a long chain tests. So how is this actually enabled? You need to make sure you return the current page object or whichever is the next page object to enable your methods to be fluent. So this is an example of the add to do function where at the end of the function, I'm returning this, which is basically the current page object, thus enabling you to call this as many number of times as you want without having to specify the page object explicitly. And you can also use these in these in assertions. So the Google truth library that I mentioned earlier, you can write a simple assert of two values as this way, which actually turns out to be a bit more readable and understandable. However, this can also be a personal preference and fluent pattern is something that has been talked about in earlier Selenium conferences. I have links to these in the links section, which you can refer to. Okay, so the next popular pattern in terms of Selenium or UI frameworks is actually page factory. And this comes pre-built out of the Java bindings of Selenium or Appium. What it essentially means is you can easily annotate your web elements with a find by and then whenever you make use of those elements, then a lookup will be performed. Right. So this is quite friendly and it actually cleans up your page objects a lot. So I try to use this as much as possible. The key thing is in the constructor of this page object, you basically initialize all the elements once. Also, if you know that there are static elements in your site, then you can even use at cash lookup, which is going to do a lookup once and keep it so that a fresh lookup is not performed every time you have to interact with that. So this is a need performance boost on top of page factory. Okay. So the next pattern that I want to discuss a bit about is a screenplay pattern. It basically has a selling point of following all the solid principles of software development and takes a user centric view to writing automated acceptance tests, probably discussing how it's structured or details about it is out of the scope of this talk, but you can check out the page on serenity BDD and basically it has a lot of good documentation on how you can basically build it out. There is a good course listed there as well. The next pattern that I want to talk about is a builder pattern. And while this is not something that selenium actually directly uses as such, but it's a very nice test automation pattern in general. So if you have to construct a complex data object with multiple parameters in a constructor, you can instead replace these multiple patterns with instead creating a builder, which is basically going to keep on returning the same object. And you can have the flexibility of customizing different sets of data. So where I typically use this is if my API basically needs different sets of inputs to create different sorts of test data, then I will typically have a builder which I can reuse in certain helper classes and basically create the required object that I need. So with that, we come to like a good discussion about the what are the available patterns, but we should also know what are some of the common pitfalls that we can fall into, right? And so I want to spend some time here. The first anti pattern is essentially to put assertions in page objects. And I've been guilty of the same thing. Initially, when I started with selenium, what my viewpoint was putting an assertion in the page object is more sensible because the page object actually is the representation for the UI page, right? But what I've come to realize and it's also been talked about by other industry experts is your assertion should actually be in your tests. What that basically allows you is cleaner page objects, which are just making sure to provide an interface to basically drive your browser. And so you can use the same method to even test positive and negative cases. And it overall leads to good separation of concerns. Probably an exception to this could be writing a single assert to verify that all your page or your elements are loaded properly, probably in the constructor. But apart from that, keeping it in the tests really makes it nicely organized. Okay, so the next anti pattern is essentially putting web driver methods in tests and page objects. And Simon Stewart, who's the creator of web driver himself had this code that if you are putting web driver APIs in your test methods, you're probably doing it wrong. So what that typically means is there shouldn't be any code to have a deal with web driver in your tests. Essentially put it in the page objects. And another common practice there is to make sure all your page objects inherit or compose from a base page, which has good wrappers over selenium methods. And what that basically affords you is less duplication. So if there is good implementations of finding or getting certain values, then you can reuse them easily in all your page objects. And even if in a later version of selenium something changes, you don't have to make that change in all your page objects, rather just in the base page, right? This also clover ties quite nicely into the don't repeat yourself principle. So the next common anti pattern that many automation frameworks and projects have is actually writing long end to end tests with multiple actions and assertions. Why is this a problem? It's initially quite easily to just write another step and maybe add another assertion in an existing end to end test. But the main problem with that is it turns out to be a debugging nightmare because the more steps you have in your tests, if any of the earlier steps fails, then you actually have to go down to the process of basically figuring out why it's failing, right? And the tests are not very deterministic. Also, like if it fails earlier in a stage in your end to end test, then you don't get the feedback for the remaining assertions. So essentially breaking down your long end to end test into smaller atomic tests is essentially going to make sure that your framework is much more maintainable. Okay. So the other common myth or misconception with UI automation is essentially writing too much UI automation. So most of the times we tend to treat selenium as a silver bullet and now that you have that selenium hammer in your hand, you try to like hit every nail with that. So selenium is a good tool and a good library to deal and drive your browsers, but that doesn't mean that every test has to be present there. So in these cases, actually less is more. You can take a minimalistic stance to writing UI tests or try to not test everything from the app or the browser, right? Even though that might be possible for you, because that essentially means that you end up with 1000 or even more a number of cases depending on the size of your project. And that does just turns out to be very difficult to maintain in the long run. Probably a good idea to use selenium or UI test would be to test for the visual aspects of your application. We should be the primary use case just to mention and make sure that your application is looking fine and you're able to get through the major functionality without any breakages, but try to prefer like writing more API tests and even like push it down to integration and unit as if applicable in the long run, this would make sure that you respect the test automation pyramid and you essentially have tests at the correct layer, right? And probably the last anti pattern, which is not really a anti pattern with selenium automation, it's more around the conception or thought process behind like when you start writing UI automation is that you would write and automate all the tests that are possible in your suit. And what that typically leads is even though you're chasing 100% automation, you are going to start automating tests that are not going to have value, right? So essentially exploratory testing and functional automation can both go in hand in hand, you can basically use UI automation to augment your testing and make sure that whatever are the repeatable boring tasks, you can just get rid of them with your UI automation and still get the time to do more exploratory testing put a pair of couple of human eyes on the application and figure out what are the areas which we have not even explored, right? So a general thing around UI automation, how I think of them is they are good change detectors. So you can run them any number of times and always get a feedback of has your application changed, but it might not necessarily give you a confidence of whether you're covering everything, right? So I think with that slight controversial note, I'm coming to an end to the top. So where can you actually go from here? There are all these lists to the blogs and videos that I referred and have been like reading or following over the years. So you can take a look at these because they might give more insights than something that I can fit in a 40 minute stock. But what I can suggest for yourself is to learn constantly and you have a very good testing and automation community out there to basically learn from. I would encourage you to experiment and try some of these approaches in your frameworks and over a period of time, develop your own heuristics about what works and what doesn't work. And once you have figured that out, please come and share it in a talk with Selenium Conf or write blogs so that we can all learn from each other. There are all the blogs on automation on BDD Cucumber running tests in parallel and some of these patterns that have talked about. Also, the newly revamped Selenium docs are really nice. They have very good guidelines around writing effective automation. So I think with that, I would really like to thank all of you to take a time and attend this talk. Thank you, Gaurav, for sharing your experience. Sure. So I think we have around seven minutes left. Let's see if we can answer the most common questions. And if not, discuss more in the VIP booth. Sure. Sure. So like most likely question are like can we integrate any SEO tool with Selenium for SEO audit? Like an integration acts with Selenium. This was asked by Vibhav Shukla. Okay. So thanks for the question, Vibhav. I don't really have insights on whether integrating that would make sense. But at the end of the day, Selenium is a library to drive browsers. Right. So if that is something that is basically entailed in that you can probably try to write something on top. The API is quite flexible to do that. I'm sorry, but I don't have a good experience with this with doing this. But yes, maybe try asking other people in the Selenium Conf and they might be able to give more insight if someone has actually dealt with this. Okay. So next question will be how to customize reporting system which make complete clarity between past and failed test cases. This was asked by Karthike Rai. Okay. Thanks, Karthik for the question. So the thing is there are two things there. If you are using a reporting framework that someone else has developed, then there you can like explore around the features. So if for instance, I talk about report portal that integrates with your test and G and your cucumber tests and also integrates very well with your logging frameworks like log back or SL4j on the Java site. Even if you are coding in a different language than Java, then it can integrate with them. And what it essentially does is keeps on listening to whatever your tests are running and starts pushing it into a database. And it actually has a nice UI on top, wherein you can get a good visualization of how many tests actually ran, how many tests failed and also the historical purpose. So like I would recommend to try that out. It's been working quite well for me. And if you have some other tools, then do suggest. Thank you, Gaurav. So the next question would be, can this atomic test be used with sanity smoke suit? Whenever there is a new build to verify, this was asked by Adarsh Kumar. Okay, thanks for the question, Adarsh. So definitely yes. Atomic tests is not something unique. It's a way to actually write all your tests, right? So what it essentially means is you figure out smaller chunks of test cases that you can run on every smoke or sanity suit. The only difference would be instead of being a long end to end test, these would be much more smaller tests, which you can run in parallel. So which are actually going to run much more faster than your end to end test and probably be less flaky. Thanks, Gaurav. So there is one more question. Can you share the best practice to measure the network latency by Vegeta? Okay. So I think there are a couple of proxy tools that you can integrate with your Selenium automation, which should be able to give you good metrics on how long your pages are actually taking to load and all that stuff. So you can probably check out a browser more proxy and I'm sure there are other tools that have also come up, but probably integrating something like this in your Selenium automation might help you to get these metrics that you want. Okay. So there is one more question. Why do we use to limit our assert command to two by UV Tran? Okay. So that is mostly a very aggressive recommendation. I wouldn't say that this is like a line in the sand that you need to follow. But keeping it, the general idea is to keep it very less. Right. So I'll give you certain examples. So typically, if you're doing an assert on an application, what happens is you might think that I can write a single verify method, which is going to assert many things on this page, right? And what that essentially means is if one of them even fails, that very efficient method is going to get failed, right? But rest of the asserts might not even get executed. So the general idea is to even break down your tests into much more granular level. If you have an end to end suit of, let's say 10 cases, then you can probably break it down into maybe a hundred or 120 cases, which are going to run in a very short amount of time, because they are going to be very focused. And if you go to the links section in the slide, I think there are a good amount of talks by Nikolai at Blotkin from Sauce Labs. And he really explains a lot about what these atomic tests are and how you can run them more quickly. So I would encourage you to check that out. Though don't read the tool to assertion as a golden rule. Use your best judgment into what makes sense, but the general idea is to limit it as much as possible. Great. So there's one more question. Is there is difference between arrange, act, assert and given when then pattern? Sure. So it's sort of same name for the same thing. So if you can actually decide on if given when then makes more sense for you and there are obviously frameworks like rest assured, which actually even provide you the construct to write your tests in this way. But arrange, act, assert has been something that has been proposed a long time ago. And it's just something that I personally resonate with more, but you can choose to even structure it with given when then. It's just a matter of dividing the blocks or the responsibilities into something which you and your team can agree to. So probably putting it in like a coding guideline for your automation project might make sense so that it's consistent there for everyone. Thanks, Gaurav. So there's one more question by Anil. Why do we avoid using static variable? Can we not have web drivers as a static? So the main problem with static is it's essentially shared right across multiple classes. So the general idea of like if if you have anything that's static, that is not really tied with an object. And if you are running your tests in sequential fashion, then it's going to work properly. There is no problem. But if you try to run your tests in parallel, then multiple threads are going to start interacting with the same thing. And if you're mutating the state of that, then essentially what's going to happen is you will get very flaky tests in the sense that some of the threads that have actually executed initially would pass. But remaining of them, which depend on a different state might start failing. So this is just an anti pattern that kills any of your parallelization dreams. And thank you very much, Gaurav, for sharing your experience with us today. Thanks a lot, Hardik. Yeah, thanks a lot for moderating these. And I really would like to thank the audience. I hope you have a good Selenium conference ahead.


Hey, how many people are here for the first time attending a midwinter conference? Please raise your hand. It's always good to see new faces and stuff. I'd like to take this opportunity to welcome you here. You're among friends, you're among family, but welcome and thank you for taking the time out to come out here to attend this, and especially the legislative seminar today. So once again, a show of hands with people that are here the first time. Welcome, welcome. In fact, I have some gifts for the first three that would be able to come up here if you're able to walk or come up. I have some DAV Bolo ties, if you would, I'll put them over here, thank you. Those are available at the DAV store online at DAV.org. Well, good afternoon, I'm Leroy Acosta, DAV Assistant, National Legislative Director. At the 2015 National Convention in Denver, Colorado, DAV members adopted resolutions to confront numerous issues related to our mission of empowering veterans to lead high-quality lives with respect and dignity. These resolutions are published in DAV's 2016 National Legislative Program available at DAV.org. Our 2016 National Legislative Program is ambitious, it's reasonable, meaningful, and the product of careful, thoughtful deliberation. Our legislative agenda recommends responsible solutions to the real problems facing wounded, facing ill and injured veterans and their survivors. Like many of you, I'm a past state commander, I'm a past department commander, and I share your passion for the principle that this nation's first duty to veterans is a rehabilitation and the welfare of its wartime disabled. I'll discuss the topics that are listed here today, and when I conclude, you have the knowledge to make meaningful recommendations to the policymakers and to persuade others to take action to support DAV's mission. As we're seated here today, you're surrounded by some of the greatest, strongest grassroots advocates in the business. Everyone here, and those who may be watching online, are on the forefront of our activity. Our strength is reinforced by the power of the constant diligent efforts of our network of state-level departments and local chapters. Our DAV members fuel our momentum as we take action to motivate lawmakers to enact positive legislation for ill and injured wartime veterans and their families. Our grassroots activism can leverage technology to multiply our efforts online with the DAV commander's action network. That's why I remind you to make sure that you encourage others to take part in the DAV commander's action network, DAV CAN. Simply visit DAV.org, scroll over the words help DAV, and click on the word advocate. You'll find it. DAV CAN provides real-time information concerning issues pertinent to ill and injured veterans and their families. DAV CAN will alert you by an email when your action is needed on key issues. DAV CAN allows you to share your thoughts directly to your congressional representatives and lawmakers. In DAV CAN, make sure DAV's strong, insistent voice is heard in Washington, D.C. By the way, on your visit to Capitol Hill, please voice your concern and support for concurrent receipt. DAV urges Congress to enact HR 303 and S271 to repeal the inequitable offset between rightfully earned longevity military retired pay and VA disability compensation for all veterans, regardless of their VA rating percentage. A conversation about inequitable offsets wouldn't be complete unless we were to talk about SBP and DIC. As most of you don't, purchased SBP annuities are offset by the amount of any benefit payable under the VA DIC program. SBP is not a government gratuity, rather, it's a type of insurance benefit purchased out of pocket by military retirees for their survivors. Thousands of survivors of these military retirees are adversely affected by this unfair offset between SBP and DIC benefits. That's why DAV urges Congress to eliminate the inequitable offset between SBP and DIC in an Act HR 1594 and S979. I'm going to shift gears here and talk about something else that's near and dear to most of your hearts, and that's appeals reforms, was it? Appeal decisions take too long. DAV believes legislation should be enacted to improve the appeal process by launching the fully developed appeals pilot program, the FDA. However, we believe that any new approaches must be taken with extreme caution to carefully balance and protect the due process rights of veterans and to ensure accurate decisions. We even have a website dedicated to the FDA so that you can learn more information about it. While you're breaking out your pens and finding a pencil and something to write with so you can write this down immediately, I'll continue to talk about the appeals process. About 11% of all VA rating decisions are appealed. This trend continues and based on VBA's protection to produce over 1.4 million rating decisions annually, this sets a base of 150,000 appeals or more filed this year and even more in the future. Veterans should have additional choices and options to get their appeals to the board without having to wait years for the VBA to prepare and process their appeals. Some may ask, why is there an appeals backlog? Well, let me remind you back in 2011, the Department of Veterans Affairs focused on a goal of zero claims pending more than 125 days with a 98% accuracy that was by the year 2015. With their emphasis placed on their goal, the number of appeals has grown into a tremendous appeals backlog. As of February this year, 440,000 appeals were pending, 360,000 within the jurisdiction of the VBA and the remainder within the jurisdiction of the board. If you don't know already, the average time to process an appeal from the time a veteran files a notice of disagreement to the time a decision is rendered is from two to five years and multiple remands can add years before an appeal decision is rendered. DAV, along with other key stakeholders, has worked with the VBA and the board to develop and propose the fully developed appeal pilot program, the FDA. The FDA will allow veterans to bypass several preparation and processing steps in exchange for the efficient streamlined process, FDA process to reduce the time for appeal decisions. Congress should pass legislation to authorize the FDA pilot program and bills that embody much of our proposals and support the FDA are listed here. I need to advise you that February 9, 2016, HR 677, the American Heroes Cola Act, was passed in the House. You need to also note that HR 677 also contains language that would round down the cost of living adjustments for VA beneficiaries over a nine-year period. We oppose this because it would decrease benefits for ill and injured veterans and their dependents. DAV continues to work with the House and Senate VA committees to support our recommendations. Just as we do with all legislation, that would support and benefit our membership. You note here HR 313 was signed by the President in November of 2015. This would benefit federal employees who were veterans, it would benefit them. Lastly, I'm going to finish by saying thank you for your efforts and I invite you to take advantage of technology and to optimize social media's ability to expand and multiply our advocacy efforts. It's important that we enhance DAV's engagement in our veteran communities. Why is that? Well, benefits for ill and injured veterans and their families have been scrutinized, dissected and attacked for years. We need lawmakers to act in our best interests, to maintain and enhance the benefits earned through honorable military service. To do away with veterans benefits, they can gain momentum. That's why now, more than ever, someone needs to stand up. That someone is a DAV. Together, our laser-focused activity helps DAV work to fulfill our promises to the men and women who served.


Welcome to the session. I am Mr. Praveen Yalapakumbar. Today we want to see design of downlinks. The learning outcome of this topic is at the end of the session student will be able to explain the concept of downlink design in satellite communication. The content of these topics are noise figure and noise temperature, GY2 ratio for R stations, design of downlinks and link buzzers. Noise figure and noise temperature. Noise figure is frequently used to specify the noise generated within a device. The operational noise figure is defined by the following formula. The noise figure is defined as ratio of signal to noise ratio at the input to the signal to noise ratio at the output. To convert this noise figure to noise temperature T because noise temperature is more useful in satellite communication system. The relationship between the noise figure and noise temperature is defined as T is equal to T0 in bracket NF minus 1 where NF is noise figure. T0 is the reference temperature used to calculate the standard noise figure and the value for T0 is 290 Kelvin. This is a table which comparison of noise temperature and noise figure. Now for noise temperature at 0 Kelvin the noise figure is 0 dB. For the different specific temperature here we calculate the noise figure in dB. GYT ratio for R stations. The link equation can be rewritten in terms of C by N at the R station is C by N is equal to PTGTGR divided by KTSBN into lambda by 4 power bracket square. Now this equation we want to simplify. We get as PTGT divided by KBN into lambda by 4 power bracket square into GR by TS where GR by TS is the G by T in decibels that is decibel per Kelvin which specify the quality of a receiving a station or a satellite receiving system. Now design of downlinks. The design of any satellite communication is mainly based on the two objectives. The first one is meeting a minimum C by N ratio for a specified percentage of time. Second one is carrying the maximum revenue earning traffic at minimum cost. Any satellite link can be designed very large antenna to achieve the high C by N ratio under all conditions. Now for the high C and ratio here we use the large antenna therefore obviously the cost for that will be the increases. The art of a good system design is depends on the best compromise of system parameters that meets the specification at the lowest cost. Now all the satellite communication links are affected by the rain attenuation. Now we are taking an example for the different bands which the rain affected at that satellite communication. Now for example at the 6 by 4 gigahertz band the rain attenuation is small. But now we compare that 14 by 11 gigahertz band that is also called as a KU band the rain attenuation is more as compared to 6 by 4 gigahertz. Now at the 30 by 20 gigahertz that is also called a KA band the rain attenuation is more as compared to the KU band and obviously it is also even more as compared to the 6 by 4 gigahertz band. C links here can be designed to achieve the 99.99 percentage because here rain attenuation we can consider that factor is one or two dB and for this achievement the time requirement is 0.01 percentage of the year that is equivalent to the 52 minutes. Now here rain attenuation statistics is not stable. Again how is the C links is designed the same procedure we use for the KL links can be designed. But here we cannot be achieved the 99.99 percentage because here rain attenuation is 10 or 20 dB and again here same time we use that is 0.01 percentage of the year that is 52 minutes. Now if you observe these two links we designed here the C links is used for the real time and K is used for the another purpose. Now for the telephone traffic needs real time channels that are maintained for the duration of a call therefore we use C or KU band. Now for the internet transmission is less affected by short outage therefore we use K band suited for internet access. Link budgets CN ratio calculation is simplified by the use of link budgets. A link budget is a tabular method for evaluating the received power and noise power in a radio link. Link budgets invariably use decibel units for all quantities so that signal and noise power can be calculated by addition and subtraction. The link budget calculated at an individual transponder repeated for the each of the individual links therefore in a two way satellite communication there are total repeated means four times therefore in a two way satellite communication link we use four separate links each require a calculation of a CN ratio. Now the overall CN ratio is calculated with the help of uplink as well as the downlink CN ratio therefore when a band pipe transponder is used the uplink and downlink CN ratio must be combined to give an overall CN. The calculation of C by N in a satellite link is based on the two equations. Now first equation is on the received signal power and second one is receiver noise power. Now the received carrier power in dB watts as now here pause the video and recall the received carrier power okay now the received carrier power is equal to EIRP plus GR minus LP minus LA minus LTA minus LA the unit of this received carrier power is dB watt where EIRP is equal to 10 log to the base 10 PT GT that's the unit of EIRP is dB watt. GR is equal to 10 log to the base 10 4 pi A divided by lambda square the unit of that GR is dB. Path loss LP is equal to 10 log base 10 4 pi R by lambda bracket square LA is equal to attenuation in atmosphere LTA is equal to losses associated with transmitting antenna LRA is equal to losses associated with receiving antenna. A noise power PN referred to the output terminal of the antenna where PN is equal to k into TS into BN that unit of that PN is watts where TS is a receiving terminal with a system noise temperature in Kelvin, BN is a noise bandwidth in hertz. The receiving system noise power is usually written in decibel unit as N is equal to k plus TS plus BN the unit of that noise power is dB watt where k is a Boltzmann constant TS is the system noise temperature in dB Kelvin, BN is the noise bandwidth of the receiver in dB hertz. Now the question is an earth station antenna has a diameter of 30 meter has an overall efficiency of 68 percentage and is used to receive a signal at 4150 megahertz at this frequency the system noise temperature is 79 Kelvin where the antenna points at the satellite at an elevation angle of 20 a degree what is the earth station G by T ratio under these conditions. Now basically in this question I have to calculate the G by T ratio. Now for the calculation of a G by T ratio first of all we calculate the gain and after that calculate this temperature and after the calculation of this gain and temperature we can calculate the G by T ratio. Now first of all we have to write the given quantity what is a given quantity at 4150 megahertz lambda is equal to 0.0723 meter then the formula for the gain is NA into in bracket pi by D by lambda bracket complete square. Now put the values of the in this equation we get this NA means efficiency is 0.68 that is a 68 percent is provided in this question. Therefore we write here 0.68 into pi into this D D means what diameter that is a 30 meter we have to write here 30 divided by lambda. So lambda at this megahertz the lambda is 0.0723 we have to put here and the bracket square and after this solving after the simplification of this one we get 1.16 into 10 raise to 6. Now convert this into the DB why because if we convert into this DB here we calculation of a G by T ratio for this calculation of a G by T ratio if we calculate in the DB simply we subtract that one and we get this ratio converting TS into the DBK because here it is a calculated in DB therefore the TS is also calculated we want into the DB. For the calculation of a TS into DB 10 log 79 that is gives the 19 DBK. Now the we have to calculate here G by T ratio. Now the G by T ratio in the decibel we calculate by simply the subtraction of T from G. Therefore G by T is equal to 60.6 minus 19 we get 41.6 DB per Kelvin that is a G by T ratio. The reference for this topic is thank you.


No green screen was used to make this video. Part two. Because in part one I goofed. I showed you how to do this in part one. Click that i in case you missed it so you can see what tools, free tools will let you do this. And I'll explain in this part two how I goofed. In part one I did this. I set the quality to one. Without noticing you can set it to five. So after setting it to five, which I've done now, we get this effect. Here is the comparison. This video is part one. You can see how I looked in that video compared to how I look now. Like you can see in the holes of this headset now in part two with the level five where before as you can see you had the background showing here. So it's not perfect guys. This is not like having a beautiful green screen behind me. But let me get up so you can see the room. And with level five it's actually pretty good. It still has a few mistakes like there's a little hole there and such. But for those of you who don't have the time to set up a green screen or who just aren't in an environment that doesn't allow you to do that, this is the next best thing. For those of you who commented in yesterday's video talking about how ugly it looked and how it's better not to even have this effect, what do you think now? How does this compare? Is it workable? Is it something you would use? Tell me in the comments below. And speaking of comments, did you know that we are now at almost 2000 partner channels on Daily Motion? Here is our Daily Motion channel, dailymotion.com slash freedom. It only has 25 followers and 464 views, but you can see we are uploading all of our past videos using a very simple single click method to synchronize our Freedom YouTube channel with our Freedom Daily Motion channel that you can use too. Here is my Daily Motion channel for George Venuse. I have more followers than Freedom! Yes! 116 followers compared to Freedom's 25 followers, but I'm sure the Freedom channel on Daily Motion will gain more followers over time. And as you can see, I'm also uploading all of my videos from my personal YouTube channel to my Daily Motion channel. How did I do this? Well, just like everyone else can, head on over to www.dashboard.tm and you'll see this. We help you grow faster on Daily Motion. And if you sign in, you simply sign in with your Daily Motion account and then sign in with your YouTube account or you can create your Daily Motion account at that point. And after you've signed in to both of your accounts, you'll see this.  It will upload one video a day from your YouTube channel to your Daily Motion channel so you can make money on Daily Motion with just a few clicks. Isn't that cool? Isn't that awesome? Almost 2,000 of you have partnered your Daily Motion channel with Freedom using this tool. How many more will do it? Are you waiting for something or are you going to do it now? Tell me in the comments below. Because this is how we help each other grow together as a family. We create tools that help you earn more money by doing very little work because that is the spirit of freedom. We all help each other grow together as a family. And that is the beautiful freedom family growing together. Whom I, I am George, CEO and founder of Freedom. And you've been watching and we will grow together as a family because this is the freedom family. You are part of it. We are all part of it and we're all growing together. So grow with us and partner with Freedom. That play now button right there on the video bar is all you need to click to get started.


Shri Mandire Jai Shri Jagannathanku Magivikiya Bhau Mo Jeevana Paa Chhe Narke Paadi Thau Mo Jeevana Paa Chhe Narke Paadi Jagata Uddhara Haiu Maha Bahu Jaga Haiu Bichitra Hai Manisha Bichitra Hai Duniya Sadhana Manisha Jaha Kari Napare Ati Jim Pedita Asutas Daha Kari Dekhe Chandhi Ebali IP Vakti Toh Ati Jimta Pedita Asutas Kosa Ita Katha Paa Shri Mandire Jai Shri Jagannathanku Magivikiya Bhau Sadhana Manisha Bichitra Hai Duniya Namaskar. India Muka Prekaad Indian Abakash Srebu 10 Minutes Re 101 Some Addition Subtraction Some Solve Karli 5 Minutes Re 107 Multiplication Some Solve Karli How did you come to know that you have been to Chemdhikon? How much did you practice? For the first time I came to Chemdhikon on the 1st of June. But on July and September 3rd, I did a practice on Abakash as an individual exam. The 1st of October I had to practice 10th. Who was it that you came to know about Abakash? How much time did you spend here? You have to read a book. I have to write music, do abacus, invent a meet-up, enter computer classes, do powerlifting and sports. At first, I was very interested in music. I know the world of music. Do you know anything about music? Yes. Did you sing Jagannathangra? Did you sing Jagannathangra? Or did you sing Shri Mandir and Shri Jagannathangra? Did you sing? Yes. Music If you liked our video, please like, share and subscribe to our channel.


SCP-360 is an anomalous ritual that ostensibly allows a single living human subject to ascend to a higher plane of existence. When performed at an altitude of 10,500 meters or higher, affected subjects emit a blinding light and a burst of high energy radiation for several seconds, then disappear. Most witnesses of SCP-360 activation events have reportedly experienced auditory and or visual hallucinations. To date, no individual who has successfully performed SCP-360 has ever been recovered.


Putin's Backbone Belarus provides large military assistance to Russia in the war against Ukraine. The Belarusian military-industrial complex is assisting in meeting the needs of the Russian army on the front lines. How and why Lukashenko's regime became one of the key allies in the war for the Kremlin is explained in the material by RBC Ukraine. Since the beginning of the large-scale aggression, Belarus has become a key ally of Russia in conducting military operations against Ukraine within the first seven months of the full-scale war. According to the Belarusian Hadun project, Alexander Lukashenko transferred over 65,000 tons of ammunition, hundreds of T-72A tanks, BMPs, and Ural trucks to Russia, only when Belarusian depots were depleted due to Putin's appetites. Other countries, primarily Iran and North Korea, have become the main suppliers of ready-made weapons for Russia. Russia utilizes the full range of services from the Belarusian military-industrial complex, but the key assistance lies in the restoration of military equipment damaged as a result of combat actions. Back in 2022, at the beginning of full-scale aggression, 60% of Belarusian military goods were destined for the Russian market. Today, this figure has increased even more. Currently, 120 Belarusian plants and design bureaus are involved in the production of 1,600 types of military products and services for the Russian Federation. In contrast, 940 Russian enterprises supply about 4,000 items to 67 Belarusian military enterprises. There is no other sphere where cooperation between these countries is as close as in the military sector. Moreover, analysis of open sources suggests that the production of the Belarusian military-industrial complex is increasing. The Belarusian defense industry has also switched to military rails today. Hundreds of thousands of workers are employed in the plants, who simply cannot be unaware of where the products they manufacture are going. However, military enterprises are perhaps the only sphere where one can earn a more or less decent salary in Belarus. Salwan Mamika, an Iraqi man who carried out several Quran burnings in Sweden, was reportedly found dead in Norway. He had staged several burnings and desecrations of the sacred book of Islam in Sweden over the past few years. Last, Week Mamika told a newspaper that he had been seeking asylum in neighboring Norway. Mamika, a Christian who turned atheist, was amongst the critics of Islam. Mamika moved out of Iraq in 2018, seeking asylum. Though a Christian who turned atheist, Mamika called himself an extreme ex-Muslim. Ex-Muslims are individuals who identified as Muslims once, left the religion due to personal reasons, differing beliefs, or disillusionment with its teachings, practices, or community norms, he added. Mamika had recently put an update about him shifting to Norway from Sweden. He also revealed that he has applied from asylum and protection from the Norwegian authorities. Later he confirmed that he will continue his fight against Islamic ideology no matter whatever it costs. My love and respect for the Swedish people will remain the same, but the persecution I was subjected to by the Swedish authorities does not represent the Swedes. I will continue my struggle against Islamic ideology since I started the struggle against Islam, I have paid and continue to pay the price, and I am ready for that, whatever the cost, he added. Political social media handles claim that Selvons lifeless body was found in Norway. He obtained a permanent residence permit in Sweden in 2021, which was withdrawn and he was granted temporary residency until April 2024. Putin ally makes nuclear threats to UK and France. Kremlin propagandist Vladimir Solovyov has suggested launching nuclear strikes on two members of the NATO military alliance. According to Newsweek, Solovyov, an ally of Russian President Vladimir Putin and a state TV host, issued the warnings during two separate broadcasts of his show Evening with Vladimir Solovyov and Sunday Evening with Vladimir Solovyov. The Daily Beast's Julia Davis shared excerpts of the broadcasts on X. The notion that Russia could strike NATO members in response to the aid and weapons they've provided Ukraine in the ongoing war has been floated by Solovyov and many other Russian officials regularly since the conflict began in February 2022. Meanwhile in Russia, Vladimir Solovyov assured fellow propagandists that none of them will be tried after the war is over because by then, the British will have been eradicated through nuclear strikes, wrote Davis of the first state TV clip. Meanwhile in Russia, Easter would be incomplete without Vladimir Solovyov's nuclear threats to France. She wrote in another post sharing the broadcast. In the first state TV clip, Vladimir Kornilov, a political scientist, began by saying that the British newspaper The Daily Telegraph openly wrote that the Russian people are responsible. After the war ends, absolutely everyone has to be tried, including Patriarch Kirill. Solovyov interjected, pardon, who is going to judge us? The British, Kornilov responded. Solovyov continued by issuing his first nuclear warning. The country, by that point in time, will be buried under a radioactive wave, he said. Kornilov said he hopes it won't get to a nuclear war. It won't. The radioactive tsunami will just wipe it away. Solovyov replied, in the second state TV broadcast, Solovyov criticised Paris Mayor And Hidalgo, for saying over the weekend that Russian and Belarusian athletes were not welcome at this year's Olympics, which is being held in the French capital. I want to remind this unpleasant, ugly Nazi beast that today is the 210th anniversary of the Russian army entering Paris. Both back then and now, we couldn't care less whether or not you are glad to see us. Whenever we need to destroy all of you, we will do it, said Solovyov. He added, So Paris, you don't want to welcome our athletes? Welcome our hypersonics. Fast, reliable and very unpleasant.


Hi, I'm Steve from Ellis Bigam and this is Elset and we're here to talk to you about the Tomic Cloud 11 Widebody. So it's our women's peace ski of the year. We got to test this up in Scotland in pretty good conditions but not necessarily ideal. But we'll come back to that in a little bit. First of all, here's Tim from Atomic to give you the tech info. The Cloud 11 Widebody ski from Atomic for this winter features our 75 on the foot width. So this is a little bit wider than the normal cloud skis. The reason they've done this is so that you can ski this ski in more variable snow conditions. It works super well if you're going through the crud or if you're off the side of the piece with extra flotation in the tip. As you can see, the tip profile and width extend quite a lot. The ski features a titanium stabiliser. So that means it's got titanium plate underfoot underneath the binding. So it's got power when you need it underfoot. But it's just got a wood core that runs the length of the ski, which is what we call our flight wood core. Flight wood core is our lightest popular wood core. What we do is we sort all the popper wood into low density, which is the lightest wood core. So it's got at least a mile of water content in it. And that's what we put in the cloud skis. So you get a 12% weight reduction in the core of the ski. So that means a lighter swing weight and a lighter feeling on your foot. The ski features our server tech light technology. So this is an elastomer, which is inset into the front of the ski in front of the toe binding. This absorbs a lot of the vibration that comes into the ski, which gives you better running stability. The ski comes with our Mercury 10 binding. This is a super lightweight binding. It has rollers in the heel now. So it's much easier stepping and step out than the previous model. So this is the cloud wide body ski. It features a full wood core, like I said, titanium stabilizer. And it's our perfectly suited to our intermediate to adventurous VL ski. So we got to test this up in Scotland at the end of the season last year. We struck really lucky. We've got some good snow, the pieces were feeling great, but weren't perfect. So probably ideal place to test something like a cloud 11 wide body. So it is a piece ski, but as the name suggests, it's a little bit wider than maybe your average piece ski. And that gives it a bit more stability. But the construction means you don't lose any of the energy. How did you feel when you were skiing it then also? So I was on in the shade. It was really icy, but in the sun it was getting a little bit softer. So you kind of transitioning onto the other quite a lot. So I found really nice, icy piece could definitely get it on it. You could definitely push it could definitely grip really well. But when you were moving to the slightly slushier, slightly softer stuff, it was still holding its own. And you could still push through better than I have done with more than our skis where you start to feel a little bit sluggish with them. So it was definitely a piece ski that could do that little bit more, which is obviously what it's designed to do. And speed wise, were you skiing fast, slow? I'm normally quite fast. You could sit back on it again. It's not a ski you have to push all the time, which I think is the beauty of some skis is that you can really go for it when you want to, but you don't have to. And this definitely fell into that category of one that you could really blast. But then once you got a little bit tired, you could sit back and relax a little bit more as well. And you'd happily cruise the piece on this happily cruisably. So you would take this ski faster. I could definitely take that ski faster. Well, we want a bit more information on it. Have a look at our web pages. If not, give us a call, come into one of the shops, we'll talk you through it. Otherwise, if you've got any questions or any comments, if you've skied it, pop them below and we'll come back to you. Otherwise, thanks for watching.