Friday, July 22, 2011

Stress Testing [What How When]

This post aims to throw light on questions such as, "what is stress testing", "how to do stress testing", "when to do stress testing". So basically, it gives you my visualization of stress testing. Specifically, how i see it and feel of it. In Stress testing you try to break the system under test. Rather you can also call it study of Emotional quotient of your system. How well it behaves when it is subjected to stress. Definitely this means of finding innovative ideas to give the system/process a really really tough time. This can be achieved by expanding its resources or by taking resources away from it. Often in the latter case (but sometimes in both) it is called negative testing. The main purpose behind this testing is to make sure that the system fails and recovers gracefully. So, the keyword here is RECOVERABILTY.

It is to be understood that the performance testing demands a very controlled environment. Since you are going to set baselines and compare against old baselines, you have to be very cautious about the environment, architecture, OS etc. But Stress testing enjoys the beauty of randomness. You may very well doubt on what beauty I am talking about. But seriously, only a Good tester can tell you how much he enjoys in inducing chaos, catches and unpredictability. I felt this pride and fulfillment many times in Adobe and Symantec.



It should be instilled deep that stress testing is not breaking the system purely for the pleasure of breaking it. Rather it allows observation of how the system reacts to failure. It tests recoverability, error messages, breach of security due to unpredictable behavior, hangs etc. For example the simplest you can do is to parallelly run processes that consume resources. This may be CPU, memory, disk, network, database consuming processes. Think about tools and utilities available. For instance read my post related to 'ulimit' tool on linux. [PS: There are thousands of tools. i am just giving an example, because that is also very helpful. And yes, for me you clicking on Advertisements is very helpful.] If no tool is working out you can think of writing you own test application. Simplest is an application with overriden new operator. Look my post on that. Find from references below. Think about doubling the baseline number for concurrent users. What happens if different protocols used to access same system at same time. What happens if the Files being processed are of very large size, or of very small size.

Remember my pictorial representation above. Stress testing means 'giving your application really really tough time. Think about innovative ways to test the Emotional quotient of your system.'

But do remember to come to this test only after your functional and integration testing has been done. If you are only responsible for some module, then you may stress test your module/API/DLL/lib/so (Hmm..anything) once your Acceptance and Unit Testing are finished. Obviously in Agile environment, due to time crunch, Functional testing and stress test can be started in parallel on different systems. Although the former is more important, but unfortunately time is the only thing you go out of often. So stress can be triggered on some machine. And you can analyze results of functional test. And if FT is pass, you can also analyze stress test result. For Antivirus products, you can have a stress file set that contains Zip compression bombs, large files, files having viruses. For Desktop publishing applications, your test set files may contain large application files, fuzzed files, or files not saved properly, or any set of files that are known to give tough times to your system.

References On my Blog:
Ulimit as a tool on Linux for Stress Test
Different types of Software Testing
Overriding new and delete operator for stress testing

Monday, July 18, 2011

Panoramic 3D view from tongue

Welcome to a panaromic view from a tongue. This is obviously created by a brilliant mind. Nico Roig created this fantastic visualization of tongue in mouth at.


Dentistry in depth in Barcelona

It is said that the image of the dentist is real while the mouth is creation. To see the original post Click. So If you ever wanted to see what it's like sitting on the tongue, you have your choice. Yuk!!

Augmented Hyperreality 3D Video visions

Now this is something seriously good invention of its type. The day these types of videos become common and relayed by all DTH or Channel broadcasting services, we will feel we are really at the live location. That would really be the Real LIVE Telecasts ;)


Comment on on did you find this video ;)
Pls Support the blog by Clicking Ads.

Font controlled by face Real-Time

Here comes an intersting news. Font developer Andy Clymer at H&FJ has created a tool that supposedly modifies the type characteristics in real time based on facial expressions. Check out the video:



An excerpt from their own blog,

