Firefox showing blank Screen while Running with Selenium Webdriver

Working with Selenium Web Driver  and Firefox for the first time is very easy but it becomes a challenge because of the common error which almost everyone face is that Firefox gets launched but it waits for some time with blank Screen and no URL is opened and it fails with below error.

org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms. Firefox console output:
dd-on online-accounts@lists.launchpad.net installed in app-system-local
1416941874951    addons.xpi-utils    DEBUG    Make addon app-system-local:online-accounts@lists.launchpad.net visible
1416941874951    DeferredSave.extensions.json    DEBUG    Save changes
1416941874951    DeferredSave.extensions.json    DEBUG    Save changes
1416941874992    addons.xpi    DEBUG    Updating database with changes to installed add-ons
1416941874992    addons.xpi-utils    DEBUG    Updating add-on states
1416941874993    addons.xpi-utils    DEBUG    Writing add-ons list

(firefox:4105): GLib-GObject-WARNING **: Attempt to add property GtkSettings::gtk-menu-images after class was initialised
1416941876169    DeferredSave.extensions.json    DEBUG    Starting timer
1416941876196    DeferredSave.extensions.json    DEBUG    Starting write
1416941876316    DeferredSave.extensions.json    DEBUG    Write succeeded
1416941876316    addons.xpi-utils    DEBUG    XPI Database saved, setting schema version preference to 16
System JS : ERROR resource://gre/modules/BookmarkHTMLUtils.jsm:897 - NS_ERROR_UNEXPECTED: Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsINavBookmarksService.removeFolderChildren]
System JS : ERROR resource://gre/modules/BookmarkHTMLUtils.jsm:934 - NS_ERROR_UNEXPECTED: Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsINavBookmarksService.runInBatchMode]
************************************************************
* Call to xpconnect wrapped JSObject produced this error:  *
[Exception... "Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIAnnotationService.getItemsWithAnnotation]"  nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)"  location: "JS frame :: resource://app/components/nsBrowserGlue.js :: BG_EPDQI_runBatched :: line 1682"  data: no]
************************************************************
1416941876460    addons.manager    DEBUG    shutdown
1416941876461    addons.xpi    DEBUG    shutdown
1416941876461    addons.xpi-utils    DEBUG    shutdown
1416941876463    addons.xpi    DEBUG    Notifying XPI shutdown observers
1416941876467    addons.manager    DEBUG    Async provider shutdown done

(process:4152): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed

(firefox:4152): GLib-GObject-WARNING **: Attempt to add property GtkSettings::gtk-button-images after class was initialised

(firefox:4152): GLib-GObject-WARNING **: Attempt to add property GnomeProgram::sm-connect after class was initialised

(firefox:4152): GLib-GObject-WARNING **: Attempt to add property GnomeProgram::show-crash-dialog after class was initialised

(firefox:4152): GLib-GObject-WARNING **: Attempt to add property GnomeProgram::display after class was initialised

(firefox:4152): GLib-GObject-WARNING **: Attempt to add property GnomeProgram::default-icon after class was initialised

(firefox:4152): GLib-GObject-WARNING **: Attempt to add property GtkSettings::gtk-entry-select-on-focus after class was initialised

(firefox:4152): GLib-GObject-WARNING **: Attempt to add property GtkSettings::gtk-entry-password-hint-timeout after class was initialised

(firefox:4152): GLib-GObject-WARNING **: Attempt to add property GtkSettings::gtk-label-select-on-focus after class was initialised

(firefox:4152): GLib-GObject-WARNING **: Attempt to add property GtkSettings::gtk-can-change-accels after class was initialised

(firefox:4152): GLib-GObject-WARNING **: Attempt to add property GtkSettings::gtk-menu-popup-delay after class was initialised

(firefox:4152): GLib-GObject-WARNING **: Attempt to add property GtkSettings::gtk-menu-popdown-delay after class was initialised

