Subscribe by Email


Showing posts with label Drawbacks. Show all posts
Showing posts with label Drawbacks. Show all posts

Tuesday, July 24, 2012

What are virtual users? For what purpose are virtual users created?


For the software developers it is quite frustrating to see their software systems and applications crashing soon after installing them. 
What impression such a failure of the software system or application will have on the user or the customer!
It is obvious that the customers and the users may think that the software product has not been through sufficient testing before the software product was released to them. 
It has become a standard in the world of software engineering that any organization developing a software system or application must follow a defined standard procedure for testing that software product in order to ensure its reliability as well as quality before it is shipped to the users or customers. This whole testing process is of the quality assurance. 

For every software product there might be a 100 ways in which it may be used by the user. Therefore, the software system or application must be checked in all these possible ways for the verification of whether or not the software product is working fine.
There are a number ways using which a software testing process can be made more effective then it is actually. 
- One of such ways is use of automated testing tool in which suites of tests as well as specific tests can be set up and can be run by the computer. 
- Number of hours of drudgery are reduced by a huge margin as well as time and money. 
- The saved energy and time can be re-focused upon the tasks that call for more human interaction. 
- This whole process makes the software product very much reliable.
- It is always a good idea to verify the quality of the software artifact before it is shipped out. 

One of the automated testing tools is the virtual user than can help in this regard. In this article we talk about virtual user and with what purpose this tool has been created. 

What is a Virtual User and Purpose of Virtual User?


- Virtual user in abbreviated form is known as VU and is a kind of tool that helps a computer in emulating a human user i.e., it helps in performing actions like typing of words, commands and clicking of mouse and so on. 
- The computer on which the virtual user is installed actually acts as a host and takes the control of the other under itself just as a human tester would do. 
- One of the targeted computer systems is asked to act as an agent and receive instructions from the host computer. 
- The environment of a virtual user is constituted by an application whose work is to compile and run the scripts. 
- The scripts of the virtual user cannot be edited in common editors rather it has to be edited in editors like MPW or BBEDIT. 
- Through the virtual user, all the computers are linked over a network. 
- The minimum requirements of the virtual user are:
  1. Virtual user software package and
  2. 2 systems one as host and the other one as target.
- Today many firms have launched their virtual user software packages. 
- Though the virtual user sounds like it’s a very good automating tool but it has got many drawbacks :

  • It cannot tell you when something looks right on the test screen or it cannot tell you how a particular icon looks or what position it is at. 
  • The biggest draw back is that the virtual user has got no intelligence of its own and if by chance a crash occurs in the machine, virtual user will keep trying to run the script regardless of the crash.  


Sunday, June 17, 2012

Data Restructuring - An activity involved in software re-engineering process model

Software re- engineering process model constitutes of the below mentioned 6 major  steps:
  1. Inventory analysis
  2. Documentation reconstruction
  3. Reverse engineering
  4. Code re- structuring
  5. Data re- structuring
  6. Forward engineering
In this article we have discussed about the 5th stage of the software re- engineering process model i.e., the data re- structuring. 
Without a working code or an active flow of data a software system or application cannot be considered to be working. Therefore for the software systems and applications which have become outdated should be again brought up to the current acceptable software standards and data re- structuring is the one of the processes that can help in this regard. 


- This step of software re- engineering process model takes into consideration the restructuring of the data without making changes to the functionality of the software system or application. 
- With the re- structuring of data, the maintenance of the whole software system or application becomes so very easy. 
- The need to re- structure data arises when the data bases become too obsolete to be handled directly. 
- When the changes made to the data are confined only to the sub system, the data of the sub system needs to be re- structured. 
- The data re- structuring becomes even easier when the data re- structuring tools are easily available. 
- This step is carried out after the completion of the code re- structuring. 
- Unlike the previous re- structuring step, this step calls for a full cycle of reverse engineering. 
- The current structure of the data is dissected while defining the data models and the existing data models are run through a quality check or review test.
- So many of the legacy systems tend to make use of the global data structures and shared tables in order to save the memory space.
- Such shared data structures need to be converted in to objects like ADTs for restructuring. 