I’m intrigued by the potential to control local and global qualities of a typeface at the same time: fingers and mouse to design the details, faces and cameras to determine their position in a whole realm of design possibilities. I wonder about the possibilities of a facial feedback loop, in which one’s expression of wonder and delight could instantly undo a moment of evanescent beauty.

I found this really interesting ;)

Wednesday, July 13, 2011

Facebook Friends Phone Directory Print

Now this is a realy really awesome tool by Facebook itself. You can access it here:
http://www.facebook.com/friends/edit/?sk=phonebook

To make it specific, if you are logged into your Facebook Account, you can visit the above page to take you to the Telephone directory of your friends. To test you can Click to Get Facebook Friends Telephone Directory

You can print this too ;)

Facebook Friend Collage thumbnail pictures

I have found a hidden [actually not so advertised and well known] Facebook feature. It is the ability to view your friends as a grid of profile pictures.

Here's how to make it happen:

1: Log in to your Facebook account.
2: Click the Friends tab.
3: Select the drop-down box. Choose list separator indicated by (-) or grid option there.

Visual Help: Checkout the screenshot. Click on image to enlarge it.



Result:
You shall get a good collage of your entire friends list. The thumbnails photos are arranged in a grid fashion.

Monday, July 11, 2011

ulimit to set linux resource for testing

Recently I started using ulimit. I can seriously recommend ulimit utility as an awesome tool. Its location is /usr/bin/ulimit. Before begining let me accept that the better title for this post would have been 'how to use ulimit on linux' or 'setting resource limit and unset using ulimit', or better still, 'what is ulimit?'. [Huh..but what is wrong with my title ;) ]

Coming back, You can use 'ulimit' to set or display a resource limit. The available options are listed below. The limit for a specified resource is set when the limit is specified. The value of limit can be a number in the unit specified with each resource, or the value unlimited. I dedicate this post to my fellows in my team. My team including my manager is really great.

Back to the ulimit, the various ulimit Command options are as follows:

-a
Lists all of the current resource limits.
-c
The number of 512-byte blocks on the size of core dumps.
-d
The number of K-bytes on the size of the data area.
-f
The number of 512-byte blocks on files that can be written by the current process and its child processes (files of any size may be read). On file systems (such as vxfs file systems) that support large files, setting this limit to unlimited represents the largest file size supported on the file system. See ``Notices'', below.
-m
The number of K-bytes on the size of physical memory.
-n
The number of file descriptors plus 1.
-s
The number of K-bytes on the size of the stack area.
-t
The number of CPU seconds to be used by each process.
-v
The number of K-bytes for virtual memory.
If no option is given, -f is assumed; that is, you can specify a limit with or without the preceding -f option, and both cases are interpreted as an attempt to raise the file size limit.

There is a provision of hard and soft limit. i have never tried that, but in case yo want to explore more you can search ulimit man pages. or can even refer Click

I am attaching screenshot of ulimit -a option. this would clearly show all the limits currently set:



There are two important operands:

1) limit
Gives the resource-specific limit to use as the new resource limit.

2) unlimited
Sets the largest allowable resource limit. It is necessary to set limit to the value unlimited for access to large files.

It is important to note that ulimit works across all flavors of linux. Even on WindRiverLinux. This comes as a very handy tool for QA people testing on unix environments. Once set, you can reset the limits again using the same command. You can also make it unlimited. Following two scenarios are of great use while testing:
1) ulimit -c unlimited: this will make maximum possible space available for making core dumps. This will help fruitful core dump creations to be consumed both by the QA and dev people.
2) ulimit -v unlimited. this will make maximum possible space available for virtual memory. So this can also regulate or simulate low memory conditions.

I guess this much is enuff. Rest you can explore. Please do not forget clicking on a few Advertisements. Google will give ranking and points to my blog, you will get good contents always. ;) rest you know!!!

Scroll bar in HTML Table using DIV and CSS without Javascript

This one was really really tricky. The internet is full with hundreds of different implementations, i dont know why. There are multiple Javascripts mentioned for this. Cross platform concerns are raised for this. Google Chrome not supports..., and Firefox not supports...I dont know what not are mentioned on the internet. A simple google search saying scrollable table in html also does not helps you out.

