Tuesday, February 7, 2023

Software Testing Basics | Software Testing for Beginners | Manual Testing

Software Testing Basics

Software Testing is important part part of Software Engineering. It plays vital role in software delivery. It determines the critical bug before deployment. There are multiple Testing Types and Techniques. In this article I have discuss the Testing Types and Techniques so that a beginner can understand software testing concepts and write testcases.

What is Software Testing?

Software Testing is a method to check whether the actual software product matches expected requirements and to ensure that software product is Defect free. 

Functional and Non-Functional Testing

Functional Testing

Functional testing is testing the ‘Functionality’ of a software or an application under test.It tests the behavior of the software under test. Based on the requirement of the client, a document called a software specification or Requirement Specification is used as a guide to test the application.
  •  Unit Testing 
  • Smoke Testing 
  • Integration Testing 
  • System Testing  

 

·    Unit Testing This software testing basic approach is followed by the programmer to test the unit of the   program. It helps developers to know whether the individual unit of the code is working properly or not.

         Smoke Testing is a software testing process that determines whether the deployed software build is stable or not. Smoke testing is a confirmation for QA team to proceed with further software testing 

     Integration testing: It focuses on the construction and design of the software. You need to see that the integrated units are working without errors or not.

System testing: In this method, your software is compiled as a whole and then tested as a whole. This testing strategy checks the functionality, security, portability, amongst others.

 

Non Functional Testing

Non-functional testing is a type of testing to check non-functional aspects (performance, usability, reliability, etc.) of a software application. It is explicitly designed to test the readiness of a system as per nonfunctional parameters which are never addressed by functional testing.
  • Load Testing 
  • Stress Testing 
  • Usability Testing

Load Testing: An application which is expected to handle a particular workload is tested for its response time in a real environment depicting a particular workload. It is tested for its ability to function correctly in a stipulated time and is able to handle the load.Below are few Load Testing tools

  • JMeter
  • WebLoad
  • LoadNinja


 Stress Testing: In Stress testing, the application is stressed with an extra workload to check if it works efficiently and is able to handle the stress as per the requirement.
 
Example: Consider a website which is tested to check its behavior when the user accesses is at its peak. There could be a situation where the workload crosses beyond the specification. In this case, the website may fail, slow down or even crash.

Stress testing is to check these situations using automation tools to create a real-time situation of workload and find the defects.For Stress Testing we need environments 

  • BlazeMeter
  • AWS Distributed Load Testing Environment

Usability Testing:
In this type of testing, the User Interface is tested for its ease of use and see how user-friendly it is.

Security Testing:

Security Testing is to check how secure the software is regarding data over the network from malicious attacks. The key areas to be tested in this testing include authorization, authentication of users and their access to data based on roles such as admin, moderator, composer, and user level.

 It is very important now a days. Cyber security is another topic to handle below things

Examples:

  • Penetration
  • Hacking
  • Bash Scripting
  • Dictionary Attack

Software Testing Techniques

Software Testing Techniques help you design better test cases. Since exhaustive testing is not possible; Manual Testing Techniques help reduce the number of test cases to be executed while increasing test coverage. They help identify test conditions that are otherwise difficult to recognize.

 

  • Boundary value Analysis
  • Equivalence Class Partitioning

  • Decision Table 

     

Boundary Value Analysis (BVA)

Boundary value analysis is based on testing at the boundaries between partitions. It includes maximum, minimum, inside or outside boundaries, typical values and error values.

It is generally seen that a large number of errors occur at the boundaries of the defined input values rather than the center. It is also known as BVA and gives a selection of test cases which exercise bounding values.

This black box testing technique complements equivalence partitioning. This software testing technique base on the principle that, if a system works well for these particular values, then it will work perfectly well for all values which comes between the two boundary values.

Example:

Input condition is valid between 1 to 10

 Boundary values 0,1,2 and 9,10,11

 

  Equivalence Class Partitioning

Equivalent Class Partitioning allows you to divide set of test condition into a partition which should be considered the same. This software testing method divides the input domain of a program into classes of data from which test cases should be designed.

The concept behind this technique is that test case of a representative value of each class is equal to a test of any other value of the same class. It allows you to Identify valid as well as invalid equivalence classes.

Example:

Input conditions are valid between

 1 to 10 and 20 to 30

Hence there are five equivalence classes

--- to 0 (invalid)

1 to 10 (valid)

11 to 19 (invalid)

20 to 30 (valid)

31 to --- (invalid)

You select values from each class, i.e.,

-2, 3, 15, 25, 45


Decision Table

The decision table is a software testing technique which is used for testing the system behavior for different input combinations. This is a systematic approach where the different input combinations and their corresponding system behavior are captured in a tabular form.

This table helps you deal with different combination inputs with their associated outputs. Also, it is known as the cause-effect table because of an associated logical diagramming technique called cause-effect graphing that is basically used to derive the decision table.


 