(firefox:4152): GLib-GObject-WARNING **: Attempt to add property GtkSettings::gtk-menu-bar-popup-delay after class was initialised
1416941877193    addons.xpi    DEBUG    startup
1416941877197    addons.xpi    DEBUG    Ignoring file entry whose name is not a valid add-on ID: /tmp/anonymous6634144291667526254webdriver-profile/extensions/webdriver-staging
1416941877197    addons.xpi    DEBUG    checkForChanges
1416941877240    addons.xpi    DEBUG    No changes found

(firefox:4152): GLib-GObject-WARNING **: Attempt to add property GtkSettings::gtk-menu-images after class was initialised

    at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:106)
    at org.openqa.selenium.firefox.FirefoxDriver.startClient(FirefoxDriver.java:244)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:110)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:190)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:183)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:179)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:92)
    at org.openqa.selenium.example.Test.main(Test.java:16)
Exception in thread "main" org.openqa.selenium.WebDriverException: Failed to connect to binary FirefoxBinary(/usr/bin/firefox) on port 7055; process output follows:
dd-on online-accounts@lists.launchpad.net installed in app-system-local
1416941874951    addons.xpi-utils    DEBUG    Make addon app-system-local:online-accounts@lists.launchpad.net visible
1416941874951    DeferredSave.extensions.json    DEBUG    Save changes
1416941874951    DeferredSave.extensions.json    DEBUG    Save changes
1416941874992    addons.xpi    DEBUG    Updating database with changes to installed add-ons
1416941874992    addons.xpi-utils    DEBUG    Updating add-on states
1416941874993    addons.xpi-utils    DEBUG    Writing add-ons list

(firefox:4105): GLib-GObject-WARNING **: Attempt to add property GtkSettings::gtk-menu-images after class was initialised
1416941876169    DeferredSave.extensions.json    DEBUG    Starting timer
1416941876196    DeferredSave.extensions.json    DEBUG    Starting write
1416941876316    DeferredSave.extensions.json    DEBUG    Write succeeded
1416941876316    addons.xpi-utils    DEBUG    XPI Database saved, setting schema version preference to 16
System JS : ERROR resource://gre/modules/BookmarkHTMLUtils.jsm:897 - NS_ERROR_UNEXPECTED: Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsINavBookmarksService.removeFolderChildren]
System JS : ERROR resource://gre/modules/BookmarkHTMLUtils.jsm:934 - NS_ERROR_UNEXPECTED: Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsINavBookmarksService.runInBatchMode]
************************************************************
* Call to xpconnect wrapped JSObject produced this error:  *
[Exception... "Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIAnnotationService.getItemsWithAnnotation]"  nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)"  location: "JS frame :: resource://app/components/nsBrowserGlue.js :: BG_EPDQI_runBatched :: line 1682"  data: no]
************************************************************
1416941876460    addons.manager    DEBUG    shutdown
1416941876461    addons.xpi    DEBUG    shutdown
1416941876461    addons.xpi-utils    DEBUG    shutdown
1416941876463    addons.xpi    DEBUG    Notifying XPI shutdown observers
1416941876467    addons.manager    DEBUG    Async provider shutdown done

(process:4152): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed

(firefox:4152): GLib-GObject-WARNING **: Attempt to add property GtkSettings::gtk-button-images after class was initialised

(firefox:4152): GLib-GObject-WARNING **: Attempt to add property GnomeProgram::sm-connect after class was initialised

(firefox:4152): GLib-GObject-WARNING **: Attempt to add property GnomeProgram::show-crash-dialog after class was initialised

(firefox:4152): GLib-GObject-WARNING **: Attempt to add property GnomeProgram::display after class was initialised

(firefox:4152): GLib-GObject-WARNING **: Attempt to add property GnomeProgram::default-icon after class was initialised

(firefox:4152): GLib-GObject-WARNING **: Attempt to add property GtkSettings::gtk-entry-select-on-focus after class was initialised

(firefox:4152): GLib-GObject-WARNING **: Attempt to add property GtkSettings::gtk-entry-password-hint-timeout after class was initialised

(firefox:4152): GLib-GObject-WARNING **: Attempt to add property GtkSettings::gtk-label-select-on-focus after class was initialised

