Showing posts with label SoftwareTesting. Show all posts
Showing posts with label SoftwareTesting. Show all posts

Sunday, October 15, 2023

Different Types of Tests that can be automated🤷‍♂️

Automation can be applied to various types of tests across software development Life cycle, ensuring efficiency, accuracy, and speed in the testing process.


Here are different types of tests that can be automated:

Functional Tests

Functional tests validate the software’s functionality by testing it against the specified requirements. These tests check if the application behaves as expected from the end user’s perspective. Automated functional tests can simulate user interactions and validate various use cases.

Example:

Testing the login functionality of an application with valid credentials.

Unit Tests

Unit test usually tests the individual Object or individual methods of an object in a class. Unit Testing is highly necessary to prevent the flow of defect or preventing the defect at the earliest in the SDLC.

Example:

Testing the loops or conditions in a class

Integration Tests

Integration tests verify the interactions between different components or modules of a system. Several modules are together tested. The purpose of Integration tests is to make sure that all modules integrate and work together as expected. Automated integration tests help ensure that these interactions work as expected and that integrated components function properly together.

Example:

Testing the flow of placing the order for an item in Amazon or Flipkart along with payment.

System Tests

System Testing is a complete fully integrated product Testing. It is an end-to-end testing where the testing environment is similar to the production environment. Here, we navigate through all the features of the software and test if the end business / end feature works. We just test the end feature and don’t check for data flow or do functional testing and all.

Example:

Testing the end to end flow from login to placing and order and rechecking the order in My Orders page and logout in Amazon or Flipkart

Automating these tests can significantly improve the development workflow, allowing for faster feedback, early bug detection, and overall higher software quality. It’s important to strike a balance between automated and manual testing to ensure comprehensive test coverage.

Happy Testing!!!


Sunday, July 2, 2023

How to Write Good Test Cases?

Writing or Creating Test Cases is one of the important activity performed by the tester in the Software Testing Life Cycle(STLC). But creating effective test cases is an important skill and which can be improved by in depth study of application.

What is test case?

A test case is a set of actions performed on a system to determine if it satisfies software requirements and functions correctly.

Test Cases should be small, isolated and atomic. They should be easy to understand and steps should be clear. Steps should be independent and clear. Each good test should have defined its expected result.

What all fields needs to be included in test case?

1. Test Case ID

Unique Test Case Identification Number

2. Module name or Requirement ID

Module name or Requirement ID mentioned in the System Requirement Document and Traceability Matrix

3. Risks & Assumptions

If any risks or assumptions known 

4. Test Data

Test data required for executing the test case.

5. Test Steps

Detailed steps for test case execution

6. Expected results

How application should behave after executing the above testing steps

7. Result

Pass or Fail

8. Comments

Some additional information for developer to reproduce the defect or some observation.

How To Write Effective Test Cases?

While writing the test cases you need to follow some steps to make sure that you will write good and effective test cases.

  1. Identify The Scope And Purpose Of Testing
  2. Define the testing activities and steps for each testing type
  3. Identify Non-Functional Requirements
  4. Define the automation Test Strategy for Regression
  5. Understand the application in depth.
Important Tips To Write Your Test Cases More Effective:
  1. Test cases should have very good test case coverage.
  2. Test Cases should have good coverage with less no. of steps.
  3. Test Case should be written by applying test case design techniques.
  4. Test Case should be simple to understand.
  5. If test cases given to any new Tester, he/ she should be able to execute the test cases without asking any questions or clarifications.
  6. Test Case should be written in test case template.
  7. Test Case should be consistent, means flow or sequence should be good.
  8. Test Case should consists of both positive and negative scenarios.
  9. Test cases should be able to catch the defects.
  10. Test cases should not be redundant, means no duplicates.
  11. Test Cases should be very easy to convert into Automation scripts.

These are the characteristics of Good Test Case.

Final Thoughts:

A test case is to be written to check if features of application are working as expected. Basically a test case contains Test Case ID, Test Steps, Expected result, Result fields. While writing test case keep in mind that all test cases should be simple and easy to understand. First you should cover the Functional test cases then you should include the non-functional test cases. Both test cases are equally important to improve the quality of application. 

