Subscribe by Email


Showing posts with label Regression Testing. Show all posts
Showing posts with label Regression Testing. Show all posts

Thursday, January 24, 2013

Explain Oracle Application Testing Suite?


Oracle application testing suite is an effort to provide you with a comprehensive web application testing solution that is quite integrated and has got all the tools that you may require for ensuring the reliability as well as scalability of your applications that are based up on critical business processes. 

Oracle application testing suite has got three main parts namely:
  1. Oracle Functional Testing: This is for performing regression testing and functional testing on web applications.
  2. Job scheduler: This component of the testing suite is responsible for scheduling the testing of the application.
  3. Oracle load testing: This is for carrying out scalability testing, load testing and stress testing on the web applications. This component also consists of some tools that can be very well used for monitoring and reporting on the server side.
- A common set of the visual scripts is what that powers the web applications and therefore they don’t require any programming.
- Also, you don’t need to learn any proprietary language, take training classes or to set up any special proxies. 
- As any changes are made to the application, they are reflected in the visual scripts of the application and the updates are automatically performed. 
- This means that the load tests and the regression tests that you created will be automatically synchronized with the application. 
- This will help you to make the automated regression testing an important part of the development process. 
- The functional testing feature of the oracle application testing suite serves as a tool for functional as well as regression testing and as a script recorder for the whole testing suite. 
- Objects on each and every page are recorded by the functional testing suite and the tests are automatically inserted for the validation of the objects.
- In the visual script you can find the graphical representation of each and every object. 
- The components can be augmented or masked as you require with the help of simple click actions.
- The objects on a page are displayed in the tree hierarchy in the visual script. - Flags are used for indicating the differences between the current version and the baseline.
- With the oracle functional testing the creation, maintenance, and execution of the tests becomes very easy. 
- It comes with the following:
  1. An intuitive yet powerful automated test case generator.
  2. A special text matching component.
  3. Ability of executing the data driven tests via the data bank wizard.

Features of Testing Suite

The features of the testing suite have been highlighted below:
  1. Automatic test generation/ visual script technology: This features lets you record and test the whole application with object orient scripts that are reusable. The following are the elements that are automatically captured:
Ø  Elements
Ø  Forms
Ø  Frames
Ø  HTML
Ø  Images
Ø  Image maps
Ø  Links
Ø  Active X controls
Ø  Java applets
Ø  VBscript
Ø  Java script
  1. Simple script updating: Scripts are updated as per the changes with a simple click.
  2. Graphical test results: Red flags indicate the HTML differences or any failures so that they can be diagnosed.
  3. E- spider: Whole of your site is automatically mapped and visual scripts are created for either whole or partial of your application.
  4. Data bank wizard: It enables you to create data bank wizards without actual programming. Since the visual scripts reusable they can be used again and again with different inputs every time.
  5. Visual test case insertion: This feature lets you add extra test cases to the scripts fore the verification of the server response times, text of the page and form elements and so on.
  6. Programming interface


Wednesday, December 19, 2012

How does an IBM Rational Functional Tester work?


Rational functional tester is an IBM product developed exclusively for carrying out automated functional testing as well as regression testing. Thus, it can also be very well considered to be a regression testing and automated functional testing tool. It provides the testers with the extended abilities for carrying out the following tests:
1.   Automated functional testing
2.   Regression testing
3.   GUI testing and
4.   DDT or data driven testing

- It sounds like a wonderful tool which provides facilities to carry out four types of distinct tests. 
- Also, it would not be wrong if you call it a ‘automated functional regression testing tool’. 
- Using this IBM tool, capturing and creating automated tests becomes so easy since it ensures that the basic purpose of the tests.
- IBM’s rational functional tester becomes a more useful tool if it used by an individual of a software delivery team which continually updates the application or the software system and requires a mean using which it can keep executing a batch of core tests.
- With other tools you have to go through all the actions before you perform them which makes the testing even more difficult. 
- On the other hand if you are IBM rational functional tester, only once you need to capture the tester and then you can have the tool does the play back for you any number of times. 
- In other words, you can say that a whole series of tests can be grouped to form a test suite which can be run whole day and all night long to make sure that the software system or application is free of any regressions. 
- Before you start using the rational functional tester, it is advisable that you first go through the demo of the product and read the data sheet and then go for using it. 
- This tool developed by IBM is fully object oriented and can tester the following applications:
  1. Windows applications
  2. .NET
  3. Java
  4. HTML
  5. Siebel
  6. SAP
  7. AJAX
  8. Power builder
  9. Flex
  10. Dojo
  11. Visual basic
  12. GEF etc.
- In addition to all these things mentioned below can also be tested:
  1. Adobe PDF documents
  2. Zseries applications
  3. Iseries applications
  4. Pseries applications