In the above example,

  • T – Correct username/password
  • F – Wrong username/password
  • E – Error message is displayed
  • H – Home screen is displayed

Now let’s understand the interpretation of the above cases:

  • Case 1 – Username and password both were wrong. The user is shown an error message.
  • Case 2 – Username was correct, but the password was wrong. The user is shown an error message.
  • Case 3 – Username was wrong, but the password was correct. The user is shown an error message.
  • Case 4 – Username and password both were correct, and the user is navigated to the homepage.

 

References: 

https://www.edureka.co/blog/what-is-software-testing/
https://www.guru99.com/software-testing.html



Wednesday, November 14, 2018

Second Testers Meetup Karachi by Ministry of Testing

After had a first successful Testers Meetup, organizers arranged a second meetup in 10Pearl on November 10,2018. Registration was started in October and I get myself registered.Total 270+ registration with 100 IT companies for this event. It was immense pleasure to attend Testers Meetup again. This time event was supported by WomenInTechPK and Ministry of Testing - Karachi Chapter

I was bit late this time and surprisingly didnt get chance to sit in the main hall which was full :)




however I got my seat next to main hall.



The session was started with a welcome note from Arslan Ali.


The event started with topic presented by Eliya Hassan and Syed Uzair Uddin on BDD and TDD in which they have emphasized the importance of Integration of tools like TestRail with Jenkins and single Testing Framework( BDD-Cucumber, Web-Selenium, Mobile-Appium, Reports-Extent Report)






As per agenda of the meetup, Mr Arslan Ali have presented a very interesting topic Being Context Worthy which is about shifting your context according to scenario.



Ms.Aiman Tirmizi presented her presentation on topic Do we Stop or Abandon Software testing


After this presentation there were a tea break and once again people get a great networking together.


 




Once again we gather for a panel discussion, lucky this time I get my seat in main hall. The discussion was again related to first Testers Meetup topic i.e. Is Manual Testing Dying? The panel was consists of Kamran Ali, Syed Amir Imam, Ahmed Bilal Khalid, Naqi Ali, Tarruf Ali (from left to right)


Once again it was a hot topic some people was in favor of Manual Testing and some were emphasized on Automation Testing. There were some question answer sessions as well




Mr.Arsalan then asked people to volunteer themselves for FlashTalk. Almost 10 people participated in Flash Talk on different topics.  
Abid Munif shade somelights to learn new algorithms to excel in testing. For example if we have to test a software for a taxi without a driver. The other participants mostly talked about Manual vs Automated Testing.

 The Meetup was ended on HR(10Pearls) note. 



Overall the event was very successful with enthusiasm to have more meetups and Conference in future.





First Testers Meetup Karachi by Ministry Of Testing

Ministry of Testing is one of my favorite community I was following from couple of years. It was great pleasure when I heard that a #TestersMeetupKHI is organized in NestIO  on May 12,2018. The event was organized by NestIO, Contour Software and Ministry of Testing
 
I decided to attend this and then register my self in this event.I reached in this event on time and it was started with a welcome note from Arsalan Ali. The event then had a nice presentation from Faiza Yousuf(Chief Consultant @ OuttaBox, Founder @ #WomenInTechPK and Researcher) on Lessons Learned in Teaching QA(where shared her experiences in teaching QA).




After this presentation there was a panel discussion in which Muhammad Kamran(Principal QA-Team Lead,POMS Division, Contour Software) invited Abid Muneef (Principal QA- Team Lead, Assetworks Division, Contour Software), Farah Gul (SQA Analyst, Majiq Division, Contour Software), Naqi Ali (QA, Karachi Stock Exchange) and Eliya Hasan Abid (Test Architect, Ten Pearls). The topic was interested and it was about Manual vs Automation Testing. There were very good arguments from panelist and the participants.
 After this hot discussion there was a tea break where participants had a nice networking session. Mr Arsalan Ali gather participants again and this time invited Syed Muhammad Amir Imam (Principal QA Analyst, POMS Division, Contour Software) to present the topic Codeless Automation(how you can minimize code and organize your tests and its importance in life cycle)


 Last but not least Arsalan Ali(Functional Consultant, Business Analyst, THK Solutions) presented the topic Are we in the Wrong Room(which is about being professional, many strings are attached to us and the very imbalance in our emotions can break these strings to our own professional demise.)



 The event was end with some appreciation certificates distribution to organizers

Certificate given to Faiza Yousuf 


 Certificate given to Muhammad Kamran

 Certificate given to Eliya Hasan Abid

Certificate given to Tehseen Shamim 






Certificate given to Syed Uzair Uddin









At the end of the meetup the motivation was very high to arrange another meetup in future. Well done to all organizers to arrange this Meetup







Monday, May 14, 2018

کتاب: فضائل صحابہ و اہلبیت رضوان اللہ تعالی علیہم اجمعین