 Good morning one and all we're here from dr. Ganesh's ICT project, which is a loka cart android application So before we go into the details of our project We'll be giving you all a slight overview of the loka cart android application So you'll understand exactly what it is about So, you know farmers face a lot of issues in getting their products across to consumers One of the key issues is the logistics involved in these Produced transactions as in a farmer has to go to a farmer's market set up all his goods He doesn't know what sort of quantity he has to carry of what good because he has no idea of the demographics of his market So in order to solve this issue or at least streamline it we created an android application that loka cart application Which we'll proceed to demonstrate. So this is the android application now There are different categories of products if you swipe left you will be able to view the different categories according to Which the products are organized. This is a client application. So there are three parts to the loka cart project We haven't developed it. It has it's a huge project. So obviously we aren't No, this is for the yeah, this is for the customer for the customer for the for you So you are viewing the products listed by the farmer. There is an admin application That will be operated by the farmer support group So farmer producer organizations and farmer support groups other people who help the farmers list their produce Why is this 2 kg of stock? Why 2 kg, some are 2 kg? So that depends on the organization as per what they want to list So if the minimum quantity they have of strawberry is 2 kg and they want Yeah, these are farmer listings. So we asked them based on their options. They have listed it this way So we'll proceed to add some products to our cart and place an order just to illustrate the flow of events So location is what we are working on right now. So he'll explain about location. That was his task Now so if they took a key of whatever Apple is not available in power It is available in Borivali. So that depends there will be a number of organizations He'll proceed to illustrate how you change your organization So these are number of organizations registered on this application So there may be some organizations operating out of power. There may be some operating in power So the idea is the organizations add members depending on their location and the member location I want to know how farmer gives his goods on your web There are groups of farmers called farmer support group of right so groups of farmers have farmers club Yeah, Abhinav farmers club approaches us to list their organization on our application For me as yeah, there's an online form Actually that that's very outside the scope of our project. So it would take a lot of time to a fee No, no, no to start with that. Okay, so they list what they list their products So their organization is listed as a part of their organization. They are on an administrator app as an administrator app I have the admin app if you don't forget it. No, what do they do? So they basically list their products. So these members when I place an order it goes to them Me and he are part of that Abhinav farmers club. I want to sell mangoes at 10 rupees He wants to sell it at 11 rupees. No, that is the reason they have a farmers club Club The organization sets the price list that is the point of forming an organization So these economic issues are avoided. So that is why a group of farmers come My mango is better than his So it is your mango. It is not my mango. It is not his mango. It is our mango So the idea is they have There's no group cannot be our mango I have put too much effort in my farm. I brought some fruits and mangoes So sir they Result How I can So the simple solution to that is if you disagree with the views of your organization You go separately and set up your own organization So you set up a single farmer but we won't be able to accept you as a single farmer Because an organization would be able to supply many more consumers Right. So as an organization I want to sell at 10 rupees That farmer is saying my mango is better. I am selling at 20 rupees Fine. You set up your own organization. You get a group of 20 rupees farmers And if you are able to supply the quantity Then you might as well form an organization So then actually your application is not meant for farmers It is meant for the middleman So that is the idea So that is not the middleman So that is not the middleman So that is not the middleman So that is not the middleman So that is not the middleman So there is no middleman They are getting the direct transaction You don't know who is the director Abhinav Parmer Club could be Reliance Ka Chamcha Sir Abhinav But you have no idea who is Abhinav Sir they are farmers These guys have gone and met them In Bombay there are so many slums Where 30% of the slum members are fake Because builders want to do SRA So don't talk to me about that Anyway it doesn't matter I don't agree with it But take it to the outside Okay So they list Yeah Why are they listing 2KG? They list 2KG because that is according to their preference As I mentioned their minimum quantity might be 2KG I want to As a farmers club I want to sell 1KG of apples and 2KG of apples Can I do that? Yeah you can do that So there will be 2 elements You can list an element here Apples 1KG 2KG So that is possible So finally we are working only on this Yeah So this does not tell me where it is available As in Where is this 1KG mango available Out of stock? Yeah sir So as a member of the organization You are restricted to their areas So they won't add you as a member You cannot So one of the One of the special features of this application is Member addition is by referral So the organization will refer their members Okay this guy falls within my limit They have their consumers They find the consumer details And they send the consumer a referral Okay you are a part of this area I supply to this area Okay you get a part of this application I can supply to you Why are the application? If I am part of this area This is Abhinav and you are from Bindra Abhinav He wants to sell me You can be part of both organizations Abhinav doesn't see Abhinav He doesn't see Abhinav He doesn't see Abhinav He doesn't see Abhinav He doesn't see Abhinav He doesn't see Abhinav You can change your organization As and when you want You want to You mean I want to buy Only one kilo of mango Ten people are ready to sell me One by one Sir but that is the point You are loyal to your organization If you want to view You are free to view I am loyal to mango only I am loyal to mango only So it's one button click to change an organization And you view all the products of that organization Sir the entire point of e-commerce A customer never really ends up buying What he wants He buys 5-6 other products as well I do everything on the net I say They give me a lower price And then ten people are there Right sir But this model is different This model is not based on real life So, they have met people in real life, there are people implementing this application, so they have asked for these features. This is not Loka card, this is Reliance card. It is only meant for Reliance to get things from there and sell it to people. And barricadar people from doing it. Reliance was real, Reliance to Reliance 3 Ajay Kao. So, we will proceed to the tasks that we have accomplished on this application. As a part of this internship, I have been assigned three major tasks, making automated test suite for this Loka card application using Espresso. Then there are some limitations for automated testing. So, we have to do manual testing for both because Espresso is a one-app testing. We can't do testing with two apps. We have two separate set client and admin. The third part was integrating GPS in Loka card client application. So, you don't have any interconnecting apps? We do. Loka card client app and Loka card admin app. Yeah, but they can be tested separately. They are not working separately. This is an order placed on the client app will go to the admin app. Because the order placed when you have to process the order, the admin part use the same app, right? They have an entirely different framework, they have a different feature on the app. So, they have different data sharing. Moving on Espresso framework. Espresso is a UI framework which just performs three basic operations and for a single test case. And we can write test cases according to it. It's find a... It's automated testing. Yeah. It's automated testing. Okay. Test plan. Test plan. One test case, ten test case, five test case. No. Like invalid input. For example, in feedback form, some are... Let's talk about RootWallet. I like this one. RootWallet is... Which one? RootWallet. Hmm. But... That one. Yeah, but in checkout, if... So, be the app and tell me what you requested. In checkout, in add to cart button, user can add... There are limitations. He can order up to 999 ordered. But if... What if... Yeah. What if he tried to enter more than that? App... App suddenly... App may be... Like 999... Minimum... Minimum... Minimum... Minimum... Minimum... So, it's... The features have been integrated based on the organization's demand. So, what they did was, after we made an app, we went and met all the organizations. You? No, like the team. Yeah. Me too. Abhinav. So, Abhinav Farmer's Club... Mumbai Solins? Mumbai Solins and Arya Sanskriti. There are three organizations. They went and met them. So, when they spoke with them, they got a number of requirements from them. If you buy 100 rupees, you will get it free. Abhinav. Okay. Okay. Okay. Yeah. In a two-card... There are limitations to up to 999 quantity. But what if a user entered more than one? It may be... App even crashing... Using... Yeah. But not 999 rupees. He meant 999. 999 quantity. Yeah. So, what's happening first? So, what's happening first? So, what's happening first? So, what's happening first? So, what's happening first? So, what's happening first? So, what's happening first? App was crashing. Yeah. So, what's happening first? So, what's happening first? Yeah, the same. So, for that, it's all about the taste. Yeah. So, I'll show you how to simulate it. So, I'll show you how to simulate it. So, this feature... I write a taste case, which enter in a two-card more than 999 and checks if it works or not. And based on that, test case passed, there are many 16 or 17, I think, but it is not individual. For example, for dashboard activity, I write a test case which cover many test cases. Should I show demo? Something which cannot be done. So, for example, there is... How do I know this is just in a company? Yes, I have a demo. Do you run a simulation on a laptop without a button? No, no, I don't run a laptop. Tell me how they are complete? Do you run a simulation to show you the test cases? Autoptically. I don't see it. There is no time. I assume it's only a simulation. How do I know they are complete? It returns after all test cases are completed. You develop 16 test cases. Your job must test an app. You deliver 16 test cases to Professor Ganesh. How does Professor Ganesh know that you are testing the app? The complete testing of the app was your job. How does he know the app is tested? Complete. Because there is no way that you can do everything. You have tested everything. Prove it. But how can... How can we... Do our job as testing. There is a testing methodology. So now we will see for the test cases that we are playing a real test case. What box? This is the right box. Input you cannot tell me my input on the app. That cannot be the input. For any test case to be developed. We... Your document. What was your document? Did you have a document? No, just I have... For manual testing I have just made a excel sheet which shows all bugs in that. All what I bugs find out. You have not understood. Test Microsoft Excel. Will I do it? I will not do it. Okay. Automated or manual. It cannot be done. Okay. For testing you require a document. What was your document? If you did not have a document then the answer is I cannot certify tell Dr. Ganesh or Dr. Ganesh will not know whether I have done the job or not. Testing is like this. There is a document. There is a list of features. Then I have to say feature number one. Feature number sub feature. This particular form has got 10 elements. One element test is this. Second element test is this. Third element test is this. If I do not have that, I cannot say my testing is complete. Then I am relying on human beings. I do not rely on human beings. Okay. If... I mentioned in one excel sheet that all the... What is the test case? What is the test case for? What is the test case? I have not even gone to what is the test case. I have... You don't have an idea of what is to be tested. It's not my first thing. Okay. Is there a document which has got a sign from your mentor? These are the features I am going to test. Mr. Jalan sign. No. Complete this test. So you have not started it? It has expected result and... This is what I am looking for. But this is... Before even you consider this, there has got to be a specification to you of what is to be tested. Yes, sir. So people given this sheet and we discussed and personally discussed... I have to find out... This is a list of test cases. Where is the list of features? Sir, I have the document but... So did you start with the document? Yeah, we started with that document. Then we reached this document. Okay. So you had a document which says what is to be tested? The requirement sheet. We had a feature sheet. Depending based on... Correct. Now when you start with a feature list and then you come with this test plan. Okay. There has got to be on the left hand side with each test. You have to have a cross-back mechanism that this particular test is for this feature. This particular test is for this feature. Yeah. We organize in product... In technical... Product... It cannot be activity. It has to be feature. For example, if I am entering 999... Okay. Entry sheet is not like that. The feature is that on this particular entry form the quantity needs to be tested. Sir, so we modularize the cases by feature. So the order is modular. These types of features... You have not understood. If they are the form... It has got 10 fields. I should start with the list of 10 fields. These should be called field number 1, 2, 3, 4, 5, 6, 7. Then I have got a test plan which every test case I write I will say this test case is meant to test feature 1. This test case is meant to test feature 1. This is for field 2. This is for field 3. Yeah. This is not here, here. Because you are saying form. That is not correct. I don't know whether you have tested all the fields of the form. When you do a test plan there are two, three things are required. Am I testing it completely? Yeah. Complete coverage is most important. Okay. Now you went manual. So these are the prime features that we are meant to test. So based on this we had discussion. So in discussions they wrote it on the whiteboard and we made notes. We don't have a documented form of it but we didn't make notes. When I say documented this document form has to be signed. Okay. It doesn't matter. You went into manual. What did you do in manual? In manual test there are many bugs like in admin and client there is no synchronization. If admin adds a quantity and in client it is not reflected. Like this is one example. And there is one feature which is allow user to modify its placed order. Okay. So problem is that when admin changes price even he placed a previous price previous value say he can place it. You always testing it. Yeah. Correct. Because it can be done. I asked you one simple question. Yeah. I like that. I like that. I like that. When admin add the proof it won't be able to do it. Yeah. Yeah. Tested. What? I tested. First it was not reflected because synchronization is not there but I tested manually and it is It is mentioned in the Excel sheet. What I That is another Excel. We tested that feature and based on that they implemented it. So this fellow will vanish? Yeah this fellow will vanish. And suppose I have entered it, what will happen? New product will be added. When you go to the cart activity and you try to place the order it will show product does not exist. It is not real time because a technical team... When you refresh the activity and you switch from one activity to the other. Exactly when I refresh the activity is not a not. I understand sir that is why. I tested. So when you... Yes sir so when it will not... while it will not refract I will still have that in my cart the minute I check out cart the automatically the response will go to the server server will say this product is not found and it will send back the response. So while it will not automatically be removed by my cart, I will not be able to buy that product. That was your manual test? In GPS part, we have two separate applications. I implemented it just in client application. The part of admin application need to be done because I have assigned it just only client part. The GPS, since you need to sync between two apps, we started with implementing it in the client app. Now, when we see the response to the client app, we again go to the organization to ask them because this was one of the features they asked for. There are two advantages of GPS. The organization can find user according to their area. Next is that. What I learnt? I did Android Development, Testing Framework, Google API Client. You are not learning Testing Framework. You missed a very important opportunity to do proper testing. I tried to teach my group, but they don't understand anything. That's why I told them to do testing. You had an important testing assignment. Absolute learning thing. Nobody should ask anybody to do any testing unless what is to be tested is specified. First, you have to throw it like this. I won't do it. First, you have to know what to do. That is what a tester will behave. Like a coder should say design document or I won't do coding in a real flow. They ask me to write all the test cases for myself. Writing of the test cases. See, when you do any product life cycle or any software life cycle, there are set of documents. Each life cycle has got some inputs and it produces a deliverable. That deliverable along with the others actually become input for the next. For the testing phase, you need an input. The input cannot be tested application. Since the type of testing you are doing, your input has to be screen shots at least to lower level design. It should be your input because you are doing that type of testing. The type of testing which is called product test for which I require a requirement document. What you have to realize is that I can generate a product test plan even without the software having been written. Based on simple requirement document, I can have a product test plan. You have a software life cycle. The life cycle doesn't go like this. The life cycle goes like this till it reaches construction. Then it goes to unit test which is on the side. Then it goes to integration test. Then it goes to product test. Product test is equivalent to functional spec. When you draw that line, the horizontal line tells you at what stage I can begin writing my test plan. I can begin writing my integration test plan after I have got the design. Because I know how each modules interact with each other. So, I have got an integration test plan. Once I have a requirement even before the modular design, because it is user requirement, I can give a user acceptance plan. I can give a product test plan. I can always generate. But any test plan requires an input. And the input can be finished product test. Then I don't know whether you have covered everything. Because product is written to a specification. That is specifically because of your input. In Excel sheet, you see that first test case mention, then input is mentioned. That Excel sheet can be generated only based on an earlier document. And if I do, how will I review your test case document? Whether it is complete or not? I can only review it if I see that this document has 10 features. I have covered 10 features. Unless your test document has got a back reference to what you are testing, I cannot even review it. That is why I am saying your test document requires a back reference. Now testing is a very, very important phase of software. I have told my people, you cannot become a good programmer unless you are a good tester. And once you become a good tester, you automatically will write good programs. Because you know what testing is. Testing is the most important feature of a programmer's character. I am a very great tester. I am a great programmer also. We have an SRS. SRS is too high level for you. You are doing actually something like a unit testing or maybe at the integration level. There should be an intermediate document. You are automated test with unit test, you are other test with integration test. Your GPS testing will probably go into the product test category. What did you do? So it started with understanding the code base. So I ultimately moved on to implementing Google Analytics. So I will be demo view of the app. These are the different views I have created. The default view and the enhanced e-commerce tracking. So basically an overview of this data. Sessions is the number of times people open the app. I can set the time for a session, 5 minutes, 10 minutes, 15 minutes, whatever I want. Average session duration, by the time the user leaves the app and kills the app. This is not minimized. This happens when they kill the app. Average session duration. Bounce rate is someone opening the app and going away. Which doesn't happen currently because we have tested it ourselves. So we are not going to close the app automatically. Goal conversion rate. I will get to that later. Enhanced e-commerce. Enhanced e-commerce is one of the special libraries that Google has. So Google has an e-commerce API which they deprecated and introduced enhanced e-commerce. So these are basically, I have set this funnel. So this funnel, the downside is it has a limit on the number of hits. Which is why error analytics we are doing via Flurry analytics. So we split analytics into two parts, Google and Flurry. So we have more hits going to the dashboard. So we can analyze them. This is a funnel that has been set up. So when a user views the product, adds to cart and checks out cart. That is the ideal goal. So it will be logged whenever there is a hit accordingly. Now what is a hit? So Google analytics has, enhanced e-commerce has four basic fundamentals. So impressions, events, transactions, conversions. Impression is when I view a product. It's made an impression on me. Impressions can also be when I open a product and view related products. So that is another impression. So typically in a real life flip cart and all don't go more by impressions. They go more by related products. Because the idea is again clustering. It makes it easier to analyze their user group. And accordingly they can apply algorithm and machine learning to analyze the user set. So the entire idea of analytics is not to analyze what a user does. It's to analyze what a user group does. These are a few charts that have been made. You have an overview of the number of users. Now there have been no users because this is the time I actually started creating dummy data for this. So you can see. I did not create the user group yet because it's not real data. So creating user groups right now would lead to a lot of issues in analytics later. So there is a channel grouping option. I'll get to that. I'll get to that. But since he has not written software, we can say that it will work. We have used software. But whatever way, you have done some configuration on that. Yeah, a lot of these charts. So the idea behind Google Analytics is reports and segments. So this add segment option is basically adding either user report or screen views or demographic language session. So all that data and adding segments, creating reports. Yeah, I configured Google Analytics. And for Google Analytics to work, you also need data to go. So adding all the trackers to the various functions in the code. So when I view a product, that code should send that hit with that label to Google Analytics. So everything in the app, when I view a product, when I send a referral to another member, when I check out a product, when do I want product details? Yeah, in the code. Some tracker to it, so it sends a hit. So which is why again, we went with slurry for error reporting, because errors are something you want to look at more closely. So errors are also going to send a lot of hits. So currently we don't have many errors, but we may have errors at some point. So we segregated errors and data of the user. So these are the goals that we want the user to complete. And accordingly there is conversion for each goal. I'll get to product. So this is a product. This is the number of times it's been viewed. I haven't set revenue setting because we still haven't decided on what revenue model we want to go with. Ideally it's supposed to be a zero revenue model. So for us, what the price of the product is and what we are getting out of it won't make sense. Instead if we add, okay, this product has this much revenue for us. So that data would make more sense. So that is what we are setting up currently, a proper revenue model. But ideally this is the product hits from this screen. Now these have been segregated by screen. So from the cart activity which is the final checkout, these are the products. When I go into product detail or search results, those are other products. So you basically know which they have viewed and finally which they have selected to add to their cart. So this is cart activity. So these are the ones they have decided to add to cart and these are the number of times they have been added to cart. So there are various parameters I can segregate them based on. So one more important as I was discussing cohort analysis. So this is one of the beta functions we added. But the reason for this was this function was there before. They added a specifically a separate section because it is that important. Now cohort is basically a group of users like I was saying. So when you run. No problem. Yeah. You're going to go over it, right? Yeah. Okay. Then somebody else will add some function. As in? How do you say wrap over it? As in? Yeah. So that is what I am saying. So I have documented I am making the next week I am here. So the next week my entire task will be to modularize this code. So all they have to add is one tracking function there. That's it. And I will document that accordingly. There is already Google documentation but I will document that also. Okay. You add this when you. So there are events and there are activity trackers. So an event is when I click something. So ideally an event would be when I click I can add an event to an activity and modify the labels accordingly. But event is when you click activity is when you load a screen. So I've segregated the code accordingly. I can show you the code. So yeah. So cohort analysis helps you analyze by segment. So suppose I want to track from June 25 for seven days. Okay. I did some activity. I introduced some coupon. I introduced some new offer. How many of my users actually stayed with me for the period of seven days? So I can add a number of days to that. I can add a different segment to that. No sir. Google tracks it. Yeah Google tracks it but depending I have to send the tracker to them. Yeah. So apart from that you are testing I did a lot of documentation and I made flow charts for various designer and developer issues. Okay. Thank you. Thank you. And personally I would like to thank Nagesh sir, Kiruzama, Mavinath sir and Sameer sir also.