Benefits of Data Re-structuring


One of the benefits of restructuring the data is that it certainly improves the quality of the software program or application. 
- Furthermore, it becomes easier to test and debug the software system or application along with a reduction in the efforts in the maintenance of the software and also the frustration of the developer is reduced. 
- As a bonus point, the productivity is also improved. 



Steps in Data Re-structuring


The re- structuring of the data involves the following steps:
  1. Analysis of the source code of the application.
  2. Redesigning of the data
  3. Standardization of the data record.
  4. Rationalization of the data name.
  5. Translation of the file or data base.

Drawbacks of Data Restructuring


In spite of having so much plus points, the re- structuring does have some minus points which have been listed below:
  1. Re- structuring does not improve the understandability of the data driven programs.
  2. Re- structuring demands for heavy computations.
  3. Re- structuring can lead to a loss of source code comments.
  4. Restructuring does not helps with the problems with poor modularization i.e., the programs in which the components are wide spread through out the program.
  5. Restructuring can lead to the loss of documentation.
From the discussion above, we can say the restructuring of data is a process that re –structures the source data in to the target data during the transformation process. 
Data re- structuring forms an integral part of the software re- engineering process model and therefore the above mentioned disadvantages of the data re- structuring are ignored. It is necessary that the data re- structuring is carried out after the code re- structuring since during the execution of the program, the code only handles the flow of the data. Therefore if the code itself has not been re- structured before re- structuring the data then the whole process does not makes any sense. 


Monday, May 28, 2012

What are strengths and weaknesses of Extreme Programming - XP?


The extreme programming is bound with some strengths and weaknesses that we are going to discuss in this article. Extreme programming was brought in to use during the era of nineteen’s. At that time it came to be recognized as one of the best agile software development practices and still holds the same reputation despite arguable views of its many critics.
Many different scale companies like small scale companies and large scale companies have been benefited by the use of this agile methodology i.e., the extreme programming. Over the years the extreme programming has guaranteed the customer satisfaction and has proved itself also. The software were delivered exactly they were required to be.

Benefits & Advantages of Extreme Programming


- The developers and programmers as well as the customers are empowered by the extreme programming so that everyone can confidently play up its part no matter at what stage the development process is. 
- The extreme programming has been well known for the spirit of team work it inculcates in the development environment. 
- Extreme programming as we know is an agile software development process based up on the releasing the software product frequently with every iteration of the development cycle. 
- Many other techniques like time boxing are also incorporated with the extreme programming to together make up a very efficient software development process.
- The extreme programming contributes greatly in the improvement of the productivity of the software.
- It also contributes in the introduction of the check points that facilitate the incorporation of the changes or modifications in the requirements at all the phases of the development. 
Customer is given a lot of empowerment in extreme programming. 
- This is so because it lies in the discipline of the extreme programming to maintain frequent and most possible effective communication with the customer. 
- Extreme programming as the term itself suggests that the process involves the beneficial elements operating at their extreme level.

All these positive points of the extreme programming are its strength. All these plus points make the extreme programming popular among its users.

Weaknesses & Drawbacks of Extreme Programming


Now let us discuss some of the weaknesses of the extreme programming since every process has some pros and cons. Critics have pointed out many potential drawbacks such as:
     1. Unstable requirements
     2. The user conflicts are not documented
     3. Extreme programming lacks an overall design specification

- The extreme programming has always been under arguments due to the above mentioned weak points.
- It has been claimed by the critics of the extreme programming that having a customer aboard can be a source of stress to some developers and programmers.
- Some have also mentioned this as a factor that can lead to micro management i.e., the whole development process will be governed by the customer who literally does not have any proper technical knowledge.
- In some cases, the requirements are expressed as automated acceptance tests instead of being expressed as specification documents. 
- In such cases, the retrieving of the requirements takes place through incremental.
- Some even believe that the extreme programming is meant for the senior developers only and that the developers with less experience or less knowledge cannot handle it.
- The lack of the detailed requirements documentation can sometimes lead to what is called the scope creep.  


