Showing posts from December, 2011

What are Software Testing Types

Black box testing : You don't need to know the internal design in detail or have a good knowledge about the code for this test. It's mainly based on functionality and specifications, requirements.
White box testing : This test is based on detailed knowledged of the internal design and code. Tests are performed for specific code statements and coding styles.
Unit testing : The most micro scale of testing to test specific functions or code modules. Typically done by the programmer and not by testers, as it requires detailed knowledge of the internal program design and code. Not always easily done unless the application has a well-designed architecture with tight code, may require developing test driver modules or test harnesses.
Incremental integration testing : Continuous testing of an application as new functionality is added. Requires that various aspects of an application's functionality be independent enough to work separately before all parts of the program are complete…

Importance of Testing Certifications

One question testers often ask us these days is, how important is getting yourself certified if you are a tester? And what are the certifications a tester should be going for?

Well, the answer is: Certification is one way to stand out in the market and stay clear off the crowd. Certifications like ISEB/ISTQB or CSTE/CSTA etc are very much respected in the IT world and most often clients require these as a pre-requisite for any tester if they are to join their project team.

By getting certified you not only increase the value of your resume, you also enhance the chances of your resume getting shortlisted (in case you are looking for a job/job change).

The question then is: Which certifications are the best?

The answer is: All of them are good as long as they are from accredited organizations/body like QAI (Quality Assurance Institute, USA) or TSTQB (International Software Testing Qualification Board)

For people who are trying to make a career in Software Testing, basic ISTQB tester …

Agile Testing

Historically, software testing has always been about finding where the software breaks. In fact, when we talk about the qualities of a good software tester we quote anecdotes about how "she was able to break my program in 3 minutes" or that "he found 27 bugs when running on Linux with Apache". In other words, software testing was about finding bugs and software testers would get rewarded for and take satisfaction from finding bugs.

Whereas agile testing is more about keeping the bugs out than finding the ones that are in there. The (automated) software tests that are written in agile testing are more about showing that the software works the way we expect than about finding where it breaks.

This doesn’t mean that agile testers should not attempt to find bugs nor that pre-agile testers never write tests to show what works. It means agile thinking has introduced a change in emphasis from “fault-finding” to “working software”.

In pre-agile days, developers would bang …

Localization Testing

Localization testing is part of software testing focused on internationalization and localization aspects of software.Localization Test is the process of adapting globalized application to a particular culture/locale. Localizing the application requires a basic understanding of the sets of character commonly employed in modern software development and an apprehension of the risks associated with them.Localisation testing checks how well the build has been interpreted into a particular target language. This test is founded on...

SDLC vs STLC–Differences & Similarities Revisited

Few days back, I was taking some interviews. I surprised to see some candidates were not able to explain simple concepts like SDLC & STLC. Everybody, was giving me very standards answers. SDLC - a systematic approach to develop a software and STLC - process of testing a software in a systematic and planned way. No one explains me logical Differences & Similarities between these two.
My question is very simple – How you can relate six phases Requirement, Design, Development, Testing, Deployment & Maintenance to Software Testing Life Cycle?

Let’s see how I related these six phases with STLC

S. No.PhaseSDLC - Software Development Life cycleSTLC - Software Test Life Cycle1Requirements GatheringRequirements gathering is done by business analyst. Development team analyse the requirements from the design, architecture & coding perspective.Testing team also review & analyse the requirements. Testing team identifies the testing requirements like what types of testing will be …

Software Test Management and Planning

Software Testing Estimation Process – It covers some important factors which needs to be taken care while doing estimation. Organizing the Software Test Team – One of the important tasks for the Software Test Manager.Software Test Readiness Review Checklist – A sample checklist for Software Test Leads & Managers to evaluate the readiness of the application released for software testing. 

Identify Software Testing Types and Exit Criteria – Identifying various types of software testing's required for the application and Exit Criteria, both are very critical for the success of testing effort. Software Test Planning – The quality of the testing effort is directly proportional to the quality of the test planning. Software Testing Bible - Software Test Plan Document – The document usually created after software test planning or parallel with the Test Planning effort. Software Test Specification - a detailed summary of what all scenarios shall be tested and how they will be tested. I…

Software Testing Types, Methods and Strategies

Challenges in Software Testing

All software engineering areas face lot of challenges during execution. So, I would say, as a tester, never ever get surprised when you face challenges in software testing. But, it is also a hard fact for tester community that most of the companies are not testing oriented. Management always do a good appraisal of development teams. Sometimes, appreciation goes to development teams only.
Few points that I want highlight to management / project managers & development teams:
If development teams are so good / intelligent, then why you need testers to test the application. Remember - by testing a build / release, testers evaluate the Quality of work done by developers. During every regression testing, lot of bugs got re-opened (what quality of work was done by developers) Sometimes, a customer release requires 5-7 regression testing cycles. Think Why? During these 5 to 7 regression cycles, developers made so many mistakes. Testers help to prevent the defect leakage to customer. But, …

How to do System Testing

Testing the software system or software application as a whole is referred to as System Testing of the software. System testing of the application is done on complete application software to evaluate software's overall compliance with the business / functional / end-user requirements. The system testing comes under black box software testing. So, the knowledge of internal design or structure or code is not required for this type of software testing.

In system testing a software test professional aims to detect defects or bugs both within the interfaces and also within the software as a whole. However, the during integration testing of the application or software, the software test professional aims to detect the bugs / defects between the individual units that are integrated together.

During system testing, the focus is on the software design, behavior and even the believed expectations of the customer. So, we can also refer the system testing phase of software testing as investi…

Difference between Smoke & Sanity Software Testing

Smoke Testing: Software Testing done to ensure that whether the build can be accepted for through software testing or not. Basically, it is done to check the stability of the build received for software testing.

Sanity testing: After receiving a build with minor changes in the code or functionality, a subset of regression test cases are executed that to check whether it rectified the software bugs or issues and no other software bug is introduced by the changes. Sometimes, when multiple cycles of regression testing are executed, sanity testing of the software can be done at later cycles after through regression test cycles. If we are moving a build from staging / testing server to production server, sanity testing of the software application can be done to check that whether the build is sane enough to move to further at production server or not.

Difference between Smoke & Sanity Software Testing:

Smoke testing is a wide approach where all areas of the software application are teste…

Performance Testing vs Load Testing vs Stress Testing - Examples

Performance testing - It is performed to evaluate the performance of components of a particular system in a specific situation. It very wide term. It includes: Load Testing, Stress Testing, capacity testing, volume testing, endurance testing, spike testing, scalability testing and reliability testing etc. This type of testing generally does not give pass or fail. It is basically done to set the benchmark & standard of the application against Concurrency / Throughput, Server response time, Latency, Render response time etc. In other words, you can say it is technical & formal evaluation for responsiveness, speed, scalability and stability characteristics.

Load Testing is subset of performance testing. It is done by constantly increasing the load on the application under test till the time it reaches the threshold limit. The main goal of load testing is to identify the upper limit of the system in terms of database, hardware and network etc. The common goal of doing the load test…