About Me

Total Pageviews

Followers

Text Widget

Powered by Blogger.

Tuesday 19 May 2015


So What is Defect Life Cycle ?

New : Tester found new bug and report it to test lead .

Open : Team Lead open this bug and assign to the developer .

Assign : Developer has three choices after assigning the big.

1. Reject : He can say that this is not a bug because of some hardware or other problems you might getting defect in application .
2. Differed : He can postpone bug fixing according to priority of bug .
3. Duplicate : If the bug is repeated twice or the two bugs mention the same concept of the bug , then one bug status is changed to "Duplicate".

Fixed : If there are no such conditions like reject , duplicate the developer has to fix the bug .

Re-Testing : Re-test the whole application to find the defects if  the defect is still there. In case there is a bug present  , they will re-open the bug and if bug is not there it will move to verify.

Re- Open : If defect raised during re-testing we re- open the bug .

Verify : Test whole application (Regression ).

Close : Close the application .


What is Severity ?

The degree of impact casted by the bug on an application .
Or 
Severity is the seriousness of the problem .
Severity:

  • It is totally related to the quality standard or devotion to standard. 
  • Severity means how severe it is affecting the functionality. 
  • Severity is associated with standards. 
  • The severity type is defined by the tester based on the written test cases and functionality. 
  • Is related to technical aspect of the product. 
  • It reflects on how bad the bug is for the system. 
  • It is totally related to the quality standard or devotion to standard. 
  • Severity means how big functionality is affecting of the product. 
  • The Test Engineer can decide the severity level of the bug. 
  • Based on Bug Severity the product fixes are done. 



What is Priority ?

Relative degree of precedence given to a bug for its fixation .
Or 

  • Priority is the urgency of fixing a problem .
  • Priority means how fast it has to be fixed. 
  • Priority is related to scheduling to resolve the problem. 
  • Severity means how severe it is affecting the functionality. 
  • Is largely related to Business or Marketing aspect. 
  • It is a pointer towards the importance of the bug. 
  • The priority status is set based on the customer requirements. 
  • Is related to technical aspect of the product. 
  • It reflects on how bad the bug is for the system. 
  • Priority means how urgently the issue can be fixed. 
  • Product manager is to decide the Priority to fix a bug. 
  • Based on ‘Project Priorities the product fixes are done. 
  • The Priority status is set by the tester to the developer mentioning the time frame to fix a defect. If High priority is mentioned then the developer has to fix it at the earliest. 
Examples :

High Priority & High Severity:
  1. All show stopper bugs would be added under this category (I mean to say tester should log Severity as High, to set up Priority as High is Project manager’s call), means bug due to which tester is not able to continue with the Software Testing, Blocker Bugs.
  2. Let’s take an example of High Priority & High Severity, Upon login to system “Run time error” displayed on the page, so due to which tester is not able to proceed the testing further.
High Priority & Low Severity:
  1.  On the home page of the company’s web site spelling mistake in the name of the company is surely a High Priority issue. In terms of functionality it is not breaking anything so we can mark as Low Severity, but making bad impact on the reputation of company site. So it highest priority to fix this.
Low Priority & High Severity:
  1. The download Quarterly statement is not generating correctly from the website & user is already entered in quarter in last month. So we can say such bugs as High Severity, this is bugs occurring while generating quarterly report. We have time to fix the bug as report is generated at the end of the quarter so priority to fix the bug is Low.
  2. System is crashing in the one of the corner scenario, it is impacting major functionality of system so the Severity of the defect is high but as it is corner scenario so many of the user not seeing this page we can mark it as Low Priority by project manager since many other important bugs are likely to fix before doing high priority bugs because high priority bugs are can be visible to client or end user first.
Low Priority & Low Severity:
  1. Spelling mistake in the confirmation error message like “You have registered success” instead of successfully, success is written.
  2. Developer is missed remove cryptic debug information shortcut key which is used developer while developing he application, if you pressing the key combination LEFT_ALT+LEFT_CTRL+RIGHT_CTRL+RIGHT_ALT+F5+F10 for 1 mins .


So What is White Box Testing ?

White Box Testing is the testing of a software solution's internal coding and infrastructure.It focuses primarily on strengthening security, the flow of inputs and outputs through the application, and improving design and usability.White box testing is also known as clear, open, structural, and glass box testing.
it is one of two parts of the "box testing" approach of software testing. Its counter-part, blackbox testing, involves testing from an external or end-user type perspective. On the other hand, Whitebox testing is based on the inner workings of an application and revolves around internal testing. The term "whitebox" was used because of the see-through box concept. The clear box or whitebox name symbolizes the ability to see through the software's outer shell (or "box") into its inner workings.

