Feb 03

Performance testing: Process of determining the effectiveness or speed of computer, network, and software program is called Performance Testing. In simple words, Performance testing is testing related to speed, scalability and stability. Quantitative tests such as measuring the response time or the number of MIPS (millions of instructions per second) at which a system functions can be involved in Performance testing. Performance testing is often done in conjunction with stress testing.

Effective Performance Testing can involve following steps:

  • Identify the Test Environment: Physical, production, tools and resources available to the team should be identified first. Physical environment includes hardware, software, and network communications. Thorough understanding of the entire test environment enables you the more efficient test cases and planning helps to identify testing challenges in the early stages of the project. Process must be revisited periodically throughout the project life cycle.
  • Identify Performance Acceptance Criteria: Response time, throughput, and resource utilization goals and constraints should be identified as they are user concern, business concern, and system concern respectively. Additionally, identify project success criteria that may not be captured by those goals and constraints; for example, using performance tests to evaluate what combination of configuration settings will result in the most desirable performance characteristics.
  • Plan and Design Tests cases: Identify key scenarios, define test data, and establish metrics to be collected. Consolidate this information into one or more models of system usage to be implemented, executed, and analyzed.
  • Configure the Test Environment: Prepare the test environment, tools, and resources necessary to execute each strategy as features and components become available for test. Ensure that the test environment is instrumented for resource monitoring as necessary.
  • Execute the Test: Run and monitor your tests. Validate the tests, test data, and results collection. Execute validated tests for analysis while monitoring the test and the test environment.
  • Analyze Results, Report, and Retest: Consolidate and share results data. Cross verify it with other functional teams. Reprioritize the remaining tests and re-execute them as needed.
Feb 03

Incremental integration testing

Incremental integration testing is continuous testing of an application as new functionality is recommended. This may require that various aspects of an application’s functionality are independent enough to work separately, before all parts of the program are completed, or that test drivers are developed as needed. Incremental integration testing may be performed by programmers, software engineers, or test engineers.

Feb 03

Sanity testing

A sanity test is a narrow regression test that focuses on one or a few areas of functionality. Sanity testing is usually narrow and deep. A sanity test is usually unscripted. A Sanity test is used to determine a small section of the application is still working after a minor change. Sanity testing is a cursory testing; it is performed whenever a cursory testing is sufficient to prove the application is functioning according to specifications. This level of testing is a subset of regression testing. Sanity testing is to verify whether requirements are met or not, checking all features breadth-first.

Sanity testing is also similar to Smoke testing, but has some minor differences. Sanity testing is done when the application is deployed into testing for the very first time and in smoke testing only positive scenarios are validated but in sanity testing both the positive and negative scenarios are validated.

Feb 03

Alpha testing

Alpha testing is conducted by real customer i.e. conducted at one or more customer sites by end user of software. Alpha Testing involves few developers, few testers, and some of customer site people; this test is suitable for applications.

Alpha testing is often employed for off-the-shelf software as a form of internal acceptance testing, before the software goes to beta testing.

Feb 03

According to the classic definition of Myers:Software Testing is the process of executing a program or system with the intent of finding errors.”

According to the definition given by Hetzel: ”Software Testing involves any activity aimed at evaluating an attribute or capability of a program or system and determining that it meets its required results”

In simple language, process of finding deviation from the requirements and user expectations is called software testing. Here tester will be the first person to look at the product from the user point of view and will be the last person who can talk about its quality prior to its release.

Regardless of the limitations, testing is an part in software development. It is broadly deployed in every phase in the software development cycle. Typically, more than 50% percent of the development time is spent in testing. Software Testing is usually performed to ensure quality, correctness, and validation & verification.

If we see software testing is just to ensure the above points but it has various methods to perform it. Lets discuss these in details…

Types of Software testing

May 6th, 2009

Before moving to the types of software testing lets give a thought that why we need to categorize software testing into different types?
whats the purpose behind it?
Basic purpose of software tesitng is to identify defects in the software, and defects can vary from requirements to user expectations.

 Defects can be categorize as follows:

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.

So we saw that defects can be of various types so is software testing. Lets go and discuss one by one.

Feb 02

In 2008, Software Certifications selected Prometric, a world leader in assessment testing services, as its partner for the administration of certification examinations. Prometric’s international network of testing centers provides the framework needed to support Software Certifications global needs.

Software Certifications adds Five New Certifications

  • Certified Associate in Software Quality (CASQ)
  • Certified Associate in Software Testing (CAST)
  • Certified Associate Business Analyst (CABA)
  • Certified Software Business Analyst (CSBA)
  • Certified Software Process Engineer (CSPE)
  • Certified Quantitative Software Process Engineer (CQSPE)

