Saturday 8 March 2014

My Words for SQL Testing Information.


Types of Joins:

Joins are one of the most important operations performed by a relational database system. An RDBMS uses joins to match rows from one table with rows from another table. For example, we can use joins to match sales with customers or books with authors. Without joins, we might have a list of sales and customers or books and authors, but we would have no way to determine which customers bought which items or which authors wrote which books.
We can join two tables explicitly by writing a query that lists both tables in the FROM clause. We can also join two tables by using a variety of different sub-queries. Finally, SQL Server may introduce joins for a variety of purposes into a query plan during optimization.
This is the first of several posts that I am planning for joins. In this post, I’m going to start by introducing the logical join operators that SQL Server supports. These are:
While different implementations have many ways of joining tables, you concentrate on the most common joins in this lesson. The types of joins that you learn are
  • EQUIJOINS( Inner join)
  • NATURAL JOINS
  • NON-EQUIJOINS
  • Using Table Aliases
  • OUTER JOINS
  • SELF JOINS
  • Cross join
  • Cross apply
  • Semi-join
  • Anti-semi-join
Here is a simple schema and data set that I will use to illustrate each join type:
create table Customers (Cust_Id int, Cust_Name varchar(10))
insert Customers values (1, 'Craig')
insert Customers values (2, 'John Doe')
insert Customers values (3, 'Jane Doe')
create table Sales (Cust_Id int, Item varchar(10))
insert Sales values (2, 'Camera')
insert Sales values (3, 'Computer')
insert Sales values (3, 'Monitor')
insert Sales values (4, 'Printer')
Inner joins
Perhaps the most used and important of the joins is the EQUIJOIN, also referred to as an INNER JOIN. The EQUIJOIN joins two tables with a common column in which each is usually the primary key.
The syntax for an EQUIJOIN is
SELECT TABLE1.COLUMN1, TABLE2.COLUMN2...
FROM TABLE1, TABLE2 [, TABLE3 ]
WHERE TABLE1.COLUMN_NAME = TABLE2.COLUMN_NAME
[ AND TABLE1.COLUMN_NAME = TABLE3.COLUMN_NAME ]
NOTE
Inner joins are the most common join type. An inner join simply looks for two rows that put together satisfy a join predicate. For example, this query uses the join predicate “S.Cust_Id = C.Cust_Id” to find all Sales and Customer rows with the same Cust_Id:
select *
from Sales S inner join Customers C
on S.Cust_Id = C.Cust_Id
Cust_Id Item Cust_Id Cust_Name
----------- ---------- ----------- ----------
2 Camera 2 John Doe
3 Computer 3 Jane Doe
3 Monitor 3 Jane Doe
Notes:
  • Cust_Id 3 bought two items so this customer row appears twice in the result.
  • Cust_Id 1 did not purchase anything and so does not appear in the result.
  • We sold a ‘Printer’ to Cust_Id 4. There is no such customer so this sale does not appear in the result.
Inner joins are fully commutative. “A inner join B” and “B inner join A” are equivalent.

Natural Joins

NATURAL JOIN is nearly the same as the EQUIJOIN; however, theNATURAL JOIN differs from the EQUIJOIN by eliminating duplicate columns in the joining columns. The JOIN condition is the same, but the columns selected differ.
The syntax is as follows:
SELECT TABLE1.*, TABLE2.COLUMN_NAME
    [ TABLE3.COLUMN_NAME ]
FROM TABLE1, TABLE2 [ TABLE3 ]
WHERE TABLE1.COLUMN_NAME = TABLE2.COLUMN_NAME
[ AND TABLE1.COLUMN_NAME = TABLE3.COLUMN ]
Look at the following example:
SELECT EMPLOYEE_TBL.*, EMPLOYEE_PAY_TBL.SALARY
FROM EMPLOYEE_TBL,
   EMPLOYEE_PAY_TBL