- With rational functional tester, you get a reliability and robustness in the scripts that are recorded using it. 
- These scripts later can be used for play back in order to carry out the validation of the test applications. 
- However, one thing to know about rational functional tester is that it supports only two platforms namely windows and Linux.
- Two integrated development environments are supported by the rational functional tester. 
- Firstly, user actions can be recorded for the creation of the scripts in the simplest form that can be understood easily on the platform of rational software delivery. 
- In order to provide an extra helping hand to the advanced users it comes with the support for two scripting languages as mentioned below:
  1. Java language: for functional tester java scripting
  2. VB.NET language: for the functional tester VB.NET 2003 as well as 2005.
- The development environment is of the Microsoft visual studio .NET. 
- It comes with an extension for the terminal based applications as mentioned above so as to provide support for the functional testing of the following:
  1. zSeries applications such as TN3270E, TN3270 and so on.
  2. iSeries applications such as TN5250.
  3. pSeries applications such as VT default, VT 420 – 7, VT 100, VT UTF – 8, VT 420 – 8 etc which are all virtual terminals.
- With this extension you can create test scripts for the automation of the test cases of the host applications. 
- It becomes easy for you to test the following:
  1. host attributes
  2. host field attributes and
  3. screen flow
- For testing all these, it makes use of the terminal verification properties and points and synchronization code for the identification of the readiness of the terminal to take input from the user. 


Wednesday, December 5, 2012

What is object map technology in IBM rational functional tester work?


IBM rational functional tester was developed in the league of automated functional testing tools which could assist the users in the creation of the tests that could mimic the assessments as well as the actions of the human testers. However, till date the rational function tester has found its primary use in the field of software quality assurance for performing the automated regression testing. 

About Rational Functional Tester

- This functional testing tool is used in the process of quality assurance for carrying out the regression testing. 
- The test scripts are created with the help of a test recorder whose function is to capture the actions of users against the AUT or application under testing. 
- This recording mechanism assists in the creation of the test scripts from the actions. 
- The test scripts that are produced using the rational functional tester are either based up on visual basic. NET application or a java application. 
- Eventually, the test scripts came to be represented as a series of screen shots with the release of the version 8.1 of the rational functional tester and formed a visual story board. 
- Using the standard commands as well as the syntax of these languages, they could be edited by the testers. 
- This could also be done by carrying out an act against the screen shots available in the story board. 
- Then the test scripts are ready to be executed by the rational functional tester in order to validate the functionality of the application.
- Usually, the test scripts are executed in the batch mode where there several test scripts have been grouped together and have been executed unattended. 
- The user needs to introduce several verification points while the recording phase is in progress. 

Verification points are introduced so that the expected state of the system can be captured such as the following:
  1. A specific value in a particular field.
  2. A given property of an object whether enabled or disabled.
- A baseline is captured during recording which is compared with the actual result and if any discrepancy is found between the two, it is noted down by the rational functional tester in its logs. 
The log then can be reviewed by the tester in order to determine whether the actual software bug or error has been discovered or not.  

What is Object Mapping Technology?

- Object mapping technology or OMT is counted among the key technologies of the rational functional tester. 
- This is actually an underlying technology whose purpose is to find objects within a software system or application and act against them. 
- The test recorder creates automatically the object map by itself whenever some tests are created containing a list of properties that can be used for the identification of the objects during the play back progress. 
- For the rational functional tester to interact with a particular object in a software system or application it should be able to understand the interface of that object. 
- This usually does not pose any problem for the standard objects such as list boxes, buttons and edit fields etc.
- But, in some cases it does pose problems when the application developers try to create their own customs objects in order to meet a certain requirement of the software system or application. 
Application developers can overcome this problem by creating an object proxy using which they can identify the interfaces to a custom objects in the code. 
- This mechanism is termed as the SDK or software development kit interface. 
- Using it, the users can develop programs in .net or java in order to add the functional testing support for .Net as well as java custom controls. 


Wednesday, September 5, 2012

What is QTP? Which environments are supported by QTP?


QTP or quick test professional is another very useful testing tool from HP (Hewett Packard) like others such as winrunner, test director and so on. 
Well, the quick test profession has been designed especially for testing methodologies that are quite rigorous in nature such as functional testing and regression testing. 

What is Quick Test Professional?

- Quick test professional is a sole creation of HP software division unlike the other softwares that were actually developed by mercury interactive and hired by HP. 
- Although the code for this testing suite was written by mercury interactive itself.
- The most stable release of the quick test professional till now has been the 11.0 version. 
- Quick test professional can only be operated on Microsoft windows operating system. 
- The quick test professional or QTP is categorized under the category of test automation tools since it facilitates the automation of the functional and regression tests. 
- The quick test professional forms a part of the HP’s quality center tool suite and can be very well used in the enterprise quality assurance. 
- The license of this testing suite is proprietary. 
-The following aspects are most supportable by quick test professional:
  1. Key word interfaces
  2. Scripting interfaces
