Subscribe by Email


Showing posts with label Concepts. Show all posts
Showing posts with label Concepts. Show all posts

Tuesday, November 6, 2012

What is Python Testing? What are system requirements for python testing?


Framework for Python Testing

- A special frame work is used for python testing frame work which is commonly known as the “py unit”. 
- This frame work is nothing but a language version of the Junit which was developed earlier by Erich gamma and Kent Beck. 
- Kent previously had developed a small talk testing frame work. 
- The Junit is a version of this frame work only. 
- Each one of them can be considered to be a standard unit testing frame work representing their own respective language. 
- Test automation is much supported by the unit test. 
- Other things supported by the unit test are:
1.   Sharing of set up
2.   Shut down code for tests
3.   Aggregations of tests in to collections
4.   Keep the tests independent of the reporting frame work
- In addition to all these classes that support qualities for a set of test cases are also provided by the unit test module. 
- But to provide all these, it is necessary that the unit test module should support the following concepts:
1. Test case: Being the smallest unit of testing, it is designed to check the specific response to a certain input. New test cases are created from a base class called “test case” which is again provided by the unit test module.
2. Test fixture: The purpose is to be the representation of the preparation that is very much required for performing one or more than one as well as clean up actions. Some examples are:
a)   Creating temporary data bases
b)   Creating proxy data bases
c)   Creating directories
d)   Starting a server process
3.Test suite: It is a collection of either test cases or test suites or in some cases a mixture of both. Serves as an aggregating tool which collects the tests to be executed in one place.
4.Test runner:This component facilitates the orchestration of the execution periods of the tests and accordingly provides results to the user. Either a graphical interface or a textual interface can be used by the test runner.
The following two concepts are supported by the function test case and test case classes:
1.   Test case and
2.   Test fixture
- The frame work for python testing has been designed in such a way that it will work with any standard python but on versions higher than 1.5.2. 
- Pyunit has been tested on various versions of Linux with python 2.0, 2.1 and so on. 
- Also, the python has been known to work on platforms other than this example mac and windows.  
- The unit test module is actually a content of the standard python library of python 2.1 and above. 
- If in case you are working with an old version of python, you need to obtain this module from a separate distribution of the pyunit. 
- To ensure that the unit test module is being used in your code, you need to ensure that the directory which holds the file unittest.py is included in your code. 
- There are two ways to do this as stated below:
1.   Including the ‘$PYTHONPATH’ environment variable
2. Placing the directory in the current search path of python on linux machines.
- Exceptions are part of every test run. 
- So, in python testing whenever exceptions are raised, in order to format the failure details the resulting trace back objects are saved. 
- The failure details are printed at the end of the test run.
- However, memory usage poses a problem whenever test suites are run with very high failure rates.


Wednesday, October 17, 2012

Is there any problem in using scripts created on v6.0 to 6.5 or higher versions?


In some cases, it may happen that while trying to automate a java swing application using an early version of silk test such as the silk test 5.0.3. You found that the objects and controls in the application window of the application under test or AUT might not be recognizable by the silk test. 

This is just an example of problems of such category and at times you may wonder if the higher versions such as the silk test v 6.0 or silk test v 6.5 are suitable for automating your application or not? Or does the silk test comes with some extensions or add – ons as an alternate for overcoming such situations. 

The version 6.0 of the silk test is known to have some bugs in it, however, the Segue software has known to resolve these known issues. Actually, advancing form a lower version to a higher version of the silk test must not pose a problem. 
Though this is a general statement that we made on the basis of observation of several instances, it is not necessary that it should turn out to be true in all the cases. You may face some problems with the scripts that will work on an earlier but not on higher versions such as 6.0 and above because the object recognition patterns in both of them are not the same and vary from version to version. 

There are certain situations where the two paths of the script might be used for performing the same action but based up on the version. 
The silk test version 6.0 and silk test version 6.5 are somewhat similar and though no problems are experienced in advancing from version 6.0 to version 6.5 of the silk test. 

The various client forms of silk test are available such as those stated below:
  1. Silk test classic: This client of the silk test makes use of the domain specific language called “4test” for scripting of the test automation scripts. This language just like the C++ language is an object oriented language. Just like C++ it also makes use of the Object Oriented concepts such as following:
a)   Inheritance
b)   Classes and
c)   objects
  1. Silk 4J: This client of the silk test enables one to follow test automation by using java as the scripting language in eclipse.
  2. Silk 4 net: This client of the silk test also enables one to follow test automation by using VBScript or sometimes using C# as the scripting language in the visual studio.
  3. Silk test work bench: This client of the silk test enables the testers to carry out the automation testing using VB.net as the scripting language as well as on a visual level.