Friday, May 18, 2012

What is meant by pair programming?


With the advent of the agile software process development, so many agile software development methodologies also came in to the scene and one of them is the pair programming which has been discussed throughout this article. 

What is meant by Pair Programming?


- Pair programming is a commonly deployed agile software development process.
- It involves two software programmers or developers working together on a single work station. 
Out of the two programmers or developers one is called the driver and the other one is the observer. 
- The work of the driver is to type in the program code in to the compiler.
- The observer has to review the typed in code line by line for any discrepancy. 
- There is another quite familiar term for the observer which is the “navigator”. 
- At regular intervals of time, the two programmers or developers keep changing their roles. 
- While carrying out the review process, the observer also takes in to consideration the strategy that is being used for the work.
- Both the driver and the observer work for the improvement of the software system or application and try to identify all the potential problems that can take root in the future. 
- Most of the problems are addressed in the earlier stages of the development so that extra work burden is cropped up in the last and also to minimize the rewrite expenses.
- Such a methodology like pair programming helps the driver to concentrate only on the typing work.
- It does not focus up on each and every tactical aspect of the current task of the software system or the application under development. 
- Here we can say that the observer acts like a safety guide or net who tells the driver of the fault he makes while typing in the program code. 

Benefits of Pair Programming


Pair programming has got many benefits. A research was conducted regarding the benefits of the pair programming and it was found that:
- Following the pair programming, programs with shorter code length are produced. 
- These programs were found to possess better designs and lesser number of bugs as compared to the programs that are produced by individually working programmers. 
- Depending on the experience and skills of the programmers as well as the complexity of the task, the defects rates were found to get reduced surprising from range of 15 – 50 percent. 
- When two programmers work together, it is obvious that they will consider many design alternatives as compared to the programmers who work individually.
- This is so because the when two people think together, the scope of thinking widens and they arrive at simple and better working and maintainable designs, are able to catch defects early. 
- They are able to complete the programming work well within the stipulated period of time. 
- On the other hand the individually working programmer will take much longer time to complete the same task. 

Few drawbacks of Pair Programming


"An analysis conducted in the year of 2007 suggested that the pair programming is not wholly beneficial and effective since it identified many other factors that have large affects on the results of the programming tasks."
- It was observed that though the development time was reduced by the use of the pair programming and some marginal effects were induced, it required more developer effort! 
- Therefore if we see overall it tends to be more costly than the solo programming. 
- Though the coding of the programming took place at a faster pace but the time spent got doubled. - In some of the cases a drop in the productivity is observed while implementing the pair programming. 

Throughout the process of pair programming there is a knowledge flow between the two developers.


Saturday, May 12, 2012

Explain Extreme Programming (XP) - an agile method?


One of the agile software development methodologies is the extreme programming which is quite popular with the software programmers and developers. The extreme programming since its advent has been known for the improvement of the quality of the software products and the projects and their responsiveness to the ever changing requirements of the customers. 
Apart from all this the extreme programming is known to advocate many frequent releases of the shipped software product in short development cycles i.e., to say it advocates time boxing. 
So we can say that overall it improves the productivity of the whole development process and also facilitates the introduction of check points where the new requirements from the customers can be adopted. 

Aspects of Extreme Programming


There are some other aspects of extreme programming few of which have been mentioned below:
            1.      Pair programming (programming in pairs)
            2.      Extensive code review
            3.      Unit testing of the whole code
            4.      Avoiding programming of avoidable features till they are required
            5.      Flat management structure
            6.      Simplicity of the code
            7.      Clarity of code
            8.      Adoption of the changing requirements of the customer
            9.      Maintaining frequent communication among the programmers and with the customers etc.