You can see instances of same problem replicated at hundreds of places some of which are mentioned below. Check out them before reading below. All are awesome workarounds, but none of them tackles the problem.

1) See long javascript implementation at Click here. But problem not solved.
2) See CSS+Javascript workaround at Click here
3) See a solution at Stackoverflow.com at Click here

As mentioned, all the above implementations are ingenious ones. But i dont know why so much pains have been taken up for a simple problem. this also kept me wandering from one solution to other when I wanted one for my own implementation in the facebook application created by Mohd Anwar Jamal Faiz. [Obviously me ;) ]

You can check out this implementation in live at Facebook Application ICEBREAKER. You can search for this App using your facebook account or may also click here Click for FaceBook App Icebreaker. Or if you want to open The icebreaker app direcly in you Facebook account, you may click here For Icebreaker in Facebook account directly

Obviously man! you have to be logged in your facebook account. In case you are not, it may ask you to login. The screen shot is attached here, where you can see the Table having scroll bars. You may click on the photo to enlarge it. [Also, you must click on a few Advertisements. it wont cost you anything, but will help me posting more valuable stuff without trying to find new means of livelihood. Hahaha ;)]



For all the evangelists and critiques, I have tested this implementation over IE6.0+ to IE 9 , FireFox, Google Chrome, PDAs OS and browsers, Blckberry, MacOSX. So I guess I have done a pretty much stable implementation. Hmmm... I think you are appreciating me. ;)


The solution is utterly butterly simple. The trick was straight but only a few can thing it that ways. The scroll attribute can be easily produced using a div element insite the row or column of the table. Undoubtedly, the div will have its inline CSS. you may obviously govern its property using external CSS, but that is obviously not the question.

For example if you have a table code as follows:

<table id="xyz">

<tbody>

<tr>

<td>

blah blah blah

</td>

</tr>

</tbody>

</table>




You must rewrite it as follows:

<table id="xyz">

<tbody>

<tr>

<td>

<div id="Anwar_jamal_table_div" style="overflow:auto; height:100px;width:200px;">

blah blah blah

</div>

</td>

</tr>

</tbody>

</table>

</blockquote>




You can adjust The height,Width As You like.

Time for me to end this post. Write to me or comment here, if something really messy you want to do and this post does not helps you. in all cases, click on a few of the Advertisements, as that is my bread and butter boss!!
Cheers ;)

Friday, July 8, 2011

Google chrome wrong message for network diagnostic

If your internet connection is not available or lost, and you try to open some website over the internet using Google Chrome, you get an Error. Absolutely, there is no problem untill now. But Google advises you a method to verify and check the problem. Now if that resolution is wrong, there is a problem. And if the wrong resolution is given by Google, it is a big problem.

The same issue is also posted in Google Chrome Help forums at Click to See this in Google Forum
See the picture for instance: (Click on picture to view it large)



Google says to go to %windir%, which simply means the windows installation folder. On my system it comes out to be C:\windows
After this it says, to launch network diagnostic\xpnetdiag.exe. Now there is no file as such at said location.

Actually there are two problems:

1) If you type what is advised by google on the Start->Run.
%windir%/network diagnostic\xpnetdiag.exe
Then there is a error saying, there is no folder c:\windows/network. Actually the path should be in double quotes. The people proficient in computer systems and troubleshooting would even know this beforehand. But I dont know why Google believes that even general people would know of this.

2) On my system, XP SP3, there was no folder named network diagnostic at all in C:\windows. So that means even if I used double quotes in the path, I got know resolution.

My personal gut feeling is that, Google sould not advise those methods which are not generic. Also, the advises should be easy to understand by the common masses. I guess, my voice being heard.

Thursday, July 7, 2011

Facebook Application Icebreaker by Mohd Anwar Faiz. Do we actually need an Icebreaker Tool? [motivate suggest friends to talk and spread love]

