Throughout this offseason, we've continued to hear so much about different players from our favorite team, the Baltimore Ravens through practices and training camp. We've heard reports and updates and this and that on how they've been doing. But Saturday was different this past Saturday. We actually got to see them in a live game in the first preseason game of the year. And it was fun. It was fun. But there were some guys that had great games and there was some that had not so great games. But is it over? Does that ended all? Does that finalize whatever their fate is going to be with the roster? Well, we're going to talk about two of those guys first, one being James Proshay and the other being Keaton Mitchell. With James Proshay, does he have still have a legitimate chance to make this Ravens roster? And with Keaton Mitchell, does he have a shot at pushing for some playing time when it comes to Ravens running back situation? We're going to answer those questions in plenty more on this special episode of questions from subscribers. But first, a word from our sponsor. One of the most painful things to see on the football field every Sunday is a blindside hit. And that's because with blindside hits, you don't see them coming.  And the same can unfortunately be said about a car accident. But when football players get whacked, they know exactly who to call. When us regular people get into accidents, sometimes we just don't. And then just a simple thought of the process of hiring a lawyer. It seems super stressful and it can bring a lot of anxiety. But with Morgan and Morgan, they make it easy. What Morgan and Morgan have done is modernize the injury law process. So you can actually submit a claim and have it looked at by a lawyer without even leaving the couch. If you need to sign documents, send any pictures, share any medical records or doctor bills, you can do all of that from your phone. And for those of you like myself who don't feel like being on the phone all day, you can even text message the case manager or the attorney without ever having them to go into an office. If you ever injured in an accident, hiring an attorney is one of the first things that you should do. And with Morgan and Morgan submitting the claim, it's super easy. More than 3 million people have trusted Morgan and Morgan when they've been in an accident. So if you're ever in an accident, hopefully you won't be. But if it does happen, you can check out Morgan and Morgan. You can submit a claim in eight clicks or less. And you can have America's largest injury law firm fighting for you. You can get started at ForThePeople.com or Dial Pound Law. And that's pound 529 from your cell phone. So Team Keep It Clean, welcome to another episode of Questions From Sells, where you can ask any question you want to and we answer it in a video just like this. If you ever want to be part of it, you can send me an email to teamkeepitclean.com or for the Team Keep It Clean patrons. Shout out to y'all, by the way. Y'all can send it directly on Patreon. If you would like to become a Team Keep It Clean patron, you can go to patreon.com slash engraving vids. I love y'all, Team Keep It Clean. I appreciate y'all. Make sure you subscribe to the channel. Turn your notifications on so you never miss anything, because it's a lot. It's already a lot and it's going to be that much more, especially once the regular season hits. But anyway, the regular season is not here yet, but a prelude to the regular season is the preseason. And we got our first game this past Saturday. And somebody that stood out in that game was James Proshay. And a lot of people felt like with the way that James Proshay, the game went, it is all but over for him when it comes to him being a Baltimore raven. Does he still have a legitimate shot at making the roster? Initially, during the game, I was thinking, yeah, that could be a wrap, too. He had the two passes come his way and they were both broken up. And he had his big player tonight, which was the fumble, the fumble on the punt return.  It's been a rough year for James Proshay on the football field because it's like it just seems like everything that could go wrong. It has gone wrong for James Proshay. And it's been unfortunate, it's been really unfortunate. So while I was watching the game, I was thinking, man, that might be a wrap. But then I thought, man, I actually do think he still actually has a chance at making the roster, not not even just a practice squad. I definitely think he got a shot at making a practice squad, but I think he actually still has a chance at making Ravens roster. It would take a lot. It will take a whole lot because he did have a catch after the after the two passes went his way and they were both broken up. And after the fumble, he did have one catch. But in order for him to make the roster, he will have to have a phenomenal outstanding out of this world last two preseason games. He will really have to. But it also helps that the Ravens, they really, really like him as a person.  So a lot of that is not really in his control, but he can only control what he can control. So when the opportunity comes, he will have to make the most out of it and more. It's going to be tough. It's going to be tough, especially with the the main person who he's battling with, in my opinion, for that last wide receiver spot, Tyler Wallace, because Tyler Wallace, he had a good game, even called a touchdown and all really nice touchdown to. So right now I would have to give Tyler Wallace the leg up on on his competition being James Pro Shade. And really everybody else right now as well, who's battling for that final roster spot at wide receiver. But it ain't over till it's over. And somebody whose career is just starting and it's definitely not over. It's Keaton Mitchell. Keaton Mitchell, I had heard so many different things from Ravens fans when the Ravens first brought on Keaton Mitchell. And so many of them said the same exact thing. There is no way that he he has to make the roster. Ravens can't let him go. He is going to make the roster. He got the breakaway speed. He can be a return man. He can do it all. And I was like, OK, I like what I hear. But then when we saw the preseason game, I was like, Oh, I love it. I love it. And I want him to make the roster. But how will he? Kenny, Kenny actually pushed for playing time on the Baltimore Ravens roster. I think he can. But it will take a lot. One, the one of the biggest ways I think he could push for playing time is in a return game. Right now, Devon DuVernay is their returner and he is an all pro returner. He is. So it will be really hard for Keaton Mitchell to carve out a role there. But I think he could, especially given the opportunity because Devon DuVernay, a straight line speed, that's him all day. But he's not wiggly like that. And Keaton Mitchell, he is. And I could definitely foresee him breaking some big returns on special teams. Another way that he could push for playing time if he could beat out Melvin Gordon, because J.K. obviously lock. Gus Edwards, lock. Justice Hill, lock. But Melvin Gordon and Keaton Mitchell, it'll come down to those last two. And with the Ravens, with their offense, because they, I would expect them to be passing the ball more so they may wanna keep three running backs instead of four. But Keaton Mitchell, so far, it's still early, still got two preseason games left, but so far he's given them every reason to keep him around. Cause for somebody like him, again, it's just been one preseason game, but it's been some nice practices too. But somebody like him, it's like, you almost feel like you cannot let them go. So we'll see what happens, but as far as those two, James Frosche and Keaton Mitchell, I feel like their trajectories are bolted in with the Baltimore Ravens are headed in two different directions right now, but let's see if they can both get on the same track. Now those two first questions came from me, but now let's get some questions from you all. First question came from my guy, Ejion. He said, greetings and gravy, team keeping clean all the way from Southern Cal. My question for you is, between Keaton Mitchell, Melvin Gordon and surprise, Devin Duvenay, who's the odd man out? Who's going to the practice squad? Oh, good question to start us off. So out of those three, Devin Duvenay, I think he stays. Odd man out, I would say Melvin Gordon. If I had to choose one for practice squad, it would be Melvin Gordon or Keaton Mitchell, maybe both. I think Ravens would possibly run the risk of I don't want them to, but the way that they've operated and especially they got some tough decisions to make man. JK ain't going nowhere, Gus ain't going nowhere, Justice Hill ain't going nowhere. So if they end up keeping four, then Keaton Mitchell got a shot. But if they only end up keeping three, then I think they could put him on a practice squad. He said, Keaton Mitchell, Rookie Phenom, won't last long there if he continues to showcase his talent, set a very affordable rate. Yes, man. Yeah, you summed it up perfectly. Melvin Gordon, a veteran running back with decent production, the known commodity with receiving capability in his new past friendly offense. Good point again. Devin Duvenay with real wide receivers added in the offseason, very little buzz so far. The Justice Hill can return punts and Keaton Mitchell was just seen returning kicks. So to me, he's a surprise candidate that could possibly not make the team this time around. Ooh, that, no. You know what I thought about that before? Devin Duvenay, there's no way that they would just outright cut him though. I think the only way that Devin Duvenay is not on the Baltimore Ravens is if he gets traded. But as far as cut, no, I don't see it at all. He said also I highly doubt Baltimore carries five running backs on the active roster. Oh no, not at all. Next question came from my boy Kevin. He said, wrong about Ben Cleveland. Watch this YouTube video breakdown on how Ben Cleveland played against the Eagles after that first bad play against Jaylen Carter. On that Carter play, I think the center and him should have double teamed Carter. But that's my opinion. But Cleveland had a dominant game the rest of the way. Watch the video please. And yeah, I did hear about Ben Cleveland and his dominant game. Me, I wasn't really focusing on the offensive line throughout the game. I wasn't focusing like individually on the different offensive linemen and whatnot. But I did hear really good things about Ben Cleveland that has been the consistent, excuse me, the consensus around Ravens that he did have a pretty good game. Besides that first play, where would have that Jaylen Carter play where he got blown up. But other than that, he was spot on. Next question came from my guy Paul. He said, hey, engraving hope all is well for you. And I'm looking forward to your coverage of the upcoming season of Ravens football. Hey, I appreciate that. We looking forward to it too. I said, I really enjoyed the game against the Eagles and while it's crazy that we won 24 preseason games in a row, we all know the point of these games is to evaluate the depth at various position and give guys the opportunity to compete. One position that I'm sure many Ravens fans are concerned about this cornerback as there are very few established players after Mullen Humphrey. And there have already been several injuries to guys like Roccassine, Damarian Williams, Trayvon, Mullen, et cetera. This opens up opportunities though for other guys to step up and show what they can do in the preseason. One player that really stood out to me was Keevon Seymour who had a lot of playing time and had really nice coverage on Eagles where I received Tyree Cleveland. Oh, that's his name, Tyree. Cause yeah, I kept seeing Cleveland. That's number 85, right? Cause he kept catching catch after catch after catch after catch. Anyway, he had good coverage on him early on in the first quarter. Seymour had been around the Ravens for a while and while he didn't look very good in 2021 when literally everyone ahead of him got hurt, he has impressed me and came so far and he can play special team. So given the uncertainty at the cornerback position, this year could be his big opportunity. But that said, do you expect him to make the roster? And if so, what could we expect from him this season? Anyway, nice to finally be back. Good luck this season. Appreciate that. So Keevon Seymour, I think that he'll make the roster simply because he's made it already. Several times, there were several transactions with Keevon Seymour last year, I believe. And Ravens brought him back again. So I could definitely see them keeping him around, especially because he has experience out there, like really out there, not just, not a little bit, but he got a lot of experience last year with the Ravens.  So I think he'll make the team. Next question came from my guy, BB. He said, what's up Team Keeper Clean? I gotta say we being Ravens fans gotta look more at appreciating Devon Duvenay. This two-time pro bowler has glue on his hands every game. If this current system was implemented a few years ago, he would be considered a possible number two guy on this wide receiver roster. He has been the most solid wide receiver on this roster since his rookie year being in a system that doesn't favor wide receivers as threatening targets. Duv is so undervalued, we need to give him his flowers. And he said, hashtag Team Keeper Clean and Super Bowl bound. Hey, we gonna see, we gonna see. That Super Bowl bound, I can definitely see that though. But with Devon Duvenay, I think that with him, it's just about opportunity. It's about using him the right way. I feel like he wasn't used the right way over the past couple of years. And hopefully this year now, a monkey will use him to his strengths. And also from BB, he said, with the struggling of the offensive line, do you think Ravens will start Daniel Philele? He did very well protecting last season with this injury-stricken old line. He's six nine, three hundred eighty nine and he is a luxury for the team. Your thoughts? Ooh, starting Daniel Philele. Oh, they start him at guard?  They could experiment. Well, I would like to see them put him in at guard with the starters on the offensive line, like in pre-season or something. But if they don't do it, they're not gonna start him. Next question came from Luffy. He said, what's up in Graven? It's been a while, a while ago. I basically said, we didn't need a job, but he has came a long way from his injury. I never wanted to down a man trying to fulfill his dream. So it was self-centered by me to say what I said. So I take it back and I hope that he has a great career wherever he is. And I apologize for any disrespect. Anybody associated with the Ravens, if they fell some type of way about my comments, genuinely, peace. Hey, I appreciate this. That takes a real person right there to correct something that they feel was wrong about what they said and if it offended anybody too. I appreciate that a lot. And with David Ajabo, yeah, man, we gonna see, with David Ajabo. So far, so good as far as training camp and stuff. Preseason, he was a little quiet, but who knows what the coaches told him.  Don't show him what we've been working on. Just keep that on a low. But yeah, man, we do hold David Ajabo does really well. Him, the doffit, just all of them really, man. So I appreciate you doing this. Speaking of Devon Duvenay, this next question came from my guy, Michael. He said, what's good? My name is Michael, huge fan of the channel. I appreciate you watching it, Michael. So he said, so I don't know if I'm overreacting, but I've seen a post about Zay Flows becoming the Jet Sleep King now. What does this mean for Devon Duvenay? Now, I think Duvenay will be straight, especially because he got the return game. I do think Zay Flows will be more involved with the offense than Devon Duvenay will. Simply because Zay Flows is more of the future right now than Devon Duvenay is. Duvenay is on any on the last year of his deal, I wanna say, I think he is. But either way, Zay Flows is the first round pick. Devon Duvenay was what, a third round pick a couple of years ago, and with Zay Flows, like when somebody's the first round pick, especially a wide receiver, that's what all eyes are gonna be on.  But it's important that, regardless of what they were drafted, regardless of what year they got picked up, regardless of what the future holds, it's important that the Ravens use both of them the right way now. Long season, next question came from my guy Jordan. He said, first off, God bless you on your page. It has had so much positive energy. So thanks for that. No, Jordan, thank you for that. He said, if the wide receiver room does well in the preseason, not just the top three or four, but the ones behind them, what are your thoughts on the Ravens putting Bateman on I.R. to start the season, which makes room for one of the bubble receivers on the roster and saves Bateman for when the season starts ramping up, and he could be fully healthy. No, I wouldn't do that. If Bateman is ready now, like when the season starts, play him now. Play him now, because the more the merrier, I get what you're saying is, you're playing more the long game, but I'm playing the whole game, man, the whole season game. It is a long season, like it was the title of your question, and I get where you're coming from, but if Bateman's ready, I say put him out there now, man. Let's go Ravens and O's. Next question came from my boy Kevin B. He said, hello in Raven. Hope all is well. I'm gonna make this short. We cannot let Clowney leave without a contract. We've been begging for him for some years, and hopefully JK gets everything resolved because he will be a big part of the offense. And look at that, everything was resolved by the time we got to this question. He said, he has to get out there and ball out. JK, 23 games in three seasons that doesn't look good on your resume, my friend. Peace and blessings. Well, JK ended up coming to peace with the Ravens and blessing us with his presence, and now he's back. Next question came from Reese. He said, first off, thanks for everything you do, and how are you all doing? Hey, we good. We pretty good, man. I appreciate that. Hope you're doing good too. He said, my question is, and I may have missed something, but Bateman was working out with OBJ and Hopkins before training camp. Did he get re-injured or put on PUP lists? I think maybe he got in trouble, and that's his discipline. Maybe I'm wrong. That's what I'm seeing. I don't think so. Because that wouldn't be wise of the Ravens to put him on PUP lists to discipline him. So no, I don't think that's what it is. I think maybe he got the injury that he had. I think they said he wasn't responding like his body wasn't responding. Cause look, when you're working out, excuse me, when you're doing your private workouts, you don't have the team medical staff around you. You just would have your private workouts with your boys. But with him being back with the Ravens medical staff, they can take that much closer, they can take that much more of a closer look at him and seeing how his body is, seeing how his body responds to stuff, seeing how his body's feeling and whatnot, how the treatments are going and whatnot. They can take a much more extensive look at him than he would got if he was on the outside. Next question came from my God, David, who's a team keeping clean. Patron, appreciate you. He said, ain't great, I have a question for you regarding the wide receiver room. So my locks this year, Bateman, O'Dell, Flowers and Aguilore. In a situation like this, do you see the Ravens keeping five or six receivers? And is there any word that Pro Shae beats out Doof or a spot? No, I don't think Pro Shae beats out Doof at all. I think Doof is pretty much a lock. I think he's the only lock that could be a possible, not lock, but I think Doof may pretty much is there. But Pro Shae is not a lock by any means at all. I say, I don't think this is likely, but I'm curious as to see how Pro Shae has maintained a spot on the roster up to this point, given his lack of production over the last few years. Oh, well, that's a good question. I mean, that ties into the first question that we had about James Pro Shae. That's what I said, the Ravens really like him. I think they would just really like, there was the potential that they may have seen with James Pro Shae, but it just, things just haven't worked out yet. But hopefully, whether it's with the Ravens or whether it ends up being somewhere else, hopefully it does end up working out for James Pro Shae. But as far as Devin Doofen there, Devin Doofen is a lot more safe than Pro Shae is. Next question came from my grad Martin, who's been a patron for two years. He said, so I know I got on the Ravens media for the hype videos, candidates, but let me reverse that a little and say, I do like their podcast with the players and them asking random questions to them. It's always fun getting to know this guy and it makes you root for them even more. I love our players and how they are really like a family. Did you see Nick Bosa holding out over there and saying, friend, he's been one of my favorite players and never thought of the possibility of trading for him. Hey, EDC should at least give a call over there to see if they can make something happen. I know I'm definitely not ungrateful for the masterful offseason EDC has done for the team. This will be my all in year. Get everyone, let's make that Super Bowl happen. Love you guys, team, give it clean. You guys are awesome. That would be nice. That'd be great. But yeah, you got like, San Fran ain't paying. Yeah, I just Ravens, no, they not going to. But anyway, continuing, he said, I'm off for players getting their money. I think JK will have earned his money, but think his situation is trickier than the other holdout running backs for multiple reasons. Josh Jacobs and Saquon Barkley are coming off career years. JT had Jonathan Taylor, had an MVP like season two years ago and all three of these running backs are essentially to their team's success. Not saying JK isn't, but one thing you have been saying for the longest is that the Ravens have a 1A1B situation, whereas the other running backs holding out don't have that problem if JK sits out, which I don't think he will. Then it's Gus time to shine. I don't want this to come off as JK doesn't deserve to get paid, I'm just saying he has a lot working against him. Oh, no, no, no, no, we got you. We all understand it. And that's what we've been saying too, is he doesn't have any leverage right now. Like I always talk about no problem with players trying to get their money, go get all the bread that you could possibly get from the league, cause they got plenty of it to give around.  But with JK doping situation, it was really, really, really tricky for him. So he's back now, so he's off to a good start. Let's hope he has a great season and he can cash in afterwards. And the last question on this special episode of questions from subs came from my patron, Dominic. He said, what's up engraving? Hope everything is good and well, hey, I appreciate you Dominic and appreciate you being a patron. He said, I'm saying Pat Ricard just came off the PUP listen, noticed that hardball has said that Ricard was taking snaps at old line as well. To me, this tells me that his position as a fullback will either be limited or taken away eventually. I think the Ravens like Ricard as a player, that's why they are trying to move him around. But as an old lineman, I can't see him doing that. What, would he be a guard or something? What are your thoughts on this? I mean, yeah, I could see that too. Cause like I told y'all, somebody told me a long time ago, like when they start moving your positions and stuff, they start trying your different places, then that means you just really don't have a place. But we'll see what Pat Ricard, cause like you mentioned, they really like him. They love Pat Ricard. So I'm sure they'll find something for him at least this year. Next year, I think that's when it becomes a real possibility that he wouldn't be with the Ravens no more, especially since and Munkin came out and said it from jump, like he don't be using full backs like that. So that's, that's, that was significant. So we'll watch to see how they use them. I mean, they try them to, they had them today. Well, it was today the 14th or 15th, today the 15th, they had them today the 15th or a practice, joint practice with the commanders. They hadn't working that tight in a little bit too. Just moving around in different places. So he've been doing a little bit of everything. Maybe he'll be like the skill position version of Patrick McCurry, where he play all these different positions of what? Cause I mean, last year we saw him at full back, running back tight in and wide receiver too. So maybe this year they're just running back, but with more intent.