WHERE EMPLOYEE_TBL.EMP_ID = EMPLOYEE_PAY_TBL.EMP_ID;
This SQL statement returns all columns from EMPLOYEE_TBL andSALARY from the EMPLOYEE_PAY_TBL. The EMP_ID is in both tables, but is retrieved only from the EMPLOYEE_TBL because both contain the same information and do not need to be selected.
The following example selects all columns from the EMPLOYEE_TBL table and only one column from the EMPLOYEE_PAY_TBL table. Remember that the asterisk (*) represents all columns of a table.
SELECT EMPLOYEE_TBL.*, EMPLOYEE_PAY_TBL.POSITION
FROM EMPLOYEE_TBL, EMPLOYEE_PAY_TBL
WHERE EMPLOYEE_TBL.EMP_ID = EMPLOYEE_PAY_TBL.EMP_ID;
EMP_ID     LAST_NAM FIRST_NA M ADDRESS          CITY         ST  ZIP  PHONE
---------- -------- -------- - -------------   ------------  -- ----- ----------
PAGER      POSITION
---------- --------------
311549902  STEPHENS TINA     D  RR 3 BOX 17A    GREENWOOD    IN 47890 3178784465
           MARKETING
 
442346889  PLEW     LINDA    C  3301 BEACON     INDIANAPOLIS IN 46224 3172978990
           TEAM LEADER
 
213764555 GLASS    BRANDON S 1710 MAIN ST    WHITELAND    IN 47885 3178984321
3175709980 SALES MANAGER
 
313782439 GLASS    JACOB       3789 RIVER BLVD INDIANAPOLIS IN 45734 3175457676
8887345678 SALESMAN
 
220984332  WALLACE  MARIAH      7889 KEYSTONE   INDIANAPOLIS IN 46741 3173325986
           SHIPPER
 
443679012  SPURGEON TIFFANY     5 GEORGE COURT  INDIANAPOLIS IN 46234 3175679007
           SHIPPER

6 rows selected.
NOTE
Notice how the output has wrapped in the previous example. The wrap occurred because the length of the line has exceeded the limit for the line (which is usually 80 characters per line by default).

Using Table Aliases

The use of table aliases means to rename a table in a particular SQL statement. The renaming is a temporary change. The actual table name does not change in the database. As you will learn later in this hour, giving the tables aliases is a necessity for the SELF JOIN. Giving tables aliases is most often used to save keystrokes, which results in the SQL statement being shorter and easier to read. In addition, fewer keystrokes means fewer keystroke errors. Also, programming errors are typically less frequent if you can refer to an alias, which is often shorter in length and more descriptive of the data with which you are working. Giving tables aliases also means that the columns being selected must be qualified with the table alias. The following are some examples of table aliases and the corresponding columns:
SELECT E.EMP_ID, EP.SALARY, EP.DATE_HIRE, E.LAST_NAME
FROM EMPLOYEE_TBL E,
   EMPLOYEE_PAY_TBL EP
WHERE E.EMP_ID = EP.EMP_ID
AND EP.SALARY > 20000;
The tables have been given aliases in the preceding SQL statement. The EMPLOYEE_TBL has been renamed E. The EMPLOYEE_PAY_TBL has been renamed EP. The choice of what to rename the tables is arbitrary. The letter E is chosen because the EMPLOYEE_TBL starts with E. Because the EMPLOYEE_PAY_TBL also begins with the letter E, you could not use E again. Instead, the first letter (E) and the first letter of the second word in the name (PAY) are used as the alias. The selected columns were justified with the corresponding table alias. Note thatSALARY was used in the WHERE clause and must also be justified with the table alias.

Joins of Non-Equality

