Friday, December 7, 2012

Test Case

Test Case: is a set of conditions or laws which a tester uses to determine the correct functioning of a module or application/software.

You may need more than one test case to validate the functional working of a module.

Writing test cases is essential to trace the test coverage. It helps in minimizing redundant test cases and increases speed of test cycle. It also assists developers in understanding the issues/defects/errors/glitches associated with the software and increases maintenance speed.

Test Cases and Test scenarios.



Sample Test Case for Login form and Logout button:

  1. Enter valid email-id and password and then click on submit button.
    • Should take you to successful Login page.
  2. Enter invalid email-id and invalid password and then click on submit button.
    • Should not log you in.
    • It should show validation messages. Ex: "Invalid username or password".
    • Fields having errors should not be highlighted as user should not know whether email-id is wrong or password is wrong. 
  3. Enter valid email-id and invalid password and then click on submit button.
    • Should not log you in.
    • It should show validation messages. Ex: "Invalid username or password".
    • Fields having errors should not be highlighted as user should not know whether email-id is wrong or password is wrong. 
  4. Enter invalid email-id and valid password and then click on submit button.
    • Should not log you in.
    • It should show validation messages. Ex: "Invalid username or password".
    • Fields having errors should not be highlighted as user should not know whether email-id is wrong or password is wrong. 
  5. Click on submit button leaving email and password fields null.
    • Should not log you in.
    • It should show validation messages. Ex: "Please enter your email address" and "Password can't be blank"
    • Now fields having errors should be highlighted [Usually red in color].
  6. Check if form fields and buttons are aligned properly.
    • Verify if buttons should be round cornered.
    • Verify if text fields border should be round cornered.
    • Check if asterix(*) and help texts are aligned properly.
    • Check if help text and text fields are aligned properly.
    • Check if loading gif image has to be loaded after clicking on submit button.
  7. Verify whether validations are handled properly.
    • Validation messages should be meaningful and relevant to error event.
  8. After logging in successfully, copy the url and place it in a different browser.
    • It should get routed to login page instead of keeping you logged in, as you have placed the url in different browser and session has not yet being created for that browser.
  9. Close browser tab after logging in successfully and open page again by placing the copied url.
    • Now closing the browser tab should not end the session unless you click on Logout button. So instead of showing login form again it should take you to page 2 - which is successful login page.
  10. After Logout click on browser back button.
    • Clicking on browser back button after Logging out should not take you to page 2. Instead it should get routed to login page since session has been destroyed after logout.




Wednesday, September 26, 2012

Roles & Responsibilities

Test Engineer's Roles and Responsibilities

Roles and responsibilities of a Software Test Engineer include:

1) Requirements Analysis from the client and suggestions.
2) Participating in preparing Test Plans.
3) Preparing Use Case document using functional specification document.
4) Preparing Test Scenarios based on Use Cases or wire-frames or functional specification document.
5) Preparing Test Cases for integration and system testing using test scenario documentation.
6) Preparing Test Data’s for the test cases.
7) Analyzing and executing the Test Cases prepared by other team members
8) Preparing Test Environment to execute the test cases.
9) Executing the Test Cases.
10) Defect Tracking.
11) Giving steps to reproduce - information of a defect to developers in order to fix it.
12) Preparing Summary Reports.
13) Preparing Lesson Learnt documents from the previous project testing experience.
14) Preparing Suggestions/Enhancement Documents to improve the quality of the application.
15) Communication with the Test Lead / Test Manager.
16) Conducting Review Meetings within the Team.


Roles and Responsibilities of a Software Tester

1) Preparing Bug Report and submit it to any tool(whichever is used by your organization).
2) Deciding the Severity and Priority of Bugs.
3) Preparing work done and when document.
4) Regularly search Internet for new testing Techniques and implement them.





Monday, September 10, 2012

What is Quality?

QA-Quality Assurance and Quality Control