(firefox:4152): GLib-GObject-WARNING **: Attempt to add property GtkSettings::gtk-can-change-accels after class was initialised

(firefox:4152): GLib-GObject-WARNING **: Attempt to add property GtkSettings::gtk-menu-popup-delay after class was initialised

(firefox:4152): GLib-GObject-WARNING **: Attempt to add property GtkSettings::gtk-menu-popdown-delay after class was initialised

(firefox:4152): GLib-GObject-WARNING **: Attempt to add property GtkSettings::gtk-menu-bar-popup-delay after class was initialised
1416941877193    addons.xpi    DEBUG    startup
1416941877197    addons.xpi    DEBUG    Ignoring file entry whose name is not a valid add-on ID: /tmp/anonymous6634144291667526254webdriver-profile/extensions/webdriver-staging
1416941877197    addons.xpi    DEBUG    checkForChanges
1416941877240    addons.xpi    DEBUG    No changes found

(firefox:4152): GLib-GObject-WARNING **: Attempt to add property GtkSettings::gtk-menu-images after class was initialised

Build info: version: '2.33.0', revision: '4e90c97', time: '2013-05-22 15:32:38'
System info: os.name: 'Linux', os.arch: 'i386', os.version: '3.8.0-19-generic', java.version: '1.7.0_25'
Driver info: driver.version: FirefoxDriver
    at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:118)
    at org.openqa.selenium.firefox.FirefoxDriver.startClient(FirefoxDriver.java:244)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:110)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:190)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:183)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:179)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:92)
    at org.openqa.selenium.example.Test.main(Test.java:16)
Caused by: org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms. Firefox console output:
dd-on online-accounts@lists.launchpad.net installed in app-system-local
1416941874951    addons.xpi-utils    DEBUG    Make addon app-system-local:online-accounts@lists.launchpad.net visible
1416941874951    DeferredSave.extensions.json    DEBUG    Save changes
1416941874951    DeferredSave.extensions.json    DEBUG    Save changes
1416941874992    addons.xpi    DEBUG    Updating database with changes to installed add-ons
1416941874992    addons.xpi-utils    DEBUG    Updating add-on states
1416941874993    addons.xpi-utils    DEBUG    Writing add-ons list

(firefox:4105): GLib-GObject-WARNING **: Attempt to add property GtkSettings::gtk-menu-images after class was initialised
1416941876169    DeferredSave.extensions.json    DEBUG    Starting timer
1416941876196    DeferredSave.extensions.json    DEBUG    Starting write
1416941876316    DeferredSave.extensions.json    DEBUG    Write succeeded
1416941876316    addons.xpi-utils    DEBUG    XPI Database saved, setting schema version preference to 16
System JS : ERROR resource://gre/modules/BookmarkHTMLUtils.jsm:897 - NS_ERROR_UNEXPECTED: Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsINavBookmarksService.removeFolderChildren]
System JS : ERROR resource://gre/modules/BookmarkHTMLUtils.jsm:934 - NS_ERROR_UNEXPECTED: Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsINavBookmarksService.runInBatchMode]
************************************************************
* Call to xpconnect wrapped JSObject produced this error:  *
[Exception... "Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIAnnotationService.getItemsWithAnnotation]"  nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)"  location: "JS frame :: resource://app/components/nsBrowserGlue.js :: BG_EPDQI_runBatched :: line 1682"  data: no]
************************************************************
1416941876460    addons.manager    DEBUG    shutdown
1416941876461    addons.xpi    DEBUG    shutdown
1416941876461    addons.xpi-utils    DEBUG    shutdown
1416941876463    addons.xpi    DEBUG    Notifying XPI shutdown observers
1416941876467    addons.manager    DEBUG    Async provider shutdown done

(process:4152): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed

(firefox:4152): GLib-GObject-WARNING **: Attempt to add property GtkSettings::gtk-button-images after class was initialised

(firefox:4152): GLib-GObject-WARNING **: Attempt to add property GnomeProgram::sm-connect after class was initialised

