Tuesday, December 13, 2011

What’s cool about the training aspiring testers / fresher’s are subjected to?


Well, this blog is actually inspired by the excellent training programs that are conjured up to train fresher’s from campus in the field of Software Testing. The investment in terms of time, effort and money is just phenomenal. They typically go through a series of lectures, power point presentations, quizzes, self-reading (more like mugging up definitions for your board exams), etc… for a period of 3 – 6 months at the end of which they take up exams (again very similar to the board exams conducted by our prestigious universities). And the interesting point to note here is that these very same companies lament the fact that the university curriculum does not really prepare students for the industry. Talk about hypocrisy.
          I am not sure how many hours Sachin Tendulkar spent in classrooms, theoretically learning about the nuances of batting; listening to lectures and power point presentations rather than honing his skills on the field. Or for that matter how many lectures Aamir Khan had to listen to learn the art of acting. Well I really don’t think they would have spent too many valuable hours listening to just theoretical concepts. They are excelling in their fields due to the fact that they learnt from their seniors by observing them, picking up tips from their respective coaches, honing their skills with hours of practice, being unafraid to make mistakes with the conviction that it will only help them become a better practitioner in their chosen field.
          This is true of not only sports and the film industry. Look at the people who paint our houses so well, or our excellent carpenters. They did not pick up their skills in the classroom. Which brings us to the question – “Why can’t we do the same in the software industry? Especially Software Testing”. We can introduce fresher’s from campus to Software Testing by first letting them observe how some experienced Testers test applications / products, then engage them in ‘Paired Testing’ sessions with experienced Testers and giving them good direction to do a lot of self-learning in the Software Testing space. One really good link where there is a consolidated source of key things an aspiring tester should learn is – 


          Apart from this, there are also some great Software Testing experts, whose articles one can read and follow their blogs to get regular updates on Software Testing and also new approaches to Testing, some of them are listed below – 

http://testobsessed.com/

Tuesday, November 22, 2011

Using a Mind-Map to help you Test better


Well to start off with, this technique is surely not rocket science. I was introduced to this technique by Pradeep Soundararajan, one of the most respected Software Testers in India who blew me off my feet with the sheer simplicity of the technique. A Mind-Map is essentially a very simple way by which a Tester can visually represent all the hard work he has done in a graphical manner. This include the features he has tested, the questions (both resolved and unresolved) he had about the product under test, the bugs that he uncovered during testing and so on.
            Now, you may have a question as to how a Mind-Map can actually help us as Software Testers? Well, how many times have we faced a situation where we have done a lot of sanity / exploratory testing without really documenting them and at a later point in time, not really being too sure about the Test coverage / the features that we have tested. Consider another situation where the testing team has got a clarification from the development team and not documented it anywhere. At a later point in time, there could be an issue where both the development and testing teams claim that they are correct.
            Using a Mind-Map can help us document all this and more as is evident in the Mind-Map below (the Mind-Map shown below is for a GL Posting Entry in the FI module in SAP) – 
 
            We start with creating a central node for the ‘Test Case / Feature’ to be tested.  Next, we attach the ‘Test Case’ document (if available) as a sub node. The ‘Process / Functionality’ (features in scope) is listed as the next sub node. And next we get on to the action – ‘Test Execution’ where we list down the exact test steps that we run, when a particular test cycle has been run, what are the areas where there is an issue and needs to be flagged and so on. ‘Questions’ is also another sub node that can be added, where we document the questions / queries that we have raised along with the responses that we have received. And lastly our favorite node ‘Bugs / Issues’ where we document the bugs that we have uncovered along with the flag number (if applicable) from the ‘Test Execution’ and the ‘Defect Id’ from the defect tracking tool.

Tuesday, October 25, 2011

How you can go one up on the development team!!!


As testers, have you ever been faced with a situation where the developers think they are much more smarter than you and that you are not really capable of giving them technical suggestions / solutions on how to improve the quality, performance, visual appeal of the website.
Well, here’s a tool that helps you do just that. Well it’s not really a tool so to speak, to be more precise it’s a browser add-on for Firefox that gives suggestions on how to improve the performance of the website. The prerequisite for the add-on – ‘YSlow’ is the installation of the ‘Firebug’ add-on.
The interesting thing about ‘YSlow’ is that when compared with other add-ons like ‘HttpWatch’, it does not only tell you where the problem in performance lies but also tells you how you can address these issues on performance. ‘YSlow’ basically grades sites on a scale of ‘A to F’, A – being the best in terms of Performance and F – being really bad in term of performance. This grading is done considering about 23 rules / best practices that the ‘YSlow’ team has identified which are critical for gauging the performance of a website.
‘YSlow’ assigns a weight for each of the rules and the grading of a website is based on the total weight that a website gains. ‘YSlow’ also assigns a grade for each of the 23 rules so that Developers / Performance Engineers can make informed decisions on how to improve the overall performance of the website. And of course using the ‘YSlow’ add-on, you can always give excellent, well informed suggestions to your developers on how they can tweak their code so that the overall performance of the website improves.
The add-ons for ‘Firebug’ and ‘YSlow’ can be downloaded and installed from the link –

                In the screenshot above, ‘YSlow’ has graded the ‘Google’ homepage as ‘Grade A’ for the overall rating.  ‘Google’ also gets a grading of ‘A’ for the rule ‘Make fewer HTTP requests’ which is not really surprising considering the fact that the UI of the ‘Google’ home page is quite minimalistic whereas the ‘Google’ home page gets a grading of ‘F’ for the ‘Add Expires headers’ rule where if there is a ‘Expire Header’ assigned to all components on page, the component will be cached and hence there would be fewer HTTP requests the next time the page is loaded. Usually there is a ‘Expire Header’ assigned to images only because of their size but all other components like scripts, style sheets, etc. can be assigned  an ‘Expire Header’.

