Professional Documents
Culture Documents
1. A software project test plan is a document that describes the objectives, scope,
approach, and focus of a software testing effort.
2. The completed document will help people outside the test group understand the
'why' and 'how' of product validation.
o Title
o Table of Contents
o Software product overview
o Test organization and personnel/contact-info/responsibilities
o Project risk analysis
o Testing priorities and focus
o Scope and limitations of testing
o Open issues
o Appendix - glossary, acronyms, etc.
Reference:
www.softwareqatest.com/qatfaq2.html#FAQ2_6b
A test case describes an input, action, or event and an expected response, to determine
if a feature of a software application is working correctly. A test case may contain
particulars such as test case identifier, test case name, objective, test conditions/setup,
input data requirements, steps, and expected results.
Note that the process of developing test cases can help find problems in the
requirements or design of an application, since it requires completely thinking
through the operation of the application. For this reason, it's useful to prepare test
cases early in the development cycle if possible.
e.g:
BoundsChecker: Run-time error detection and debugging tool for C++ developers.
Supports C/C++,.net,ASP,ASP.net.
Bullseye Coverage: C/C++ code coverage
CodeWizard: C++ analysis tool
GlowCode: Memory and resource leak detection, code profiler, function call trace,
and report tools for Win32 programs
Insure++: Runtime error detection tool for C and C++
Test Coverage: Family of test coverage tools for a wide variety of languages (C, C++,
C#, COBOL, Java, more...). Very low probe overhed. Independent of compiler.
Useful for application and embedded contexts. Graphical display of coverage over
source code; text and XML summaries.
CSE HTML Validator: HTML, XHTML, CSS, link, spelling, and accessibility
checker available. Windows application
LinkRunner: Dead link detector for Windows
WebQA: Report on over 40 errors including, Search engine optimization, Site
inventory, Web accessibility (now includes Bobby reports, Section 508, W3C's
WCAG), Corporate standards. Can also manage meta data and create automated test
scripts to test site functionality.
Information on TET: The Test Environment Toolkit (nice package, staff helped design it)
Apache Bench - tool provided in the distribution of Apache. It makes it possible to test
the performances of any server by specifying a number of requests to send to the
server with a concurrency level (simultaneity of the requests).
OpenLoad - This is a sourceforge project that aims to provide a tool for load testing web
applications. The goal is a tool that is easy to use and provides near real-time
performance measurements of the application under test which is very usefull
during optimization
NeoLoad - Load Testing Tool for Web Applications provided by Neotys. Simulates
hundreds of users to answer these questions: how many users does my site handle? Will
my site crash under load? What are the response times? Easy to use, no scripting but can
design advanced scenarios.
forecastweb - It tests web servers and web applications ensuring they can adequately
handle expected loads and patterns of use. The vendor is Facilita witch provides load
testing solutions across the enterprise and throughout the development life-cycle.
E-Load - Web load testing solution by Empirix that enables you to easily and accurately
test the scalability and performance of your Web applications. Companies use this
automated software load testing solution to predict how well their Web applications will
handle user load. It can be used during application development and post-deployment to
conduct stress testing
Reference:
www.softwareqatest.com/qatfaq2.html#FAQ2_7
www.aptest.com/resources.html
www.load-testing-tools.com/
Testing strategy:
Exploratory Testing
This is testing that is done manually by a human. This is probably what most people are
used to. It does not use any test script, it is just simply a person using the system and
trying to discover new bugs.
Reference:
geekswithblogs.net/Optikal/archive/2007/02/01/105152.aspx
Test Cases
A test case is a set of conditions or variables under which a tester will determine if a
requirement upon an application is partially or fully satisfied. It may take many test cases
to determine that a requirement is fully satisfied. In order to fully test that all the
requirements of an application are met, there must be at least one test case for each
requirement unless a requirement has sub requirements. In that situation, each sub
requirement must have at least one test case.
A test case is also defined as a sequence of steps to test the correct behavior of a
functionality/feature of an application.
A scenario is a story that describes a hypothetical situation. In testing, you check how the
program copes with this hypothetical situation.
The ideal scenario has five key characteristics: it is (a) a story that is (b) motivating, (c)
credible, (d) complex, and (e) easy to evaluate. These tests are usually different from test
cases in that test cases are single steps whereas scenarios cover a number of steps. Test
suites and scenarios can be used in concert for complete system testing. Scenarios are
usually different from test cases in that test cases are single steps and scenarios cover a
number of steps. Test suites and scenarios can be used in concert for complete system
tests.
Test suite, less commonly known as a validation suite, is a collection of test cases that
are intended to be used to test a software program to show that it has some specified set
of behaviors. Collections of test cases are sometimes incorrectly termed a test plan, a test
script, or even a test scenario.
Reference:
www.softwaretestingclub.com/forum/topics/751045:Topic:1901?page=1&commentId=751045%3AComment
%3A2542&x=1#751045Comment2542
test case:
is e-mail login page is displaying
is the user able to login using his login id and password
is he able to view his inbox
is he able to delete unwanted -mails..etc
Reference:
www.allinterview.com/showanswers/441.html
Life cycle of Bug:
2) Deferred: If the bug is not related to current build or can not be fixed in this release or
bug is not important to fix immediately then the project manager can set the bug status as
deferred.
3) Assigned: ‘Assigned to’ field is set by project lead or manager and assigns bug to
developer.
4) Resolved/Fixed: When developer makes necessary code changes and verifies the
changes then he/she can make bug status as ‘Fixed’ and the bug is passed to testing team.
5) Could not reproduce: If developer is not able to reproduce the bug by the steps given
in bug report by QA then developer can mark the bug as ‘CNR’. QA needs action to
check if bug is reproduced and can assign to developer with detailed reproducing steps.
6) Need more information: If developer is not clear about the bug reproduce steps
provided by QA to reproduce the bug, then he/she can mark it as “Need more
information’. In this case QA needs to add detailed reproducing steps and assign bug
back to dev for fix.
7) Reopen: If QA is not satisfy with the fix and if bug is still reproducible even after fix
then QA can mark it as ‘Reopen’ so that developer can take appropriate action.
8) Closed: If bug is verified by the QA team and if the fix is ok and problem is solved
then QA can mark bug as ‘Closed’.
9) Rejected/Invalid: Some times developer or team lead can mark the bug as Rejected or
invalid if the system is working according to specifications and bug is just due to some
misinterpretation.
Reference:
www.softwaretestinghelp.com/bug-life-cycle/
• Test Planning,
• Test Analysis,
• Test Design,
• Construction and verification,
• Testing Cycles,
• Final Testing and Implementation and
• Post Implementation.
Reference:
www.editorial.co.in/software/software-testing-life-cycle.php
SQA Activities
Promote Software Process Improvement
Reference:
guvi.jhuapl.edu/documents/mspp/software_pdr/software_pdr_2/tsld005.htm
e-commerce - The buying and selling of goods by way of electronic media, such as
telephones, fax machines, computers, and video-teleconferencing equipment.
Reference:
http://www.ifs-de.com/pages/glossary_files/Egloss.htm
http://pvcs.synergex.com/products/pvcs_tracker.aspx
Reference:
http://www.synergex.com/pdf/PVCS_Tracker_RH.pdf
Reference:
http://searchservervirtualization.techtarget.com/sDefinition/0,,sid94_gci213305,00.html
CVV is an anti-fraud security feature to help verify that you are in possession of your
credit card. For Visa/Mastercard, the three-digit CVV number is printed on the
signature panel on the back of the card immediately after the card's account number
For American Express, the four-digit CVV number is printed on the front of the
card above the card account number.
Reference:
https://www.asprs.org/application/cvvnumber.htm
Class Diagram:
Reference:
www.google.com.pk/imgres?imgurl=multimedia.udru.ac.th/homecs3/no-money/%E0%B8%AA
%E0%B8%B2%E0%B8%82%E0%B8%B2%E0%B8%A7%E0%B8%B4%E0%B8%A8%E0%B8%A7%E0%B8
%81%E0%B8%A3%E0%B8%A3%E0%B8%A1%E0%B8%84%E0%B8%AD%E0%B8%A1%E0%B8%9E
%E0%B8%B4%E0%B8%A7%E0%B9%80%E0%B8%95%E0%B8%AD%E0%B8%A3%E0%B9%8C%2520-
%2520Computer%2520Engineering%2520-%2520%E0%B8%9A
%E0%B8%97%E0%B8%84%E0%B8%A7%E0%B8%B2%E0%B8%A1%C2%A0-%C2%A0All%2520article
%C2%A0-%C2%A0%E0%B8%A1%E0%B8%B8%E0%B8%A1%E0%B8%A1%E0%B8%AD
%E0%B8%87%E0%B8%88%E0%B8%B2%E0%B8%81%E0%B9%83%E0%B8%84%E0%B8%A3%E0%B8%
9A
%E0%B8%B2%E0%B8%87%E0%B8%84%E0%B8%99_files/classDiagramInitial.jpg&imgrefurl=multimedia.udr
u.ac.th/homecs3/no-money/technic.php&h=337&w=673&sz=29&tbnid=ld5ixZa_Ht1-
eM:&tbnh=69&tbnw=138&prev=/images%3Fq%3Dclass
%2Bdiagram&hl=en&usg=__VhkIGq1K3FdTy5XwtuQOGGODYho=&ei=YJaFSqO6MpWTkQWG7uycBw&sa=X
&oi=image_result&resnum=1&ct=image
Test automation is the use of software to control the execution of tests, the comparison
of actual outcomes to predicted outcomes, the setting up of test preconditions, and other
test control and test reporting functions. Commonly, test automation involves automating
a manual process already in place that uses a formalized testing process.
It's easy to get caught up in enthusiasm for the 'silver bullet' of test automation, where the
dream is that a single mouse click can initialize thorough unattended testing of an entire
software application, bugs will be automatically reported, and easy-to-understand
summary reports will be waiting in the manager's in-box in the morning.
Although that may in fact be possible in some situations, it is not the way things
generally play out.
In manual testing, the test engineer exercises software functionality to determine if the
software is behaving in an expected way. This means that the tester must be able to judge
what the expected outcome of a test should be, such as expected data outputs, screen
messages, changes in the appearance of a User Interface, XML files, database changes,
etc. In an automated test, the computer does not have human-like 'judgement' capabilities
to determine whether or not a test outcome was correct.
Reference:
www.softwareqatest.com/qat_lfaq1.html#LFAQ1_9
en.wikipedia.org/wiki/Test_automation
Method of testing disaster recovery plans. The simultion tse is similar to a Structured
Walk-Through Test. The disaster recovery team role-play a disaster scenario prepared by
a test moderator. The disaster recovery plan is referred to for information during the test.
The responses of the team may be measured, and some of the response measures
suggested by the team may be put into action.
The scope of a simulation test must be carefully defined to avoid excessive disruption of
normal business activities.
Reference:
www.riskythinking.com/glossary/simulation_test.php
XML
Extensible Markup Language. A computer language to specify data in an almost
human readable way, by using tags with attributes to surround and name data
values in a text document. Defined and maintained by the W3C consortium.
XML Schema
Extensible Markup Language Schema. A document that specifies the data model
and syntax for other XML documents. The specification for how to write and use
XML schemas is defined and maintained by the W3C consortium.
XML Validation
A process to verify that an document conforms to the syntax, data model and
structure specified in an XML schema. Validation does not guarantee that the data
in the XML document makes sense, but it guarantees that the data is well formed
and that the document syntax is correct.
No. In HTML, both the tag semantics and the tag set are fixed. An <h1> is always a first
level heading and the tag <ati.product.code> is meaningless.
XML specifies neither semantics nor a tag set. In fact XML is really a meta-language for
describing markup languages. In other words, XML provides a facility to define tags and
the structural relationships between them. Since there's no predefined tag set, there can't
be any preconceived semantics. All of the semantics of an XML document will either be
defined by the applications that process them or by stylesheets (A document consisting of
markup that describes the layout and presentation to be used when displaying other
documents).
Why XML?
In order to appreciate XML, it is important to understand why it was created. XML was
created so that richly structured documents could be used over the web. The only viable
alternatives, HTML and SGML, are not practical for this purpose.
HTML, as we've already discussed, comes bound with a set of semantics and does not
provide arbitrary structure.
SGML provides arbitrary structure, but is too difficult to implement just for a web
browser. Full SGML systems solve large, complex problems that justify their expense.
Viewing structured documents sent over the web rarely carries such justification.
This is not to say that XML can be expected to completely replace SGML. While XML is
being designed to deliver structured content over the web, some of the very features it
lacks to make this practical, make SGML a more satisfactory solution for the creation and
long-time storage of complex documents. In many organizations, filtering SGML to
XML will be the standard procedure for web delivery.
W3C recommendation
A W3C Recommendation is the final stage of a ratification process of the World Wide
Web Consortium (W3C) working group concerning the standard. This designation
signifies that a document has been subjected to a public and W3C-member organization's
review. It aims to standardize the Web technology. It is the equivalent of a published
standard in many other industries.
Reference:
www.le.ac.uk/webcentre/help/glossary.html
www.w3schools.com/XML/xml_whatis.asp
en.wikipedia.org/wiki/W3C_recommendation
www.ostyn.com/ostynglossary.htm
Temporal Databases
Temporal data stored in a temporal database is different from the data stored in non-
temporal database in that a time period attached to the data expresses when it was
valid or stored in the database. As mentioned above, conventional databases
consider the data stored in it to be valid at time instant now, they do not keep track
of past or future database states. By attaching a time period to the data, it becomes
possible to store different database states.
Assume we would like to store data about our employees with respect to the real world.
Then, the following table could result:
Reference:
www.timeconsult.com/TemporalData/TemporalDB.html
NON-TRIVIAL FUNCTION:
Reference:
en.wikipedia.org/wiki/Nontrivial
en.wikipedia.org/wiki/Database_normalization
Non-prime attribute
A non-prime attribute is an attribute that does not occur in any candidate key.
Employee Address would be a non-prime attribute in the "Employees' Skills"
table.
Reference:
en.wikipedia.org/wiki/Database_normalization
Reference:
en.wikipedia.org/wiki/BCNF
www.blurtit.com/q661275.html
Tuple:
Tuple is a term from set theory which refers to a collection of one or more
attributes.
Reference:
databases.about.com/cs/specificproducts/g/tuple.htm
Database Views
A Database View is a subset of the database sorted and displayed in a particular way. For
example, in an equipment database, perhaps you only wish to display the Weapons stored
in the database. To do that you would create a Weapons view. The equipment database
templates has a view for each equipment type, sorted by the name of the equipment.
For each view, you can control which columns are displayed, what order they are
displayed in, how wide each column is, how the data is sorted, and what types of records
to display.
A view called "All" is always defined and cannot be deleted. While you can change the
sort order of this view, you cannot change which records are displayed. As the name of
the view suggests, All records in the database are always displayed by the All view.
However, feel free to change the column order or column widths as you'd like.
Reference:
www.zuggsoft.com/zmud/help6/Data0170.htm
• Oracle 9i Database supports all known platforms, not only the Windows-based
platforms.
• PL/SQL is more powerful language than T-SQL.
• More fine-tuning to the configuration can be done via start-up parameters.
TPC tests
1. Oracle runs on many platforms, SQL on Windows only 2. Oracle includes IFS
(Internet File System), Java integration; SQL is more of a pure database 3. Oracle
requires client install and setup (Not difficult, but very UNIX-like for Windows users) 4.
SQL is #1 in Cost/Performance and overall Performance, although Oracle will refute that
5. Replication is much easier in SQL (I have been at clients where even the Oracle
consultant couldn't get it working w/oracle) 6. Failover support in SQL is much, much
easier 7. JDBC support is much better in Oracle, although Microsoft is working on it 8.
ODBC support in both 9. SQL is ANSI-SQL '92 compliant; making it easier to convert to
another ANSI compliant database, theoretically anyway (truth is every database has
proprietary extensions). Oracle is generally more proprietary and their main goal is to
keep their customers locked-in. 10. SQL natively supports ODBC, OLEDB, XML, XML
Query, XML updates. Oracle natively supports proprietary connections, JDBC. Not sure
about XML support though. 11. SQL Server is much easier to administrate, with GUI and
command- line tools. Most of Oracle is command-line (Back in SQL 6.5 days I had a
customer who was so proud that after a day's worth of work he had managed to script his
database. I showed him how it was a 3 click operation in SQL ;-) 12. Oracle requires add-
ons for transaction monitors, failover, etc. SQL has COM+, uses NT clustering and
generally has everything built-in 13. SQL Analysis Services is included (A very powerful
OLAP server). For Oracle it is a separate purchase.
Reference:
www.mssqlcity.com/Articles/Compare/sql_server_vs_oracle.htm
Foreign Key
A foreign key is a field (or fields) that points to the primary key of another table. The
purpose of the foreign key is to ensure referential integrity of the data. In other words,
only values that are supposed to appear in the database are permitted.
For example, say we have two tables, a CUSTOMER table that includes all customer
data, and an ORDERS table that includes all customer orders. The constraint here is that
all orders must be associated with a customer that is already in the CUSTOMER table. In
this case, we will place a foreign key on the ORDERS table and have it relate to the
primary key of the CUSTOMER table. This way, we can ensure that all orders in the
ORDERS table are related to a customer in the CUSTOMER table. In other words, the
ORDERS table cannot contain information on a customer that is not in the CUSTOMER
table.
Table CUSTOMER
Table ORDERS
In the above example, the Customer_SID column in the ORDERS table is a foreign key
pointing to the SID column in the CUSTOMER table.
Below we show examples of how to specify the foreign key when creating the ORDERS
table:
MySQL:
CREATE TABLE ORDERS
(Order_ID integer,
Order_Date date,
Customer_SID integer,
Amount double,
Primary Key (Order_ID),
Foreign Key (Customer_SID) references CUSTOMER(SID));
Oracle:
CREATE TABLE ORDERS
(Order_ID integer primary key,
Order_Date date,
Customer_SID integer references CUSTOMER(SID),
Amount double);
SQL Server:
CREATE TABLE ORDERS
(Order_ID integer primary key,
Order_Date datetime,
Customer_SID integer references CUSTOMER(SID),
Amount double);
Below are examples for specifying a foreign key by altering a table. This assumes that the
ORDERS table has been created, and the foreign key has not yet been put in:
MySQL:
ALTER TABLE ORDERS
ADD FOREIGN KEY (customer_sid) REFERENCES CUSTOMER(SID);
Oracle:
ALTER TABLE ORDERS
ADD (CONSTRAINT fk_orders1) FOREIGN KEY (customer_sid) REFERENCES
CUSTOMER(SID);
SQL Server:
ALTER TABLE ORDERS
ADD FOREIGN KEY (customer_sid) REFERENCES CUSTOMER(SID);
Reference:
www.1keydata.com/sql/sql-foreign-key.html
Online transaction processing (OLTP) refers to a class of systems that facilitate and
manage transaction-oriented applications, typically for data entry and retrieval transaction
processing.
OLTP has also been used to refer to processing in which the system responds
immediately to user requests. An automatic teller machine (ATM) for a bank is an
example of a commercial transaction processing application.
Reference:
http://en.wikipedia.org/wiki/OLTP
c-tree:
Reference:
http://en.wikipedia.org/wiki/C-tree
Middleware:
Software that connects two separate applications and passes data between them. For
example, a type of middleware can link a database system to a Web server. This allows
users to request information from the database using forms displayed on a Web browser,
and it enables the server to return dynamic Web pages based on the user's request and
profile.
http://publib.boulder.ibm.com/infocenter/pvcvoice/51x/index.jsp?
topic=/com.ibm.websphere.wvs.doc/wvs/glossary.html
Application program
- An application program (sometimes shortened to application) is any program
designed to perform a specific function directly for the user or, in some cases, for another
application program. Examples of application programs include word processors;
database programs; Web browsers; development tools; drawing, paint, and image editing
programs; and communication programs. Application programs use the services of the
computer's operating system and other supporting programs. The formal requests for
services and means of communicating with other programs that a programmer uses in
writing an application program is called the application program interface (API).
Reference:
http://searchsoftwarequality.techtarget.com/sDefinition/0,,sid92_gci507192,00.html
http://en.wikipedia.org/wiki/Application_program
• Language-independent; that is, written in a way that means it can be called from
several programming languages (typically an assembly or C interface). This is a
desired feature for a service-style API that is not bound to a given process or
system and is available as a remote procedure call.
When used in the context of web development, an API is typically a defined set of
Hypertext Transfer Protocol (HTTP) request messages along with a definition of the
structure of response messages,
Reference:
en.wikipedia.org/wiki/Application_programming_interface
PayPal:
PayPal is an e-commerce business allowing payments and money transfers to be made through
the Internet. PayPal serves as an electronic alternative to traditional paper methods such
as checks and money orders.
A PayPal account can be funded with an electronic debit from a bank account or by a credit card.
The recipient of a PayPal transfer can either request a check from PayPal, establish their own
PayPal deposit account or request a transfer to their bank account. PayPal is an example of a
payment intermediary service that facilitates worldwide e-commerce.
Reference:
http://en.wikipedia.org/wiki/PayPal
By