Drawbacks of Extreme Programming


This methodology took its name from the ground that the beneficial aspects of the engineering practices are implemented at their extreme levels. It follows from the idea that more is better if a little is good. However several potential drawbacks have been pointed out few of which have been mentioned below:
            1.      Unstable requirements
            2.      Absence of documented compromises of user conflicts
            3.      Lack of overall design specifications
            4.      Lack of design documents

"Extreme programming now experiences quite different environments from the ones that were present at the time of its origin. Extreme programming is strictly aimed for the organization of the people for the production of the high quality software projects and products." Not only this, the cost of the changing requirements is also reduced by the means of implementing multiple short development cycles in place of a long one. 

It produces the below mentioned aspects all based up on the agile programming frame work:
            1.      A number of basic values
            2.      Principles
            3.      Practices

Activities Under Extreme Programming


There are 4 basic activities that are carried out under the extreme programming process:

      1. Coding: 
      Regarding the extreme programming it has always been argued that code is the most important aspect of any program since without it no working program would exist. Coding is the thing that helps you figure out most of the solutions and navigate through the programming problems. Code sometimes can be used as a code to demonstrate a program to the fellow programmers and developers which otherwise might prove to be difficult. Code is always interpreted in one way and is suppose to be clear and concise.
  
      2. Testing: 
     This aspect also follows the above mentioned idea that more is better if a little is good. It involves the following tests:
       (a)  Unit tests: These are included for the determination of whether the program is working and giving the outcome as intended. May automated tests are written that can break the program and if the program passes all these tests successfully, the coding is declared to be complete. Each piece of the code is tested before carrying the development process forward.
     
    (b) Acceptance tests: These tests are included for the verification of the requirements which the programmers think can satisfy the requirements of the customers.
       
      3.   Listening
      4.  Designing

     

Extreme Programming Values


     1.      Communication
     2.      Simplicity
     3.      Feedback
     4.      Courage
     5.      Respect
     6.      Rules

     

 Basic Principles of Extreme Programming


     1.      Feedback
     2.      Assuming simplicity
     3.      Embracing change


Sunday, May 6, 2012

What are different shortcomings of test driven development?


The test driven development though touching a new high is not free of any drawbacks or short comings! It does have some short comings like any other software development process. 
The test driven development as we all know was considered to be somewhat similar to the test – first programming concepts of an agile software development process popularly known as the extreme programming or XP.
Because of all this, the test driven development methodology suffered a whole lot of criticism and so many of its short comings were discovered. 
Even after the test driven development process got its own individual standing in the line of the software development processes, the critics did not stop criticizing it! What were those short comings? 

Shortcomings of Test Driven Development


1. It is quite difficult to use the test driven development process in the situations and conditions where the success or failure of the software system, application or program is determined by the full functional tests. For example, it cannot be employed for developing the below mentioned things:
(a)    User interfaces
(b)   Programs that involve a data base in their working
(c)    Programs or applications depending up on some specific network configurations.

2. The software developers and programmers are encouraged to keep minimum possible amount of source code in to the software modules in the test driven development. On the other hand they are also encouraged to maximize the logic that lies in the library code which is testable. It encourages the use of the mock objects and fakes for the representation of the outside world.