Below stated is the list of the silk test versions that have been released till now:
  1. Borland silk test 13- june 2012
  2. Micro focus silk test 2011 – November 2011
  3. Micro focus silk test 2010 R2 WS 2 – may 2011
  4. Micro focus silk test 2010 R2 – December 2010
  5. Micro focus silk test 2010 – july 2010
  6. Silk test 2009 – august 12, 2009
  7. Silk test 2008 SP1 – jusly 2008
  8. Silk test 2008 – april 2008
  9. Silk test 2006 R2 service pack 2 – September 2007
  10. Silk test 2006 R 2 service pack 1 – june 2007
  11. Silk test 2006 R2 – January 2007
  12. Silk test 2006 – September 2006
  13. Silk test 8.0 – may 2006
  14. Silk test 7.6 – September 2005
  15. Silk test 7.5 – june 2005
  16. Silk test 7.1 – October 2004
  17. Silk test 6.5 – November 2003
  18. Silk test 6.0 – November 2002
  19. Silk test 5.0.1 – September 1999
  20. QA partner 4.0 – November 1996


Tuesday, July 31, 2012

What are different techniques for estimating used by agile teams?

Expending more time and effort to arrive at an estimate does not necessarily increase the accuracy of the estimate. The amount of effort put into an estimate should be determined by the purpose of that estimate. Although it is well known that the best estimates are given by those who will do the work, on an agile team we do not know in advance who will do the work. Therefore, estimating should be a collaborative activity for the team.


Concepts on Estimating


- Agile teams acknowledge that we cannot eliminate uncertainty from estimates, but they embrace the idea that small efforts are rewarded with big gains.
- Agile teams can produce more reliable plans because they frequently deliver small increments of fully working, tested, integrated code.
- Agile teams do not rely on single expert to estimate. Estimates are best derived collectively by the team.
- Estimates should be on a predefined scale.
- Features that will be worked on in the near future and that need fairly reliable estimates should be made small enough that they can be estimated on a non-linear scale from 1 to 10 such as 1,2,3,5, and 8 or 1,2,4, and 8.
- Larger features that will most likely not be implemented in the next few iterations can be left larger and estimated in units such as 13,20,40, and 100.
- Some teams choose to include 0 in their estimation scales.


Four common techniques for estimating are:


1. Expert Opinion
- In this approach, an expert is asked how long something will take or how big it will be.
- The expert relies on his/her intuition or gut feel and provides an estimate.
- This approach is less useful on agile projects as compared to traditional projects.
- In an agile project, estimations are made on user stories or other user-valued functionality. It requires lot of skills by more than one person which makes it difficult to find suitable experts.
- Benefit of expert opinion is that it does not take very long.

2. Analogy
- In this approach, the estimator compares the story being estimated with one or more other stories.
- If story is twice the size, it is given estimate twice as large.
- You do not compare all stories against a single baseline, instead, each story is estimated against an assortment of those that have already been estimated.

3. Dis aggregation
- It refers to breaking a story or feature into smaller, easier to estimate pieces.
- Be careful not to go very far with this approach.

4. A fun and effective way of combining these is planning poker.
- In planning poker, each estimator is given a deck of cards with a valid estimate shown on each card.
- A feature is discussed, and each estimator selects the card that represents his or her estimate.
- All cards are shown at the same time.
- The estimates are discussed and the process repeated until agreement on the estimate is agreed.


Thursday, May 3, 2012

What is meant by test driven development (TDD)?

Test driven development or TDD is another process in the league of the software development processes. The topic of the test driven development is in the spot light of this article. The test driven development follows from the idea of the repetition of a very short development cycles. 



Concepts of Test Driven Development (TDD)


- First of all a failing automated test case is written or created by the developer or tester which serves the purpose of defining a new function or a desired improvement. 
- Then a code to pass the above created test is also created by the developer. 
- This newly written code is then refactored in order to make it meet the acceptable standards.
- Kent Beck is credited with the discovery of the test driven development process in the year of 2003. 
- The test driven development was looked up as an encouragement for the simple designs and also as an inspiration for boosting up confidence levels.
- The test driven development has always been related to the concepts of the extreme programming which took its root in the year of 1999. 
- But, eventually it came up as an individual process with its own ways and rights. 
- The concepts of the test driven development are also employed by the programmers and developers as a measure for debugging the legacy code and improving it further. 
- The test driven development is driven by a series of automated unit tests that are created by the developer for defining the requirements of the code and then automatically produce the code for them. 
- These unit tests are comprised of assertions i.e., either true values or false values. 
- Successful passing of a test confirms the developer of the correctness of the code and that it can be further evolved and re-factored. 
- To run these automated test cases, the developers make use of the testing frame works.



Steps involved in Test Driven Development (TDD)