- The quick test professional like the other testing suites by HP sports a quite good graphical user interface. 
- The quick test professional makes use of the VBScript i.e., the visual basic scripting edition scripting language for making the specifications of a test procedure. 
- Apart from this, the visual basic scripting language is used for the manipulation of the objects as well as controls of the software system or application that is currently under test. 
- The quick test professional carries out the regression testing and functional testing by means of a user interface which may be either a web interface or some native graphical user interface. 
- The working principle of the quick test professional is that is works through the identification of the several GUI objects present in the graphical user interface or some web page. 
- It can also perform the following functions:
  1. Performing desired operations which may consist of user events like mouse click or generating some input from key board.
  2. Capturing object properties such as handler ID, object name and so on.
- The visual basic scripting language is used by the quick test professional only for accomplishing short and simple tasks.
- For performing complex and big tasks, it is required that you modify the VBScript that lies underneath the code.

What environments are supported by QTP?

Regarding the environments, quick test professional is known to support most of the environments since it is quite advance as compared to its old counterpart- the winrunnner. 
There are so many releases of quick test professional as mentioned below:
  1. 5.5- first release in the year of 2001
  2. 6.0 – released in 2002
  3. 6.5 – released in 2003
  4. 7.0 – this version was never released.
  5. 8.0 – released in 2004
  6. 8.2 – released in 2005
  7. 9.0 – released in 2006
  8. 9.1 – released in 2007
  9. 9.2 – released in 2007
  10. 9.5 – released in 2008
  11. 10.0 – released in 2009
  12. 11.0 – released in 2011
Different versions of quick test professional are known to support different number of environments based up on its capabilities and features.
However, the latest quick test professional version 11.0 is known to support the following:
  1. Web
  2. Java core
  3. Java advanced
  4. .net
  5. WPF
  6. SAP
  7. Oracle
  8. Siebel
  9. Delphi
  10. People soft
  11. Stingray 1
  12. Power builder
  13. Flex
  14. Terminal emulator
  15. Mainframe terminal emulators
  16. Windows mobile
  17. Web services
  18. Visual age Small talk
  19. Silverlight


Tuesday, August 28, 2012

What are all the default codes WinRunner generates when you start an application?


Automation might be quite a headache but it helps in decreasing the execution time by a great margin and in a way it saves a large number of precious man hours. Once you are done with the default installation of the winrunner you will observe that a winrunner directory has been created under programs. 
This folder consists of the following:
  1. Winrunner executable
  2. Uninstall winrunner
  3. Soft key configuration
  4. Read me
  5. Fonts expert
  6. Sample application folder and
  7. Documentation folder etc.
The purpose of the winrunner is that it has been designed for performing functional testing and regression testing. Take a moment to study some sample application saved in the folder “sample application”. Now let us take a look at the winrunner application! 
- A tool bar is there which contains options such as new, open, save and list box for run modes namely:
  1. Verify
  2. Debug and
  3. Update
- Plus a red button for recording purpose, green arrow for running the test scripts from line 1 and a purple line pointer for running scripts from the current line. 
- Apart from this there are start, stop and pause buttons. 
- Rest of the options on this tool bar are for debugging purpose.  

Now let us begin with the recording of a simple script! 
- You open the application software and winrunner as well. 
- Re-size both the windows such that both of them are visible to you and they do not overlap. 
- Start recording by clicking on the record button and perform some specific operations (like entering some user id and password of the start up page is login page) on the start up screen of the application. 
- After performing some 3-4 operations click on the stop button of the winrunner application and the recording will be stopped. 
- After this, the scripts can be played back and if you might have observed there is a code that the winrunner might have developed for you. 
- Now, after saving the script take a look at the code which some what looks like this:
        #startup window
        Set_window(“login”,3);
        Edit_set(“user id”,”active);
        Password_edit_set(“password”,”*****”);
        Button_press(“sign in”);
        And the code continues.

- Like the above code, the default codes are generated by the winrunner up on the start up of an application software.
- The symbol “#” marks the comments in winrunner. 
- The code may or may not contain a couple of comments. 
- The comments are inserted by the winrunner during the recording phase itself. 
- The second arguments or the numbers in the code represent the time lag between any two statements while the scripts are being recorded.
- Whenever a script is saved through winrunner, a folder by either a default name or name given by the user as the case may be is created which consists of a file by the name “script”. 
- This file consists of the default generated code in plain ASCII codes. 
- This code can be run in two modes namely the verify mode and the debug mode. 
- After this phase, comes the development mode in which the debug mode is used. 
- Finally, the verify mode is used. 
- The set_window() statement in the code lays down the focus on the window. - This helps in performing a particular function on a specific window. 
- When you type in the user id, it is identified by the winrunner and the edit_set statement is generated accordingly. 
- The next statement i.e., the  password_edit_set statement is similar to the edit_set statement, the only difference being that this field contains encrypted data and for security reasons is to be displayed as a series of asterisk “*” marks. 


Friday, April 13, 2012

What are the items covered in a test plan?

One cannot expect the two cycles namely the STLC or software testing life cycle and the SDLC or software development life cycle to succeed without a test plan. Like a lamp is needed to guide one along a dark path, similarly a test plan guides the whole software testing process in to the right direction and keeps the whole development process on track.