White box testing involves the testing of the software code for the following:
  • Internal security holes
  • Broken or poorly structured paths in the coding processes
  • The flow of specific inputs through the code
  • Expected output
  • The functionality of conditional loops
  • Testing of each statement, object and function on an individual basis

White Box Testing Techniques


A major White box testing technique is Code Coverage analysis. Code Coverage analysis, eliminates gaps in a test case suite.It identifies areas of a program that are not exercised by a set of test cases.Once gaps are identified, you create test cases to verify untested parts of code, thereby increase the quality of the software product
statement Coverage  This technique requires every possible statement in the code to be tested at least once during the testing process.  Branch Coverage - This technique checks every possible path (if-else and other conditional loops) of a software application. Tools: An example of a tool that handles branch coverage testing for C, C++ and Java applications is TCAT-PATH

Apart from above, there are numerous coverage types such as Condition Coverage, Multiple Condition Coverage, Path Coverage, Function Coverage etc.Each technique has its own merits and attempts to test (cover) all parts of software code.
Using Statement and Branch coverage you generally attain 80-90% code coverage which is sufficient.  

Types of White Box Testing

Unit Testing : It is often the first type of testing done on an application. Unit testing is performed on each unit or block of code as it is developed.
 Unit testing is essentially done by the programmer. As a software developer, you develop a few lines of code, a single function or an object and test it to make sure it works before continuing
Unit testing helps identify majority of bugs, early in the software development lifecycle. Bugs identified in this stage are cheaper and easy to fix.

Testing for Memory Leaks : Memory leaks are leading causes of slower running applications. A QA specialist who is experienced at detecting memory leaks is essential in cases where you have a slow running software application.
There are many tools available to assist developers/testers with memory leak testing , example , Rational Purify  for windows application

Apart from above a few testing types are part of both black box and white box testing. They are listed as below -

White Box Penetration Testing: In this testing, the tester/developer has full information of the application's source code, detailed network information, IP addresses involved and all server information the application runs on.  The aim is to attack the code from several angles to expose security threats

White Box Mutation Testing: Mutation testing is often used to discover the best coding techniques to use for expanding a software solution .


So What is Black Box Testing ?

Black box testing is a software testing techniques in which
functionality of the software under test (SUT) is tested without looking at the internal code structure, implementation details and knowledge of internal paths of the software.This type of testing is based entirely on the software requirements and specifications .
In Black Box Testing we just focus on inputs and output of the software system without bothering about internal knowledge of the software program.  

                         blackbox
The above Black Box can be any software system you want to test. For example : an operating system like Windows, a website like Google ,a database like Oracle or even your own custom application. Under Black Box Testing , you can test these applications by just focusing on the inputs and outputs without knowing their internal code implementation.

Types of Black Box Testing

There are many types of Black Box Testing but following are the prominent ones -
  • Functional Testing - This black box testing type is related to functional requirements of a system; it is done by software testers.
  • Non - Functional Testing - This type of black box testing is not related to testing of a specific functionality , but non-functional requirements  such as performance, scalability, usability.
  • Regression Testing - Regression testing is done  after code fixes , upgrades or any other system maintenance to check the new code has not affected the existing code.

Black box testing strategy:

Following are the prominent test strategy among-st the many used in Black box Testing
  • Equivalence Class Testing: It is used to minimize the number of possible test cases to an optimum level while maintains reasonable test coverage.
  • Boundary Value Testing: Boundary value testing is focused on the values at boundaries. This technique determines whether a certain range of values are acceptable by the system or not.It is very useful in reducing the number of test cases. It is mostly suitable for the systems where input is within certain ranges.
  • Decision Table Testing: A decision table puts causes and their effects in a matrix. There is unique combination in each column.

So What is Ad-hoc Testing ?
It is also called Informal testing .
In general ,every testing team conducts planned testing , but testing team adopts informal testing sometimes due to some challenges or risks .

Eg . Lack of time , Lack of resources , Lack of team size , Lack of skills etc.

There are different ways of Ad-hoc Testing .

Monkey Testing :
Due to lack of time , the testing team concentrates on some of the main activities in the software build for  testing . This style of testing known as "Monkey Testing " or "Chimpanzee Testing " or "Gorilla Testing ".

Buddy Testing :
Due to lack of time the management groups programmers and testers as "Buddies " Every buddy group consist of programmers & testers.
Eg : 1:1 or 2:1 or 3:1 (Preferable).

