SOFTWARE TESTING GENERAL CHARACTERISTICS

 SOFTWARE TESTING GENERAL CHARACTERISTICS                  

Being a beginner in software industry as Software Tester has definitely changed my life and me as a person.

Logic mind – Yes.

All my childhood  I was thinking I am a humanitarian not a technician or mathematician i started to look at things differently. I realized  if you don’t do stuff you do not evolve. I was told many times by my parents “you are lazy” simply because i was looking for “what’s mine” and has changed a good amount of jobs from their point of view. They were old I will never be good at software testing if I don’t know mathematics by my friends.

I was told “you will never be good at software testing if you will start learning programming languages and what is connected to it at the age of 25” by my acquaintances…But all I knew – I was told. But this story is not about the boy who easily gives up. I decided to follow the calling of my heart. I knew I’m going the right direction. Did I see the signs? Yes,.. but that is a whole another story.

Logic thinking.

That is what I realized I cherish in people. Because people who think with their logic can do less mistakes, they are not perfect but they are very close to that.  if you are thinking to start  career as a Software tester  or  QA Engineer in Software  industry   below article  will help you to know the basic of the Software testing but  One think  I would like to tell you about Testing  is that testing  is not easiest  And Simple job it required patience ,calmness and  Strong Thinking . If you know or if you seen 10yr back there was no separate  field  for  Software  Testing ,Software developer  usually did that but now there is Special field called Testing In which Specialized or fresher can  think of a different unique line in IT industry.

As Software Testing engineer if you take my opinion Testing is the backbone for the Software industry .Because every software product/project / Application release is done After Testing only. By doing Testing itself we can judge that the product/Project/Application is free of Defects/bugs but one think keep in your mind 100% Testing is impossible.

Take look at some simple point are given as follows About the Software Testing.  I hope it will help you to understand about Testing.

What is mean by testing?

Being in the software industry, we have to encounter the word TEST many times. Though we  have our own specific meaning of the word TEST, how we describe test word. it comes many time throughout in  our life .There are some specific meaning of TEST which are give as follows.

–  A Test is a deliberate action or experiment to find out how well something works.

–  A Test is an act of using something to find out whether it is working correctly or how effective it is.

–  It is a procedure for critical evaluation; a means of determining the presence, quality, or truth of something.

– Also test is a critical examination, observation, or evaluation.

–  A Test is the means by which the presence, quality, or genuineness of anything is determined.

– It is trying something to find out about it.

– A Test is a process used to discover whether equipment or a product works correctly, or to discover more about it.

In Above definition there are many different words are give but when we see all the definitions we found that all the  definitions provide the same meaning for TEST. Testing means Simply examine  something   it may be solid , liquid  or gas. In this article we are understanding word Test with respect to Software Testing.

Seven Most Essential Principle of Testing With respect to Software Industry :-
Principle 1 – Testing shows presence of defects

Testing can show the presence of errors, but cannot prove that the system is free of errors. Testing reduces the probability of undiscovered defects remaining in the software but even if no defects are found that cannot prove that the application is error free.

Principle 2 – Exhaustive testing is impossible

An exhaustive testing is not possible to test all possible combinations of data. Critical area and limited inputs are tested. Therefore, the effort must be managed by risk.

Principle 3 – Early testing

Testing activities shall be started as early as possible when defects are found earlier in the lifecycle, they are much easier and reduces the costs for the work. Testers can prepare testing for each level of the development lifecycle.

Principle 4 – Defect clustering

During testing, it can be observed that most of the defects are found in same area. The place where one error occurs, it’s likely to find some more.

Principle 5 – Pesticide paradox

If the same set of tests are running over and over again, no newer defects will be discovered by those test cases. Because many of the previously reported defects will have been fixed and the old test cases do not apply anymore. So new and different test-cases must be updated time by time.

Principle 6 – Testing is context dependent

Testing is done differently in different system. For example, E-commerce websites require a different approach than safety software.

Principle 7 – Absence-of-errors fallacy

Error finding and error fixing does not guarantee the users’ needs and expectations. Testing didn’t find any defects in the software, it doesn’t mean that the software is ready to be use.

2) Software Testing is define ” The process of evaluating a system or its component(s) with the intent to find whether it satisfies the specified requirements or not. In simple words, testing is executing a system in order to identify any gaps, errors, or missing requirements in contrary to the actual requirements.”

If we see  in our day to day life each and every person perform some testing task. Whatever it may be without testing new product or things  we are not satisfy or we cannot give  any opinion on new product which are  going to launch in  market or which are already  present in a market.