Addition of a Test: 
The development begins with the creation of test cases for all the features. These test cases are often expected to fail since they have been created before the implementation of those features. If these test cases do not fail then either the test case is having some defect or the proposed new feature is already in existence. Before writing the test case, the developer is supposed to fully understand the specifications and requirements of the feature using the user stories and use cases etc. This is what that makes the test driven development different from other development methodologies.


Execution of all tests in order to check the working of the new one: 
This step involves the validation of the test harness for its correct working. At this step this is also ensured that the new test is not passing without the requirement of some new code. The test itself is also tested in negative and the possibility that the newly added test will always pass out is reduced. The new test is also expected to fail because of the reason figured out.


Production of code: 
This step involves the creation of some code implementing which the code can only pass the test and does not incorporates any new functionality.


Execution of the automated tests and observing their success.


Re-factoring of code: 
This step involves the cleaning up of the code.


Repetition: 
The whole cycle is repeated for the improvement of the functionalities.


Many development styles have been developed for the test driven development like:
  1. YAGNI (you ain’t gonna need it)
  2. KISS (keep it simple stupid) etc.


Wednesday, May 2, 2012

TestLink is a Free, open source test case management tool? - Explain?


Testlink is a free open source test case management tool! It means that it can be freely redistributed and accessed. These kind of open source tools have been invented so to support the new environment created by the issues like:

                                            1.  Licensing
                            2.  Copyright
3                          3. Domain issues
4                          4.  Consumer issues
    
      

Concepts of Open Source Models

 -The open source models employ the concept of different agendas but concurrent with different approaches in  production. 
      - The whole open source concept works on the principle of the peer production.
      - Peer production means collaborating and bartering with the end documentation, source material, blue prints and product which are available for free to the public.
    - The source code of the testlink is made publicly available and the public is given full right for modifying, copying and redistributing it at no cost. 
   - It has evolved through the community operation which is comprised of many individual software programmers from large companies. 

       

What purposes are facilitated by Test Link?


       Testlink is an open source test management tool and provides the facilitation for purposes like:
1                                          1. Test specification
                                            2. Test planning
                                            3. Test reporting
                                            4. Tracking of the requirements
                                            5. Collaborating with the well known bug trackers
     
         

 Features of TestLink

      1.  Set urgent tests
            2.  Custom.css
            3.  Gives an option for creating new test cases and requirements.
            4.   Offers the possibility to do a quick DIFF of the 2 test case versions.
            5.   Fully supports the internet explorer 9 via ExtJS 3.4.0.
            6.  Direct links to each and every requirement can be generated.
            7.  Table ruler
            8.  The requirement versions are well supported by the internal links.
            9.  After editing the requirements and specifications, the tree can be refreshed.
          10.  The states of the tree can be stored and restored in a very reliable way.
          11.  Test result matrix facilitates the filtering by status.
          12.  Requirement revisioning.
          13.  Test case and new requirement comparison method.
          14.  PHPMAILER
          15.  Collapse and expand buttons for trees
          16.  Log messages for the history of the requirements.
          17.  MSSQL support
          18.  IE8 based event viewer
          19.  Query metrics
          20.  Improved minor usability
          21.  Improved tables via EXT- JS
          22.  Improved filters
    23. At the build level, test case execution assignment has been provided.


In spite of all such great features, currently there are two features lurking out:

               1. The debug messages interfere with the working of the reports.
               2. There are troubles going on with the updating of the test case executions. 
       
       

Benefits of TestLink

 

      1. Using the testlink, one can easily integrate one’s test scripts to get the results. 
     2. It is a test management tool that is completely independent and is very effective in managing testing cycle    in a short period of time. 
     3. It helps in cutting down the management, development and maintenance cost of your project, thus making the whole project quite affordable and feasible for you.
     4. It helps in simplifying and accelerating the whole testing process and reporting by:
                 -  Collecting and organizing all of your test cases in a dynamic way.
                 -  Tracking the metrics and the results in association with the test execution.
                 -  Capturing and reporting the details.
                 -  Customizing itself to fit your processes and requirements.
5. It overall assists you in conducting an efficient and thorough testing process and makes best use of the experience it has achieved over 100s of implementations for the clients around the world. 
6. The redistribution of this tool is governed by the GNU general public license.


Thursday, April 26, 2012

What is a testing framework? What are different unit testing frameworks?



What is a testing framework?

- Testing framework is considered to be an object oriented approach to testing since it helps in providing suitable environment and language for testing the software system or application. 
- A testing framework can be defined as a set of concepts, assumptions and tools that are the means for providing support for testing the software systems or application. 
- The testing frameworks are generally used in the automated testing and such testing frameworks are called the test automation frameworks. 
- The main advantage here for which the testing frame works are used is that they reduce the overall testing and development cost by a large amount. 
- If any change or modification is made to the test cases, then all the tester needs to do is to update the test case file since the start-up script and the driver script will remain the same.
- This reduces the hectic task of updating the scripts when the changes have to be made to the software system or application. 
- The testing framework if chosen properly can help in reducing the development costs by a big margin and the lower cost can be maintained throughout the development process. 
- These costs are basically due to the maintenance efforts, test scripting and development processes.
- Using any approach with testing frame work has a great impact on the costs. 