Exploratory Testing :
Due to lack of proper documentation of the software being built , the test engineers depend on past experience, discuss with others, brows the internet or operate similar people if possible.This style of testing is called "Exploratory Testing".

Pair Testing :
Due to lack of knowledge on project domain the management groups a senior tester and junior programmer are conducted testing , these all are called Pair Testing .

Defect Seeding :
To estimate the efficiency of test engineers , the programmers add bugs to the build the task is called defect seeding / debugging .


So What is User Acceptance Testing ?

Both testers and developers are involved .
After completion of system testing , the project management concentrates on UAT to collect feedback from real customer or model customer .

There are two ways to conduct UAT .

. Alpha Testing 
. Beta Testing 

What is Alpha Testing .

Alpha testing is a type of acceptance testing; performed to identify all possible issues/bugs before releasing the product to everyday users or public.  The focus of this testing is to simulate real users by using blackbox and whitebox techniques. The aim is to carry out the tasks that a typical user might perform. Alpha testing is carried out in a lab environment and usually the testers are internal employees of the organization. To put it as simple as possible, this kind of testing is called alpha only because it is done early on, near the end of the development of the software, and before beta testing.

What is Beta Testing ?
Beta Testing of a product is performed by "real users" of the software application in a "real environment" and can be considered as a form of external user acceptance testing.
 Beta version of the software is released to a limited number of end-users of the product to obtain feedback on the product quality. Beta testing reduces product failure risks and provides increased quality of the product through customer validation.
It is the final test before shipping a product to the customers. Direct feedback from customers is a major advantage of Beta Testing. This testing helps to tests the product in real time environment.
Difference between Alpha and Beta Testing :  
Alpha Testing
Beta Testing
Alpha testing performed by Testers  who are usually internal employees of the organization
Beta testing is performed by Clients or End Users who are not employees of the organization
Alpha Testing performed at developer's site

Beta testing is performed at client location or end user of the product

Reliability and security testing are not performed  in-depth Alpha Testing

Reliability, Security, Robustness are checked during Beta Testing

Alpha testing involves both the white box and black box techniques
Beta Testing typically uses black box testing

Alpha testing requires lab environment or testing environment

Beta testing doesn't require any lab environment or testing environment. Software is made available to the public and  is said to be real time environment

Long execution cycle may be required for Alpha testing

Only few weeks of execution are required for Beta testing

Critical issues or fixes can be addressed by developers immediately in Alpha testing

Most of the issues or feedback is collected from Beta testing will be implemented in future versions of the product

Alpha testing is to ensure the quality of the product before moving to Beta testing
Beta testing also concentrates on quality of the product, but gathers users input on the product and ensures that the product is ready for real time users.


What is Regression Testing ?

Ensuring that a bug is fixed without any side effect is called Regression Testing .
Or
Testing the functionality of unchanged feature to make sure that it is not broken because of the changes .

The Re-execution of selected test cases on modified build to estimate completeness and correctness
of the application without any ripple effects due to bug fixes . 

Regression Testing is required when there is a
  • Change in requirements and code is modified according to the requirement
  • New feature is added to the software
  • Defect fixing
  • Performance issue fix 
So What is Progression Testing ?

Execute the test cases for the first time, it is called Progression Testing .


What is Retesting ?

Re-executing all the failed test cases to check fixing done by development team is really fixed or not as called as retesting .
or 

We can check whether defect are fixed or not .






SO What is Mutation Testing ?

Introducing the known defects in the software to check the effectiveness of  testing process.

Mutation means a change in a program. Programmers are performing changes in tested program to estimate completeness and correctness of that program testing .

Mutation testing facilitates the following advantages:
  • Program code fault identification
  • Effective test case development
  • Detection of loopholes in test data
  • Improved software program quality
  • Elimination of code ambiguity
Disadvantages of mutation testing include:
  • Difficult implementation of complex mutations
  • Expensive and time-consuming
  • Requires skilled testers with programming knowledge

Mutation testing is a method of software testing in which program or source code is deliberately manipulated, followed by suite of testing against the mutated code. The mutations introduced to source code are designed to imitate common programming errors. A good unit test suite typically detects the program mutations and fails automatically. 

Mutation testing is used on many different platforms, including Java, C++, C# and Ruby.




Monday 11 May 2015

Popular Posts

Copyright © Manual Testing | Powered by Blogger
Design by Duan Zhiyan | Blogger Theme by NewBloggerThemes.com