On the other side of the creaking door, this is your house to welcome you into the innermost tank. Well, you may as well relax. Wipe the perspiration off your brow and listen. As the rads who dumped their victim into his own icebox remark, we'll chill you. Tonight's inner sanctum mystery death rides a riptide was written by Lou Vitus and stars Arlene Blackburn and the role of Carol with Lawson's Erby as John. Tonight we're featuring a jovial little item about a girl named Carol Vane. She married a man whose first wife had been drowned. After a little while she discovered that she herself was in hot water over her head. It's the night that John Vane has brought his new bride home. Home to the Cliff House above the ocean. Well, Carol? Cliff House is very beautiful, John. Yes, it is. A bit lonely perhaps. I could never be lonely with you. Oh, darling. Let's go in. All right, dear. Mmm, a bit musty. We'll get the place aired, though, first thing in the morning.  Of course they do. Oh, the place hasn't been opened since... Since? Since Margaret died, John? Yes. John, you mustn't be self-conscious about it. Well, it wasn't very tactful, my mentioning her. John, I love you. Tact doesn't belong. I'm sorry. Darling, the hours late and your husband... John! It's all right. Someone with a very bad sense of humor throwing stones. It wasn't supposed to be funny. John, you've got the stone. Yes. There's something wrapped around it. Paper. Let me see it. No, no, I wouldn't... Please, John. Well, I don't imagine I could keep it from you indefinitely. Keep what from me? Here's the stone. For the paper. It's a note addressed to me, John. It would be. It says... To the new Mrs. Vane. If you listen carefully, you can hear the waves beating against the cliff. The waves in which the first Mrs. Vane died. Did she fall? Or was she pushed? Listen. It isn't signed, John. No. You can hear the waves. Oh, I'm sorry. That's silly. But the note was so nasty. You're not to pay any attention to things like that note. You're not to pay any attention. I won't, John. I won't. Can we go to sleep now? Of course. It's true that Margaret was drunk, but it was an accident, wasn't it? Wasn't it, John? John fell asleep after a while. And the waves kept pounding against the rocks. I remembered having heard how badly she'd been bruised by the rocks. I remembered seeing her and John in the village. And how beautiful she'd been. And how I'd envied her. And now, now after the waves and the rocks, she didn't care anymore. And before I could fall asleep, I envied her even now. That was a very fine dinner, darling. John... Yes? Exactly how did... did Margaret die? Carol, there's no point. I want to know. She was drowned. She was a good swimmer. Even good swimmers get drowned. What happened, John? I think it'd be wiser if you'd forget about Mark. There's a beach below Cliff House. It's there at low tide only. A beach and a ledge. Nice place to swim from the ledge at low tide. But when the tide comes in, beach and ledger are covered. The tide's strong, then, and there are rocks around. Margaret got caught by high tide. That's all. You mean she stayed down below on the ledge longer than she should have? That's right. And... and that's all, John? What else should there be? I don't know. It's low tide now, isn't it? Yes? I'd like to look at that ledge. Why? Oh, because I'm silly. Because I'm a fool, but... John, I want to look at that ledge. There are steps leading down, aren't there? Yes, I had them built some years ago. Carol, we should go back to the house.  But we're at the ledge now. The tide's down. The ledge is... it's broad and safe, isn't it? It is. That high tide, I suppose it would be covered. Yes. Cracks in the ledge. See, we caught in the crack. From the times the ledge is covered by the water, I guess. And... What is it? It was wedged in one of the cracks. This? Oh. Yes, John. It's part of a hill. A woman's high hill. So it is. Oh, the tide's rising. Let's go up. All right. Part of a woman's high hill. Caught in one of the cracks. John... Yes? Could it be from Marvachu? I couldn't tell. Throw it away, or better yet, give it to me. Yes, of course. Here. Thank you. John... A woman was going swimming. She... She wouldn't have been wearing high heels. She didn't sneak on the way back from the ledge. And once back at the house, John found it stuffy or something, I suppose. He muddied at me and went out into the night. The night that had become so suddenly, have so intense a darkness. Who is he? You... You started with me, my dear.  Your niece? Yes. You are not, of course. My niece is dead. Who are you? Jeremy Mangan, my dear. Mangan? Mangan. Your predecessor, my dear, was named Margaret. Her father? Uncle. May I come in? For an elderly gentleman like myself, the night is cold. Cold for me, too. Come in. Thank you. Where is dear John? He's out. Oh, it's too bad. I did want to see him. What about? Money. I hope I don't shock you by my frankness. He owes you money? No, but I think he'll give me some. Why?  Why do you think John will give you money? My dear, I intend to sell John a letter. Sell him a letter? A letter written to me by my dear beloved niece. Margaret, but why should John want to buy it? Let me read you a bit of it, shall I? All right. She says in the letter, among other things, I... Uncle, come for me. At once. I must get away from Clefhouse. Because if I don't, I'm going to die. I'm afraid. Please don't think I'm making this up, but...  I'm going to be killed. Here, I rather think that's enough, don't you? Why didn't you come in answer to a letter? She sent the letter out two months ago. Two months ago I happened to be detained elsewhere. To be precise, I was momentarily in jail. I didn't get the letter which had been sent to my lodgings until this week. Tadget? John has nothing to be afraid of, whatever the letter says. My dear, I never suggested the ad, but I still feel he'll buy my letter from me. For old times' sake. How much? A couple of thousands will be enough. I'm not a crass being, ma'am.  A habit of his? I'll get you the two thousand. Give me the letter. Ah, I'd be my dear. Not that I don't trust you. Well then? I'll be at the hotel. I'll be at the hotel in the village. Have we say tomorrow afternoon? Tomorrow afternoon. Good night, my dear. Oh, it, ah, it occurs to me. Am I likely to run into John? I don't aware he is. Ah, well, the night is dark. Ah, dear sir, ma'am. I did mention cash, didn't I? That, ah... It's my soul. You start with me. Send me an air of the edge of the cliff. I'll be careful. My mind, I... It's devil. I won't go over the cliff. No. No. No. Jane, after his first wife, had been drowned. Officially it was an accident, but a lot of people feel that John believed in the old saying, cast your dead upon the water. At any rate, late one night, the drowned woman's uncle, a man named Mangan, visited Carol. He had a letter from the First Mrs. Vane, in which she wrote of her impending murder. Carol agreed to meet Mr. Mangan the next afternoon with some money. But long before then, somebody heaved Mr. Mangan over the edge of a cliff. Maybe for exercise? At any rate, it's the next morning, at breakfast. Carol. Yes, John? You're upset about something. No, I'm not. Not really. John, when you went out last night, where did you go? For a walk. Why? Nothing. What's in the papers this morning? All same old stuff. International crises. John? Look at something else. Mangan, Margaret's uncle, Carol. Yes? What about him? It seems he fell off a cliff last night. Oh, John! He was wandering about in the dark. Was it near here? Oddly enough, yes. Then they found his body this morning. John, did you... Did you see him last night? No, I haven't seen him for months. Why do you suppose he came here? I have no idea. But where is he now? Probably at the morgue, what they call a morgue. Fennie's drugstore in the village. I think we should go down there. Why? You knew him. He was your wife's uncle. I never liked him. Still, it would look better. Carol, what are you thinking? Oh, his death. His accidental death... sits. He was lying on a table in the back of Fennie's drugstore. The fall hadn't marked him much. Nobody had gone through his things yet. So while Fennie and John and I stayed at the dead body, I... I gasped. Carol. Where's your faint? Huh? Mr. Fennie, could you get me something? Of course, Mom. Be back in a minute. Oh, John. Oh, I just remembered. Tell Mr. Fennie not to get him on you. I... I can't take it. But... All right. Mr. Fennie, could you be sure to get something? I love my husband. So I went over to where the dead body lay and put my hands in his pocket. And I found the letter. Carol, he's fixed something. Here. Oh, thanks, John. Your wife's shaking. Maybe this stuff will help her. Feel any better? A little. If we can leave now. Of course. Carol. Yes? What did you take from Mangan's dead body? I told him nothing. I lied. Later that evening he went upstairs. There was a fire burning in the fireplace and I threw the letter in. Carol, I... What's that? What? In the fireplace, that paper. Nothing. Just wait. I'll think I'll take a look at it before I die. John, you don't. Carol, let go of me. No, John, I love you. I don't care. No, I want to get that paper. I don't want to hurt you. I must get it. It's all burned, John. All but a tiny piece.  The end of a letter. Signed Margaret. A letter from my wife. My dead wife. I... I didn't want you to see it. Why? Because... Because then she wrote silly things. What kind of silly things? I don't remember, John. You got the letter from Mangan after he was dead. How did you know he had the letter, Carol? I... I didn't know. You got rid of Fanny and me so you could get at Mangan. Carol, how did you know Mangan had a letter from my... from Margaret? He told me. And he was here before he... he fell. Yes, John. Did he tell you what was in the letter? No. Did you read the letter before you burned it? No. Then why did you burn it? Because... because I was jealous. I still am. I have everything to do with Margaret.  You're telling me the truth, Carol. Why should I lie about it, John? Why? It wasn't very good after that. John took the staying away from home. I saw very little of him. We avoided each other. Each of us for reasons we didn't dare speak of. It wasn't very good there in the cliff house above the ocean. The ocean where Margaret Vane had died. And when Mangan had fallen to his death, I might have gone away. That would have been the safest thing of all for me, but... but I loved John. I hoped. And in hoping, I was betrayed. Yes, my beloved John. Oh, I'm glad you're home, even though... Even though the hour is too late to be respectable? Oh, I don't care. There's a lot you don't care about, isn't there? I don't know what you're... You put on quite an act, don't you? About not knowing. But you do know, don't you? I do know what? That my wife, excuse me, my first wife, was... murdered. John! Yes, it's out now. It's been said now. Margaret was murdered. They don't have to whisper about it in the village anymore. I'll shout it out. I won't listen to you. You think that'll make it right, huh? It won't, my love. Because you see the fishing boat evangeling is back. Fishing boat? It's been away for three months. The men on board didn't know about Margaret's death. They know now, and a couple of them remember something. What do they remember? Seeing Margaret on the ledge just before the tide turned. The trouble is they're prepared to swear that Margaret wasn't alone. John, that doesn't have to mean anything. Look at me, John. It doesn't mean anything. Carol, what was in that letter you burned? I didn't read it. Don't you hear me? In that letter you burned? Oh, Larry, I'll tell you. Thank you. Margaret was afraid. She was afraid she was going to be murdered. Yes. I rather thought so. That was why Mangan had to die. John, I'm leaving. No, you're staying. Here with me. You're the only wife I have left now. You're insane. Am I? That's a thought. It hadn't occurred to me before. I'll think about it. I won't stay. Why not? I'm afraid. Are you? Get away from my den. No, you keep a gun here. I'll get it now. You wouldn't shoot me. You love me. I do, John. But it's no good anymore. I'm going away. You're mistaken. Don't come any closer to me. You're not going away. You're never going away, Carol. John, if you take another step, I'll... You what, vibration? You did shoot after all. I didn't think you would. I... I told you not to come any closer to me. I underestimated you. I've always underestimated you. But Carol, when I die, and I am going to die, what will you tell the police? But I have to tell them that I shot you in self-defense. It's of course that would be your life. Not a bad one. It might have worked. It's the truth. Of course it is. But Carol, defending yourself against a murder charge isn't considered good motive for a quittle. What do you mean? I would have bought Manganong because I was in love with you. Even though I knew. But Mangan was murdered anyway. By you. Very consistent story. But Carol, you remember that shoe heel? Yes. High heel, woman's shoe. You know where it is now? No. On the ledge down below in the crack where it was before. And the police are going to examine that ledge once again. Now they've heard this story of the fishing boat people. It has nothing to do with me. Carol, Margaret never wore high heels. Never. Something wrong with her feet. So the heel has to be. To be yours. What? My beloved. Murderous. John. John. Dead. Dead is Mangan. Dead is Margaret. And I? I. There was the ledge and the broken heel in the crack. A little item of unfinished business that I had to finish. Mangan was dead and the ladder burned. I was safe there. John was dead and his knowledge dead with him. I was safe there. The men on the fishing boat hasn't seen the second figure on the ledge. Clearly enough to identify. I was safe there. It was only the heel broken off one of my shoes when I hit Margaret. And I'd get it before the police did. And I'd be safe there. The tide's coming in. The ledge is still above water. The ledge where my heel had been. But the heel. The heel wasn't there. Maybe I mistook the place. The ledge is broad. I began to hunt over it. There isn't too much time. The tide's coming in. The red tide bettered Margaret against the rock. The heel was down there some time later. I had to find it. To find it, my goodness. I'm breaking over the ledge. I want to begin breaking over the surface. And if you hear there were hanks on it alive. The heel wasn't on the ledge at all. I must run. Escape. Run. There went Carol Vane. Fundamentally a nice girl with a slight character defect. She killed people. Of course her reasons were the finest. She only wanted to get married. Unfortunately she'd never learned the old proverb. As you make your debt. So you must lie about it. She tried but she was tripped by a heel. Incidentally if you happen to be out fishing one of these fine evenings. And the tide's going out. Say hello to Carol. We invite you to join us again next week at this time for Inner Sanctum. This is the United States Armed Forces Radio Service. The voice of information and education.