Thursday, September 15, 2011

Test "Your" Application and not your "Users’ Patience"


            The key reason behind me writing this blog is the fact that while there are a whole host of free tools, browser add-ons, et. all available to gauge the performance of web applications, there are no free tools available to gauge the performance of applications built on SAP GUI. Well that is what I thought (and probably a lot of people out there thought) when I found out that I was wrong. Well that is essentially the beauty of SAP, there are so many useful utilities available within the SAP landscape, which can actually help us testers accomplish our work more efficiently and effectively.
            One such utility is the TCode – SE30, which can basically help one gauge the performance of the required TCode / Program / Function module. The analysis provided by this TCode is at three levels – ABAP, Database and the System levels. A complete analysis of all the programs that have been executed during the test execution is also available for users to view.
            
Here’s a quick guide on how to use this utility –

1. Run the TCode – SE30 on the SAP GUI
          

















2. In the ‘Transaction’ field, enter the desire TCode for which the analysis is required (say VA01)
3. Click on the ‘Execute’ button and execute the regular SAP functionality
4. Once the operation is completed (in this case, the    ‘Creation of the Sales Order’) the ‘Performance Data File’ can be analyzed as shown below

5. To view further details with regard to the actual programs being executed, click on the ‘Hit List’ button

Wednesday, August 24, 2011

ECF Conference at SAP LAbs

    “Engineering Cross Functions” Days (ECF Days). Wow!!! The very title of the conference to be held at SAP Labs was mind boggling to me. Well, when I was given the opportunity to represent my company at the conference, I grabbed it with both hands. The conference was to be held on 2 days, the 17th and 18th of August 2011 and we were scheduled to be there on the 18th of August. The broad objectives of the ECF Days was for SAP to understand how their customers test the SAP Products and for customers to understand how SAP tests their products internally and also provide a platform for both SAP and their customers to share the best practices of testing SAP products.
    The ECF Day began with the welcome and introduction of us customers at SAP Labs. Apart from MindTree, the other customers who had been invited were – Vodafone, TVS, HUL, Infosys, GMR Holdings and ABB. The IT - head of Vodafone shared some of the best practices in Testing followed in Vodafone, it was great to see that at Vodafone they followed a pretty robust methodology of testing using one the best automation tools available in the market for SAP Testing – SAP TAO (Test Acceleration and Optimization). It was also very interesting for us to note that Vodafone also used the Business Process Change Analyzer (BPCA) to track all the changes that were made on the SAP systems, monitor those changes and modify your automated test scripts to take these changes in to account during execution.
    This was followed by presentations by the other clients of SAP in their respective pods. We had a slot for two hours, where we could share our best practices with the testing folks at SAP Labs. We spoke to them about how we use Mind Mapping techniques to document myriad information like test environment, functionalities, test steps, questions, bugs, etc… which is especially useful when testing in an agile environment. We also talked about how we use ‘SAP GUI Scripting’ to automate some parts of the test which are repeated over and over again. The response from the folks at SAP Labs was terrific and enthused us to deliver the sessions again and again to packed audiences.
    Post lunch, we had sessions by the testing folks at SAP Labs where we got to see demos of a lot of cool stuff that the folks there were using to test SAP Products. There was a demo on SAP TAO and having worked on TAO, I must say it is one of the coolest tools to work on and the way it seamlessly integrates with HP Quality Center and SAP Solution Manager is fantastic. There was also a session on ‘Model Based Exploratory Testing’, a new tool that makes it possible for users to create, modify and execute test scripts on the fly and I should admit that I can’t wait to get my hands on the tool and start using it. There were also sessions in the ‘Extended Computer Aided Test Tool’ (eCATT) and how it can be integrated with HP Quick Test Professional. Another really cool session was where we were shown how we can do performance testing on SAP ECC using ‘Transaction Codes’ (TCodes) like ST05, ST30, ST33, STAD, SE30, etc… which are already inbuilt in the SAP ECC system.
    Well, in total I must say that this was one awesome conference where I got to learn a lot of really cool stuff on the topic of testing SAP Products and hopefully people could also learn something from me. At the close of the conference, we met with the Senior Management in SAP Labs who briefed us of their plans to have more such testing events in the future and collaborate a lot more in the SAP Testing space and also give us access to their new products and tools. Well, hopefully this initiative comes through and we get to work on the cutting edge technology that is being developed at SAP Labs very soon. Until then, there is a lot of research and learning that I need to be doing in the SAP Testing space from what I learned from the conference at SAP Labs.