Thanks for reading my article. Hope you liked it!!!

Happy Testing !!!!

Friday, December 24, 2021

USABILITY Testing

 In this article, we will see about Usability Testing and how it will performed and significance of it.

Firstly , What exactly is Usability Testing?

Testing the user friendliness of an application is called Usability testing.

Let us start with an example such that we have two applications A & B which are different but doing the same job. In this, we see which one is user friendly.

Given below are some of the parameters we look into for testing. In this most of them are not measurable,

ü  Speed

ü  Help

ü  Navigation should be simple

ü  Compatibility

ü  Look & feel

ü  Features

ü  Location of components

One important parameter other than the above said parameters is “Effort needed to learn the application”. 

Suppose in the example, we understand the software A in 2 hrs, but we take 4hrs to understand B. Let us see different cases here,

®    since we understand A in 2hrs, it becomes user friendly compared to B

®   suppose look & feel is not good for A. In this case though, we understand A in 2hrs, we cannot say that A is user friendly.

®    Therefore, we look into many parameters before we say user friendliness of a software

 What is LOOK & FEEL?

The application should be such that it should be pleasant looking [ suppose if we have red color text in yellow background, definitely we don’t feel like using it ] and make a feel to the end-user to use it.

 Let us now see an example of Usability testing:

1) Consider some of the examples below,

In this example, we see the Inbox – the most frequently used feature is not kept in the right place.

End – users therefore search for the Inbox & after sometime, they find the Inbox lying somewhere down.

This type of application may lose the customers because they are less user – friendly.

How to overcome this,

See to it that the important features are placed in the left navigation bar and top navigation bar (This is normally followed)

Then we should see whether frequently used features are easily accessible (like Inbox, Compose Mail etc)

While testing, we therefore have to list all the important features before we start testing an application.

2) Consider the sketch shown below,

The end – user to draw the above sketch every time, he clicks Tools -> Draw -> Line for each line and finally he clicks Tools -> Draw -> Line to complete the sketch.

In this , we see the end-user wants to draw a simple sketch, but he wastes his time in clicking each time the Tools -> Draw -> Line for the sketch. This becomes a waste of time for the end-user.

Therefore, while testing , we must make user friendly of the application by creating Tool bar which makes the job simple by clicking on the necessary tools instead of going & clicking each time Tool -> Draw -> Line

How to conduct Usability testing? (OR) What process will  follow to do Usability testing?

Prepare OR derive checklist (i.e, what are the points to be checked). If we don’t prepare a checklist, we may miss some features in the application.

For Usability testing, we should prepare a genuine checklist specific to the product we develop.

 Example of a checklist for an application,

ü  For this application, one of the checklists includes color of already checked link should be changed to red

ü  All the images should have alt tag(Tooltip)

ü  All the pages should have link to Homepage

ü  Login feature should have Forgot Password link

 Like the above checklist, we can derive as many checklists as possible based on the application (or) product. While deriving checklist, we should derive a common checklist which can be executed for all pages.

Hope the article helped you to understand about Usability Testing.

Thanks for reading my Blog, 

Hope you liked it.

Happy Testing!!!!


 



 

Monday, April 19, 2021

Test Cases for AirCooler!!!!

 

1. To check that when user decreases the temperature, it should be more cool.

 2. To check that when user increases the temperature, it should be more hot.

 3. To check that AC is having the brand as per requirement.

 4. To check that AC can be fitted  to wall.

 5. To check that AC can be fitted  to door or wall.

 6. To check that AC is working for different voltages.

 7. To check that AC should work for UPS Power supply.

 8. To check that AC is working if user gives the connection through a extension box.

 9. To check the size of AC.

10. To check whether user is able to ON the AC by remote.

11. To check whether user is able to OFF the AC by remote.

12. To check the color of the AC is as per requirement.

13. To check that if user puts on water on AC - check the condition of it.

14. Cover the AC with cloth - switch ON the AC - check whether it is working.

15. Cover the AC with plastic cover - switch ON the AC - check whether it is working.

16. To check whether AC is working for swing mode.

17. Switch ON the AC for continuously for certain period of time - check whether it is working.

