Wednesday, August 29, 2012

Common Questions

Here are few Commonly asked questions during interview. These are few simple questions which can make you uncomfortable so be prepared for the same. Prepare well so that you do not get bogged down or get clogged while answering.

  • One of the most common - first question asked during an interview is “Tell me something about yourself?”
  • What is the reason that you want to leave your current organization/company?
  • Where do you see yourself in next three or four years?
  • Can you describe some of your achievements?
  • Rate yourself in software testing, on a scale of one to ten.
  • Are you looking for onsite opportunities?
  • Do you stay long and work after office timings..?
  • Have you worked on software automation?
  • Can you describe the best project you have worked on?
  • What is the biggest team size you have worked with?
  • Do you work on Saturday and Sunday?
  • Tell me something about your most recent project.
  • What do you know about our company?
  • What is your notice period or When can you join our company?
  • Can you explain some important points that you have learnt from your past projects?
  • Do you have any certifications?
  • Why have you changed jobs so many times?
  • What kind of job gives you the greatest satisfaction?
  • What type of environment are you looking for?
  • Do you have experience in software testing project management?
  • Do you like to work on a team or as an individual?
  • Describe the best project manager or Team Lead that you have worked with.
  • Why should I hire you?
  • Have you ever been fired or forced to resign?
  • Have you worked on some projects that failed, if yes can you explain why the project failed?
  • Will you be comfortable with location changes?

Important Links:

Resume Preparation Tips

You get only 10 seconds to impress an interviewer through your resume. This is where your interview begins and believe me - interviewer may decide not to shortlist you before even meeting you.

Few wrong steps you are not supposed to follow during resume preparation are:
  • Including your Father's name in Personal Details.
  • Using different font styles.
  • Using decorations.
  • Adding bold fonts for the keywords.
  • Inserting heading as "Resume" instead of your name.
  • Missing objectives.
  • Mentioning salary in your resume.
  • Adding hobbies though you are experienced and so on..

The following should be included in your resume:
  • Always start with an objective or summary.
  • Specify the position you are looking for in the "Objective" and things that you promise to deliver as an employee to the company.
  • Then include your professional summary - for instance - Working as Software Testing Engineer in "XYZ" company, since "YEAR". Always start with your recent company and then mention your previous company.
  • You can also include stuff like :- 1) Looked after SQA and testing independently, 2) Followed industry standard practices etc,.
  • Following this always include your strengths like: 1) Played a major role in Testing and Test planning, 2) Well versed in understanding requirement specs and so on.
  • Once you are done with this, its time to specify what type of technology you have worked with.
  • Then include projects you have worked with. A brief description of that project, time span, team size and roles and responsibilities. Always start with recent projects in descending order. Add maximum 3 projects and rest you can explain verbally.
  • Finally include your personal details. If you have a passport then add passport number as well.

Important Links:

Hierarchy Chart

Organizational Hierarchy Chart.

It is very important for you to be very clear about which position you are looking for during the interview. For example if you are looking for software testing team lead position then you'll be asked around 60% technical questions and 40% team management and other management questions.

You need to predict and be prepared for the questions based on the position you are looking for.

Important Links:

Monday, August 20, 2012

STLC Model

STLC - Software Testing LifeCycle
A well planned process of testing a software/product/application in a systematic way is termed as software testing lifecycle.

Each and every organization has different phases of STLC. However in general - STLC within waterfall model contains the following phases.

1. Requirements Analysis
2. Test Planning
3. Test Analysis
4. Test Design
5. Test Construction and Verification
6. Testing cycles
7. Final Testing and Implementation
8. Post Implementation

STLC-Software Testing Life Cycle Model

1. Requirements Analysis
In this phase testers analyze the customer requirements and work with developers during the design phase to see which requirements are testable and how they are going to test those requirements.

It is very important to start testing activities from the requirements phase itself because the cost of fixing defect is very less if it is found in requirements phase rather than in future phases.

2. Test Planning
In this phase all the planning about testing is done like what needs to be tested, how the testing will be done, test strategy to be followed, what will be the test environment, what test methodologies will be followed, hardware and software availability, resources, risks etc. A high level test plan document is created which includes all the planning inputs mentioned above and circulated to the stakeholders.

Usually IEEE 829 test plan template is used for test planning.