Without a test plan you won’t be able to know that whether or not you are building the right software artefact and even if you are building the right one, are you building it in the right way? ; realizing later will prove to be a heavy burden for you and also it will cost you double the initial cost.

What does a test plan do?



- The test plan covers up various aspects of the process of software testing.

- To say it simple, a test plan lays out a systematic approach for the process of software testing of a proposed software system or application.

- By looking at the test plan one gets to what will be the work flow and how it will take place.

- Preparation of a test plan involves the documentation of the strategy that is to be followed during the testing process.

- Firstly the users’ requirements documentation prepared in the requirements analysis phase is studied thoroughly and understood by the test engineers and then they figure out all the possible methods and techniques that can be employed to satisfy all the requirements.

- Finally, all the requirements that can be incorporated in to the software are listed and those which cannot be are informed to the user.

- Accordingly, the requirements are resolved and a test plan is formulated for achieving all the objectives.

Items covered in test plan



A typical test plan has to have one or more of the below mentioned items according to the norms and responsibilities levied on the organization:

(a) Compliance test or design verification
- This is the first step in the testing process and involves the development of the smaller units or modules of the software system or application after they have been approved by the senior developers or testers.

- In this, the objectives of the software system are established and defined. But, it is not defined how that system will be designed or achieved.

- It also involves the generation of user requirements documentation.

(b) Production test or manufacturing
- This step is executed when the software product is being assembled and for the purposes of controlling the quality.

(c) Commissioning test or acceptance
- This step is carried out before the final product is released to the client or the users.

(d) Repair test
It can be performed any time during the service life of the software.

(e) Regression test

Test plan according to IEEE 829 standard



The level of the design of the test plan depends on the complexity of the software program. IEEE has laid down what all the items are to be covered by a test plan via the 829 standard for software test documentation:

- Test plan identifier
- Background
- Introduction
- Assumptions
- Test items
- Features to be tested: functionalities and requirements that have to be tested.
- Features not to be tested: functionalities and requirements that don’t have to be tested with reasons.
- Approach: description of the data flow, live execution, simulation and philosophy behind it.
- Item pass/fail criteria: expected outcomes and tolerances.
- Suspension criteria and resumption criteria: description of the check points.
- Test deliverable
- Testing tasks
- Environmental needs
- Responsibilities
- Staffing and training needs
- Schedule
- Risks and contingencies
- Approvals


Friday, March 30, 2012

What is the entry and exit criterion for regression testing?

Regression testing is a very common software testing methodology and its importance is not hidden from us. Regression testing forms a part of software testing life cycle of every software system or application and project is finalised before running it at least once under the regression testing.

Like the other software testing methodologies the regression has also defined some entry and exit criteria for itself that a software system or application needs to fulfill satisfactorily to undergo regression testing.

But first we will state a brief discussion regarding the regression testing since then it will be easy for us to recognize the entry and exit criteria for the regression testing.

About Regression Testing


- Regression testing is just like the validation testing and is aimed at providing a repeatable and consistent validation of all the changes that have been made to the software system or application under its development or after its completion or after being modified.

- There are chances that at the fixation of a defect new faults and errors might be introduced in to the code of the software system or application that may cause further problems in the functioning of the software system or application.

- An uncertainty is introduced up to some level regarding the ability of the software system or application to make repetition of everything that went right till the encounter of the point of failure.

- To put it simply we can say that the regression testing is nothing but the retesting of the whole software system or application or a selected part of it that has underwent some changes or has been modified for assuring that the encountered fault does not re- occur and none of the previously properly working components of the system like features and functions do not fail as the affect of the introduced modifications.

How to conduct regression testing?


There are many options for conducting regression testing.

- It can either be conducted at the end of the development process of the software system or application.
- It can also be carried out in parallel with the substantial completion of the other software testing methodologies in different phases of the software testing life cycle.

Importance of Regression Testing


- In general, the regression testing is thought of as a quality check tool which controls the quality of the software system or application in regard to the changes made to that particular software system or application and ensures that it does not affects the working of the other previously working components.

- One extremely important point to be noted is that the regression testing is not about testing whether the discovered bugs and errors have been fixed or not but it is all about testing the software system or application up to the point at which the system is not affected by the changes made to fix the bugs.

Entry and Exit criterion for Regression testing



Now we list some of the entry criteria that an application needs to satisfy for undergoing regression testing:
1. The documentation of the defect or the bug is ready and the defect or the bug is repetitive.
2. For the purpose of the identification and tracking of the regression testing efforts, a defect tracking record or a change control has been opened.
3. The creation, review and approval of the tests that are specific to the defect have been done.

There is an only one exit criterion for the regression testing which is that the software system or application should not show any negative result i.e., malfunctioning of any component that was previously working alright before any new changes were introduced to the software system or application for fixing the bug.


Friday, March 9, 2012

What is the difference between re-test and regression testing?

Software re- testing and regression testing are the two concepts which are often misunderstood by the people. These two software testing concepts will be focused up on in this article. These two terms are often mistaken as the same thing but, it is not so. There is a considerable difference between the two.

Concepts of Re-testing