18. Switch ON the AC - open all the doors and windows of the room - check whether user can feel cool.

19. Switch ON the AC and check whether indicator is working as expected.

20. To check whether led light is blinking as per instructions given by user via remote.



Sunday, April 18, 2021

Test Cases of Chair✔!!!!

 

1. To check whether the chair can hold a person on it.

2. To check whether the chair has four legs.

3. To check whether the chair can be used to place on flat floor.

4. To check whether the chair can be used to place on stones.

5. To check whether the chair can hold or used to sit more than one person.

6. To check whether the chair is made of fiber.

7. To check the color of the chair is as per requirement.

8. Take the chair - remove one leg - try to sit - check whether the chair can be used for sitting.

9. Take the chair - remove or cut two legs - try to sit - check whether the chair can hold.

10. Take the chair - remove all four legs - check the shape of the chair.

11. Take the chair - put fire on it - check the condition of the chair.

12. Take the chair - put some water on it - check the condition of the chair.

13. To check that the chair is used to sit in different environments like hot & cold.

14. To check the design of the chair is as per requirement.

15. To check whether the chair can float on water /swimming pool.

16. To check the dimensions of the chair is as per requirement.

17. To check whether chair is draggable.

18. To check the weight of the chair.

19. To check the amount of weight , chair can hold.

20. To check whether the chair melts on excess sunlight if it is fiber chair.


Monday, March 1, 2021

Test Case Design Techniques

 In this blog, I am writing about Test Case Design Techniques which is very important topic for every Tester.

What is Test Case Design Technique?

It is the technique which is applied while writing test cases in order to improve text case coverage.

Types of Test Case Design Techniques:

1.      Error Guessing

2.      Equivalence Partitioning/ Equivalence Class Partitioning

3.      Boundary Value Analysis (BVA)

4.      Decision Table Technique

5.      State Transition Diagram/ Technique

Now we shall see each Test Case Design Technique.

1. Error Guessing:

1    In this technique, we will try to guess the errors and derive more scenarios. Error Guessing depends on the analytical thinking of every tester. Here, we test only negative input or invalid values and try to guess the error message in the application.

Example: Amount Text field -It should accept only positive integers

Invalid / negative inputs             Error Message

156.45                                  -      Decimal Values are not allowed

Hundred                               -        Only alphabets are not allowed

2. Equivalence Partitioning:

2.      In this technique, we have two types:

1.      Pressman rule

2.      Practice Method

1.Pressman rule:

Rule 1: If the input is range of values, then design test cases for one valid, two invalid values.

Example: Amount Text field – as per requirement range should be 100-5000

Test Case: valid-2000, invalid -90,6000

Rule 2: If the input is set of values, then design test case for one valid and two invalid values.

Example: Search Text Field – Product ID list has 27, 51, 68 as ids.

Test Case: valid 51, invalid 23, 69

Rule 3: If the input is Boolean, then design test cases for both true & false values.

Example: If there are radio buttons for male and female, then both the radio buttons should be tested. 

3.      Practice Method:

If the input is of range of values, then divide the range of values into Equivalent parts & test for all the values & also make sure that we are testing for at least two invalid values.

Example: Requirement for Amount Text field : 100 to 5000

Test case: valid -100,1000,2000,3000,4000,5000

                   Invalid-90,6000

If there is a deviation between range of values then we go for Practice method. If there is no deviation between range of values, then we go for Pressman rule. By looking into the requirement, we will get to know whether there is deviation in between the range of values or not.

3. Boundary Value Analysis (BVA):

    If the input is range of values between A to B then design Testcases for A, A+1, A-1 and B, B+1, B-1.

     Example: Requirement for Amount Text field: 100 to 5000

     Test Case:  + ve: 100,101,4999,5000

                         -ve: 99,5001

    We go for this technique because chances are more that developers make mistake while writing code for Condition operators. So, chances of finding defects will be more near the boundaries that is the reason we need to always write Test Cases by applying BVA rule.

4. Decision Table Technique:

    In this technique, we check for multiple conditions, combinations & rule criterias.

    Formula:  2no of conditions   =rule criterias/scenarios

Example: A person is applying for credit card and there is discount on purchase along with coupon code.