(firefox:4152): GLib-GObject-WARNING **: Attempt to add property GnomeProgram::show-crash-dialog after class was initialised

(firefox:4152): GLib-GObject-WARNING **: Attempt to add property GnomeProgram::display after class was initialised

(firefox:4152): GLib-GObject-WARNING **: Attempt to add property GnomeProgram::default-icon after class was initialised

(firefox:4152): GLib-GObject-WARNING **: Attempt to add property GtkSettings::gtk-entry-select-on-focus after class was initialised

(firefox:4152): GLib-GObject-WARNING **: Attempt to add property GtkSettings::gtk-entry-password-hint-timeout after class was initialised

(firefox:4152): GLib-GObject-WARNING **: Attempt to add property GtkSettings::gtk-label-select-on-focus after class was initialised

(firefox:4152): GLib-GObject-WARNING **: Attempt to add property GtkSettings::gtk-can-change-accels after class was initialised

(firefox:4152): GLib-GObject-WARNING **: Attempt to add property GtkSettings::gtk-menu-popup-delay after class was initialised

(firefox:4152): GLib-GObject-WARNING **: Attempt to add property GtkSettings::gtk-menu-popdown-delay after class was initialised

(firefox:4152): GLib-GObject-WARNING **: Attempt to add property GtkSettings::gtk-menu-bar-popup-delay after class was initialised
1416941877193    addons.xpi    DEBUG    startup
1416941877197    addons.xpi    DEBUG    Ignoring file entry whose name is not a valid add-on ID: /tmp/anonymous6634144291667526254webdriver-profile/extensions/webdriver-staging
1416941877197    addons.xpi    DEBUG    checkForChanges
1416941877240    addons.xpi    DEBUG    No changes found

(firefox:4152): GLib-GObject-WARNING **: Attempt to add property GtkSettings::gtk-menu-images after class was initialised

    at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:106)
    ... 7 more

The main reason is compatibility of Firefox web-driver and Firefox version installed on the System. So if your Firefox has been updated recently then also update your Web Driver version.

Current Version while writing this were:

Firefox Version: 30
Web Driver Version: 2.44

And it worked fine. So next time you find this issue. The first step is to match the Firefox version with the Web-driver Version of Firefox. 

Please do post your comments if it still doesn't solve the issue. There could be other cause of the problem which could help others.

Note: Disable the Auto Update Firefox option so that they don't get unsynced again.

Cheers !!!

Bug Bash: How to have Fun with Testing

Testing is fun and i am realizing the power of testing now when i can see the real difference it is making in making a successful product. Without testing, you can never assure a quality product. And no matter how much arguments we make, we will admit it one day.

People consider testing as boring and less competitive because they think that it doesn't have that opportunities which other fields of software development cycle provides. They just do it as a very monotonous way and slowly they start loosing the interest in that completely. Testing is fun and one such fun event is called: Bug Bash.


What is a Bug Bash 


Software development defines bug bash is a  event or where all the testers, developers, infra, leads, project managers,analysts, designers, senior managers, documentation folks or even directors or particular division and  last but not the least, sometimes marketing people, put aside their regular activities and strike the product simultaneously to get the as much know how about the product as possible.


Some good reads for testing:


How to Organize Bug Bash


An event like these needs to be declared well in advance so that proper arrangements can be made and the test scope is sent across to the concerned people and then testers assist them in setting the resources properly to work on it. Tester will also help them in understanding about the bug. 

The event can be done for as much time as you wish, but generally test management have it for around 1 hour or so which will keep the interest intact. The event can be followed by prize distribution where employees can be awarded token of appreciation for finding the good bugs. Which further can be followed by drinks or snacks as per the availability and just to get it social. 

I arranged in a proper manner, a Bug Bash can be a very successful and a very interesting event where employees will come to understand the system better and it is really helpful to see that how system handles the load when so many people together are using it and at till what time it can sustain before going down. Teams can also sit together after the event to understand what has been learnt and how the system can be improved. Also they can explain their experiences and exceptions from the system. 