- As we all know, the field of software testing is continually improving, it becomes necessary to modify and re- test the existing software components to make them compatible with the new advanced technology.

- It becomes necessary to retest those old software components to check how much they have been affected by the changes and what all improvements and modifications are needed to make them at par with the new technology.

- So we see that testing a software component for another time is called re- testing.

Concepts of Regression Testing

- Testing these software components again and again for the sake of improvement and modification is what is called regression testing.

- We can formally define the regression testing as the software testing methodology that seeks to dig out new errors and bugs after the all other types of software testing have been carried out on the system and the required changes have been made to root out those bugs and flaws.

- It is mostly emphasized on testing the patches, enhancements and of course configuration changes.

- Regression testing is aimed at determining whether or not the modifications or enhancements have introduced new bugs and errors.

- Another purpose of carrying out regression testing is to ensure that the any changes in one component do not affect the functioning of the other components of the software system or application.

- Executing the already executed tests and observing the behavior as well as the outcome of the program, is the most common approach to the regression testing.

- Regression testing also sees to it that the faults that were fixed previously do not occur again.

- Regression testing like any other testing also consumes so much of time and effort.

- Therefore, in order to cut down the testing time and improve the efficiency of regression testing, the tester can select only few of the required test cases and execute them once again.

- Regression testing is the most costly software testing methodology that is ever employed in a software testing life cycle.

- An aggressive research has been carried out on the regression testing and many issues have been discovered with the regression testing.

Process may be either of deployment or development, because of both of them changes are made in the software system like adaptation to changes, enhancement of functionality and bug fixing etc.

Retesting and regression testing are seen as one of the most expensive software testing processes.

- These two testing processes can take up to 80 percent of the total budget of the software testing and accounts for 50 percent of the total project budget.

- For normal development processes, it is ok if the regression testing is carried after the changes have been made to the software system for every regular builds or before the final release of the software.

- But, for the agile development processes, the regression testing should be carried out after every time the software program is compiled and saved.

- For other types of development, the regression testing can be carried out before the release of the patches like security patches and so on.

- In whatever way or on whatever time the regression testing might be performed, its aim is always the same i.e., giving the assurance that the changes made to the software act as expected and do not affect the other components of the program.


Monday, February 20, 2012

What are Application Testing Methodologies?

First of all, lets be clear with what is application testing actually.
- It is simply the testing of application software. But, it is not so easy to carry out as it sounds like.
- To develop good application software, great efforts and skills are required both of development and testing.
- Testing is needed to check the quality status of application software.
- This is indeed very important for quality assurance and to see that if the application software is meeting the expectations of the consumers or not.

WHY IS TESTING METHODOLOGY IMPORTANT?
- It is obvious that all the aspects of application software cannot be discovered by following just one testing methodology.
- One has to employ many testing methodologies in order to discover most of the hidden bugs and errors.
- Many methodologies have been developed for testing application software.
- Discovery of flaws is the primary aim of any software testing methodology.
- Criticism is yet another aim.

APPLICATION TESTING METHODOLOGIES

1.BOX TESTING TECHNIQUES
- White Box Testing
It includes techniques that are used to test the program or algorithmic structures and working of that particular software application in opposition to its functionalitY or the results of its black box tests.
a) API testing
b) Fault injection
c) Code coverage: Code coverage can be defined as a measure to measure the extent to which the source code of a software system has been tested.
d) Mutation testing
e) Static testing

- Black Box Testing
a) Equivalence partitioning
b) Boundary value analysis
c) Pair wise testing
d) Fuzz testing
e) Exploratory testing
f) Model based testing
g) Specification based testing

- Grey Box Testing
As the grey colour is made from the combination black and white colours, so does grey box testing is made from a combination of both white box testing as well as black box testing.
- Visual Testing
As the name suggests, non destructive testing techniques do not involve vigorous checking of the software structure.
- Unit Testing
- Integration Testing
The units or modules are combined and tested.
- System Testing
- System Integration Testing

- Regression Testing
It basically discovers and unhide the hidden and new errors and flaws.

- Acceptance Testing
There should be some kind of testing that looks in to the contract and verifies whether or not all the requirements have been met. Acceptance testing serves the purpose right. Acceptance is a composition of 3 kinds of tests namely Physical tests, Chemical tests and Performance tests.

- Alpha Testing
The purpose of checking the application software before the release is served by alpha testing on the basis of:
a) Service level agreement or SLA as it is abbreviated.
b)Requirements
c)Specifications
d)Defect rate efficiency (known as DRE in short form).

- Beta Testing
Beta testing is carried out after the successful completion of the alpha testing.
- Performance Testing

- Usability Testing
Usability testing can be defined as a technique which is used in interaction design. This designing is centred around the user and accounts for the evaluation of the software system, application or product by testing it out on the software product users.

- Security Testing
Security testing as its name suggests can be defined as a process to determine that whether or not a software or information system or application is capable of protecting data and keeping it secure.