So, I was supposed to have a co-presenter for this talk. My name is Rahul Verma, let us get it out of the way. But I could not create profile for my co-presenter on his Islandia website, there was a technical difficulty in that. So, but then I need to have a co-presenter today, because this concept, first of all I do not understand you as audience. I do not know who you are, and you do not know who I am, and that is the reality. So, how many of you are from non-testing background, that you are not testers? How many of you are testers? How many of you are playing a testing role today, waiting to get out of it? Anybody like especially management executive positions, we should see those people that throughout the career they were developers or some other role, and today they are heading a testing team. We see those people, they do not understand testing, in the politest manner I want to say that. So, this presentation is an appeal, unless I am able to appeal to the emotional side of you, which is connected to testing profession. This presentation is not going to reach to you at all. This is not your usual test automation presentation. I am not that usual guy, because there are many of them in our country, and they are doing very well. They are much better people in talking about Selenium, Appium, DevOps, Pipelines, they are much, much better people than me to talk about that subject. I talk about fundamentals, I talk about the dignity of our profession, and somehow managed to make it technical. I code pride, I code philosophies, so let us see how that mix is going to happen, but before that, I will need to have my co-presenter here, because the first part of this presentation if I present it, it is not going to make sense. The problem with me is I do not know whether to address my co-presenter as he, she, it, I do not know the gender, I do not know how to address, what is the right now. So, anyways I will introduce my co-presenter. So, hello again, it is a role play, I am an automated test, so good afternoon. So, you are my creators, you could be a developer, if you think of unit test as an automated test, yes you are my creators, and I am your creation, and this is our story for the next 15 minutes. I was an idea in your mind, maybe from the beginning itself I was an idea of a coded manual test, test which you would code, or you were executing something me in a form called manual test, or exploratory test, and you thought it is a burden, I am taking too much of your time, and you do not have time for me, so you thought why not get rid of this guy, get rid of me, and you thought you have coded me, but you actually coded a part of me, you left your thinking outside of that code, and you thought you have gotten rid of me. So, in that cut down version, in that abstract version of my original form, I exist, but still I am happy, still I am managing, and you created many of us, I was not alone, I was not alone in that country, and we were different, we were so different, and in the difference is a beauty, we are beautiful because we are different, we are so different from each other, and when you created us, you acknowledged that we are different, that I am creating test one, the goal of this test one is would be this, this is the purpose, this is the eventual goal, but you ended up creating actually a lot of us, we had identities, we still are different, we still are beautiful, we still have identities, but not in your opinion and that is where the creator forgets its creation, and moves on, this is who we are, somebody said, I think it was Stalin, that a single death is a tragedy, a million death is a statistic, so single test has a personality, a million tests is a test bench, that is why you are looking at us, sheep, a flock of sheep, we could be different in ourselves, but in your opinion, okay thousand tests, I have to run them, that's who we are to you today, and you cage us, our only purpose is to lay green eggs, you break their eggs, and it doesn't matter to you, it's a donkey lion who, we need a green egg, somehow the test would manage it, and at the end of all this thing which you are doing to us, forgetting us, ignoring us, treating us like a herd that run this, run this, all the decisions are outside, there is a pipeline, there is this line, there is that line, there is the management, there is this percentage, you run, and after all of that, taking all our intelligence away from us, giving us no power of our own to decide, you know what you call us, you call us names, you say test automation is dumb, automated tests don't deliver, regression tests are just a safety net, they are useless, they don't find bugs, bugs are found using exploratory testing, automated testing is just a safety net, useless thing, just let them run, that's what we mean to you, but I was your first love, isn't it, you are about me, you are a tester, or you are playing a testing role, your life as a tester, the most important part of that was me, the test, but today you are caught up in all the rest of the noise, agile, scrum, code reviews, Jenkins, GitHub, everything apart from me is important for you today. In this conference, how many times did you talk about testing as a profession, or test as the important part, how many of you actually know test design techniques today, when did you pick up the last testing book, you might have picked a programming book, but when did you pick up a testing book, these are the realities, what you don't realize is that I am the water in the water, in Hinduism there is something called Advaithva, the consciousness in the world, there is no duality of consciousness, it's not Atma and Parmatma, everything is Parmatma, so the consciousness inside me is the consciousness, the consciousness inside you is the consciousness, this world consciousness is one, so if the drop in the ocean is meaningless to you, the ocean is meaningless, and that's what you're doing to test it, either I am meaningful or everything else is meaningless, if you don't treat me well, you see that's the reality, it's not just ignoring one test, you are ignoring all tests, you are ignoring the importance of automated test, it is just coding, it is some CI pipeline, some job, did the batch run, did the job run, did the herd go from one point to other and where are my green eggs, that's who we are, and this makes me wonder why do you ask me if I am a cat, you use test engines like test nj, you annotate me, you mark me at test, and at the run time you don't ask are you test, you say are you marked with at test, so that I can add you to my test queue, you don't let me express, if you had asked me I would have told you that I am a test, but you don't ask me, you tell me that you are a test, and that decision of telling that I am a test is also outside me, I don't tell that I am a test, you ask somebody else, is it a test, you don't ask me am I a cat, you ask somebody else to label me as a cat, and how, you don't let me handle myself, who am I, all the data about me, all the information about me, my name, my surname, my parents name, whom I depend on, who drives me, what is my purpose, everything is outside me, whatever things I could take decision on, so you see I can't control the universe, you are expressing the universe to me, I need to express back to the universe, but whatever information I needed to take that decision to express myself to the universe to you took away from me, and then you call me dumb, then you call me useless, there is a scene from Tarez Amipur, you remember, have you seen Tarez Amipur, that if there is a tree, very good green tree, and everyday you go to the tree and you keep cursing it, you are bad, you are dumb, you are bad, what happens to the tree, the tree is dead, that's what you are doing to test and testing, you entered into testing because you failed at something else, actually that is true for most of you, including Rahul, you couldn't become a developer, most of you, so you became a tester, but should that be your life story, should you hate, test so much, testing so much, isn't it time that you found your true love in testing and do something about it, rather than waiting to run away from it, waiting to run, waiting to open a restaurant somewhere, become a developer one day, become a data scientist, what is wrong with testing, nothing, the wrong thing is only that you don't feel dignified being a tester, so all the agilists, all these agile experts around the world and from India keep telling you, tester is not a role, everybody is a developer, do you have the guts to tell them, no, I am a tester, you can label me anything, but testing needs skills, you are killing the profession and you are killing me as a tester, what do I do, what drives me, who are my parents, I don't know about my parents, somebody else knows about my parents, some register somewhere outside, I don't know who my parent is and you expect me to be intelligent to take run time decisions, I cannot, you have taken away the power of my expression, what's my type, am I a performance test, functional test, do I run on chrome, Firefox, I don't have any mechanism to check at run time, who am I, you took away everything, you put it somewhere else and you want me to take it, you want me to be intelligent, you talk of artificial intelligence, data science, machine learning, but you are going to keep all of that outside me, outside me, you might have an intelligent library, but you would never have an intelligent test, you made me dumb, take some responses, which universe should I surrender, should I give up, is it an environment I should not be running, no, no, you would create your directories, you would create a directory, tests inside that you would say OS, Windows, Mac, Mac tests go here, you keep caging us, you don't ask me which operating system I was meant to run on, I can check what is the current operating system and then decide should I run or not, but you are happy caging me, which version of API, I could know that I am meant for version 1.1, you just need to tell me what is the current API version, I can decide that this is not the right version for me, I won't run, but even the power to surrender, to end my life span, you have taken away from me and then you release movies in which society is justified in all those court cases, but all your sympathy, empathy is outside me for everybody else, apart from the core of your profession, I was supposed to be your dearest friend and love, not anymore, if and only if you had decided it the other way around and just let me be what could have happened, so over to doubt, so this was the philosophical part, does it reach you, do you understand where we are getting, whenever the word test automation is used and I say test automation design, people assume that I am using test engine, if I am talking in Java, if I am talking in Python, people assume I am, Py.test is assumed, how long are you going to use these borrowed frameworks from developers, which test engine was created ever by a tester, name it, in the world, not India, in the world, with name single tester who has designed a test engine, these are unit testing frameworks, do you understand that, do you acknowledge that our testing needs are different from unit tests, unit tests are about efficiency, higher level tests needs are higher level, test engine was a replacement of J unit, when I said we need a new test engine, somebody said you are reinventing the wheel and I told them, so where are your wooden or stone wheels in your BMW today, somebody reinvented the wheel, so we have the wheels of today, reinvention is the need if you want to do better, you need to experiment, whatever I am going to show you, I am not here to sell, I anyways open source all my work, so do not think I am here to sell Arjuna, you are looking at the only user of Arjuna today and I am working on it for 4.5 years, so it is experimental, you can learn the concepts, take some part, full part, whatever you want to take, it is not perfect, I am a tester just like you, mechanical engineer entered into testing just the way most of us have entered and then found the value of testing along the way and to the point that when offers were coming my way to become something else, I said no, I have found myself, I am in a good profession, oh you are a good coder, you study design patterns, yes, so that I can become a better tester, I write more code than the average developer does in the world, I write a lot of code, but I write that code to serve in my profession, not to keep adding, you know, testers are ashamed today to put even the word tester in their LinkedIn heading, they are ok in writing something else, but the word tester should not come or if there is a tester, there should be S debt or something, S debt has become just like agile, it should be in the marketing brochure, internal realities everybody knows, I just wish that to become a great tester, we had to just stand up in the morning and for 15 minutes and say that we are a tester, testing is a deeper profession than that, much much deeper, it is 15 years, 16 years for me and my to-do list, I would retire and still not cover what all is needed for me to become a good tester, how can it be just another role, which anybody can do, we can have longer conversations on that, but I think I have expressed myself. So, I will introduce you to the concepts around things, Arjuna is open sourced, it is available out there, Apache licensed, you want to take it experiment, please go ahead experiment, you want to take the concepts from here or if I have tweaked your mind a little bit, please go ahead and experiment. I am not here to change anything, I am just here to appeal, please stop spitting at testing profession. As non-testers and as testers, that is my only appeal, humble appeal to you, my community guys.  We are self victimizing guys, we have always victimized ourselves, we have changed roles and we played roles, we became the villains actually, we became the quality gate, the sign of guys, nobody asked us to do that. And I do not think so you know agile routes, but agile in the original version of agile, there is no place of tester or outsourced testing. So, it is an irony that in India how most of the outsourced testing companies or development companies have agile, they started doing this, I do not think so they understand agile, they have not gone through the document. I study these things, then I form opinions. It was years, years later that agile testing book came and in the name of testing, the only thing which is mentioned there is exploratory testing. It is a wonderful book by the way in general to learn, by Lisa Crispin and Janet Gregory. So, anyways I am a man of strong opinions, I could be wrong, it is okay to disagree because I am doing the same to you most of you. So, give and take is okay, do not worry, we are professionals, we can still share a cup of coffee tea. So, first of all meaning of test object, first of all what I realized is, so I have not met anybody else apart from me who is a tester and he is researching test engines in the world. So, if you come across somebody please introduce me because I learn passively from people's work, JUnit or TestNG, I go through this person's writings, try to find something without looking at the code okay, because I want to develop something of my own and do something better than them for the context of software testing. We do with at a higher level testing. So, first thing which I realized is that this calling something a sweet and fixtures, putting a class level fixtures in the class, a sweet level fixture in a class is an empty pattern and if you want to study technically about it, it is called composite design pattern. So, I thought of a composite test object. So, I have a test session, a test stage, a test group, a test group slot, a test module, module slot and then a function and then test. That is the eight level structure right now, it could actually increase because the moment factories of those kind of things. So, everything is composed of everything. So, everything is a test okay. So, it is not outside view that run session now and step one, it is not a data structure view, it is an object view internally in the framework. We have less time. So, I would just focus on the last layer okay, so that things are simple as well. So, in Arjuna the test expresses, it tells about itself. Now, what you should know is that for three years Arjuna was a Java library, that is how I was developing it. In Jan last year I realized I picked up the wrong programming language for what I have to express because programming is like poetry. You reach a stage where you find that this is not what I wanted to express like philosophy. So, I realized it is not the right language because unless I go into complex constructs, the test was always behaving passively. Somebody outsider was asking, are you annotated with that test? So, I chose Python because in Python it would look like an annotation, but this is actually called a Python decorator. It is a pre-processing instruction. So, the module actually talks back to the loader. I built on that concept because that is where the philosophy is that the test, so you see I told you I code philosophies. So, the philosophy of test telling itself needed the right programming language for me. So, I have switched, I rewrote everything in Python after three years. So, you could have a shy test okay, doing nothing, nothing much, but you could have a very expressive test and how simple thought process can out do somebody asked me. So, you mean to say you are working on a replacement of two decades of somebody's work, which is an open source community work. I said not my fault that after 20 years they are able to produce this. I produced what I could produce and this is what I produced. Learning some test engine, better than test engine. Test engine cannot do this, what you see right in front of you. If you do not believe just try doing data demo testing with test engine and tell me where is the multi data provider okay, in which you could have linear arguments as well as mapped arguments. You cannot have that. So, you see this is not a shy test. The test has lot of things. This is example of built-in properties. You could tag with bugs. This is a custom user property. These are built-in properties priority based filtering and all those things are tied around it. You could have runtime evars. Test NG in Java for example provides you with one kind of variables which are called parameters. Arjuna has I think five or six types of them because it separates metadata from properties, built-in properties versus user properties from evars which are execution vars versus runtime objects. You do not have to do think about thread safety because thread safety is guaranteed by Arjuna. There is no synchronized keyword in Python by the way. So, it has to that way. So, most of the test automation engineers they make mistake. They do not use for example thread local in Java. So, the moment you go for method level parallelism, the code breaks. So, I looked into those patterns. I consult on review of frameworks. I have taken a note of the most common mistakes people make in test automation world and developers need to sympathize with that. We have different needs. We do not come from a core programming background. There are different kinds of mistakes which a test coder makes versus a developer coder. There I usually see design patterns mistakes when wrong choices are made. In test code, the average code reduction in my code review is 85 percent in India, 85 percent code reduction. In a few settings, that is the kind of code which I wanted to make perfect. So, you see threads. So, you have a multi kind of threading exclude if. So, if those are few who have worked in test NG, we say depends. So, you see test NG does not even define that it is not dependency because dependency can be inclusion and exclusion. It meant exclusion, but it asks you to write depends on. If you are depending on something, you could have said that I should be run only if this succeeds. That is also relationship. So, I separated relationship. Exclude if problem in. So, you see this whole pass fail is a relationship. Am I looking for problem? Am I looking for percentage or I am looking for this? So, there are separate parts to these relationships and functions. So, that you can provide multiples of them and then of course, drive with many data sources, record for which you were writing all those curly braces and objects or records. It checks actually that you are providing only fundamental objects, data function where you can provide any function. It would dynamically call that function with the provided arguments or data class. It would construct an object of that class with the provided arguments which could be keyword arguments, normal arguments and then call it. If you do not believe me, my challenge is go and try writing a lazy data provider in test engine. Try it. Try writing a lazy data provider in test engine where the data is faced from a remote web service. I have been trying for the last three weeks because it is not that I only work in Arjuna. I do work in test engine. Three weeks I am struggling with that problem because it forces Java iterative protocol on you. It does not have a data provider protocol. Test engine does not have a data provider protocol properly. It banks on Java iteration and it has next and next that architecture does not work when you do not know how many entries are there. It works only for deterministic data, not non-deterministic data. So, this you see I hope you now know the layer at which I am talking of test. It is a foundation. The things which people are trying to fix in frameworks were supposed to be, many of them were supposed to be test engine problems. We are fixing them in the wrong layer. Alright, introspects. You see why Python? Because in Java it is called reflection. You have heard the word reflection. If you want to sum, so you see it is a thought process of the programming language. In this class, which are the methods? You are not asking from class, tell me your methods. In this class, what is the method? Which of them? It is outside an approach. In Python, everything is a self-dictionary. So, when I am a class, I know my variables and guess what? This is called introspection in Python. So, you see the philosophical conflict. This is where it matters. You can't pick a opposite philosophy language like Perl. Perl more than one way to do it. Do one line magic and then working in a context where robustness needed. You can't do those things. How many times have you written code where you wanted to check what is the current method? What is the class which contains it? What is the name of the class? What is the module of the class that goes into reflection area? How many times have you written this dot get class dot get simple name dot get name? You keep doing it. The moment you create a framework, you keep doing it. And then you have problems passing it around. And I don't know whether you paid attention to the argument which is always my. The signature always remains the same. It's not that you pass five parameters and then you use data provider and you did this signature keeps expanding and contracting. The signature in Arjuna of a test is always same. And that argument, you have to write it as my. Otherwise, it won't run. It's a static audit error in Arjuna. It forces you to use this name because that's why then it would read my.info. It's a test talking back. So you see all those decisions go at API level. My.info.session.meta. I can inquire which session I am in, my universe, which stage of the session I am in, which group I am in, which module, what is the name of the module, what is the qualified name of the module, which package contains it, what is my name, what is my qualified name, which slot, in case of dependency resolution, if you split the module into three parts, which slot number I am in. I am in. Everything. I know about everything as a test. And of course, the properties. Whatever you set here or in its parent or in its parent, everything you can access using same approach. Same approach. We are dealing with the same object. And Arjuna takes care of which of these should be read only. What you can manipulate, what you can't manipulate. All those checks are there. Fed safety, everything is there. It decides. Depends. Dependency resolution is done by the test. So I check who do I depend on and what happened to them. If there is a problem in them, I exclude myself. I surrender myself. Nobody is taking decisions for me. And this is not in your code. In the framework code, architecturally, if you look, you would find test objects taking decisions for themselves. And the children act. Of course, this is where you write and you would do whatever you wanted to do in that test. And asserts. Now, asserts, you must have heard soft assert. They said assert, you use ham crest for this type of this. What I did was, I wrote a single base of assertions. On top of that, soft assertions or normal assertions are built. The core is same. People patch ham crest on top of normal assertions. I wrote the core as ham crest style so that normal assertions can be built on top of that. There is again a slight difference. The sequence of arguments. See, you talk of usability of code. I talk of usability of API. It is a serious subject. Nobody talks about that. Why should first argument of an assertion be expected and not actual? Listen to it. Assert equals expected comma actual versus assert equals actual comma expected, which sounds intuitive to a human. And why the hell all the test engines in the world for two decades have been using the non-intuitive form? Do we talk like this? Expected is same as actual. Do we talk like that? Or do we say actual is not same as expected? The argument sequence is not intuitive. Check assertion libraries. I go to that layers. That is the area I am working on. So, that is why this is if only one person had turned up or if nobody had turned up, I could have given presentation to myself. I do not mind that. But yeah, these ideas are not being discussed. Everybody talks about some frameworks. Anyways, Pythonic simple assertions. Of course, you can use Python assertions. You could use assertions. And you see steps. Do you notice something? In no test engine in the world, steps is a built-in concept. You do not notice it. But when you are dealing with extent report, a layer report, every time you actually create two tests. One is a test engine test and one is extent test or a layer test. Because steps is not a test engine concept. Steps is not a JUnit concept. Steps is not a concept in any of the unit testing engines in any of the languages out there. I built it. One problem was being discussed by Nareesh today. What if I put try catch around assertion? Try it in Arjuna. Try it in Arjuna. I've solved that problem. I've solved that problem. Even if there's an assertion error and you put try catch, the result is captured by that time at the back end. The test would still fail. You could proceed in that test. That's okay. But when this test is reported, that particular assertion would be used to report your test as a failure. You can't play with it. Because the way Arjuna records or reports the results of a test is based on steps. Everything which happens in the body of your method is a step. Assertion is a step. Logging is a step. It works that way. Everything is being recorded at the end. The results are calculated based on the steps. So you see, you could have put try catch, but by that time, the result is already located. It's already done. So the test would still fail. You can't play with assertion. Anyway, so this is one example. And by the way, it enforces the purpose. It's not assert equals. Whether you want to give purpose or not, it's okay. Without purpose, any higher level tests, assertions are useless. Because in your reports, if it tells you one not equal to one, what was this one? What were you checking during that time? Number of entries in a shopping cart? Number of books deleted? What were you checking? I didn't make the purpose argument optional. You need to provide the business purpose because without that, in fact, unit tests, reports are also useless without the purpose argument. Because too much troubleshooting time goes into that. So to this day, I don't understand, why did they overload and provide libraries like this? Okay? And you see, I have a history of those engines to learn from and the problems which people face. So they did great, but we need to move on, especially in testing world. Don't use Arjuna. Do something like this build. At least, I would establish the need for a custom engine for us. That I'll do. You're better at coding. Go ahead, do something better. Don't use this, but do something. Because this test engine, J unit game, not for us, not in the long run. Somebody needs to solve this problem. I just open source my standard. That's it. So you see, simple assertions, fluent assertions. I was anyways working at it.  Because anyways, I was taking a standard. Lazy assertions are lazy at time of execution as well as evaluation. Soft assertions are lazy at, greedy at time of execution. They get executed immediately, but evaluated later. Lazy assertions at this stage actually nothing happens. In the third or fourth line, nothing happens. You're just adding which assertions you want to execute. When you say dot execute, that's when all the assertions get executed and then evaluated. It's a new concept absent in all frameworks. When do you use it? I don't know. I had anyways an architecture to support it, because it was a stage-wise process. Maybe we'll find a problem context tomorrow. Informs. Yeah, test reports itself. Test reports itself. It reports its children in case of surrender. And yes, surrendering and exclusion could be two different things. There are different status. There are seven or eight states of a test, not simply pass-fail error. If you're skipping, skipping is a different state, because skipping is different from exclusion based on dependency failure. If there is a data, some construction failure in test, that's a separate kind of a problem. And before I forget, yes, Arjuna separates issue from the failure. So when an exception happens, assertion exception, non-assertion exception, first an issue object is created. Then this step is marked as failed or erred because of that issue. Then this test is marked as failed because of this step failure. And then anything which is failing because of this test because of the dependency would now point to this particular issue ID. So you have one to many mapping. Things which you spend time on. Things which you try to solve at parsing report files, try to do all that business intelligence, ML and all those things. Believe me, many of those problems are not even worthy of ML. But you are solving them at the wrong level. They are simple test engine features. Anyway, so the test expresses itself. It should have freedom of expression. You could write the simplest test possible. Just write at test function, the most shy one and the most involved one using the same framework. Introspects, it should have access to all the information. It decides for itself, takes decision surrender, go along. This could be extended to other things. Acts, asserts, informs. And something which I'm not, yeah, before I forget, yeah, I run a company called Test Mile. I am the CTO at Verity. I'm a consulting CTO for Verity. I am consultant for Mooliah. And I'm the community connect for Step-in Forum. The slide deck would be anyways available. So you can sort of take details from here, stay connected. One final thing which was not there in the original presentation. On that note, I'll conclude so that I can open it to questions. Let me show you something which people want, but which never built. And even if they build, they build it at frame of affairs. So you see, people want these kind of things. I want to run all tests written by Rahul. I want to run priority one, two tests on the relationships. They want a grammar, but they were trying to create that grammar at framework level and half cooked. I created that grammar for you in the engine itself. So author is none. It is not defined or rating. You see, user properties. These are dynamic properties, runtime. Based on that, you can do selection. How do you do that in test engine? When everything is just name-based and name is an external thing. So you see, you ask me, I'll find what is my rating and what is your filtering rating. And if it doesn't match, if I don't meet the criteria, I'll surrender. Let me be as a test and that's the power to achieve this in the other architectures, very complex job. Try it. So unstable, long running. You could have these flags, choose based on that. And of course, evars. These are those evars, runtime things you could have set. You could choose based on that. You could actually tag-based. These are things which people solve in commercial tools. Tag Chrome is defined or multiple tags or even bugs. Regression test. I want to run tests which were, I had marked earlier with this bug idea. I want to run them. And yeah, there are 13 or 12 layers of fixtures, not four, like in test engine. So you have very precise control on setup and tear down. So just explore it, get in touch. I can talk about original specific, but the purpose of this presentation, the core purpose was to introduce, there is more to test automation than talking of Selenium Appium. It's a much, much more deeper field if you care for it, if you want to explore. I take huge pleasure in talking in these there. On this note, I'll conclude. Thank you so much for your patience. So we have time for questions. Yeah, please. That logic, you'll have to create them. So it's just like test engine suite file. The only difference is that test engine doesn't let you decouple suite from groups. So if you are repeating same group, you are forced to write same XMLs over and over again, right? Similar instructions with different variables. You can create a runtime for that, you'll write some kind of wrapper tool around that, right? So once you've done that, this is the file which you created. Once you're done with that, you just need to pass. What is the group name? You can pass what is the group name and just run it. Let me just try to find it. I was running a lot of examples yesterday, so that I'm not stuck in this. So you see, it's a command oriented interface, run group, run names. So you can choose which module to run, which function to run, run the full project, run a particular session which is equivalent of suite, run a particular group directly. So decouples groups definition from suite definition. And in a session, you can, if I show you more complete example of equivalent of suite file, you can, these are named session files, okay? So if I show you complete thing, this could actually start looking like this, okay? You have pictures in its session and session which you can place anywhere. You're not forced to put it in class like in test and G. That's a wrong place to put a before suite. It's a very wrong place. It confuses a lot of people. So you place it anywhere, actually. Dynamically, I'll call it. And in it each stage, stages are sequential just the way testers want, right? Sanity, this, this stages are always sequential. Rest everything is parallel. Groups can be parallel. Modules can be parallel. Function test, everything can be parallel. But stages are, and then again, you have multiple fixtures. And here you, in each stage, you could give multiple groups. So you just refer by name. And what are the variables which you want to pass? That evars thing which you saw in annotation or decorator, those evars you can pass here also. Finally, it clubs all those evars in the context of all the object hierarchy. And test can inquire back at one time. So that would be a stage to stage dependency, a feature I'm going to build. So there's a function to function dependency built. Module to module dependency built. So there would be a group to group and stage to stage. So there would be four types of dependency management. So by default, it doesn't do that. Or maybe the other way around. I don't know when I construct that feature, I'll know. But the idea is that if, let's say your sanity tests are not passing, why should the next be executed at all? So no run time status checking built into the component. Anything else? So is this tool compatible with tools like night watch or I don't know about those tools, maybe you can discuss. See any integration problem, if you look at is an interface problem. It could have a rest interface, a network interface, GRPC or a command line. It's more of an integration thing. So I haven't even thought of, I don't know about these tools. But then can they be integrated? Of course it can be integrated. Yeah please. Cucumber was never meant for the tests which it is being subjected to in the industry. Cucumber uses Gherkin and Gherkin was supposed to write only user story tests. Today I get inquiries. We have 10,000 tests. Can we convert them to Cucumber? And companies like by the way, who's created Jira? They are doing that. A company specializing in creating an agile tool is using Cucumber for all their tests. That's an anti-pattern. Yeah, that's a very bad measure. Very bad measure. We can debate around that. But you see that given when then syntax, it is good for user story, higher level tests. You have deeper tests than that. The moment you try that to push into the way KDT, keyword driven testing people tried. That let's just write keywords and just run the test. I have literally seen C sharp code in Excel sheets. You see, there is a point where a certain way of doing things gives up. It's a code smell. It's talking back to you. Listen to it and change your way. There's nothing wrong with Cucumber or Gherkin approach. But use the right tool for the right type of tests. That's what I'm saying. Okay, try Cucumber for fuzzing. Search about fuzzing where you might be executing 1 million tests and try it out. Try writing a performance test or I could actually give you a lot many examples. If version of a test in your mind is UI testing, Cucumber could be a winner. The moment you start doing deeper tests, multifaceted tests, it's a problem. And multithreading is a known problem by the way in Cucumber. We have run out of time. I'm happy that these disagreements are being generated because I created Arjuna out of disagreements with the way people were doing stuff. So I'll be outside and I'll be available maybe throughout the evening to have any discussion on this. I hope it was not a waste of your time. Thank you for paying attention. Let's do it.