3. Test Analysis
After test planning phase is over test analysis phase starts, in this phase we need to dig deeper into project and figure out what testing needs to be carried out in each SDLC phase.

Automation activities are also decided in this phase, if automation needs to be done for software product, how will the automation be done, how much time will it take to automate and which features need to be automated.

Non functional testing areas(Stress and performance testing) are also analyzed and defined in this phase.

4. Test Design
In this phase various black-box and white-box test design techniques are used to design the test cases for testing, testers start writing test cases by following those design techniques, if automation testing needs to be done then automation scripts also needs to written in this phase.

5. Test Construction and Verification
In this phase testers prepare more test cases by keeping in mind the positive and negative scenarios, end user scenarios etc. All the test cases and automation scripts need to be completed in this phase and got reviewed by the stakeholders. The test plan document should also be finalized and verified by reviewers.

6. Test Execution and Bug Reporting
Once the unit testing is done by the developers and test team gets the test build, The test cases are executed and defects are reported in bug tracking tool, after the test execution is complete and all the defects are reported. Test execution reports are created and circulated to project stakeholders.

After developers fix the bugs raised by testers they give another build with fixes to testers, testers do re-testing and regression testing to ensure that the defect has been fixed and not affected any other areas of software.

Testing is an iterative process i.e. If defect is found and fixed, testing needs to be done after every defect fix.

After tester assures that defects have been fixed and no more critical defects remain in software the build is given for final testing.

7. Final Testing and Implementation
In this phase the final testing is done for the software, non functional testing like stress, load and performance testing are performed in this phase. The software is also verified in the production kind of environment. Final test execution reports and documents are prepared in this phase.

8. Post Implementation
In this phase the test environment is cleaned up and restored to default state, the process review meeting's are done and lessons learnt are documented. A document is prepared to cope up similar problems in future releases.

Important Links:

|   Introduction to Software Testing   |   Roles and Responsibilities of a Software Tester   |   What is a Test Case   |   Software Testing types and Methods   |   STLC Process   |   Hierarchy Chart   |   Most Common Interview Questions   |   Resume Preparation Tips   |   SDLC Models   |   Blog Index   |   Software Testing FAQs   |

Monday, August 6, 2012

Types Of Testing

1) Acceptance Testing:

Acceptance test is the final phase of testing that will be performed before the delivery of the application or the system. It is a test which is performed to determine whether a system meets the business requirements and specifications. This type of tests are usually done by the Client for validation of its acceptance criteria. Testing approaches are usually Black Box Testing and GUI Testing and may involve adhoc testing or smoke testing.

2) ACID Testing:
ACID stands for:  
  • Atomicity
  • Consistency
  • Isolation 
  • Durability
Databases can be briefly termed as two types:
1) OLTP - On-Line Transactions Processing and
2) OLAP - On-Line Analytical Processing.

When databases handle secure business transactions and secure data then ACID behavior tests are quintessential requirements. It tests for reliability, consistency and stability. For businesses and customers that pursuit colossal quality of databases, to conserve and control confidentiality of their business information, ACID factor is what is expected.

Atomicity can be termed as database transactions or operations that are influenced within a single transactions kind of behavior - “complete all or fail all”. The complete transaction fails if any one of the transaction fails. This makes secure that the database is in a valid condition at any given time. 

For example, if a user uses online transactions facility, to withdraw from one account and deposit into another and transaction fails due to power failure or some other network problem then the current transaction should be rolled back or reversed. Atomicity can be described in two ways:
1. Rollback feature and 2. Two phase commit protocol.

Data Consistency is preserved by allowing only valid transactions that conform to database presets. And some of these constraints are:
1. Not NULL or Unique constraint for a column.
2. Semantics: Some semantics and rules validate whether data in the column conforms to above said format. Ex: Phone Number should be numeric and alphabets should be rejected etc,.

Every transaction is queued before or after another transaction. If multiple number of parallel transactions are anticipated, then a boisterous database system is required which can assure isolation. Databases use Locking system to provide Isolation. A single row, table or the entire database can be locked when a particular transaction takes place.

A transaction should strive, once it has been committed or completed - regardless of failures of any kind.
There are 2 ways to keep up durability:
1. Replicate database into a back up system or 
2. Use two servers which are being run simultaneously on separate machines which are Load Balanced servers.

Important Links:

Google Search