Software testing also gives  us assurance about the product / project which we are launching newly in to the market. Testing perform to provide  good quality  product or application to the end user. it will not only increases chances of product success but also increases to get more and more business.

Functional Testing vs. Non-functional Testing – Which One To Use?

One of the most basic objectives of any software development project is to conduct both, functional and non-functional requirements. To carry it out successfully and effectively, it is important that you keep the right kind of balance and harmony and more importantly not compromised with the gradually increasing project progresses. So, how functional and non-functional testing differs from one another? Let’s explore more about it!
Well, one of the most basic differences between functional and non-functional testing is the way they are carried out. Functional testing refers to the activities that verify a particular action or function of the code whereas non-functional testing refers to the aspects of the software that may not to be associated with a specific function or user action including scalability, behavior, security and other aspects.

There  are  two types of  software testing are performs in software industry which are given as below.
1)Functional Testing
2)Non- Functional Testing
Functional Testing :-

It is a testing technique that is used to test the features/functionality of the system or Software, should cover all the scenarios including failure paths and boundary cases.

Functional testing means testing the application against business requirements. hence it is executed using the functional specifications given by the client or by the design specifications according to use cases given by the design team. Role of functional testing is to validating the behavior of an application.

Functional testing is more important because it always verifies that your system is fixed for release. The functional tests define your working system in a useful manner. In functional testing tester has to validate the application to see that all specified requirements of the client whatever we have said in SRS or BRS have been incorporated or not.

Functional testing is always concentrating on customer requirements and whereas the Non-Functional testing is always concentrating on customer expectations.

What do you test in Functional Testing?

The prime objective of Functional testing is checking the functionalities of the software system. It mainly concentrates on

  • Mainline functions:  Testing the main functions of an application.
  • Basic Usability: It involves basic usability testing of the system. It checks whether an user can freely navigate through the screens without any difficulties.
  • Accessibility:  Checks the accessibility of the system for the user.
  • Error Conditions: Usage of testing techniques to check for error conditions.  It checks whether suitable error messages are displayed.
Functional Testing Process:
In order to functionally test an application, following steps must be observed.
Understand the Requirements
Identify test input (test data)
Compute the expected outcomes with the selected test input values
Execute test cases
Comparison of actual and computed expected result

Ex- In calculator  if we type 2 + 2 then result should be 4 not 5 or 6.In this example we are testing  addition function for calculator.

Functional Testing Techniques:-

There are two major Functional Testing techniques as shown below.

The other major Functional Testing techniques include:

  • Unit Testing
  • Integration Testing
  • Smoke Testing
  • User Acceptance Testing
  • Interface Testing
  • Usability Testing
  • System Testing
  • Regression Testing
Non- Functional Software Testing :-

Non-Functional testing is a software testing technique that verifies the attributes of the system such as memory leaks, performance or robustness of the system. Non-Functional testing is performed at all test levels. Testing perform for its  non functional aspects. like  Memory size, how it support other application  whether it is h/w or s/w etc.

What do you test in Non-Functional Testing?

In non-functional testing the quality characteristics of the component or system is tested. Non-functional refers to   aspects of the software that may not be related to a specific function or user action such as scalability or security.

Eg. How many people can log in at once? Non-functional testing is also performed at all levels like functional testing.

Different types of  Non Functional Testing :-
  • Baseline testing
  • Compatibility testing
  • Compliance testing
  • Endurance testing
  • Load testing
  • Localization testing
  • Performance testing
  • Recovery testing
  • Security testing
  • Scalability testing
  • Stress testing
  • Volume testing
What do you mean  by Web based Application Software Testing?

Definition :-Web based application Software testing  is a software testing technique exclusively adopted to test the applications that are hosted on web in which the application interfaces and other functionalities are tested.

Web base Application Software testing is widely used in software industry. Points to be considered while testing a Web site. Web sites are essentially client/server applications with ‘ web servers’ and ‘browser’ clients. There are  some essential point raise while Testing Web based Application software and that needed to be solve within time limits. which are given as follows

 

-Who is the target audience?

-What kind of browsers will they be using?

– Also What kind of connection speeds will they by using?

-What processes will be required to manage updates to the web site’s content, and what are the requirements for maintaining, tracking, and controlling page content, graphics, links, etc.?

-How will internal and external links be validated and updated? how often?

Therefore let me tell you one thing that I always like to share practical knowledge, which can be useful to users in their career life. Because practically  understanding  something  is better as compare to theoretically understanding.
1) Functionality Testing
2) Usability testing
3) Interface testing
4) Compatibility testing
5) Performance testing
6) Security testing