To give a background, Icebreaker is a Facebook Application. IceBreaker is the cute way to spread love and friendship by motivating communication between your friends!!

You ca use the *IceBreaker App* to request your Friend 1 and Friend2 to 'Break the Ice' and Talk with each other. Both of your friends will be informed about your kind gesture on their Facebook Wall. Literally, the phrase 'Break the Ice' means to break down social or emotional stiffness and start talking.

You can visit Icebreaker App on Facebook.Icebreaker App on Facebook. This link may require you to be logged into your Facebbok account. This Application is envisioned, designed, and authored by Mohd Anwar Jamal Faiz. No need to mention, its Me. Cheers ;)

Icebreaker Application is hosted on meonshow servers, as this is a product from the owners of Meonshow. To visit directly the Icebreaker page on Meonshow servers Click hereThis will ask to login through your facebook credentials, if you are not logged in yet.

Now coming back to the question Do we actually need an Icebreaker Tool... I guess this is as trivial question as to ask do we really need to be good. Or keeping it simple, do we really need to advise our friends to talk. I guess, it is an absolute yes. We need to tell our friends that they have not been talking to each other for long. The causes may vary from job, work pressures, family issues, or it can even be as small as forgetting. Whatever be the cause, your request of talking among themselves will be a boost, a reminder to them. This will mature your relations with your friends and also they would start sharing thoughts with each other. Afterall, this is what is life. And this is what Facebook stands for.

You can view this discussion at the official Icebreaker Application discussions page too. Click Here for Icebreaker facebook Discussions Page

Wednesday, July 6, 2011

Terminal (Shell) on Mac OSX or Unix continues to show a folder even if it is deleted or renamed

I have logged this defect with Apple. But since then I have only been told it is legacy Unix behavior. And Unix is supposed to behave that way. In any case, I find it valuable to share this now.

-------------------------------------------------------------
This is already present on Apple Website since 19th March 2010 and has one response in addition to the emails. Read Further Apple Mac OSX Bug By Anwar Faiz.
-------------------------------------------------------------
Make a folder, let us say "xyz" on desktop and cd to this location on a terminal using 'cd' command.
Now rename that folder to "abc".
Now type 'ls' command on Terminal to see the content of folder "xyz", it still shows.
In addition if you use 'pwd' command, it still shows that you are in directory "xyz"
Worse is that even if you delete the folder "xyz" and empty trash. Even then using 'pwd' command would show your present working directory as "xyz" folder.
--------------------------------------------------------------


I got a detailed response for this. The same can be read over at same Apple Official website also. I am thankful to Mr. Bob Harris from New England, USA, who took time to explain.:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
All expected behavior.

The 'cd' command makes a chdir() system service call, which opens the target directory and stores the open file descriptor in the process.

When you rename the folder, that just changes the directory entry in its parent folder, it does not change the file system inode for the directory nor does it affect already open file descriptors to the directory.

So when you do an 'ls' with no path, the 'ls' command will ask the file system for the '.' (current directory), which the file systems knows to use the current working directory it already has saved in the process.

This is how Unix has worked forever.

'cd' and 'pwd' are bash built-in commands, so bash has cached the last 'cd' path, and when you issue 'pwd', bash just echos the cached path information. It does not verify anything before displaying the path.

If you want to see the real current path, then try using

/bin/pwd

this will do the more complex reverse path reconstruction, which can have some unexpected responses, because of symbolic and hard links that may have been used to navigate down to the current directory location.
Worse is that even if you delete the folder "xyz" and empty trash. Even then using 'pwd' command would show your present working directory as "xyz" folder.

Again, bash is just echoing the cached path that bash last knew about.

Also since the process still has an open file descriptor to the directory open in the process as the current working directory, the file system will defer the actual directory delete until after that file descriptor is closed.

The fact that a file or directory will not be truely deleted if it is still open, allows an application to continue to use a file if it has it open, even when some other process deletes the file. This can be good for the application, but if that was a huge file and you were trying to free up space, you would not see the space returned until after the process that has the file open, closes the file.

