Software Testing

Hello, I am starting this blog to share my experience as a software tester. I wish to share the real time challenges in my job and current news about software testing. Thanks!!

Your Ad Here

Tuesday, May 12, 2009

Automatic backup of TestLink MySQL DB

I was given a task of exploring OpenSource Software testing tools. I
was supposed to find Open Source tools in following category:
1. Bug Tracking Tool
2. Test Management Tool
3. Test Automation Tool
1. Bug Tracking Tool: After exploring lot of opensource tools I
decided to go with BugZilla. I successfully installed and started
using BugZilla in our Organization. Before BugZilla our test team use
send bugs through XL sheets.
2. Test Management Tool: We were writing test cases in XL and it was
taking lot of time in formatting and manintaining a central
repository. My aim was to find a tool to replace this. I explored few
tools and finally I found TestLink as a great tool for test
management. For a test lead this tool is really a great help. I
successfully deployed and configured TestLInk.
I installed XAMPP on Windows XP server then deployed TestLink. Also, I
integrated TestLink with our BugZilla DB.
My next task was to make sure that MySQL database backup is taken care
automatically. I found php sripts to take My SQL DB Backup
automatically at http://www.dagondesign.com/articles/automatic-mysql-backup-script/
I deployed these two files(backup_dbs.php and backup_dbs_config.php)
at htdocs/BackUp
Whever I run this script through the Browser it use to take entire
MySQL DB backup and put it into BackUp directory I specified in
Configuration file(backup_dbs_config.php). There is little
configuration needed which is very easy.
My next worry was to automate this process. I was knowing that on
LINUX we can use CRON for schedule the tasks similarly we can use Task
Scheduler on Windows.
I set the PHP path through(Right Click My Computer>Properties>Advanced
Tab>Environment Variables>Under System Variables select PATH and edit
and add the path of your PHP installation).
Now I created a .bat file to run the backup_dbs.php. This .bat file
had following one line code
php
Now I went to Control Panel and scheduled a task to run this .bat file
every day at 5.30PM.
Now my TestLink database Backup is automatically taken and kept in a
separate directory. Now I am ready to give presentation of this tool
(TestLink) to my Manager for approvel.

Thanks and Regards,
Maleekjan.

Tuesday, September 9, 2008

Reverse Engineering!

Yesterday we started doing a process called "Reverse Engineering. I was totally unaware about this process, so googled and found lot of information about it.
Reverse engineering is the process of analyzing a subject system to create representations of the system at a higher level of abstraction. It can also be seen as "going backwards through the development cycle".In this model, the output of the implementation phase (in source code form) is reverse engineered back to the analysis phase, in an inversion of the traditional waterfall model. Reverse engineering is a process of examination only: the software system under consideration is not modified (which would make it reengineering). Software anti-tamper technology is used to deter both reverse engineering and reengineering of proprietary software and software-powered systems. In practice, two main types of reverse engineering emerge. In the first case, source code is already available for the software, but higher level aspects of the program, perhaps poorly documented or documented but no longer valid, are discovered. In the second case, there is no source code available for the software, and any efforts towards discovering one possible source code for the software are regarded as reverse engineering. This second usage of the term is the one most people are familiar with. Reverse engineering of software can make use of the clean room design technique to avoid infringing copyrights.

Reasons for reverse-engineering:


Interoperability.

Lost documentation: Reverse engineering often is done because the documentation of a particular device has been lost (or was never written), and the person who built it is no longer available. Integrated circuits often seem to have been designed on obsolete, proprietary systems, which means that the only way to incorporate the functionality into new technology is to reverse-engineer the existing chip and then re-design it.

Product analysis. To examine how a product works, what components it consists of, estimate costs, identify potential patent infringement.

Security auditing.

Removal of copy protection, circumvention of access restrictions.


Creation of unlicensed/unapproved duplicates.


Academic/learning purposes.

Wednesday, September 3, 2008

Offer!