The meat inspection program was a two-part training program primarily targeted at officers from the Livestock Division and the Department of Environmental Health. The training included both a practical and theoretical session on how to conduct proper anti-mortem and post-mortem inspections. An anti-mortem inspection is performed on an animal before slaughter, whereas a post-mortem inspection is performed after slaughter. According to animal health officer at the Ministry of Agriculture, Columbus, Philippe, while St. Lucia is not known to have any diseases that would render the cacuses unsafe, there are conditions that can render the meat's quality unmarketable. He emphasized the importance of the inspections in protecting public health by ensuring that cacuses and pots enter in commerce are wholesome and disease free. Both ministries actually are suffering from a lack of resources in terms of manpower. A lot of the old gods, so to speak, is on their way out and we are seeking to train the younger members of staff into, like it's a more in-house training program assisted by PAHO where we're trying to pass on the knowledge, pass on the information to the younger staff and to bring them into the fold where they could carry out the inspection when myself and other senior members live. PAHO consultant Claudius Prospe says that whilst anti-mortem and post-mortem training is necessary and informative, the owners is on the participants to continue to practice and improve their skillset. We are hoping that after they have witnessed what is happening here today, right, that would prompt them because you'd well appreciate that this one-off session will not make them qualified or versed in conducting post-mortem and anti-mortem inspections. So we are hoping that this session would serve as a springboard where they can go out there and do further research and continue this kind of inspection so that they can get versed. Before slaughtering animals for commerce, livestock butchers and farmers should contact the Department of Agriculture's Veterinary and Livestock Division. Consumers are also urged to exercise caution and safety when purchasing meat products. From the communications unit of the Ministry of Agriculture, I am Anisia Antoine reporting.