NON-EQUIJOIN joins two or more tables based on a specified column value not equaling a specified column value in another table. The syntax for the NON-EQUIJOIN is
FROM TABLE1, TABLE2 [, TABLE3 ]
WHERE TABLE1.COLUMN_NAME != TABLE2.COLUMN_NAME
[ AND TABLE1.COLUMN_NAME != TABLE2.COLUMN_NAME ]
Cross joins
A cross join performs a full Cartesian product of two tables. That is, it matches every row of one table with every row of another table. You cannot specify a join predicate for a cross join using the ON clause though you can use a WHERE clause to achieve essentially the same result as an inner join.
Cross-joins are fairly uncommon. Two large tables should never be cross joined as this will result in a very expensive operation and a very large result set.
select *
from Sales S cross join Customers C
Cust_Id Item Cust_Id Cust_Name
----------- ---------- ----------- ----------
2 Camera 1 Craig
3 Computer 1 Craig
3 Monitor 1 Craig
4 Printer 1 Craig
2 Camera 2 John Doe
3 Computer 2 John Doe
3 Monitor 2 John Doe
4 Printer 2 John Doe
2 Camera 3 Jane Doe
3 Computer 3 Jane Doe
3 Monitor 3 Jane Doe
4 Printer 3 Jane Doe
Cross apply
We introduced cross apply in SQL Server 2005 to enable joins with a table valued function (TVF) where the TVF has a parameter that changes for each execution. For example, the following query returns the same result as the above inner join using a TVF and cross apply:
create function dbo.fn_Sales(@Cust_Id int)
returns @Sales table (Item varchar(10))
as
begin
insert @Sales select Item from Sales where Cust_Id = @Cust_Id
return
end
select *
from Customers cross apply dbo.fn_Sales(Cust_Id)
Cust_Id Cust_Name Item
----------- ---------- ----------
2 John Doe Camera
3 Jane Doe Computer
3 Jane Doe Monitor
We can also use outer apply to find all Customers regardless of whether they purchased anything. This is similar to an outer join.
select *
from Customers outer apply dbo.fn_Sales(Cust_Id)
Cust_Id Cust_Name Item
----------- ---------- ----------
1 Craig NULL
2 John Doe Camera
3 Jane Doe Computer
3 Jane Doe Monitor
Semi-join and Anti-semi-join
A semi-join returns rows from one table that would join with another table without performing a complete join. An anti-semi-join returns rows from one table that would not join with another table; these are the rows that would be NULL extended if we performed an outer join.
Unlike the other join operators, there is no explicit syntax to write “semi-join,” but SQL Server uses semi-joins in a variety of circumstances. For example, we may use a semi-join to evaluate an EXISTS sub-query:
select *
from Customers C
where exists (
select *
from Sales S
where S.Cust_Id = C.Cust_Id
)
Cust_Id Cust_Name
----------- ----------
2 John Doe
3 Jane Doe
Unlike the previous examples, the semi-join only returns each customer one time.
The query plan shows that SQL Server indeed uses a semi-join:
|--Nested Loops(Left Semi Join, WHERE:([S].[Cust_Id]=[C].[Cust_Id]))
|--Table Scan(OBJECT:([Customers] AS [C]))
|--Table Scan(OBJECT:([Sales] AS [S]))
There are left and right semi-joins. A left semi-join returns rows from the left (first) input that match rows from the right (second) input while a right semi-join returns rows from the right input that match rows from the left input.
We might similarly use an anti-semi-join to evaluate a NOT EXISTS sub-query.
Miscellaneous notes
In all of the above examples, I used a join predicate that compares whether two columns, one from each table, are equal. This type of join predicate is called an “equijoin.” Other join predicates (such as inequalities) are possible, but equijoins are especially common and SQL Server has many more alternatives when optimizing equijoins than when optimizing joins with more complex predicates.
SQL Server has more flexibility over join order and algorithms when optimizing inner joins than when optimizing outer joins and cross applies. Thus, given two queries that differ only in that one strictly uses inner joins while the other uses outer joins and/or cross applies, SQL Server may be able to find a better plan for the query that uses inner joins only.

Saturday 8 February 2014

My Words For BUG

Bugs In A Software Testing

Bug: bus is a missing functionality in the application bugs can be classified into: 1.Critical. 2.Major. 3.Minor.based on this severity the priority is assigned by the developer for solving the bug in stipulated time assigned by priority.
Manifestation of an error on execution of software is called a bug. Some bugs are important and have high priority whereas; some bugs are dangerous and have high severity. Example: Runtime errors, Compilation errors.
Bug is an error found before the application goes into production. An error is an undesirable deviation from the requirements. Defect is an error found after the application goes into production. There is a lot of debate going on between a defect and a bug. In some companies a defect and a bug are treated as the same. In some companies these both terms are treated as different. According to me a bug occurs while performing white box testing .A defect occurs in black box testing. But i don’t know what is the term that should be used when any deviation between expected and actual occurs while performing grey box testing

