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



What is Security Testing ? 
Also know as Penetration testing .
During this the testing team is validating for :
Authorization :
Access to the valid user and deny to invalid user .
Access control :
Giving access permissions to the valid users to use specific services like features or functionalities in software
Encryption or Decryption :
Deny to third party access to enter into the system . Code conversion is in between client process and server process.
security testing is a testing technique to determine if an information system protects data and maintains functionality as intended. It also aims at verifying 6 basic principles as listed below:
  • Confidentiality
  • Integrity
  • Authentication
  • Authorization
  • Availability
  • Non-repudiation

Security Testing - Techniques:

  • Injection
  • Broken Authentication and Session Management
  • Cross-Site Scripting (XSS)
  • Insecure Direct Object References
  • Security Misconfiguration
  • Sensitive Data Exposure
  • Missing Function Level Access Control
  • Cross-Site Request Forgery (CSRF)
  • Using Components with Known Vulnerabilities
  • Unvalidated Redirects and Forwards



What is Parallel testing ?
It is also called as comparative  or competitive testing .
Comparison of two different systems.(Old version Vs New version ) .
Compare with the competitive software in market to estimate competitiveness.
Applicable to software product only .

Parallel testing is a testing technique in which the same inputs are entered in two different versions of the application and reporting the anomalies.

Characteristics of Parallel Testing:

  • Ensures that the new version of the application performs correctly.
  • Ensures consistencies and inconsistencies are the same between the old and the new version.
  • Ensures the integrity of the new application.
  • Verifies if the data format between the two versions have changed.




What is Volume Testing ?
Its also known as storage testing or memory testing .
Find weakness in the system with respect to its handling of large amount of data during short time periods.
Example :
This kind of testing ensures that the system will process data across physical and logical boundaries such as across server and across disk partitions on one server .



What is Performance Testing ?
. Check the response time of application .
. Performance means that speed of the processing .

Performance testing, a non-functional testing technique performed to determine the system parameters in terms of responsiveness and stability under various workload. Performance testing measures the quality attributes of the system, such as scalability, reliability and resource usage.

Performance Testing Techniques:

  • - Load Testing
  • - Stress Testing
  • Soak testing - Soak Testing also known as endurance testing, is performed to determine the system parameters under continuous expected load. During soak tests the parameters such as memory utilization is monitored to detect memory leaks or other performance issues. The main aim is to discover the system's performance under sustained use.
  • Spike testing - Spike testing is performed by increasing the number of users suddenly by a very large amount and measuring the performance of the system. The main aim is to determine whether the system will be able to sustain the workload.

Attributes of Performance Testing:

  • Speed
  • Scalability
  • Stability
  • reliability

    Performance Testing Tools
  • Jmeter - http://jmeter.apache.org/
  • Open STA - http://opensta.org/
  • Load Runner - http://www.hp.com/
  • Web Load - http://www.radview.com/

What is Stress Testing ?
Also called Endurance testing .
The execution of our software build under customer expected configuration and various load levels to estimate stability or continuity is called Stress testing .
Check how the system can behave under extreme such as insufficient memory , inadequate hardware etc.

It is performed to find the upper limit capacity of the system and also to determine how the system performs if the current load goes well above the expected maximum.
  • It is a type of non-functional testing.
  • It involves testing beyond normal operational capacity, often to a breaking point, in order to observe the results.
  • It is a form of software testing that is used to determine the stability of a given system.
  • It  put  greater emphasis on robustness, availability, and error handling under a heavy load, rather than on what would be considered correct behavior under normal circumstances.
  • The goals of such tests may be to ensure the software does not crash in conditions of insufficient computational resources (such as memory or disk space).

What is Load Testing ?

Also called as scalability testing .
Test the performance of an application on loading the system with maximum user at the same time .

Example  : Websites Yahoo , G-mail .

It is the simplest form of testing conducted to understand the behavior of the system under a specific load. Load testing will result in measuring important business critical transactions and load on the database, application server, etc., are also monitored.


What is Installation Testing ?
Checks the installing and uninstalling of the software in customer site.

Installation Testing: It is performed to verify if the software has been installed with all the necessary components and the application is working as expected. This is very important as installation would be the first user interaction with the end users.
Companies launch Beta Version just to ensure smoother transition to the actual product.

Installation Types:

The following are the installation types:
  • Silent Installation
  • Attended Installation
  • Unattended Installation
  • Network Installation
  • Clean Installation
  • Automated Installation