There are quite a lot of aspects and measures that define quality. You can define quality based on products or services. When it comes to testing a web site that provides a certain service(s) then Quality can be defined - based on aspects like:
    Quality Measures, Steps and plans
  • Responsiveness
  • Design
  • Credibility
  • Consistency
  • Availability
  • Reliability
  • Scalability
  • Security
  • Competence
  • Understand the Customer / Usability
  • Accuracy
  • Completeness
  • Risk Factors
  • Timeliness
  • Communication

QA-Quality Assurance and QC-Quality Control
Quality:

1) Is all about meeting the customer requirements and specifications.
2) Is value for money.
3) Is fitness for use.
4) Is about providing distinctively featured services with uniqueness, that exceeds user satisfaction.
5) Must be Organizational endeavor and focus.
6) Is about eliminating the risk factors while having secured services with simplicity.
7) Finally Quality - states the brand reputation, and eliminates competitions.





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   |



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:
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.

Consistency:
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,.

Isolation:
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.

Durability:
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:



Wednesday, July 4, 2012

Selenium Installation steps

For installing selenium IDE open Mozilla firefox browser and go to SELENIUM website and click on version “Number” under the heading Selenium IDE and click on “Allow” button. Do not reload the page unless your installation step completes. After installing the IDE; Mozilla shows an option to restart the browser. Click on “Restart Now” button.


Selenium Installation steps.


Tools - Selenium IDE


Now after restarting; click on ‘Alt’ button of keyboard and click on tools option of Mozilla browser as shown above and select Selenium IDE. Selenium IDE pops up in record mode. 

Now place the website URL of which you want to record and playback. Start recording by clicking on links, buttons, tabs and drop downs of the website. Make sure that your website is opened in the Mozilla browser. Watch out for the code generated in selenium IDE. Do some trials and errors and check types of codes generated in IDE and see what happens when you play the recorded script.

How to open Selenium IDE in Mozilla

To know more about selenium scripts and commands and for tutorials visit Selenium Documentation page. Hope you enjoy recording, and scripting. Just sit back and watch how selenium runs the recorded scripts. Happy testing..!



Important Links:



Testing Tools and Prerequisites

When it comes to selecting a test tool, testers are always in confusion and bugged up about which tool to be used. Usually testing tools are used for automating a test or execute Load, Stress and performance tests.

A test tool should be capable of creating test script files by recording and playback. It should be able to merge each recorded script files into a test suite for integration testing. It should be capable of changing the order of each test case file present in a test suite. It should be able to perform CURD operations on recorded scripts/codes as well as test files. It should be able to perform all the operations that an IDE is capable of. Also it should be capable to automate tests in different browsers.

Most importantly generated test scripts or test suites should be exportable in the formats of codes which conform to semantics and syntax's of the code format in which it will be exported. Codes/Programs like - JUnit, TestNG, Perl, Rspec, Python, C# and so on.

And lastly, it should be capable to detect broken links and invalid links, verify – elements like images, videos, css locations or xpaths, check validations, select-able and non selectable check boxes, count dropdown elements, check whether things are sorted in alphabetical order and many more.

If the test tool being used is intended for Load testing then it should be capable of incorporating the above said test case files or test suites and run the same scenarios simultaneously by creating n number of Virtual Users [VU] or Browser Simulated Users [BSU] - Load on the application.

If the test tool is intended for Unit testing then it should have predefined Gems or Java jar files to support Unit testing. It should be capable of handling different needs of coding and merge different environments. It should be able to handle sessions, servers, open application in different browsers and catch exceptions. It should be able to run generated codes and test each Unit in the desired manner.
There are many tools for automating a software test; many of which are open source and can be downloaded from the sites.

Few of the most popular tools which has boomed as Automation testing tool in recent times, are Selenium IDE and Selenium RC. Selenium IDE can be installed as Addon in Mozilla Firefox.


Important Links:


Read More: Selenium Installation Steps...!


|   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   |



Google Search