Best Practices for developing Quality Software in Efficient Ways

Personally I had worked in various software development projects ranging from small projects to big projects.

For any kind of project, the ultimate purpose will be delivering Quality Product on Time within Budget. It is applicable for any kind of project. Each project will be unique and therefore each project will require different approaches to achieve these things.

But, certain things will be common for any kind of project to deliver Quality Product. I am listing those common best practices in this video.

The quality of this video may not be good, as I am not having enough time to spend for creating Quality Video. But the things that I had mentioned in this video will be really useful as I came up with this list purely based on my many years of experience with various projects.

Feel free to suggest any other useful best practice thro’ the comments.

QTP Questions and Answers

Find the answers at the end of the questions.

1) Quick Test Professional (QTP) is used as,
a) Functional Testing tool b) Performance Testing tool c) Usability Testing tool d) Bug tracking tool

2) The below vbscript code is used for,

Set qtApp = CreateObject(“QuickTest.Application”)
qtApp.Visible = True

a) For launching Function Generator b) For opening QTP using Automation Object Model c) For creating Object Repository from Coding d) For making ActiveScreen visible

3) Extension of vbscript  function library file is,
a) .vbs b) .mtr c) .lib d) .qtp

4) Which one of the below is External add-in in QTP?

a) ActiveX add-in b) Visual Basic add-in c) Java add-in d) Web add-in

5) Which is used to add report statements in QTP report file?
a) showreport b) reporter.writeline c) reporter.reportEvent d) printReport

6) In QTP, properties of Test Objects are stored in
a) ObjectSpy b) Active Screen c) Object Repository d) Library

7) Which is used for storing Data used by Test Iterations in QTP?
a) Local sheet b) Global Sheet c) Action Sheet d) Object Repository

8) Which view will allow us to edit the vbscript code in QTP?
a) Keyword view b) Expert View c) code view d) view source

9) The Test Management Tool which can be easily integrated with QTP is,
a) Test Track b) Bugzilla c) Object Repository d) Quality Center

10) Which is used for storing Data used by Action Iteration in QTP?
a) Local sheet b) Global Sheet c) Object Repository d) External Action

11) Outcome of the below QTP code (vbscript) is,

Set obj = CreateObject("WScript.Shell")

sCmnd = "%windir%\SYSTEM32\rundll32.exe user32.dll,LockWorkStation"
obj.Run sCmnd, 0, False

a) Runtime error b) Computer will be locked automatically. c) Computer will be unlocked d) will throw syntax error

12) Which is used for verifying whether the Actual result matches with expected result in QTP?
a) ObjectSpy b) Object respository c) Checkpoints d) Expert view

13) Which is built-in add-in QTP?
a) TE add-in b) java add-in c) web add-in d) .net add-in

14) Setting in one instance of QTP IDE can be transferred to another machine using,
a) Data driver b) Function Generator c) Step Generator d) Automation Object Model


(1) a  (2) b  (3) a  (4) c  (5) c  (6) c  (7) b  (8) b  (9) d  (10) a  (11) b  (12) c  (13) c  (14) d

Basics of Quality Assurance (QA) in Software Development

I believe the previous chapter explained the importance or need for the Software testing. In this chapter we can see some basics of Software Testing or Quality Assurance.

Quality Assurance is the most important factor in any business or industry.
Same thing is applicable for Software development also.
Spending some additional money for getting high quality product will definitely give more profit.

But anyway, it is not true that expensive products are high-quality products. Even an inexpensive or cheap product can be high-quality product if it meets Customer’s needs/expectation.

The quality assurance cycle consists of four steps: Plan, Do, Check, and Act. These steps are commonly abbreviated as PDCA.

The four quality assurance steps within the PDCA model are


  • Plan: Establish objectives and processes required to deliver the desired results.
  • Do: Implement the process developed.
  • Check: Monitor and evaluate the implemented process by testing the results against the predetermined objectives
  • Act: Apply actions necessary for improvement if the results require changes.

For getting appropriate quality output in software development we need to follow SQA (Software Quality Assurance) process in each phase (Planning, Requirement Analysis, Design, Development, Integration & Test, Implementation and Maintenance) of the software development lifecycle.

We should follow below solutions to avoid many software development problems.

  • Solid requirements – Clear, complete, attainable, detailed and testable requirements that are agreed by all players (Customer, developers and Testers).
  • Realistic schedules – Allocate enough time for planning, design, testing, bug fixing, re-testing and documentation.
  • Adequate testing – Start testing early, re-test after fixes/changes.
  • Avoid unnecessary changes in initial requirements once after starting the coding.
  • Require walk-through and inspections.

Importance of Software Testing

It will be good to know the reasons for learning software testing before start learning it.

In Internet, We can see lot of articles explaining/listing loss made by poor low-quality software products.

How will you feel if a bug in bank software shows your bank balance as ‘0’(zero) instead of some thousands?
And if you are a student, what will be your state if your mark-sheet shows your score as ‘0’(zero) instead of some good score?

Here, we will be feeling good if we see some notification or message instead of seeing wrong data.

For example, a message such as “Not able to show your balance due to some unexpected error “ will do more goodness than showing balance as 0 in our first example.

Similarly, a message such as “Couldn’t print your mark-sheet because of unexpected issue” will be useful than showing score as 0 in our second example.

Testing plays an important role to avoid these situations.
So, we can say that testing is necessary or important even when it couldn’t guarantee 100% error free software application.

i-e Testing may not fix the issues, but definitely will help to provide improved user-friendliness.


– Cost of fixing the bug will be more if it is found in later stage than it is found earlier.

– Quality can be ensured by testing only. In the competitive market, only Quality product can exist for long time.

Testing will be necessary even if it is not possible to do 100% testing for an application.

One more important reason for doing testing is user/production environment will be completely different from development environment.

For example, a webpage developer may be using FireFox as browser for doing his webpage development. But the user may be using different browser such as Internet Explorer, Safari, Chrome and Opera.

The web page which is appearing good in FireFox may not appear good in other browsers (particularly IE). So ultimately, user will not be happy even if the developer puts more efforts to develop the webpage. User’s satisfaction is more important for growth of any business, so testing becomes more important.

And, we can assume/treat the Testers as the representatives of the Users.