bug is an error found during the testing phase of a program \ application. Bugs can be classified as
a. Logical Bugs :- Where the functionality asked for does not complete the task.
b. GUI Related Bugs : relates to the Design of the Interface. It is either related to the Application Form \ Reports of the application
c. Database Related :- Data does not get refreshed \ updated \ deleted \ edited
d. System Related: - The bug appears if the program is not compatible with the operating system
e. Software Service Pack :- Sometimes latest updates are available and the program may not be compatible with the same.
f. Browser Related :- Sometimes latest updates are available and the program may not be compatible with the same.
A fault in a program, which causes the program to perform in an unintended or unanticipated manner. See: anomaly, defect, error, exception, fault

Tuesday 28 January 2014

Testing Process

SOME TESTING STEPS

Defect risk
The process of identifying the amount of risk the defect could cause. This will assist in determining if the defect can go undetected into implementation.
Bug Impacts levels:
Low impact
This is for Minor problems, such as failures at extreme boundary conditions that are unlikely to occur in normal use, or minor errors in layout/formatting. These problems do not impact use of the product in any substantive way.
 
Medium impact
This is a problem that a) Effects a more isolated piece of functionality. b) Occurs only at certain boundary conditions. c) Has a workaround (where "don't do that" might be an acceptable answer to the user). d) Occurs only at one or two customers. or e) Is very intermittent
 
High impact
This should be used for only serious problems, effecting many sites, with no workaround. Frequent or reproducible crashes/core dumps/GPFs would fall in this category, as would major functionality not working.
 
Urgent impact
This should be reserved for only the most catastrophic of problems. Data corruption, complete inability to use the product at almost any site, etc. For released products, an urgent bug would imply that shipping of the product should stop immediately, until the problem is resolved.
What Is Error Rate?
The mean time between errors. This can be a statistical value between any errors or it could be broken down into the rate of occurrence between similar errors. Error rate can also have a perception influence. This is important when identifying the "good-enough" balance of the error. In other words, the mean time between errors is greater than the ultimate user will accept.
What Is Priority
Priority is Business.
Priority is a measure of importance of getting the defect fixed as governed by the impact to the application, number of users affected, and company's reputation, and/or loss of money.
Priority levels:
  • Now: drop everything and take care of it as soon as you see this (usually for blocking bugs)
  • P1: fix before next build to test
  • P2: fix before final release
  • P3: we probably won’t get to these, but we want to track them anyway
  1. Must fix as soon as possible. Bug is blocking further progress in this area.
  2. Should fix soon, before product release.
  3. Fix if time; somewhat trivial. May be postponed.
  • High: This has a major impact on the customer. This must be fixed immediately.
  • Medium: This has a major impact on the customer. The problem should be fixed before release of the current version in development, or a patch must be issued if possible.
  • Low: This has a minor impact on the customer. The flaw should be fixed if there is time, but it can be deferred until the next release.
What Is Severity
Severity is Technical.
Severity is a measure of the impact of the defect on the overall operation of the application being tested.

Severity level:
The degree of impact the issue or problem has on the project. Severity 1 usually means the highest level requiring immediate attention. Severity 5 usually represents a documentation defect of minimal impact.
  • Critical: the software will not run
  • High: unexpected fatal errors (includes crashes and data corruption)
  • Medium: a feature is malfunctioning
  • Low: a cosmetic issue
  1. Bug causes system crash or data loss.
  2. Bug causes major functionality or other severe problems; product crashes in obscure cases.
  3. Bug causes minor functionality problems, may affect "fit anf finish".
  4. Bug contains typos, unclear wording or error messages in low visibility fields.
  • High: A major issue where a large piece of functionality or major system component is completely broken. There is no workaround and testing cannot continue.
  • Medium: A major issue where a large piece of functionality or major system component is not working properly. There is a workaround, however, and testing can continue.
  • Low: A minor issue that imposes some loss of functionality, but for which there is an acceptable and easily reproducible workaround. Testing can proceed without interruption.