QuickPath…

  1. If you are completely new to the Program, start with the Overview.
  2. If you are already familiar with the Program and are interested in learning more about a particular certification, use the appropriate link below for the certification of interest
    • Certified Associate in Software Quality (CASQ)
    • Certified Associate in Software Testing (CAST)
    • Certified Software Quality Analyst (CSQA)
    • Certified Software Tester (CSTE)
    • Certified Manager of Software Quality (CMSQ)
    • Certified Manager of Software Testing (CMST)
    • Certified Software Project Manager (CSPM)
    • Certified Associate Business Analyst (CABA)
    • Certified Software Business Analyst (CSBA)
    • Certified Software Process Engineer (CSPE)
    • Certified Quantitative Software Process Engineer (CQSPE)
Feb 02

Abbot Java GUI Test Framework

Description:

The Abbot framework provides automated event generation and validation of Java GUI components, improving upon the very rudimentary functions provided by the java.awt.Robot class (A Better ‘Bot). The framework may be invoked directly from Java code or accessed without programming through the use of scripts. It is suitable for use both by developers for unit tests and QA for functional testing.

Requirement:

TBC

Download data:

Downloadable files: 81656 total downloads to date

Anteater

Description:

Anteater is a testing framework designed around Ant, from the Apache Jakarta Project. It provides an easy way to write tests for checking the functionality of a Web application or of an XML Web service.

Requirement:

OS Independent

Download data:

Downloadable files: 18356 total downloads to date

Apodora

Description:

Apodora is a framework/tool for automating functional testing of web applications. It provides the user with programmatic control of the web browser allowing them to interact directly with the browser’s user interface. It uses a database backend in order to remember how to find your html elements. This also makes your scripts easier to maintain.

Requirement:

Windows, IE6

Download data:

Downloadable files: 9990 total downloads to date

Arbiter

Description:

Document based acceptance tester. Similar to FIT in goal. Manages requirements documents in Word or RTF format that are created jointly by customer and developer. Requirements are parsed to extract a glossary and test suite.

Requirement:

OS Independent

Download data:

Downloadable files: 2117 total downloads to date

Autonet

Description:

Autonet is a GUI network test platform, internally it’s based on CLI to communicate with devices. It can help you to arrange test cases, setup commands to devices ,run commands to check results and record test results

Requirement:

windows, linux and any other platform which support tcl

Download data:

Downloadable files: 2372 total downloads to date

AutoTestFlash

Description:

AutoTestFlash allows the recording and playback of tests writen in Flash and Flex. The tool website provides a live sample.

Requirement:

Windows / Flash

Download data:

No data feed available

Avignon

Description:

Avignon is an acceptance test system that allows you to write executable tests in a language that you define. It uses XML to define the syntax of the language but, if you choose to extend the language, leaves the semantics of the tests up to you. Avignon includes modules for testing HTML applications (through either IE or FireFox), Swing and .NET WinForm applications.

Requirement:

Java (MS Windows only for .NET testing)

Download data:

Downloadable files: 12301 total downloads to date

Blerby Test Runner

Description:

Ajax test runner for php. Currently supports simpletest and phpunit 3.x. Allows developers to refactor code while being able to receive instant feedback on their changes. Tracks test dependencies and automatically re-runs appropriate tests upon source changes.

Requirement:

Windows, *nix, apache

Download data:

No data feed available

Canoo WebTest

Description:

Used for functional testing of web pages, WebTest is an open source testing framework built on top of HttpUnit. It allows tests to be defined in XML as Ant targets.

Requirement:

JDK 1.2 and ANT v1.3

Download data:

No data feed available

Concordion

Description:

Concordion is an open source framework for Java that lets you turn a plain English description of a requirement into an automated test. Concordion specifications are active. Behind the scenes, they are linked to the system under test and therefore do not go out-of-date. If a change is made to the system’s behaviour then the tests associated with the relevant specification will fail and let you know.

Requirement:

Java 1.5 or above

Download data:

No data feed available

Crosscheck

Description:

Crosscheck is an open source testing framework for verifying your in-browser javascript. It helps you ensure that your code will run in many different browsers such as Internet Explorer and Firefox, but without needing installations of those browsers. The only thing you need is a Java Virtual Machine.

Requirement:

Java Virtual Machine

Download data:

Downloadable files: 8468 total downloads to date

csvdiff

Description:

csvdiff is a perl script for comparing two files of comma-separated values with each other. In contrast to standard diff, it will show the number of the record where the difference occurs, the column number, and (if provided) the fieldname which is different. The separator can be set to any value you want, not just a comma. It also provides support for multiple column keys, the ability to ignore case and trim leading/tailing spaces, and the ability to ignore selected columns such as timestamps.

Requirement:

Everywhere you can install perl

Download data:

Downloadable files: 8381 total downloads to date

CubicTest

Description:

CubicTest is a graphical Eclipse plug-in for writing Selenium and Watir tests. It makes web tests faster and easier to write, and provides abstractions to make tests more robust and reusable. CubicTest’s test editor is centered around pages/states and transitions between these pages/states. The model is intuitive for both Ajax and traditional web applications and supports most user interaction types. CubicTest features an innovative test recorder and test runner based on Selenium RC which are fully integrated with the graphical test editor. Tests can also run standalone from Maven 2.