Bug Bash is a fun and useful exercise and at the same time least expensive which can come out with potential problems in the system. 
It proved to be a rather useful, inexpensive, fun exercise which could flush out potential problems and give everyone more confidence in the system-under-test. 


You Might Like to Read

Important Software Testing Interview Questions: Part 1
Important Software Testing Interview Questions: Part 2 
Testing Fundamentals

Important Software Testing Interview Questions: Part 2

Q1. In Which phase of software Life Cycle Testing should be done?

Earlier testing was done after the build and execution phases(which is still being followed in many organizations). But the earlier we catch a defect, the more cost effective it is. For instance, fixing a defect in maintenance is ten times more costly than fixing it during execution.Testing should occur in conjunction with each phase. In the requirement phase
we can verify if the requirements are met according to the customer needs. During design we can check whether the design document covers all the requirements. In this stage we can also generate rough functional data.
We can also review the design document from the architecture and the correctness perspectives. A testers biggest strength is in finding the Design Gaps , that's why a Tester should have good domain knowledge.

In the build and execution phase we can execute unit test cases and generate structural and functional data.

And finally in testing phase we run the system test cases and see if the system works according to the requirements. During installation we need to see if the system is compatible with the software. Finally, during the maintenance phase when any fixes are made we can retest the fixes and follow the regression testing.

Q2. Which area has more defects: Design or coding?

The design phase is more error prone than the execution phase.

The best example and the most frequent defects which occur during design is that the product does not cover the complete requirements of the customer. 

Second is wrong or bad architecture and technical decisions make the next phase, execution, more prone to defects. Because the design phase drives the execution phase it’s the most critical phase to test. The testing of the design phase can be done by good review.

On average, 60% of defects occur during design and 40% during the execution phase, because coding will be done on the basis of design only.

Q3. when can we properly start the testing?

Testing can be started properly after getting the proper inputs from the Client or the End user we would require following data:
The first thing we need is the acceptance test plan from the end user. The acceptance test defines the entire test which the product has to pass so that it can go into production.

We also need the requirement document from the customer. In normal scenarios the customer never writes a formal document until he is really sure of his requirements. But at some point the customer should sign saying yes this is what he wants. Never make a test plan without a proper sign off.

The customer should also define the risky sections of the project. The customer is the right person to say which things can really impact its business
With this feedback the testers can prepare a proper test plan for those areas and test it thoroughly. 

The customer should also provide proper data for testing. Feeding proper data during testing is very important. In many scenarios testers key in wrong data and expect results which are of no interest to the customer. 

Q4. What is the difference between latent and masked defects?

A latent defect is an existing defect that has not yet caused a failure because 
the exact set of conditions were never met.

A masked defect is an existing defect that hasn’t yet caused a failure 
just because another defect has prevented that part of the code from being 
executed.

Q5. How Defect removal at different stages impact cost?

If a defect is known at the initial stage then it should be removed during that 
stage/phase itself rather than at some later stage. It’s a recorded fact that 
if a defect is delayed for later phases it proves more costly. 

A defect if identified and removed during the requirement and design phase is the most cost effective, while a defect removed during maintenance is 20 times costlier than during the requirement and design phases.

For instance, if a defect is identified during requirement and design we only need to change the documentation, but if identified during the maintenance phase we not only need to fix the defect, but also change our test plans, do regression testing, and change all documentation. This is why a defect should be identified/removed in earlier phases and the testing department should be involved right from the requirement phase and not after the execution phase. 

Q6. What is a workbench?

A Workbench is a way of documenting how a specific activity has to be performed. A workbench is referred to as phases, steps, and tasks There are five tasks for every workbench:

Projects are not made of one workbench but of many connected workbenches. A workbench gives you a way to perform any kind of task with proper testing. You can visualize every software phase as a workbench with execute and check steps.

Requirement phase workbench: The input is the customer’s requirements; 
we execute the task of writing a requirement document, we check if the 
requirement document addresses all the customer needs, and the output is 
the requirement document.