What Difference Between Severity and Priority
Priority is Relative: the priority might change over time. Perhaps a bug initially deemed P1 becomes rated as P2 or even a P3 as the schedule draws closer to the release and as the test team finds even more heinous errors. Priority is a subjective evaluation of how important an issue is, given other tasks in the queue and the current schedule. It’s relative. It shifts over time. And it’s a business decision.
Severity is an absolute: it’s an assessment of the impact of the bug without regard to other work in the queue or the current schedule. The only reason severity should change is if we have new information that causes us to re-evaluate our assessment. If it was a high severity issue when I entered it, it’s still a high severity issue when it’s deferred to the next release. The severity hasn’t changed just because we’ve run out of time. The priority changed.
Severity Levels can be defined as follow:
S1 - Urgent/Showstopper. Like system crash or error message forcing to close the window.
Tester's ability to operate the system either totally (System Down), or almost totally, affected. A major area of the users system is affected by the incident and it is significant to business processes.

S2 - Medium/Workaround. Exist like when a problem is required in the specs but tester can go on with testing. Incident affects an area of functionality but there is a work-around which negates impact to business process. This is a problem that:
a) Affects a more isolated piece of functionality.
b) Occurs only at certain boundary conditions.
c) Has a workaround (where "don't do that" might be an acceptable answer to the user).
d) Occurs only at one or two customers. or is intermittent

S3 - Low. This is for minor problems, such as failures at extreme boundary conditions that are unlikely to occur in normal use, or minor errors in
layout/formatting. Problems do not impact use of the product in any substantive way. These are incidents that are cosmetic in nature and of no or very low impact to business processes.
Browser Bug Analyzing Tips
  • Check if the client operating system(OS) version and patches meet system requirements.
  • Check if the correct version of the browser is installed on the client machine.
  • Check if the browser is properly installed on the matche.
  • Check the browser settings.
  • Check with different browsers (e.g., Netscape Navigator versus internet Explorer).
  • Check with different supported versions of the same browsers(e.g.3.1,3.2,4.2,4.3, etc).
Equivalence Class Partitiong and Boundary Condition Analysis
Equivalence class partitioning is a timesaving practice that identifies tests that are equivalent to one another; when two inputs are equivalent, you expect them to cause the identical sequence of operations to take place or they cause the same path to be executed through the code. When two or more test cases are seen as equivalent, the rresource savings associated with not running the redundant tests normally outweighs the rsik.
An example of an equivalence class includes the testj g of a data-entry field in an HTML form. If the field accepts a five-digit ZIP code(e.g, 22222) then it can reasonably be assumed that field will accept all other five-digit ZIP codes (e.g. 33333, 44444, etc.)
In equivalence partitioning, both valid and invalid values are treated in this manner. For example, if entering six letters into the ZIP code field just described results in an error message, then it can reasonably be assumed that all six-letter conbinations will result in the same error message. Similarly, if entering a four-digit number inti the ZIP code field results in an error message, then it should be assumed that all four digit combinations will result in the same error message.

EXAMPLES OF EQUIVALENCE CLASSES
  • Ranges of numbers (such as all numbers between 10 and 99, which are of the same two-digit equivalence class)
  • Membership in groups (dates, times, country names, ete.)
  • Invalid inputs (placing symbols into text-only fields, etc)
  • Equivalent output events (variation of inputs that produce the same output)
  • Equivalent operating environments
  • Repetition of activities
  • Number of records in a database (or other equivalent objects)
  • Equivalent sums or other arithmetic results
  • Equivalent numbers of items entered (such as the number of characters enterd into a field)
  • Equivalent space (on a page or on a screen)
  • Equivalent amount of memory, disk space, or other resources available to a program.