3   3. The test driven development calls for an extensive need of the management support which is quite vital. The management may get a feeling of the wastage of the writing test cases since the entire organization is not in to the believing that the software product can be improved by the test driven development.
     
     4. The software developer who writes the code for the tests is the same one who is also assigned with the duty of the creation of the automated unit tests in the test driven development. Therefore a possibility that the same blind spot might be present in both the tests is induced which potentially endangers the stability of the software system or application. Both the produced test and code will be wrong!

    5. In test driven development process a false sense of security might be induced by a higher number of passing tests. This in turn will result in less number of additional software testing activities like compliance testing and integration testing.

     6. The tests created for the test driven development system themselves form a part of the maintenance over head of the software project. The tests which have been produced badly may include hard coded error strings which may make the whole test prone to failure are quite expensive when it comes to their maintenance. Such tests are typically fragile in nature.

    7. With the test driven development one risk is always there which comes from the ignorance of the regularly generated false failures. This causes the real failure also to be ignored and thus preventing its detection. Several methods have been developed to create tests which require low and easy maintenance. Creation of such test cases is considered to be a goal of the code refactoring phase of the development cycle.

     8. If you are following the test driven development, then it would be difficult for you to reproduce the level of coverage and testing detail achieved during the repeating test driven development cycles. Deleting those original tests can lead to undetectable holes in the test coverage. 


Monday, January 23, 2012

What are different test cases for testing web application cookies?

To carry out any testing, you need to create effective test cases. Then only you will be able to fetch more appropriate outcomes from the testing. To develop effective test cases for web site cookie testing, you need to understand how the cookies are stored and managed.

Whenever you use a web site a cookie will get written on to your hard disk. Normally cookies are stored in the following format:

Site: abc.com RMID (name of the cookie)
Name: RMID
Content: 1d14c8ec45bf79e0… (Written in Encrypted format)
Domain: .abc.com
Path: / (the path after the name of the domain)
Send For: the type of the connection
Expires: Tuesday, December 31, 2015 10:25:25 PM date of expiry as set by the developer)

The cookies are used for the following applications:

1.Implementation of the shopping cart:
Cookies are used to implement online product or service ordering system. Cookies are a way to remember what the user wants to purchase. Suppose, if at the instant of time the customer adds some products to his carts and closes the browser window, then the cookie remembers what he/ she wants to buy and the customer can see ll those products.

2. Personalized web sites:
When we are browsing and visit certain pages. We are asked whether or not to display this page. The user instruction is stored in the cookie and those pages are displayed or not displayed as per the wish of the user.

3. Marketing:
Cookies are extensively used to advertise on the web sites. These advertisements are controlled by the cookie itself.

4. User tracking:
Cookies are used to track the number of visitors of a web site.

5. User sessions:
User sessions can be tracked using the cookie using the contained user ID and the password.

Apart from the benefits, the cookies have some drawbacks also. These are:
- Some times disabling the cookies can lead to disabling of the site itself.

- If too many cookies are being written on each and every page navigation, and if the cookies are enabled, this can lead to user frustration can result in the loss of traffic.

- Cookies are concerned with security also.

- Some cookies contain user’s personal information and if they are hacked, then the hacker gets access to the user’s personal information.

- Some sites store your sensitive information cookies. This is not advisable since it can lead to serious privacy concerns.

Test Cases for testing Web Application Cookies

- First test case should test whether the application is writing the cookies on the disk properly or not?

- The privacy policy of the cookie makes sure that your personal information is not written in to the cookie. It also makes sure that no sensitive data is leaked.

- Even if some sensitive data is stored in the cookies, it is made sure that the data is stored in the encrypted format.

- Overuse of cookies can annoy the users if the browser prompts for cookies frequently. This can cause loss of traffic of the web site.

- Disabling of cookies can cause some functionalities of the web site to become disabled or the site may not function properly. But always ensure that there is no page crash during the testing. Delete all the previous cookies.

- Acceptation and rejection of some cookies: this is probably the best way to check the functionality of site. All you have to do is accept only some of cookies and reject the others. For executing this case, you can set your browser settings so as to prompt you whenever a cookie is being written so that you can accept or reject that cookie. Observe the behavior of site.

- Corruption of cookies by editing their content.

- Testing of cookie on multiple browsers.


Saturday, January 21, 2012

What is the difference between automated testing and manual testing?

Automated scripted testing and manual scripted are two most common and popular ways of carrying out the scripted testing. 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.

Automated testing is mostly used.
- In automated testing the test cases are executed automatically and there is no need of human intervention.