Design phase workbench: The input is the requirement document, we 
execute the task of preparing a technical document; review/check is done 
to see if the design document is technically correct and addresses all the 
requirements mentioned in the requirement document, and the output is 
the technical document.

Execution phase workbench: This is the actual execution of the project. The 
input is the technical document; the execution is nothing but implementation/
coding according to the technical document, and the output of this phase is 
the implementation/source code.

Testing phase workbench: This is the testing phase of the project. The 
input is the source code which needs to be tested; the execution is executing 
the test case and the output is the test results.

Deployment phase workbench: This is the deployment phase. There are 
two inputs for this phase: one is the source code which needs to be deployed 
and that is dependent on the test results. The output of this project is that 
the customer gets the product which he can now start using.

Maintenance phase workbench: The input to this phase is the deployment 
results, execution is implementing change requests from the end customer, 
the check part is nothing but running regression testing after every change 
request implementation, and the output is a new release after every change 
request execution.


Q6. What is the difference between Alpha and Beta testing?

Alpha testing is the acceptance testing done at the development site. Some organizations have a different visualization of alpha testing. They consider alpha testing as testing which is conducted on early, unstable versions of software.

Where as beta testing is acceptance testing conducted at the customer end. 
In short, the difference between beta testing and alpha testing is the location 
where the tests are done.


Q7. What is defect cascading?

Defect cascading is a defect which is caused by another defect. One defect 
triggers the other defect. 


You Might Like to Read:
Important Software Testing Interview Questions: Part 1

Important Software Testing Interview Questions: Part 1

While preparing for Interview in Software Testing a good basic knowledge of software Testing fundamentals is always better than complex things because your knowledge about Testing will be reflected through the work you have done and the basics you have followed while doing the Testing. 
Below are some of the important testing questions which you'll find being asked in almost each interview. The interviewer might ask them in a different way but more or less basic things are the same. Lets have a look at some questions:

Q1. Where does Software Testing fits in the software development process?

In normal software development there are four important steps, also referred 
to, in short, as the PDCA (Plan, Do, Check, Act) cycle.


Plan:Define the goal and the plan for achieving that goal.
Do/Execute:Depending on the plan strategy decided during the plan stage we do execution accordingly in this phase.
Check:Check to ensure that we are moving according to plan and are getting the desired results.
Act:During the check cycle, if any issues are there, then we take appropriate action accordingly and revise our plan again.

As you can see clearly that testing fit in the check part of the cycle. So developers and other stakeholders of the project do the “planning and building,” while testers do the check part of the cycle.



Q2. What is the difference between White box, Black box, and Gray Box testing?

Black box testing is a testing strategy based on requirements and 
specifications. Black box testing requires no knowledge of internal paths, 
structures, or implementation of the software being tested.

White box testing is a testing strategy based on internal paths, code 
structures, and implementation of the software being tested. White box testing generally requires detailed programming skills. So in most scenarios white box testing is done by developers as they know the internals of the application like unit test.

Gray box testing is a different type where we just check long enough to understand how the system has been implemented. Then we close up the box and use our knowledge to choose more effective black box tests.


Q3. what is the difference between a defect and a failure?

When a defect reaches the end customer it is called a failure and if the defect 
is detected internally and resolved it’s called a defect.



Q4. Why does the defect occur?

There are three main reasons for occurrence of defects:

The requirements have been implemented incorrectly. This defect 
is a variance from the given specification.

There was a requirement given by the customer and it was not done. 
This is a variance from the specifications, an indication that a specification was not implemented, or a requirement of the customer was not noted properly.

A requirement incorporated into the product that was not given by 
the end customer. This is always a variance from the specification, but may 
be an attribute desired by the user of the product. However, it is considered 
a defect because it’s a variance from the existing requirements.


Q5. what is the difference Between verification and validation?

Verification is a review without actually executing the process while validation 
is checking the product with actual execution. For instance, code review and 
syntax check is verification while actually running the product and checking 
the results is validation.
                                    Or

Verification:  Are we building the product right?
Validation:   Are we building the right product?


Q6. How does testing affect risk?