You can use the 'lsof' command to find what processes have what files/directories open.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

In addition, it was advised that, if I have additional Unix or Terminal related questions it would be best to post them in the Mac OS X Technologies > Unix Forum. So, one place where you can also redirect yourself for taking other unix Vodka Shots is Apple Unix Discussions

Monday, July 4, 2011

Mohd Anwar Jamal Faiz listed in Adobe X Credits - adobexcredits -on official Adobe.com website in Licencing and installer technologies

Hi,
This title seems to be pretty straightforward in explaining what i want to convey.
again is self explanatory:
"Mohd Anwar Jamal Faiz listed in Adobe X Credits on official Adobe.com website in Licencing and installer technologies"

Obviously, Mohd Anwar Jamal Faiz is me ;)

You can see the AdobeXCredits Page here. View AdobeXcredits Page
You may also refer for information on Acrobat X Team Overview

My work in Adobe was truely a great learning experience with best minds of the industry. I could in short summarize my stay in Adobe as follows:

I worked in Adobe Systems from April 2009 - Jan 2011.

You can see the Credits in Adobe Acrobat v 10.1.2 from Help menu. The same is visible in Free downloadable Acrobat X Reader also. I am pasting snapsjot from version 10.1.2



I was Working in Creative Suite Team and helping development and API testing of CS Installer. The development was in Visual Studio 8.0, VC++, and XCode on Mac OSX. The Whitebox Unit test framework was an in-house one:Potluck. I was responsible for developing testcases, writing Unit test cases in VC++, adding to the framework and executing them. The test cases were maintained on TestStudio and for bug/defect tracking we used Watson. I worked in development and enhancement of a White Box Testing Framework and automation of entire process.

The biggest achievement was Develop a System to fully automate the CodeCoverage estimation using BullsEye. I developed the system and in its final forms, it was able to get triggered automatically, all code synched, build, instrumented binaries collected, functional testing done, results analyzed, reports prepared, and finally send via email and on a centralized host server where the reports can be viewed in Flash Swf animation.

I a sort of lead the Whitebox and Security Testing team of 2 people. Apart from using Excel Macros, VBA, various databases, XML, and dozens of utilities, my work primarily circumscribed Whitebox, security, performance, memory leaks testing. Some handy tools were Veracode, AppVerifier, Fortify, DevPartner, WinDbg, IBM Rational Purify, and Glowcode.

Definitely Perforce, MSOutlook, Office, McAfee AV, Google, Yahoomail, and Facebook were in routine ;)

Mohd Anwar Jamal Faiz wins in Symantec Cutting Edge Capture the Flag Hacking Vulnerability contest 2011

Hi
I am glad to post this news to my readers. The tilte is self explanatory:
"Mohd Anwar Jamal Faiz wins in Symantec Cutting Edge Capture the Flag Hacking Vulnerability contest 2011"

Obviously, Mohd Anwar jamal Faiz is me ;)

Symantec Cutting Edge Winners

You can click on the above link to find all Cutting Edge 2011 winners and also look at my photo.

Friday, July 1, 2011

Javascript to open new popup window center on screen

I have met this requirement several times and have written this many times from scratch.
I seem to forget the syntax and refer on the internet again and again. this time I formaly wanted to give it a place on my blog itself.
So here comes a simple java script function that opens a new pop-up window and puts it on middle of screen :-







For example you may try out the following link...
Click Here to open POPUP WINDOW

Clicking on the above link will open a new window. Voila!! U achieved a popup window. True, it was as easy as this. But the syntax to open a new window should be kept in mind.

You can return to this blog, whenever you feel like. There are a lots more advices, secret tricks, tips in programming. I do this for joy and passion. But no wrong if I request you to click on few of the Advertisement links. It would help me getting my bread and butter.

And for you all, I promise that the next article will be a very buttery. Yum! Yum!