Uninstallation Testing: Uninstallation testing is performed to verify if all the components of the application is removed during the process or NOT. All the files related to the application along with its folder structure have to be removed upon successful uninstallation. Post Uninstallation System should be able to go back to the stable state.
Installation testing is check that software application is successfully installed & it is working as expected after installation. This is testing phase prior to end users will firstly interact with the actual application. Installation testing is also called as “Implementation Testing”. This is most important as well as most interesting step in the Software testing life cycle.
Few points need to check in the prior to Installation testing:
  • Verify the pre-requisites needed to software install the application if any.
  • Installation should be run at default location & it should present to user with default location with user can able to change the default location.
  • Verify that user should able to install software from different location like over network, online installation, installation from CD etc.
  • Verify software installation without giving the administrative privileges.
  • Verify to check working of Installer.exe is executing smoothly on clean state.
  • Verify to check is the Installer.exe is calculating the disk space needed to successfully install the application prior to install the application.
  • Verify the software installation on multiple platforms, before doing this need to confirm the supported list of platforms.
  • Verify that successful “Silent installation”. In the Silent installation messages in the process of installation are not displayed on UI, all messages are added in log files and based on messages occurred is used as input in the installation process.
  • Verify if the Interactive installation, GUI screen presented to user & user needs to provide input parameters in installation. This is majorly used in product installation.
  • Verify that after successful installation of software is it working as per mention in specification document & meet user needs.
  • Upon un-installation of software application check for the all previously installed files and registry entries are removed or not.
  • Verify that is user able to uninstall or repair the software application.
- See more at: http://www.softwaretestingclass.com/what-isinstallation-testing/#sthash.P9jPlG6X.dpuf

 

What is Inter systems Testing?

Many a times, an application is hosted across locations; however, all data needs to be deployed over a central location. The process of testing the integration points for single application hosted at different locations and then ensuring correct data flow across each location is known as inter system testing.
Also known as end to end testing .

Example

In Shopping Mall , billing system and bar code reader are interconnected with each other .
 

 

What is Configuration Testing?

Configuration testing is the process of testing the system with each one of the supported software and hardware configurations. The Execution area supports configuration testing by allowing reuse of the created tests.

Executing Tests with Various Configurations:

Operating System Configuration - Win XP, Win 7 32 bit/64 bit, Win 8 32 bit/64 bit
Database Configuration - Oracle, DB2, MySql, MSSQL Server, Sybase
Browser Configuration - IE 8, IE 9, FF 16.0, Chrome

 

What is Compatibility testing in software testing?

  • It is a type of non-functional testing.
  • Compatibility testing is a type of software testing used to ensure compatibility of the system/application/website built with various other objects such as other web browsers, hardware platforms, users (in case if it’s very specific type of requirement, such as a user who speaks and can read only a particular language), operating systems etc. This type of testing helps find out how well a system performs in a particular environment that includes hardware, network, operating system and other software etc.
  • It is basically the testing of the application or the product built with the computing environment.
  • It tests whether the application or the software product built is compatible with the hardware, operating system, database or other system software or not.

 

 

What is Recovery testing in software?

  • It is a type of non-functional testing.
  • Recovery testing is done in order to check how fast and better the application can recover after it has gone through any type of crash or hardware failure etc.
  • Recovery testing is the forced failure of the software in a variety of ways to verify that recovery is properly performed. For example, when an application is receiving data from a network, unplug the connecting cable. After some time, plug the cable back in and analyze the application’s ability to continue receiving data from the point at which the network connection got disappeared. Restart the system while a browser has a definite number of sessions and check whether the browser is able to recover all of them or not.

Recovery Plan - Steps:

  • Determining the feasibility of the recovery process.
  • Verification of the backup facilities.
  • Ensuring proper steps are documented to verify the compatibility of backup facilities.
  • Providing Training within the team.
  • Demonstrating the ability of the organization to recover from all critical failures.
  • Maintaining and updating the recovery plan at regular intervals.

What is Functional Testing  :

Testing testing concentrates on customer requirements in terms of functionality.
Concentrating on requirements correctness and completeness.

Two Sub test as follows :

- Functionality Testing:
Also Called as Requirement Testing.
Concentrating on correctness of every functionality with respect to requirements.
Process of verifying whether product meets its design and functional specification .
Validating the correctness of every functionality through coverage's.
GUI Coverage or 


Popular Posts

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