We are pleased to offer you this exciting, new, and entirely free professional resource. Visit our Free Industry resource center today to browse our selection of 600+ complimentary Industry magazine subscriptions. Get popular titles including:

Digital Graphics
Digital Signage Today News Alert
Online Fraud Report – 2008 Edition Today

No credit cards, coupons, or promo codes required. Try it today!

Wednesday, August 27, 2008

Sanity (Qualification) Testing

Overview
Qualification (Sanity) testing is conducted to ensure that the build / code handed over to QA team is qualified to perform further Functional/Integration testing. In order to perform functional testing on the build / code; all the major functionality must be accessible and there are no obvious errors on main pages. Objective of sanity testing is to validate the testability of the system under consideration to check all the major functionality is accessible and there are no obvious errors. Testing will be performed based on the approved sanity test scripts. A round of qualification test shall be performed after a build is completed and QA is notified.

Entry Criteria

Successful completion of unit testing of all the application modules involved with minimal or no errors. Unit testing log or Unit testing status report from the dev team should be received prior start of the sanity test.


Success Criteria

Successful completion of the tests without any failures and within acceptable time allocation. If any of the modules and/or major dependent functionalities fails during the qualification testing, QA will determine the testability of the system. QA lead will perform discussion on the same with Project Manager and Dev lead. In agreement with PM and Dev Lead, QA lead can partially accept the QA build or reject the build.

Friday, August 8, 2008

Software Testing Tools

In this post I am going to explain the different types of Software Testing Tools(Automation) with feature.

1. Funtionality Testing Tools(Capture/playback tools)


a) Capture user operations including keystrokes, mouse activity, and display output.

b) These captured tests form a baseline for future testing of product changes.

c) The tool can automatically play back previously captured tests whenever needed and validate the results by comparing them to the previously saved baseline.

Example: WinRunner, QTP, SilkTest, etc

d) This makes regression testing easier.

2. Memory testing (bounds-checkers):

Memory testing tools are software programs that perform detailed tests of your computer's memory system. Detect memory problems, exceeding array bounds, memory allocated but not freed, reading and using uninitialized memory.

The memory installed in your computer is very sensitive. It's always a good idea to test newly purchased memory for errors and a memory test is always in order if you suspect that you may have a hardware problem.

Example: Memtest86, Memtest86+, Windows Memory Diagnostic, M2K MemScope etc

3. Tools for performance testing of client/server applications:

System performance is generally assessed in terms of response time and throughput rates under differing processing and configuration conditions. Performance testing can serve different purposes. It can demonstrate that the system meets performance criteria. It can compare two systems to find which performs better. Or it can measure what parts of the system or workload cause the system to perform badly. In the diagnostic case, software engineers use tools such as profilers to measure what parts of a device or software contribute most to the poor performance or to establish throughput levels (and thresholds) for maintained acceptable response time. It is critical to the cost performance of a new system, that performance test efforts begin at the inception of the development project and extend through to deployment. The later a performance defect is detected, the higher the cost of remediation. This is true in the case of functional testing, but even more so with performance testing, due to the end-to-end nature of its scope.

Example: Load Runner, Jmeter etc

4. Test case management Tools

1. Provide a user interface for managing tests.
2. Organize tests for ease of use and maintenance
3. Start and manage test execution sessions that run user-selected tests
4. Provide seamless integration with capture/palyback and coverage analysis tools
5. Provide automated test reporting and documentation.

Example: Test Director, Quality Center etc.

5. Defect tracking tools:


1. Used to record, track, and generally assist with the management of defects
2. Submit and update defect reports
3. Generate pre-defined or user-defined management reports
4. Selectively notify users automatically of changes in defect status
5. Provide secured access to all data via user-defined queries.

Example: Bugzilla, Remedy, Bug Tracker, Request Tracker etc

6. Coverage analyzers:

1. Tell us which parts of the product under test have been executed (covered) by the current tests
2. Identifies parts not covered varieties of coverage - statement, decision, … etc.
Your Ad Here