Boundary values mark the transition points between equivalence clases. They can be limit values that define the line between supported inputs and nonsupported inputs,or they can define the line between supported system requirements and nonsupported system requirements. Applications are more susceptible to errors at the boundaries of equivalence classs, so boundary condition tests can be quite effective at uncovering errors.
Generally, each equivalence class is partitioned by its boundary vakues. Nevertheless, not all equivalence classs have boundaries. For example, given the following four browser equivalent classes(NETSCAPE 4.6.1 and Microsoft Internet Explorer 4.0 and 5.0), thereis no boundary defined among each class.
Each equivalence class represents potential risk. Under the equivalent class approach to developing test cases, at most, nine test cases should be executed against each partition.
Rules for bug level
Rules for bug level will be determined by the project goals and the project stakeholders. For example, a software product's graphical user interface is very important in the market competition, so inconsistencies in the GUI more important than missing functionality
Critical: Error that make the program can't run.
High: Important functional can be completed, but bad output when good data is input.
Medium: Important functional can be completed and good output when good data is input, but bad output when bad data is input.
Low: Function is working, but there is some little bit problem UI problem, like wrong color, wrong text fond
Rules for bug level will be determined by the project goals and the project stakeholders. For example, a software product's graphical user interface is very important in the market competition, so inconsistencies in the GUI more important than missing functionality
Customer impact as the single way to rank a bug because it eliminates different defintions among different folks. Customer impact is customer impact. There isn't an "impact to testing", a "marketing priority", a "customer support" priority. There is merely a customer impact. Since all of us produce software for a customer, that is really the only field needed. It eliminates confusion in our profession as well as within the companies that each of us work for.
Believe Defect-Free Software is Possible
The average engineer acts as though defects are inevitable. Sure, they try to write good code, but when a defect is found, it's not a surprise. No big deal, just add it to the list of bugs to fix. Bugs in other people's code are no surprise either. Because typical engineers view bugs as normal, they aren't focused on preventing them.
The defect-free engineers, on the other hand, expect their code to have no defects. When a (rare) bug is found, they are very embarrassed and horrified. When they encounter bugs in other people's code, they are disgusted. Because the defect-free engineers view a bug as a public disgrace, they are very motived to do whatever it takes to prevent all bugs.
In short, the defect-free engineers, who believe defect-free software is possible, have vastly lower defect rates than the typical engineer, who believes bugs are a natural part of programming. The defect-free engineers have a markedly higher productivity.
In software quality, you get what you believe in!
Think Defect-Free Software is Important
Why is defect-free software important? 
Delivering defect-free software reduces support costs.
 
Delivering defect-free software reduces programming costs.
 
Delivering defect-free software reduces development time.
 
Delivering defect-free software can provide a competitive advantage.
Commit to Delivering Defect-Free Software
Making a firm commitment to defect-free code and holding to that commitment, in spite of schedule and other pressures, is absolutely necessary to producing defect-free code. As a nice side benefit, you will see improved schedules and reduced costs!

Wednesday 8 January 2014

MY WORDS FOR DETAILED EXPLAINATION OF BUG REPORTING TOOLS

TET (Test Environment Toolkit)




(TET) Test Environment Toolkit  is provided as an open source, is a multi - platform uniform test scaffold, unsupported command-line product, into which non-distributed and distributed test suites can be incorporated . It is widely used in many test applications including The Open Group's UNIX Certification program and the Free Standards Group's LSB Certification program.TET supports tests written in C, C++, Perl, Tcl, Shell (sh, bash, and POSIX shell), Python, Ruby, and Korn Shell.
The Test Environment Toolkit project started in September 1989, as the Open Software Foundation and UNIX International , X/Open entered in an announced agreement to produce a specifications for a testing environment. The three organizations agreed to develop and make freely available an implementation written to that specification they committed to producing test plans ,test cases.and test suites for execution within that environment.
The extensions that made to the Test Environment Toolkit by X/Open was the (DTET) Distributed Test Environment Toolkit project which started in October 1991. The objectives of this project was the functionality of the TET to support the execution of distributed test cases and be backwards compatible with the Test Environment Toolkit. The DTET defined a distributed test case as a test case executing partly on a master system and partly on one or more slave systems. In such a test case, synchronization between the test case controlling software on the multiple systems was required.



Monday 23 December 2013

MY WORDS FOR TYPES OF BUG REPORTING TOOLS

1. Types Of Test Management tools



  1. TET (Test Environment Toolkit)
  2. TET ware
  3. Test Manager 
  4. RTH - Requirements and Testing Hub
  5. HP Quality Center/ALM
  6. QA Complete
  7. T-Plan Professional
  8. Automated Test Designer (ATD)
  9. Testuff
  10. SMARTS
  11. QAS.TCS (Test Case Studio)
  12. PractiTest
  13. Test Manager Adaptors
  14. SpiraTest
  15. TestLog
  16. ApTest Manager
  17. DevTest 