- Non- requirement of human intervention is the best advantage of 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.

- The main drawback of automated testing is that the automated tests are poorly written and they may break down or crash during the execution.

- They only test what has been programmed into them.

- They only ensure that old bugs do not reappear and don’t prove to be a good methodology to find out new bugs and errors.

In contrast to automated testing the manual scripted testing is the oldest and most rigorous form of software and application testing.
- In manual testing the test cases are reviewed by the whole testing team before putting them in to execution.

- These test cases are created at two levels.

- The first level is basic functionality level and the second one is the scenario level.

- Apart from reviewing of test cases, the designing is also done by the whole software development team.

- Manual scripted testing is considered to be a waste of resources by most of the testers.

- According to some testers the scripted manual testing inhibits the mind of the tester to use their creativity and 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 for the benchmarking purpose and have to be executed in the same way, every time.

- The testers should have a strong knowledge of the software system or application since in manual scripted testing; the test cases are created beforehand.

- The primary sources of information to the testers are functional design specifications, requirements documents etc and so on.

- To make the testing more effective, the testers are free to use supplementary sources of information to increase their knowledge of the software system or application by rigorous discussions with the development team.

- Manual scripted testing is used in situations or programs where a waterfall methodology along with the V-Model has been implemented.

- Apart from waterfall and v model methodology, this approach can also be used for projects where requirements and specifications are frozen and likelihood of modifications in those requirements and specifications is very less and this is also suitable for the situations where safety and regulatory situations demand proof of testing.

- Generally, this manual testing approach is considered old but, it is quite relevant in this current era of market driven applications.

The best methodology is mixing manual testing and automated testing together and using it for exploratory testing.


Thursday, July 22, 2010

Drawbacks of Manual Performance testing and how does a LoadRunner work ?

Working of LoadRunner


- The Controller is the central console from which the load test was managed and monitored.
- Thousands of virtual users perform real-life transactions on a system to emulate traf c.
- Real time monitors capture performance data across all tiers, servers and network resources and display information on the Controller.
- Results are stored in the database repository, allowing users to generate the reports and perform analysis.

The LoadRunner automated solution addresses the drawbacks of manual performance testing:
• LoadRunner reduces the personnel requirements by replacing human users with virtual users or Vusers. These Vusers emulate the behavior of real users operating real applications.
• Because numerous Vusers can run on a single computer, LoadRunner reduces the hardware requirements.
• The LoadRunner Controller allows you to easily and effectively control all the Vusers from a single point of control.
• LoadRunner monitors the application performance online, enabling you to fine-tune your system during test execution.
- LoadRunner automatically records the performance of the application during a test. - LoadRunner checks where performance delays occur: network or client delays, CPU performance, I/O delays, database locking, or other issues at the database server.
- LoadRunner monitors the network and server resources to help you improve
performance.


Thursday, June 24, 2010

Manual Testing and what are its drawbacks/limitations.

Software testing is carried out manually in many organizations. The test team generates various test cases and manually tests each and every feature after the product is reached its completion stage. If defect is found, It is rectified and again the software is tested using the test cases. There are few drawbacks or limitations of manual testing.
- Manual testing is error prone because test engineers become bored when testing has to be done repeatedly. To test a we site, each and every link has to be checked.
- Manual testing is very time consuming. The same set of operations need to be done repeatedly.
- Regression testing has to be done to ensure that changes in one portion of the software have no ill effects on other portions of the software.
- To do performance testing, many resources are required, both computer and people. On the other hand, automated tools facilitate running the software from a single client machine.
- Even to manage the testing process is complicated as the testing has to be planned, bugs have to be tracked and reliability analysis has to be performed.

Manual testing is time consuming, error prone and requires lot of infrastructure and manpower, these limitations can be overcome if the testing process is automated. The testing tools reduce manual testing to a large extent and the testing can be done done automatically.


Facebook activity