Requirement: If the person is new customer and opening credit card account, then bank will give 15 % of discount on the purchase. If the person is old customer and having loyalty card then bank will give 10 % discount on the purchase. If he is having coupon code , then he will 20 % discount.

Condition: Coupon code cannot be used together with new customer discount, if he is using also then highest discount will be considered.

There are totally 3 conditions: 1. New Customer discount

                                                 2.Old Customer discount

                                                 3. Coupon code Discount

 Then 23 = 8 rules/scenarios.

No of conditions

Rule 1

Rule 2

Rule 3

Rule 4

Rule 5

Rule 6

Rule 7

Rule 8

New customer discount(15 %)

T

T

T

T

F

F

F

F

Old Customer discount(10 %)

T

T

F

F

T

T

F

F

Coupon code discount(20%)

T

F

T

F

T

F

T

F

Overall discount %

No

No

20%

15 %

30 %

10%

20 %

No

 Based on the table above, we write scenarios for the conditions.

5. State Transition Diagram / State Flow Diagram

In this technique, we will check for different states on screens or pages of the machine or system or software is properly displayed or not.

Example : ATM Cash Withdrawl Flow

In the above flow diagram, each flow for the cash withdrawl is drawn so that test scenarios can be easily created.

Hope you liked my blog!!!!

Thanks for reading!!!!!!!!!!


Sunday, December 13, 2020

Drawbacks of Developer Testing the software!!!!!

Many people think anybody can do Testing but in this article let us
see what happens when developer himself test software and what are the drawbacks.

Below are the  drawbacks of developer testing the software:

1.Developers will utilize all the testing time in writing code.

2.Developers will be concerned more on developing the software rather than testing.

3.Developers will be over confident.

4.Developers write the program & test only from positive point of view & they will not test from negative point of view.

5.While testing if developers find any minor defect then developers will not try to fix the defect.

These are main drawbacks of developers testing the software.

Thanks for reading!!!!

Happy Testing!!!!!!!

Thursday, September 24, 2020

Types of defects!!!!

As we all test the software in order to find defects, we also need to know types of defects.

There are many types of defects in general.

1.Functionality defects

2.Compatibility defects

3. Cosmetic defects

4. Performance defects

5. Security defects

6. Database defects

7. Wrong implementation defects

8. Missing implementation defects

9. Blocker defects

10.Major defects

11.Critical defects

12.Minor defects

These are few of the types of defects which I came across.


Happy Blogging!!!!

Sunday, September 6, 2020

Error,Defect,Bug and Failure!!!

Let us see the difference between Error, Defect,Bug and Failure.