2. Types Of Functional Testing Tools



  1. Selenium
  2. Soapui
  3. Watir
  4. HTTP::Recorder
  5. WatiN
  6. Canoo WebTest
  7. Webcorder
  8. Solex
  9. Imprimatur
  10. SAMIE
  11. Swete
  12. ITP
  13. WET
  14. WebInject
  15. QuickTest Pro
  16. Rational Robot
  17. Sahi
  18. SoapTest
  19. Badboy
  20. Test Complete
  21. QA Wizard
  22. Netvantage Functional Tester
  23. PesterCat
  24. AppsWatch
  25. Squish
  26. actiWATE
  27. liSA
  28. vTest
  29. Internet Macros
  30. Ranorex



3. Types Of  Load Testing Tools



  1. J-meter
  2. FunkLoad
  3. HP LoadRunner
  4. LoadStorm
  5. NeoLoad
  6. Loadtracer
  7. WebLOAD Professional
  8. Forecast
  9. ANTS – Advanced .NET Testing System
  10. vPerformer
  11. Webserver Stress Tool
  12. preVue-ASCII
  13. Load Impact

Saturday 21 December 2013

MY WORDS FOR ISSUE TRACKING AND BUG REPORTING TOOLS

Big IT projects needs a bug tracker ( issue tracker, or defect tracker) Tools.


For reporting BUG  we need a bug tracker Tools for a software development and testing projects. But, about a admin team, database team, network analysis team? They all want some help to track their work documents, fixes, and issues of their applications system, database and network. In the Software Development Life Cycle tracking bug is the most important step and without this step software cannot be complete.But choosing a correct bug tracking system which suits your needs is not a simple deal. But here I am trying to make it easy for you, in this article I am presenting a 10 free and open source Bug Tracking Tools with full list features & where to get this bugtracker tool for a better development process. It is a big time-saver to add & manage bugs is in the Bug Tracking system. Few of the bug tracker are not only tracking the bug but also the managing full software based project & can be used for many other tasks.



1. BUGZILLA - BUG TRACKER


Bugzill’s is web-based project management software that is being published as Open source software. Bugzill’s is used to manage software development and help you get a handle on the software development process. Bugzill’s can Successful projects often are the result of successful organization and communication. Bugzill’s is powerful & commanding tool that will allow your team to get organized and communicate effectively. It is allow tracking the bugs & code changes efficiently. This is developed by the Mozilla foundation. This Bug Tracking Tool is used many of top rated organizations like Mozilla, Facebook, NASA, Open Office, RedHat etc. Bugzill’s is written in Perl, and works on various databases including MySQL and Oracle. This is used by various big open source projects to track their bugs. For example, Linux kernel development team, Apache development team, GNOME development team uses Bugzill’s. Red Hat also uses Bugzill’s to track the issues found in Red Hat Distribution system. Benefits of Bugzill’s: Help to increase product quality, get better communication with team members, Using Bugzill’s helps to improve customer satisfaction, Bugzill’s can increase the productivity of software development process. Are you looking for a stable, actively maintained, widely adapted bug tracking system? Look no further. Bugzill’s is for you.


2. MANTIS - BUG TRACKER


Mantis’s issue tracking system is written in PHP, and works on various databases including MySQL, MS SQL, PostgreSQL. Mantis’s’’s Bug Tracker is a open source web-based Bug Tracking System. It is written in PHP and works with multiple databases like MS SQL, MySQL, and PostgreSQL. Mantis’s has multiple items & dived into multi-level hierarchy as follows:
Projects -> Sub Projects -> Categories -> Bugs
Source code integration,Time tracking, Issue relationship graph,Custom fields and workflow ,Anonymous access
Based on user and Client User access & permission rights user can contribute to each item. Mantis’s is powerful tool integrated with few applications like time tracking, chat, wiki, RSS feeds & many more.



3. TRAC - BUG TRACKER