Friday, August 12, 2011

SAP Automation Tool for Free...

It was a regular Thursday afternoon. I had finished my hot cup of milk and making plans for the weekend. My friends were proposing that we catch up early on Friday evening and go for a movie followed by dinner and then crash at one of our houses. I was making grandiose plans which began with me leaving office at 4 PM when out of the blue I got a call from a Senior Manager of one of the key accounts asking me if I could help out her team in testing their SAP Application because a few members of her team had called in sick today and would not be available the next day as well. I cringed initially because if I said YES it meant I would not be able to leave early but on the other hand if I said NO, it would mean that I miss out on the chance to work on a really cool SAP Application on a module which I am fascinated by.
                Well! There I was on Friday morning bright and chirpy; rubbing my hands in delight at the thought of dueling with my fascinating SAP Application. (Hey don’t get me wrong here; I had taken sufficient pains to ensure that I rescheduled my weekend plans with friends so I could have the best of both worlds). Murali, the Test Lead arrived and after the usual Howdy’s exchanged, we got down to business. So Murali, I asked what is in store for me? Give me some really challenging, exciting test cases to execute. Murali allocated four test cases and said try finishing these by end of day. Well four test cases are not really that much right and I took a quick glance at how many steps each of the test cases comprised of. On average, each test case had about 15 steps so I rejoiced thinking that I could still manage to get off early as planned initially but then I asked Murali are you sure that’s it? I could do more you know. Murali gave me a wicked smile (I would soon know the reason for it) and said you execute these first and then let’s see.
                I logged in to Quality Center and got down to the business of executing the test cases (at the back of my head, I thought hey here’s a chance for me to impress all and sundry with the speed at which I can execute test cases and find defects) . The first few steps went on smoothly and eventually I came to the monster step. Monster because here was a step, where I had to copy and paste values from an excel sheet to the SAP application for 150 rows. Sounds pretty simple so far doesn’t it? But here’s the catch, I could copy and paste only about 7 rows at a time because the limitation was that I could paste in to the table in the SAP application values only for as many rows as that were visible in the SAP table. Now that’s not the end of it, these values had to be pasted column wise because the excel sheet did not account for all the columns that were present in the SAP table and just copying and pasting from excel on to the SAP table, would lead to values being pasted in random columns which were incorrect.
                The reason for Murali’s wicked smile suddenly dawned on him and after going through the painful process of copying and pasting 7 rows at a time for about 8 columns I was completely exhausted and bored and clawed my way to Murali’s desk asking if there was a better way that he knew of in which this could be achieved. Automation was the only option that we could think of to perform this incredibly boring task. But for automation, we would need QTP and if we need QTP, we need money and loads of it which was not budgeted for in the project. So I then resigned myself to the task of completing the other test cases which were quite similar to the first one and somehow managed to survive the hazards of copying and pasting values an infinite number of times. I was relieved by the time I completed the execution of all four test cases and thanked God that it was a Friday and left office.
                Monday morning, I narrated my horror story to my team mates (which they seemed to enjoy by the way) and vowed to find a better way to accomplish this incredibly boring task. I Googled a bit, spoke to a couple of my team mates and we hit upon the idea of using “SAP GUI Scripting” to perform these kind of repetitive tasks. It was free, easy to use, and available on all SAP GUI applications and needed very little grey matter to get started on using it. I immediately got down to trying it out on one of the SAP GUI applications that I had access to and voila it was a breeze to use it. The test case that I took 2 hours to execute earlier was now easily executed in less than 10 minutes with “SAP GUI Scripting” and the use of some simple excel macros.
                Now, that was my moment of truth. All it required was just a little bit of googling, a little bit of perseverance and a desire to make things easier for the lazy me.
                Some basics of using SAP GUI Scripting –
·         Log in to SAP GUI
·         Click on the ‘Customize Layout Button’ and select the ‘Script Recording and Playback’ option
·         The ‘Record and Playback’ widget will be displayed
·         Click on the ‘Record Script’ button
·         Perform the process that needs to be automated and after recording, click on the ‘Stop Recording’ button
·         Click on the ‘More’ button and ‘Save’ the file in desired location (the file will be saved in “.vbs” format)
·         To run the recorded script, click on the ‘Playback Script’ button
Note – in some of the SAP Servers, the value of ‘sapgui/user_scripting’ parameter may not be set to TRUE. To enable scripting on the server, navigate to the ‘RZ11’ transaction, enter the ‘Param. Name’ as – “sapgui/user_scripting”.

Click on ‘Display’ button and change the ‘Current Value’ field to “TRUE” and click on ‘Save’