Error: Mistakes done by developers in the code because of which we will not be able to run the code or compile the code is called as Error.
Example: System.out.println("Hello);

Defect: Error found in the application is called as Defect.

Bug: Bug is an informal name given to the defect and also defect accepted by the developers is called as Bug.

Failure: Many defect/Bugs present in the software leads to failure. If a build is not working according to the customer requirement specification leads to failure.

Happy Software Testing!!!!!

Saturday, September 5, 2020

Test Scenario & Test Case!!!!!

Test Scenario and Test Case are the most important and commonly used terms in Software Testing.

In simple terms and sentences we see both the terms as,

What is Test Scenario?

Test Scenario is a high level documentation of all the customer business work flows according to the requirement. By looking into the test scenario we can not test any project or application until and unless we have very good project/product knowledge.

Example : For Whatsapp application, Open Whatsapp, click on Chats, Open a chat, Click on Search and enter any letters, it should be highlighted.

What is Test Case?

Test Case is a detailed documentation of scenario which helps to Tester to test the application. By looking into testcases, we can test any project or any application without having product knowledge because it will be in detail.

Example: For the above scenario,

                 Step:1: Open Whatsapp

                 Step:2: Click on Chats

                 Step:3: Open a Chat

                 Step:4: Enter letter 'A'

                 Step:5: Check whether the text containing 'A' are highlighted or not.

While writing test cases, all the details will be provided like test data, expected result to compare and step by step test steps.

Thanks for reading my Blog!!!

Happy Software Testing!!

Wednesday, September 2, 2020

Software Test Life Cycle!!!!

Software Testing is an investigation conducted to provide stakeholders with information about the quality of the software. It is a process which involves the execution of a software or system to check whether the software is working as expected.

Software Testing mainly focuses whether the developed system meets the customer/stakeholder’s expectations. Software Testing itself has many phases and it is called as STLC. STLC is a part of Software Development Life Cycle. SDLC has many phases and STLC is a part of it.

Below flow diagram shows the different phases of STLC:

Requirements is the input to STLC. Software Testing starts with Requirements, firstly Requirements will be studied by entire team that is called as System Study. After the first two phases, Test Plan will be created to understand the scope of Testing. Once after Test Plan is created, detailed Test cases will be written / created. Traceability Matrix will be created to ensure each requirement is covered with the test cases. Test Execution and Defect Tracking will be done if there are any defects. Once all the test cases are executed and finished. Then Test Execution report will be created and retrospect meeting will be conducted to discuss about what went well and what didn’t go well.

We will see all the phases in detail below:

1.Requirements:

            The very first is Requirements and it is the input for Testing. It is the phase where Software Testing starts. Requirements will be discussed with the entire team.

    2. System Study:

           The requirements given in first phase will be deeply studied and process starts with writing Test Plan. 

3.Write Test Plan:

Test Plan is a document which derives all the Testing activities of the project. All the future Testing activities will be planned and document in this and it is known as Test Plan.

It contains below information usually:

   Number of Testers needed.

   Who should Test which module and which feature.

   Which will be the Defect Tracking tool.

   Start and End Dates of writing Test Cases and Execution planned dates.

   Scope of Testing

4.Write Test Cases:

    In this phase, Test Cases will be created. These Test Cases will be reviewed and after all review comments are updated and once the test cases are approved, they will be stored in a Test Case repository.

5.Traceability Matrix:

Traceability matrix is a document which ensures that every requirement has a test case. Test cases are written by referring to the requirements and test cases are executed by using them.

If any requirement is missed and test cases are not created for that particular requirement, then testing will not be done for that module /feature. To make sure that all the requirements are having at least one test case.

6.Defect Tracking:

Bug/ Defect found by QA team is sent to the development team. This should be followed up by QA team until it is fixed and if it is really fixed then need to do Retesting and also Regression Testing based on the need and defect should be closed.

7.Test Execution Report:

It is a report generated once Testing is completed. Usually it is prepared after every Test Cycle and sent to Development team, Testing team, Management team and also sometimes Customer.

The last Test Execution report will be sent to customer and this means that project is over.It contains below information usually:

        List of Bugs

        Summary of Test Cases passed and failed.

        Summary of Deferred Test Cases

8.Retrospect Meeting:

     It is also called as Post Mortem meeting or Project Closure Meeting. It is conducted to discuss the achievements and mistakes in the project. “What went well” and What didn’t go well” will be discussed and document in Quality Management System under Retrospect folder.

These are the various phases of STLC generally.

Thanks for reading my Blog.

Happy Testing!!!!


Friday, August 21, 2020

SEVERITY & PRIORITY OF A BUG😎!!!

Severity and Priority of a Bug are the mandatory fields of a Bug Report because these two fields helps to  decide how quickly a bug should be fixed.

What is Severity?

Severity is the impact of the bug on customer's business and tells how severe the bug is and the impact of the bug.

What is Priority?

Priority defines how soon the defect should be fixed.It defines the importance of the bug.

Generally, Severity is assigned by Tester/Test Lead and priority is assigned by Developer/Project Lead.It requires whole team to decide. Development team will fix the High Priority Bugs first rather than high Severity.

Examples of Different Combinations:

High Priority & Low Severity: Logo of the company or brand ,it won't cause lot of damage but need to be fixed as soon as possible.

High Priority & High Severity: In an Ecommerce website, 'Submit' button is not working.When user enters all the information and clicks on 'Submit' button , it throws error.

Low Priority & Low Severity: Spelling mistakes , a page is taking more time to load than usual.

Low Priority & High Severity: Browser compatibility issues

These are only the examples, in real time whole team will decide these two fields as per the application and business flows.

Happy Software Testing!!!!!!