Trac’s is written in Python. Trac’s system is developed by Edgewall Software. It supports multiple platforms like Linux, Unix, Mac OS X, Windows. Apart from issue Trac’sking, it also provides wiki, and integration to subversion. The web interface is very simplistic and easy to use. This also provides project management features including roadmap and milestone Trac’sking. The Trac’s is web based, open source software. Trac’s allows wiki markup as issue descriptions and commit messages, creating links and seamless references between bugs, tasks, changesets, files and wiki pages. Trac’s is the superior version of wiki & use as the issue Trac’sking system for software development projects. A timeline shows all current and past project events in order, making the acquisition of an overview of the project and defect Trac’sking software progress very easy. The roadmap shows the road ahead, listing the upcoming milestones.

4. REDMINE - BUG TRACKER


Redmine’s is written in Ruby on Rails. Redmine’s is a web based most commonly used project management tool. The Redmine’s is written in Ruby on Rails. Apart from tracking issues, it provides a full project management features. It supports multiple platforms with multiple databases. The feature of Gantt charts and calendar helps to supports the illustration of projects and their deadlines. In this issue tracking system you can create Task & subtask which helps to categorize the issues in the project management.Project management including Gantt chart, Project Wiki , Time Tracking, Authentication.







Friday 20 December 2013

MY WORDS FOR DIFFERENCE BETWEEN BLACK, WHITE AND GRAY BOX TESTING

Black Box Testing (MANUAL TESTING)

The Code Access not required. Clearly separates user's perspective from the developer's perspective through visibly defined roles. The technique of testing without having any knowledge of the interior workings of the application is Black Box testing. Large numbers of moderately skilled testers can test the application with no knowledge of implementation, programming language or operating systems.Limited Coverage since only a selected number of test scenarios are actually performed. The tester is oblivious to the system architecture and does not have access to the source code. Blind Coverage, since the tester cannot target specific code segments or error prone areas. Typically, when performing a black box test, a tester will interact with the system's user interface by providing inputs and examining outputs without knowing how and where the inputs are worked upon.Well suited and efficient for large code segments.The test cases are difficult to design. Inefficient testing, due to the fact that the tester only has limited knowledge about an application. 

White Box Testing (AUTOMATION TESTING)

It helps in optimizing the code and database. White box testing  techniques is the detailed investigation of internal logic and structure of the code. White box testing is also called glass testing or open box testing. White Box (or glass box) testing is the process of giving i/p to the system and checking how the system processes i/p to generate o/p. The tester needs to have a look inside the source code and find out which unit/chunk of the code is behaving inappropriately. Extra lines of code can be removed which can bring in hidden defects. Due to the tester's knowledge about the code, maximum coverage is attained during test scenario writing.Sometimes it is impossible to look into every nook and corner to find out hidden errors that may create problems as many paths will go untested. It is difficult to maintain white box testing as the use of specialized tools like code analyzers and debugging tools are required. Due to the fact that a skilled tester is needed to perform white box testing, the costs are increased. In order to perform white box testing on an application, the tester needs to possess knowledge of the internal working of the code.As the tester has knowledge of the source code, it becomes very easy to find out which type of data can help in testing the application effectively. 


Grey Box Testing (COMBINATION)

Grey box testers don't rely on the source code; instead they rely on interface definition and functional specifications. Grey Box testing is a technique to test the application with limited knowledge of the internal workings of an application. In software testing, the term the more you know the better carries a lot of weight when testing an application. Gray Box testing is a combination of White Box and Glass Box Testing. Testing every possible input stream is unrealistic because it would take an unreasonable amount of time; therefore, many program paths will go untested. In this, the tester has little knowledge about the internal working of the s/w; so he tests the o/p as well as process carried out to generate the o/p. There is one more type of testing called gray box testing. In this we look into the “box” being tested just long enough to understand how it has been implemented. Then we close up the box and use our knowledge to choose more effective black box tests. The test is done from the point of view of the user and not the designer.Since the access to source code is not available, the ability to go over the code and test coverage is limited. 

Mastering the domain of a system always gives the tester an edge over someone with limited domain knowledge. Based on the limited information available, a grey box tester can design excellent test scenarios especially around communication protocols and data type handling. Unlike black box testing, where the tester only tests the application's user interface, in grey box testing, the tester has access to design documents and the database. Having this knowledge, the tester is able to better prepare test data and test scenarios when making the test plan.Offers combined benefits of black box and white box testing wherever possible. The tests can be redundant if the software designer has already run a test case.