Tuesday, September 18, 2007

New Functions to be implemented in Postgis

version()
postgis_lib_version()
postgis_lib_build_date()
postgis_lib_build_date()
postgis_scripts_installed()
postgis_scripts_released()
postgis_geos_version()
postgis_proj_version()
postgis_uses_stats()
postgis_full_version()
length2d
length3d
length2d
AsEWKT
distance
AddBBOX
DropBBOX
Force_collection(geometry)
Force_2d(geometry)
Force_3dz(geometry)
Force_3d(geometry)
Force_3dm(geometry)
Force_3dm(geometry)
Force_4d(geometry)
box2d(geometry)
box3d(geometry)
extent(geometry)
zmflag(geometry)
HasBBOX(geometry)
ndims(geometry)
nrings(geometry)
npoints(geometry)
isvalid(geometry)
expand(geometry, 1000.23)
mem_size(geometry)
mem_size(geometry)
Accum(geometry)
Accum(geometry)
GeometryType(geometry)
StartPoint(geometry)
AsBinary(geometry)
SRID(geometry)
Dimension(geometry)
Envelope(geometry)
IsEmpty(geometry)
IsSimple(geometry)
IsClosed(geometry)
IsRing(geometry)
NumGeometries(geometry)
GeometryN(geometry, 5)
ExteriorRing(geometry)
NumInteriorRings(geometry)
InteriorRingN(geometry,2)
EndPoint(geometry)
GeomUnion(geometry,geometry)
Difference(geometry,geometry)
SymDifference(geometry,geometry)
GeomUnion(geometry,geometry)
Collect(geometry,geometry)
Dump(geometry)

Thursday, September 13, 2007

टेस्टिंग एक्ष्तेन्सिओन्स् विथ एन्तेर्प्रिसेद्ब