A risk is a condition that can result in a loss. Risk can only be controlled in 
different scenarios but not eliminated completely. A defect normally converts 
to a risk. For instance, let’s say you are developing an accounting application 
and you have done the wrong tax calculation. There is a huge possibility that 
this will lead to the risk of the company running under loss. But if this defect 
is controlled then we can either remove this risk completely or minimize it. 
The following diagram shows how a risk gets converted to a risk and with 
proper testing how it can be controlled. 


Q7. How can we implement a testing Policy ?


Test Policy describes about the organization definition of testing or its philosophy towards testing. This is generally developed by the top level management(IT Dept. Managers). It contains:

1. Definition of testing
2. The process or procedure or standard we need to follow for good quality 
    product.
3. The quality level to be achieved 
4. Cost to fix the issues

For implementing the Testing Policy an organization needs to understand:

How are they going to achieve their objective? Is there going 
to be a testing committee, will there be compulsory test plans which need to 
be executed, etc.?

After testing is implemented in a project how will they evaluate it? Are they going to derive metrics of defects per phase, per programmer, etc. It’s important to let everyone know how testing has added value to the project?

Finally, what are the standards they want to achieve by testing. For 
instance, we can say that more than 20 defects per KLOC will be considered 
below standard and code review should be done for it. 

You Might Want to Read
Important Software Testing Interview Questions: Part 2


Testing Fundamentals


Where Exactly Testing Fit in the Software life Cycle? To know that first we need to understand Software Life Cycle which below Diagram Explains: (Source-Wikipedia)
The good point is that it all goes in Circular manner (PS: This is not the only Model which Exist, It’s our choice to adopt the model as per Requirement), which means it never stops. So New Requirements will keep coming and on the basis of that a Design will be made and it will be implemented accordingly.
And then comes the Testing Part, which will check whether the Functionality is Proper or Not. Working as Expected or not.  
Note :  Testing Can also find Design gap which means if the requirements are not Designed or understood Properly , they could be implemented wrongly and  then finding the issues when things are implemented will raise the cost of Fixing the Defect  and will also wastes lot of time. 
So Testing is a Kind of a phase which needs to be implemented at every level. We can choose the kind of regression depending upon the Software we are testing. We need to look out for the places where it fits properly between different interfaces.

Types of Testing:

1)      Black box testing
2)      White box testing
3)      Integration testing
4)      Functional testing
5)      System testing
6)      Sanity testing
7)      Regression testing

And the list goes on.. You will find many details about them online, so I am not explaining them here. But I’ll keep coming with Different articles, Different questions, Scenarios, Problems or many things I could think of. 

So I can take up something on Manual or Automation or anything Random, just depends upon the Flavor I Like...

See You till then.

SoftwareTesting


Testing is part of our Day to Day life.

You go to supermarket to buy veggies…You test them.. Checking whether they are fresh or not, you test them  from the outlook and the aroma ..

You want to buy a car..you take a test drive first.. you want the vehicle to be of good performance and best in price.

We do it because we want the Quality Product. We want it be of better use, longer life, Durable or whatever we can think of best. At last we are paying for that !!

And Testing is what helps to identify it.. The best possible product.

And This is what pointing towards another flavor of my life , Software Testing. It is my Bread and Butter. I enjoy it. 

One Needs to have a Destructive mind to be a good Tester. Another Important part is that Tester need to have a good Domain Knowledge and he should also know how the business is running else he will never be able to test the application to the perfection. And this is what makes Testing an Exciting Career. :) :)

Now without Testing , delivering a Product is like a Suicide and a big loss to Business.

The Question is why exactly do we test ?
1) To Improve Quality
2) To check Whether the Application is Working as Expected or not.

Mainly Testing is of Two types :
1) Manual
2) Automation

And to be Frank , one cannot replace the other. Both have their own advantages and disadvantages. But the main point is : What can be done by Manual Testing , may or may not be done by Automation , but its not true Vice Versa.

This is just a bit of Introduction to another flavor of my life.
I'll keep adding more stuff on Testing.

So Stay Tuned..