Requirement:

Eclipse plug-in

Download data:

No data feed available

Cucumber

Description:

Cucumber is a tool that runs functional tests written in plain text. It supports over 20 spoken languages. Programmers then write small chunks of ruby or java code to wire the plain text tests to the system under test. Cucumber is designed for Behaviour Driven Development.

Requirement:

Ruby, JRuby, Java or any web platform

Download data:

No data feed available

DBFeeder

Description:

With DBFeeder you can automatically generate testdata for Oracle Databases which fits primary and foreign keys of tables. A file-based configuration system allows in-depth customization of the generated data.

Requirement:

independent

Download data:

Downloadable files: 659 total downloads to date

DbFit

Description:

Extension to FIT/FitNesse for test-driven database development. Enables developers to manipulate database objects in a relational/ tabular form, making database testing and management much easier then with xUnit-style tools.

Requirement:

Java/.NET

Download data:

Downloadable files: 11837 total downloads to date

DejaGnu

Description:

DejaGnu is a framework for testing applications such as Tcl, C, C++, Java and network applications and cross testing of embedded systems. Its purpose is to provide a single front end for all tests. Think of it as a custom library of Tcl procedures crafted to support writing a test harness.

Requirement:

MacOS, Windows, POSIX

Download data:

No data feed available

Feb 02
Software Testing Life Cycle
Phase Activities Outcome
Planning Create high level test plan Test plan, Refined Specification
Analysis Create detailed test plan, Functional Validation Matrix, test cases Revised Test Plan, Functional validation matrix, test cases
Design test cases are revised; select which test cases to automate revised test cases, test data sets, sets, risk assessment sheet
Construction scripting of test cases to automate, test procedures/Scripts, Drivers, test results, Bugreports.
Testing cycles complete testing cycles Test results, Bug Reports
Final testing execute remaining stress and performance tests, complete documentation Test results and different metrics on test efforts
Post implementation Evaluate testing processes Plan for improvement of testing process
Feb 02

Testing New Functionality

When developer added a new functionality in the application why do tester needs to make sure that added new functionality does not break the other part of the application?

Butterfly Model of Test Development

How the 2 wings and body of the Butterfly Model of Test Development is Represented?

Fixing of Bugs

In which phase of SDLC, the fixing of bugs is least expensive?In which phase of SDLC, the fixing of bugs is most expensive?

What are you going to do if there is no Functional Spec or any documents related to the system and developer who wrote the code does not work in the company anymore, but you have system and need to test?

Feb 02

In recent days this is the most asked question to me by readers. How to get software testing job? How to come in software testing field? or Can I get job in testing?

In recent days this is the most asked question to me by readers. How to get software testing job? How to come in software testing field? or Can I get job in testing?

All these questions are similar and I want to give also similar answer for this. I have written post on choosing software testing as your career where you can analyze your abilities and know which are the most important skills required for software testing.

I will continue mentioning that “know your interest before going into any career field”. Just going to software testing career or any other hot career is wrong and which may result into loss of your job interest as well as your job.

Now you know your abilities, skills, interests right? and you have made decision to go for software testing career as it is your favorite career and you suit most in this career. So here is a guideline for how to get a good job in software testing field.

If you are a fresher and just passed out from your college or passing out in coming months then you need to prepare well for some software testing methodologies. Prepare all the manual testing concepts. If possible have some hands-on on some automation and bug tracking tools like winrunner and test director. It is always a good idea to join any software testing institute or class which will provide you a good start and direction of preparation. You can join any 4 months duration software testing course or can do diploma in software testing which is typically of 6 months to 1 year. Keep the preparation going on in your course duration. This will help you to start giving interviews right after getting over your course.

If you have some sort of previous IT experience and want to switch to software testing then it’s somewhat simple for you. Show your previous IT experience in your resume while applying for software testing jobs. If possible do some crash course to get idea of software testing concepts like I mentioned for freshers above. Keep in mind that you have some kind of IT experience so be prepared for some tough interview questions here.

As companies always prefer some kind of relevant experience for any software job, its better if you have relevant experience in software testing and QA. It may be any kind of software testing tools hands-on or some testing course from reputed institutes.

Please always keep in mind- Do not add fake experience of any kind. This can ruin your career forever. Wait and try for some more days to get the job by your abilities instead of getting into trap of fake experience.

Last important words, Software testing is not ‘anyone can do career!’ Remove this attitude from your mind if someone has told such kind of foolish thing to you. Testing requires in depth knowledge of SDLF, out of box thinking, analytical skill and some programming language skill apart from software testing basics.

So best luck and start preparation for your rocking career! I will continue writing this career series and what you actually need to prepare for software testing interview.