Requirement Document for To Install & testing of extensionsCreated By Azhar MehmoodCreated on Sep 13, 2007
*********************************************************************************************
postgis testing requirements******************************* 1. check that during installation spatial installation was checked (If the installation was with spatial extension the the following file exist other wise we need to reinstall with spatial 2. Following files need to be in the place if any of the file is missing postgis will not function properly
on my machine <%EDB_Home%>= C:\EnterpriseDB\8.2
<%EDB_Home%>\spatial\lib\liblwgeom.dl <%EDB_Home%>\spatial\lib\liblwgeom.dll <%EDB_Home%>\spatial\lib\libgeos-2.dll <%EDB_Home%>\spatial\lib\libgeos_c-1.dll <%EDB_Home%>\spatial\share\lwpostgis.sql <%EDB_Home%>\spatial\share\spatial_ref_sys.sql <%EDB_Home%>\spatial\share\lwpostgis_upgrade.sql
pljava testing requirements******************************* 1. Check that JRE is Installed Normally the location is (C:\Program Files\Java\jre1.5.0_06) 2. System variable JRE_HoME with the path ="C:\Program Files\Java\jre1.5.0_06" set 3. Following line must be entered in the file /data/postgressql.CONF custom_variable_classes = 'pljava' pljava.classpath='C:\\Enterprisedb\\8.2\\dbserver\\lib\\pljava.jar' 4. Following files need to be in the place if any of the file is missing pljava will not function properly
<%EDB_Home%>\dbserver\lib\pljava.dll <%EDB_Home%>\dbserver\lib\pljava.jar <%EDB_Home%>\dbserver\share\pljava_install.sql <%EDB_Home%>\dbserver\share\pljava_uninstall.sql C:\Program Files\Java\jre1.5.0_06\bin\java.exe
DBlink Ora testing requirements******************************* 1. Check that oracle instant client is installed 2. Check that unzip oracle instal client is on machine on my machine the oracle_instatnt_client is in D Drive 3. Following file must exsist as they need to be copied C:\oraclexe\app\oracle\product\10.2.0\server\BIN\oci.dll C:\oracle_Instant_client\instantclient_10_2\oraociei10.dll
Plperl testing requirements******************************* 1. Check that Perl in installed and configured. you can download Perl from (www.ActiveState.com) 2. Check that the folder C:\Perl exsist (if Perl is installed the perl folder will exsist) 3. Following file need to be in the place if any of the file is missing plperl will not function properly <%EDB_Home%>\dbserver\lib\plperl.dll
pltcl Testing requirements******************************* 1. Check that TCl in installed and configured. you can download TCL from (www.ActiveState.com) 2. Check that the folder C:\Tcl exsist (if Tcl is installed the Tcl folder will exsist ) 3. Following files need to be in the place if any of the file is missing plperl will not function properly <%EDB_Home%>\dbserver\lib\pltcl.dll

All about Load Testing

This page contains summary descriptions of a number of load and performance tests. It also contains links to more detailed pages, containing additional information including diagrams, tables, examples and screen dumps for a variety of load and performance tests.
Load Tests
Load Tests are end to end performance tests under anticipated production load. The primary objective of this test is to determine the response times for various time critical transactions and business processes and that they are within documented expectations (or Service Level Agreements - SLAs). The test also measures the capability of the application to function correctly under load, by measuring transaction pass/fail/error rates. This test is one of the most fundamental load and performance tests and needs to be well understood.
This is a major test, requiring substantial input from the business, so that anticipated activity can be accurately simulated in a test situation. If the project has a pilot in production then logs from the pilot can be used to generate ‘usage profiles’ that can be used as part of the testing process, and can even be used to ‘drive’ large portions of the Load Test.
Load testing must be executed on “today’s” production size database, and optionally with a “projected” database. If some database tables will be much larger in some months time, then Load testing should also be conducted against a projected database. It is important that such tests are repeatable as they may need to be executed several times in the first year of wide scale deployment, to ensure that new releases and changes in database size do not push response times beyond prescribed SLAs.
Failover Tests
Failover Tests verify of redundancy mechanisms while under load. For example, such testing determines what will happen if multiple web servers are being used under peak anticipated load, and one of them dies. Does the load balancer react quickly enough? Can the other web servers handle the sudden dumping of extra load? This sort of testing allows technicians to address problems in advance, in the comfort of a testing situation, rather than in the heat of a production outage.
Soak Tests
Soak testing is running a system at high levels of load for prolonged periods of time. A soak test would normally execute several times more transactions in an entire day (or night) than would be expected in a busy day, to identify and performance problems that appear after a large number of transactions have been executed. Also, due to memory leaks and other defects, it is possible that a system may ‘stop’ working after a certain number of transactions have been processed. It is important to identify such situations in a test environment.
Stress Tests
Stress Tests determine the load under which a system fails, and how it fails. This is in contrast to Load Testing, which attempts to simulate anticipated load. It is important to know in advance if a ‘stress’ situation will result in a catastrophic system failure, or if everything just “goes really slow”. There are various varieties of Stress Tests, including spike, stepped and gradual ramp-up tests. Catastrophic failures require restarting various infrastructure and contribute to downtime, a stress-full environment for support staff and managers, as well as possible financial losses. This test is one of the most fundamental load and performance tests and needs to be well understood.
Targeted Infrastructure Test Targeted Infrastructure Tests are Isolated tests of each layer and or component in an end to end application configuration. It includes communications infrastructure, Load Balancers, Web Servers, Application Servers, Crypto cards, Citrix Servers, Database… allowing for identification of any performance issues that would fundamentally limit the overall ability of a system to deliver at a given performance level.
Each test can be quite simple, For example, a test ensuring that 500 concurrent (idle) sessions can be maintained by Web Servers and related equipment, should be executed prior to a full 500 user end to end performance test, as a configuration file somewhere in the system may limit the number of users to less than 500. It is much easier to identify such a configuration issue in a Targeted Infrastructure Test than in a full end to end test.
Performance Tests Performance Tests are tests that determine end to end timing (benchmarking) of various time critical business processes and transactions, while the system is under low load, but with a production sized database. This sets ‘best possible’ performance expectation under a given configuration of infrastructure. It also highlights very early in the testing process if changes need to be made before load testing should be undertaken. For example, a customer search may take 15 seconds in a full sized database if indexes had not been applied correctly, or if an SQL 'hint' was incorporated in a statement that had been optimized with a much smaller database. Such performance testing would highlight such a slow customer search transaction, which could be remediated prior to a full end to end load test.
Network Sensitivity Tests Network sensitivity tests are tests that set up scenarios of varying types of network activity (traffic, error rates...), and then measure the impact of that traffic on various applications that are bandwidth dependant. Very 'chatty' applications can appear to be more prone to response time degradation under certain conditions than other applications that actually use more bandwidth. For example, some applications may degrade to unacceptable levels of response time when a certain pattern of network traffic uses 50% of available bandwidth, while other applications are virtually un-changed in response time even with 85% of available bandwidth consumed elsewhere.
This is a particularly important test for deployment of a time critical application over a WAN.
Volume Tests
Volume Tests are often most appropriate to Messaging, Batch and Conversion processing type situations. In a Volume Test, there is often no such measure as Response time. Instead, there is usually a concept of Throughput.
A key to effective volume testing is the identification of the relevant capacity drivers. A capacity driver is something that directly impacts on the total processing capacity. For a messaging system, a capacity driver may well be the size of messages being processed. For batch processing, the type of records in the batch as well as the size of the database that the batch process interfaces with will have an impact on the number of batch records that can be processed per second.
Sociability (sensitivity) Tests
Sensitivity analysis testing can determine impact of activities in one system on another related system. Such testing involves a mathematical approach to determine the impact that one system will have on another system. For example, web enabling a customer 'order status' facility may impact on performance of telemarketing screens that interrogate the same tables in the same database. The issue of web enabling can be that it is more successful than anticipated and can result in many more enquiries than originally envisioned, which loads the IT systems with more work than had been planned.
Tuning Cycle Tests
A series of test cycles can be executed with a primary purpose of identifying tuning opportunities. Tests can be refined and re-targeted 'on the fly' to allow technology support staff to make configuration changes so that the impact of those changes can be immediately measured.
Protocol Tests
Protocol tests involve the mechanisms used in an application, rather than the applications themselves. For example, a protocol test of a web server may will involve a number of HTTP interactions that would typically occur if a web browser were to interact with a web server - but the test would not be done using a web browser. LoadRunner is usually used to drive load into a system using VUGen at a protocol level, so that a small number of computers (Load Generators) can be used to simulate many thousands of users.
Thick Client Application Tests
A Thick Client (also referred to as a fat client) is a purpose built piece of software that has been developed to work as a client with a server. It often has substantial business logic embedded within it, beyond the simple validation that is able to be achieved through a web browser. A thick client is often able to be very efficient with the amount of data that is transferred between it and its server, but is also often sensitive to any poor communications links. Testing tools such as WinRunner are able to be used to drive a Thick Client, so that response time can be measured under a variety of circumstances within a testing regime.
Developing a load test based on thick client activity usually requires significantly more effort for the coding stage of testing, as VUGen must be used to simulate the protocol between the client and the server. That protocol may be database connection based, COM/DCOM based, a proprietary communications protocol or even a combination of protocols.

Thin Client Application Tests
An internet browser that is used to run an application is said to be a thin client. But even thin clients can consume substantial amounts of CPU time on the computer that they are running on. This is particularly the case with complex web pages that utilize many recently introduced features to liven up a web page. Rendering a page after hitting a SUBMIT button may take several seconds even though the server may have responded to the request in less than one second. Testing tools such as WinRunner are able to be used to drive a Thin Client, so that response time can be measured from a users perspective, rather than from a protocol level.

Thursday, September 6, 2007

Testing Challanges!!!!

Testing Challenges It is human nature to respond to any challenges thrown upon them. But what do we mean by a challenge? Well one of the definition of challenge is 'a demanding or stimulating situation'. A challenge could be 'a call to engage yourself in a contest'. As a tester we face different challenges in our profession. These situations can be handled in a better way if we have the skills to analyze the problem and off-course by understanding how our fellow testers are tackling a particular problem in their unique context.
As a tester, we have some challenges which are very unique to our profession and some challenges are more generic in nature. TestingGeek has classified these challenges into two broad categories:
Analytical Challenges - These challenges are not unique to our profession and most of the professions require some degree of analytical skills. Analytic can be defined as "Having the ability to analyze" or "Ability to divide into elements and principle", given the nature of testing it is very important for testers to have good analytical skills. Like any other skill, analytical skill can also be improved by practice. This skill can be improved by practicing different Puzzles, taking challenges or reading different books to improve your aptitude. Best mechanism of improving this skill is to exercise your brain. In this section TestingGeek will give you an opportunity to exercise your brain by providing you mind stretching challenges and puzzles. Along with the puzzles related to our domain, you will also find interesting puzzles which will make you think out of the box and help you in developing lateral thinking.
Professional Challenges: Every profession has its own challenges. This section explains the different challenges faced in this field and how you can overcome them. These may be the interaction with the developer, attitude of Management towards testing, identification of tools, their usage and training , interaction with the customers, acceptability and entry-exit criteria for the tests and many more. TestingGeek will try and explain a few professional challenges and suggest how these should be addressed. We might not be able to provide you solution to your problem, but if you are aware of the challenges that as a tester you can face, it helps.

Automated Testing Tools Overview

Testing Tool For test engineers, tools are essential for every testing activity. It will be very difficult for any one to perform all the testing activities without help of appropriate tools. Fortunately, tools are present for every activity related to testing from Test Management, execution to reporting. As a test engineer, you need to know not only core testing tools but also tools which can improve your efficiency multi fold. I have divided tools based on the activity they perform
Requirement Management In the recent time, people have started realizing that testing team should be involved in the project from the inception. Early involvement of test team in the project can be very beneficial for the project, but it require test team to be familiar with the tools which are used to manage requirement of the project. Tools like Rational Requisite Pro, Telelogic help people in managing requirements in a better way. You should try to make yourself familiar with these tools. As a tester, if you participate in requirement gathering process or analyze requirement for testability, maintainability, ambiguity etc., having a good understanding of requirement management tools can make your life easier.
User Stories
UML or software design tools More and more people have started realizing the value of UML and software design. Modeling tools gives you functionality of designing your whole system, use cases, sequence diagram etc. As a test engineer you should be familiar with the use cases, class diagram, sequence diagram and how it can be used to increase your understanding of the system. Good understanding of use cases and system design can help you in writing more efficient test cases and help you in finding design flaws as well. Familiarity with tools like Rational Rose, Rational Software Architect can go a long way in doing that.
Test planning and management tool Tools mentioned in the above section can be treated as good to have, but these tools are essential. You should try to get expertise in the tools like Rational Test Manager, Mercury Quality Centre etc. These tools can be used for managing test assets, creating test plan and cases, tracking execution, reporting and executing automated test cases as well. Some of the tools covered on TestingGeek are mentioned below.
Mercury Quality Centre.
Test execution tools This is what most of the test engineer use for Test Automation. Most of the tools in this category support the playback kind of functionality. These tools can be used to automate and execute automated test cases. Tools like Rational Functional Tester, Rational Robot, QTP, WinRunner and SilkTest can be used for this purpose.
SilkTest
Test Complete
Rational Functional Tester
Rational Test Suite
FitNesse
Selenium IDE
Unit Testling tool Though unit testing is mostly done by development team, but now a days test team also assist development team in writing and defining unit test cases.
JUnit
Performance testing tool Performance testing is mostly used for web based applications. But in some case, memory profiling can be used for desktop applications as well. Tools like Load tester, JMeter can create virtual hosts and can simulate the real time load on the system.
Useful Tools Apart from the tools mentioned above, there are some more tools which are always good to have for your use. Specially, tools like VMWare, NortonGhost
VMWare - A Tester's Best Friend

Software Testing Categories

Have you ever thought why do you need to categorize software testing into different types? What is the benefits of dividing software testing in different types? One of the main purpose of software testing is to identify defects in the software. Defects in software testing can be defined as variance from requirement or user expectation. Based on this simple definition, it is very easy to categorize defects. For example:
If system is not functioning properly, its a functional defect.
If system is not performing well, its a performance defect.
If system is not usable, its a usability defect
If system is not secure, its a security defect
and so on..
Identify these different defects require different skill set, different techniques and different type of test cases. Testing is divided into different types to reflect, what kind of defects can be uncovered by those activities. This division also helps management in managing these activities effectively. Also, it is very rare to have someone with skills in all the types of testing and this division helps in getting proper resources for team.
Hope you understand importance of this categorization and also how important it is to have understanding of different types. This understanding will enable you to spot more defects which in turn will improve quality and make you more effective software tester.
There are many ways in which software testing can be categorized. Some of them are described as follows: Categorization of testing based on the knowledge of system

Black Box Testing
White Box Testing
Gray Box Testing Categorization of testing based on the time it is executed in the Software Development Life Cycle
Unit Testing
Integration Testing
System Testing
User Acceptance Testing Different types of testing can be categorized based on the purpose of testing. This can be classified further into Functional Testing and Non Functional Testing.
Functional Testing In functional testing, the focus of testing activities is on functional aspects of the system. In functional testing, test cases are written to check the expected output. Functional testing is normally performed in all the test phases from unit to system testing. The following types of test activities are normally performed under Functional Testing
Installation Testing
Regression Testing
Upgrade and backward compatibility testing
Accessibility testing
Internationalization and localization testing
API Testing
Non-Functional Testing In non-functional testing, the focus of the testing activities is on non functional aspects of the system. Non functional testing is normally carried out during the System Testing phase only. The focus of non functional testing is on the behavior and user experience of the system.
Performance, Load and Stress Testing
Usability Testing
Security testing
more to come..