Types of Testing Frameworks

  1. Linear testing framework: This is commonly used for the code that is procedure oriented and is generated by the tools using techniques such as recording and playback.
  2. Structured testing framework: This testing frame work is composed of the control structures and hence got the name. It is constituted by control structures such as switch, while, for, if-else condition statement etc.
  3. Data driven testing framework: This testing frame work involves persisting of the data outside a test in either a spreadsheet or a database.
  4. Key word driven testing framework
  5. Hybrid testing framework: This type of frame work is the resultant of the combination of two or more types of above mentioned testing frame works.

What does testing framework account for?

- A testing frame work is said to account for the following things:
  1. Definition of the format so that the expectations can be expressed.
  2. Creation of a mechanism for driving or hooking an application that is under test.
  3. Execution of the tests.
  4. Reporting of the results.
- The execution of the powerful and complex tests eats up a lot of time and it also requires quite large budget when only capture tool is used. 
- Since the tests are created ad hoc, it becomes very difficult to track these functionalities and reproduce them.
- A test automation framework serves as a better support option when it comes to the automated testing. 
The testing frameworks and other tools are incorporated in to a test automation interface for carrying out the integration as well as system testing. 
- The test automation interface is employed for the mapping of the tests without putting them in to the way of the development process.
- Test automation frameworks are known for improving flexibility and efficiency of the test scripts. 
- There are 3 main core modules of any test automation interface:

1. Interface engine: The engine lies on the top of the environment and consists of a test runner and parser.
2. Interface environment: It consists of project library and frame work library.
3. Object repository: It consists of object application data recorded by the testing tool.


Monday, March 19, 2012

Explain the concepts of password cracking?

Password cracking is one of important and most sought after concepts under the category of computer security and crypt analysis. Password cracking is such a term that is self explanatory i.e., we can make out from the term itself that it is all about recovering the passwords.

The passwords can be recovered from the data that is transmitted and stored by a computer system or network. Till date many approaches have been formulated for the cracking of passwords.

APPROACH FOR PASSWORD CRACKING

- The most common approach which is still so much in use is repeated guessing of the password till one gets the right one.

- Nowadays passwords are more known for their use in the log in process to various systems like an operated system, ATMs, cell phones, email accounts and so on.

- It is not necessary that a password should be some meaningful word; rather it can be anything silly that is probably difficult to be guessed by the others.

- There are many types of passwords like passphrase (password formed by more than one word), PIN (personal identification number, numerical password).

- Passwords are again very much vulnerable since they are not as secure as their cryptographic counterparts i.e., protocols.

- These days password theft, password spoofing etc is quite common.

FACTORS AFFECTING THE SECURITY OF PASSWORD

- Any password protected system is provided protection against the viruses, Trojans etc.

- Physical security measures like shoulder surfing are also implemented.

- Less extreme measures are still so very in use namely Side channel attack,
Extortion and, Rubber hose crypt-analysis.

- It is not necessary that password cracking has always a bad reason behind it.

- There can also be some reasonable and genuine causes for cracking a password.

- The password cracking process usually takes much time depending up on the strength of its bits.

- The measure of the strength of the bits of a password give an indication about the information entropy of it.

- Many of the computer systems are now implementing these techniques.

- In some systems the cryptographic hash of the password gets stored which makes the password accessible to an attacker.

- The attacker can obtain the actual password from this hash password value.

- Passwords with high guessing rates are commonly used for cryptographic keys generation process.

HOW PASSWORD CRACKING IS DONE?

- To say it simply the password cracking is recovering of the passwords from the stored or transmitted data in a computer system.

- Passwords whether easy to remember or hard to guess always have a problem associated with them.

- The password which may seem easy to remember to the user often might also be easy
for an attacker to crack.

- On the other hand a difficult password is a contributing factor in reducing the security of the system since it has to be physically written and stored somewhere.

- In such cases the user tends to use the same password for a long time or to reset it again and again in case he/ she forgets it.

- All this stuff makes a system vulnerable and calls for more stringent security checks for password.

- There are several measures to increase the password strength like using a mixture of both lower case and upper case alphabets, numbers and special characters.

- But such kinds of measures only make the memorisation of these passwords more difficult.

- The best measure here to avoid such memory traps can be to design a personal algorithm for the generation of obscure passwords whenever you plan to change your password.


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.


Facebook activity