Hey guys, welcome back to my YouTube channel. This is Daniel Russell here. I want to just show one of the workflows I've found very helpful using Kden live just a little bit of a time saver And it's basically for creating what I refer to and I kind of come up with my own words sometimes Timeline templates now I don't know maybe there is a feature in Kden live for a template on the timeline if there is I unfortunately couldn't find it So what I did instead is kind of build one sort of a process at myself And I'm going to show you guys what that is so for my video blogs and a lot of the stuff I put up on this channel. It's kind of following the same Format and that is this I have a little Intro that I got done up on a fiverr And I usually fade into it a little a little bit less than that probably this much is good and fade into the audio too I'm not in love with it. I'm probably going to change it pretty soon, but for the moment Sometimes I'll splice up the video with the two so I'm just going to actually copy this because the next thing that I have is A animated lower third and this is for the kind of you know logs. I do or I'm just talking into the webcam So I like this one that I got done on fiverr better than the first one For for some weird quirky reason I have to turn off proxy clipping for it to show up as intended transparent and I don't like The positioning I think the guy put it in the wrong place or maybe that's just the way he likes it, but I Prefer to see the lower third come in like here in the bottom left And I usually change the positioning a bit depending on the what's in the foreground but this is probably pretty safe for location for it and That's pretty much All there is to it essentially so this is my intro Then I usually have a few seconds of video then I cut into the lower third and I can get rid of this because I was just Using for guidance so now now this timelines kind of like set up for me doing a vlog So then what I go ahead and do is I'm going to save this into You guys are going to see the inner workings of my video workflow here Video Projects and then I've created this folder called timeline templates. I just wiped to clean So I can create a new one. I'm going to call this vlog time line I'm going to save this and I'm going to go ahead and close down Caden live now The way I would do this is I would go into now my projects folder Timeline templates bookmark this I'm using PC man FM on a bunch of Linux as my file editor And then I just click into this guy I allow it to run through its default program association, right? And let's say I'm doing a new thing and then I just do save as in order to not overwrite the In order to not overwrite the template and I call it my vlog And now I've got kind of a head start in the process of editing a vlog with the stuff I like to have on it and that's pretty much it I don't know if there's a better way to do this But this works just fine for my process And I built out a few of these to pet for you know different things that I'm commonly editing and it's one of those little things It's definitely you know a small time saver, but it's very tedious to have to repeat the same process every time And this just makes that job a little bit quicker Thank you guys very much for watching this YouTube video and if you'd like to get more videos for me Please subscribe to this YouTube channel. Have a great day