- Internationalization
Internationalization can be defined as a process of coding and designing a product. This coding is done in such a way that it can perform well almost on any platform after modification for use in different regional standards and languages.
- Localization


Sunday, January 22, 2012

What is the difference between scripted testing and exploratory testing?

Though exploratory testing and scripted are considered being a part of each other, there is a lot of difference between the two.

The scripted testing is performed by a set of test scripts which can be defined as a set of instructions that are to be performed on the software system or application under the test to test a particular functionality as required.

There are following ways of executing test scripts:

1. Automated testing:
- It can be easily repeated and is faster than manual testing.
- It is very useful when it is required to run the same tests over and over again.
- It is performed as a part of regression testing.
- Automated tests are poorly written and they may break during the execution.
- They only test what has been programmed into them.
- They only ensure that old bugs do not reappear.
- Manual testing and automated testing should be mixed together and used for exploratory testing.

2. Manual testing:
- This is the oldest and the most rigorous forms of testing.
- The test cases are reviewed by the whole testing team before using them.
- The test cases are either created at the basic functionality level or at the scenario level.

3. Short programs or test scripts written in a programming language (C#, C++, expect, TCL, java, Perl, PHP, python, power shell) or a special automated functional GUI test tool (like Borland silk test, HP quick professional test, rational robot etc) can be used to test functionality of a software system or application.

4. Short programs that have been extensively parameterized or data driven testing.

5. Table driven testing or keyword driven testing i.e., using reusable tests created in a table.

CHARACTERISTICS OF SCRIPTED TESTING
- Scripted testing is considered to be as a waste of resources by most of the testers.

- According to them the scripted manual testing inhibits the mind of the tester to use their creativity.

- Also, this testing requires heavy documentation as well as considerable amount of resources to create them.

- They often get out dated since the changes in the system are inevitable.

- Though being so criticized manual scripted testing is used by many organizations.

- The test cases are made repeatable and easy enough for a tester to perform testing with minimum supervision.

- Manual scripted testing is used in contracts where contractual agreement states that written requirements and specifications of the software must be met.

- Scripted test cases are useful where the tests are used as benchmark and have to be executed in the same way, every time.

CHARACTERISTICS OF EXPLORATORY TESTING
- In contrast to scripted testing, exploratory testing is a usual approach to software testing and can be defined as a test designing, test execution and simultaneously learning process.

- Exploratory testing is a kind of software testing that is emphasized and focused up on the responsibility and the personal freedom of the software tester.

- Exploratory testing is a kind of software testing that is emphasized and focused up to optimize the quality and effectiveness of his /her work continually by taking in to consideration mutually supportive activities like test designing, test related learning, test result interpretation and test execution.

- The activities run in parallel to each other.

- Exploratory testing basically heeds to exploiting the creativity of the tester or the programmer.

- During the testing of the software, the tester comes across various new things to learn together with experiencing them.

- Exploratory testing can be thought of as a black box testing methodology or technique instead of thinking of it as an approach to testing that can be used for any type of testing methodology and also at any phase of development of the software system or application.


Friday, December 16, 2011

What are different types of white box testing? Part 2

White-box testing or clear box testing, transparent box testing, glass box testing, structural testing as it is also known can be defined as a method for testing software applications or programs. White box testing includes techniques that are used to test the program or algorithmic structures and working of that particular software application in opposition to its functionalities or the results of its black box tests.

White-box testing can be defined as a methodology to verify the source code of the software system if it works as expected or not. White box testing is a synonym for structural testing.

Unit testing and Integration testing is already discussed in previous post.

Types of White Box Testing



- Function level testing:
This white box testing is carried to check the flow of control of the program. Adequate test cases are designed to check the control flow and coverage. During functionality level white box testing simple input values can be used.

- Acceptance level testing:
This type of white box testing is performed to determine whether all he specifications of a software system have been fulfilled or not. It involves various kinds of other tests like physical tests, chemical tests and performance tests.

- Regression level testing:
This type of white box testing can also be called as retesting. It is done after all the modifications have been done to the software and hardware units. Regression level white box testing ensures that the modifications have not altered the working of the software and has not given rise to more bugs and errors.

- Beta level testing:
Beta testing is that phase of software testing in which a selected audience tries out the finished software application or the product. It is also called pre- release testing.


Thursday, December 15, 2011

What are different types of white box testing? Part 1

White-box testing or clear box testing, transparent box testing, glass box testing, structural testing as it is also known can be defined as a method for testing software applications or programs. White box testing includes techniques that are used to test the program or algorithmic structures and working of that particular software application in opposition to its functionalities or the results of its black box tests.

White-box testing can be defined as a methodology to verify the source code of the software system if it works as expected or not. White box testing is a synonym for structural testing.

There are certain levels only at which white box testing can be applied. The levels have been given below in the list:
- Unit level
- Integration level and
- System level
- Acceptance level
- Regression level
- Beta level

Unit level testing:

This type of white box testing is used for testing the individual units or modules of the software system. Sometimes it also tests a group of modules. A unit is the smallest part of a program and cannot be divided further into smaller parts. Units form the basic structure of a software system. Unit level white box testing is performed to check whether or not the unit is working as expected. White box testing is done to ensure whether the unit is working properly or not so that later it can be integrated with the other units of the system. It is important to test units at this level because later after integration it becomes difficult to find errors. The software engineer who has written the code only knows where the potential bugs can be found. Others cannot track them. Therefore, such kinds of flaws are completely in the privacy of the writer. Unit level white box testing can find up to 65 percent of the total flaws.

- Integration level testing:
In this type of white box testing the software components and the hardware components are integrated and the program is executed. This is done mainly to determine whether both of the software units and hardware units are working together in harmony. It includes designing of test cases which check the user interfaces of the two components.


Friday, December 2, 2011

What are different characteristics of regression testing?

The word regression means to relapse to an under develop or a less perfect state. So, we can deduce from this that the regression testing is a kind of testing that basically discovers and un-hide the hidden and new errors and flaws, after the modifications have been made in the functions, operations, patches etc. of the software system.

- Regression testing is also carried out after the software system has been configured after checking away the errors.
- Regression testing may seem like some kind of exploitation of the software system. But, it is aimed at a good objective of ensuring that any new modification or configuration did not cause some other new bugs and errors.

- It is very difficult for the software developer to figure out how a particular change that he is going to introduce will affect all the other parts of the software system. Therefore, the regression testing becomes quite necessary to maintain the quality and standard of the program.

- Sometimes, fixing an error causes some other error in some part of the software system and it will remain unattended and uncorrected until and unless regression testing is carried out.

- Regression testing can only trace and locate such hidden errors and bugs.

There are several methods for conducting regression testing.One of those methods includes re-running the tests again and again for a certain number of times and observe if the behavior, response and output of the software system has changed or not.

Regression testing is not as laborious as the other testing methodologies are.

- The hard work for regression testing can be reduced efficiently to minimum level by selecting an appropriate combination of minimum number of specified test cases for testing the software system.
- The tests should be selected as such as to give maximum coverage to the modification or the change that has to be tested.
- It has been observed that the software program being fixed leads to the re- emergence of the errors and bugs and sometimes new errors are also created.
- It happens so because the usage of the software system over the time leads to the loss of an error or a bug fix due to the poor software handling practices.

We can conclude that any fix is a bit fragile in the sense that it fixes a bug or an error temporarily but arises again after repeated usage of the program. Usually a bug fix in one part of the program causes more bugs in the other parts of the program. So more often, the software system is needs to be redesigned.

The testers require good coding skills and practices.
- Regression testing is followed through manual testing procedures and other programming methodologies.
- Regression testing is usually done by automated tools. Such an environment allows the regression testing to automatically run the test cases and report any errors and bugs.
- Extreme software programming considers regression testing as one of its most crucial integral part.
- During each stage of the cycle for software development, the design documentation is replaced by the automated testing of the whole software system. - Regression testing tests the scale of correctness of a software system and maintains its quality and keeps the output standard.
- A software development should always and compulsorily contain regression testing stage.


Saturday, April 23, 2011

How are programs tested? Explaining Unit Testing and Integration Testing

In testing programs, individual units are tested and this comes under unit testing. Then, their relationship with one another is tested which comes under integration testing.

UNIT TESTING


- It tests the smaller building blocks of a program.
- It confirms that each module performs its assigned task.
- It involves testing the interface, local data structures, boundary conditions, independent paths and error handling paths.
- Two things are used for unit testing : Driver and Stub.
- Driver is a program that accepts test case data, passes data to the component to be tested, and prints relevant results.
- Stub is program that performs support activities such as data manipulation, queries of states of the component being tested and prints verification of entry.

INTEGRATION TESTING


- Integration testing is followed after unit testing.
- All classes are tested for integration.
- Each component performs correctly within collaboration and that each interface is correct.
- Integration testing can be done by thread based testing approach. A thread is a path of communication among classes that needs to process a single input or respond to an event.
- Regression testing is re-execution of some subset of tests to ensure that changes have not produced unintended side effects.


Thursday, October 28, 2010

Validation Phase - System Testing - Regression Testing

The process of regression testing is simple i.e the test cases that have been prepared can be used and the expected results are also known. If the process is not automated it can be very time consuming and tedious operation. Some of the tools that are available for regression testing are:
- Record and Playback tools - In this, the previously executed scripts can be re-run to verify whether the same set of results are obtained. e.g. Rational Robot.

The end goals of regression testing are :
- to ensure that the unchanged system segments function properly.
- to ensure that the previously prepared manual procedures remain correct after the changes have been made to the application system.
- to verify that the data dictionary of data elements that have been changed is correct.

Most of the time the testing team is asked to check the last minute changes in the code just before making a release to the client, in this situation the testing team needs to check only the affected areas.
In short, regression testing should get the input from the development team about the nature and amount of change in the fix so that the testing team can first check the fix and then the affected areas.
Regression testing is the testing in which maximum automation can be done. The reason being the same set of test cases will be run on different builds multiple times. But then, the extent of automation depends on whether the test cases will remain applicable over the time. In case, the automated test cases do not remain applicable for some amount of time then test engineers will end up in wasting time to automate and don not get enough out of automation.


Wednesday, October 27, 2010

Validation Phase - System Testing - Regression Testing

Regression testing is used to test or check the effect of changes that are made in the code. Most of the time the testing team is asked to check last minute changes in the code just before making a release to the client. In this situation, the testing team needs to check only the affected areas. In short, for regression testing, the testing team should get the input from the development team about the nature or amount of change in the fix so that the testing team can first check the fix and then the side effects of the fix.

Regression testing is the testing in which maximum automation can be done. The reason being the same set of test cases will be run on different builds multiple times. But, the extent of automation depends on whether the test cases will remain applicable for some amount of time, test engineers will end up in wasting time to automate with minimal results.

Regression testing is re-testing unchanged segments of application. It involves re-running tests that have been previously executed to ensure that the same results can be achieved currently as were achieved when the segment was last tested. The selective re-testing of a software system that has been modified to ensure that any bugs have been fixed and that no other previously working functions have failed as a result of newly added features have not created problems with previous versions of the software.

Regression testing is initiated after a programmer has attempted to fix a recognized problem or has added source code to a program that may have inadvertently introduced errors. It is a kind of quality control measure to ensure that the newly modified code still complies with its specified requirements and that unmodified code has not been affected by the maintenance activity.

During regression testing, following activities are performed:
- Re-running of previously conducted tests.
- Reviewing previously prepared manual procedures.
- Comparing the current test results with the previously executed test results.


Wednesday, September 8, 2010

Automated Regression Testing and its features

Automated regression testing refers to the process by which computer software is regression tested in an automated manner by using testing scripts. These scripts are run against software code for validating the changes that has been made to the code.
Test scripts are the instructions which include the requirements for inputs and outputs of a test case. Each test case is entered into a test script to create a full test harness of an application. Test scripts can be automated by writing code that will execute the instructions within a test case. The simplest way to set up automated regression testing is to construct a suite of test cases, each of which consists of a test input file and a "correct answer" output file.

Automated regression testing is important because :
- It provides portability when the code is moved to another machine.
- A confidence is achieved that changing the program has not introduced any bug.
- Automating regression testing allows users to manage the ever increasing number of test cases and suites, while ensuring both reliability and afford ability.
- Testing efforts are reduced to a greater extent.
- It could be tested in parallel with product development.
- Test coverage is increased.


Tuesday, September 7, 2010

Selecting a test strategy for regression testing

Regression testing is selective retesting of the system; executed with an objective to ensure the bug fixes work and those bug fixes have not caused any un-intended effects in the system.
The selection of test cases for regression testing depends on:
- Requires knowledge on the bug fixes and how it affect the system.
- Includes the area of frequent defects.
- Includes the area which has undergone many/recent code changes.
- Includes the area which is highly visible to the users.
- Includes the core features of the product which are mandatory requirements of the customer.
Selection of test cases for regression testing depends more on the criticality of bug fixes than the criticality of the defect itself.
Do not focus on the test cases that are bound to fail and those test cases which has no or less relevance to the bug fixes. Select more positive test cases than negative test cases for final regression test cycle as this may create some confusion and unexpected heat. It is also recommended that the regular test cycles before regression testing should have right mix of both positive and negative test cases. Negative test cases are those test cases which are introduced newly with intent to break the system.

Good approach is to plan and act for regression testing from the beginning of project before the test cycles. One of the ideas is to classify the test cases into various Priorities based on importance and customer usage.

For an Effective Regression Testing :
- Create a regression test plan identifying focus areas, strategy, test entry and exit criteria. It can also outline Testing Prerequisites, Responsibilities, etc.
- Create test cases.
- Defect tracking.


Monday, September 6, 2010

Overview of Regression Testing and its objectives.

Regression testing is an important part of the software development life cycle. regression means going back. If any kind of modification is done in software, testing needs to be done to ensure that it works as specified and that it has not negatively impacted any functionality that it offered previously.
Common methods of regression testing include re-running previously run tests and checking whether previously fixed faults have re-emerged.

The objectives of regression testing are :
- To identify uncovered and unexpected defects.
- To ensure that changes or additions in the code are safe & are not liable to break the existing functionality of the application.
- To ensure and track the quality of its output.
- The changes to the software application have not introduced any new bugs.

Regression testing is necessary when there is a change made to an existing tested software. Each change implies more regression testing needs to be done to ensure that the system meets the project goals.
Regression testing can become cost effective if the test cases are automated the test cases may be executed using scripts after each change is introduced in the system. Also, teams do not execute all the test cases during the regression testing. They test only what they decide is relevant.

In short, regression testing means rerunning tests of things that used to work to make sure that a change didn't break something else. The set of tests used is called the Regression Test Set. It's enormously helpful when you change an application, change the environment, and during integration of pieces.
Regression testing is a simple concept, but it needs to be done just right to work in the real world.


Facebook activity