Search This Blog

Tuesday, 31 May 2016

Top-Down Integration Testing

Top-Down Integration Testing is an important type of Integration Testing. It comes into the picture when Top level components are built first in the software or those who call other components. Tester will evaluate component interfaces starting with the top level component. To represent it diagrammatically,

Integration Top-Down Testing
Top-Down Testing

Component ‘A’ is the top most component and can call other components ‘B’, ‘C’ and ‘D’. It’s components will be tested first before testing the low-level components. Similarly, ‘D’ can call ‘G’ and ‘H’ components; ‘B’ can call ‘E’ and ‘C’ can call ‘F’.

The interactions of all the components must be tested and there may be a situation where the low-level components have not been created. In that case, a skeletal implementation of the lower component is created, called a stub. A stub is nothing but a dummy created to receive input and giving an output based on the input without performing any operation. It’s very important in the Top-Down Integration testing as all the components are not ready at once.

Follow and Like us:

Top-Down Integration Testing

Software Debugging and Testing

Software Debugging and Testing goes hand-in-hand. Both are required to validate the software quality of the system. Debugging process is the responsibility of the Developers and they debug their code to check for the errors and then fix them. They may not be bothered about the other impacted areas. On the other hand, Testing is the process to check the software for errors or Requirements gaps and then logging the defects for the developers to fix. Testing is the responsibility of the tester and it does involve validating the other impacted areas of the software because of the defect.

Debugging is an important activity to understand the quality level of the software components before beginning with the testing. Testing gives a confidence at the entire software level before releasing it to the Production environment. So both play their role at different levels and are important part of the software development life cycle.

Follow and Like us:

Software Debugging and Testing

Software Test Estimation

What is Software Test Estimation?

Before understanding the definition of Test Estimation, let’s understand Estimation and how familiar you are with it. Everyone does estimations in his/her real life e.g. You will try to figure out – At what time you need to wake up in the morning so that you can reach office at 7 am or 8 am or 9 am OR to attend an early morning meeting. Other example can be…How long will it take you to reach someone’s house? What should be your monthly expenses, what should be the weekly or monthly loan repayment amount without putting undue pressure on your life style?

So there are various instances where you are always trying to figure out the estimation factor in different terms.

Let’s go to the Test Estimation. As discussed in the examples…In a layman’s term – “How long will it take”. Moving on to the formal definition – It is the process of finding an approximate value in Hrs or Days or sometimes in months to complete the testing activities in a software development life cycle. It could be a high level or detailed, which we are going to discuss later in the course.

It is required to communicate the testing effort (Time or Cost) to the Project stakeholders. Therefore, before commencing testing activities, it is critical to have testing estimates to formulate a testing plan and further communication to the Project Manager to fit into the overall Project Plan.

Several industry studies have reported that fewer than half of software projects finish within their allotted schedules and budgets. It tells us that mostly people struggle with the Estimations and it’s an important area to address. Let’s discuss the various benefits of doing Test Estimations.

Benefits of Test Estimation:

  • Identifying the number of resources required to meet the project timelines: It’s always a critical area to identify the number of testing resources to be allocated to the project. This would help in further identification of shortfall in the resources availability, in case there are not too many resources available.

  • Helps in identifying/executing the Testing priorities, in case project has shorter time frames: This is relevant to the Risk based technique, which we are going to discuss later in detail. Let’s assume that your project has less time to market and you cannot complete your testing within the project timelines. So, you can target to complete the prioritised testing areas to meet the timelines and justifying the testing effort. I’ve observed this scenario in number of projects, as senior management board or Project stakeholders are always in a hurry to get the Project to market.

  • More accurate scheduling: You can plan your testing schedule in a better accurate way if you know your timelines, work effort and expected start and end dates.

  • Better planning, execution and monitoring of tasks: Once you have Testing estimates, you can monitor the overall tasks (like Test Preparation, Test Execution) and can track their progress. Moreover, you can take the corrective action in vase there are any deviations.

  • Realising results more confidently: It’s like seeing into the future and making sure to meet those timelines. Meeting the planned estimates will give you a more confidence. The more you do, more you learn and will become more confident in producing the Test estimates and achieving the related test targets.

  • Forming the foundation of good management credibility: Once you start producing and meeting your timelines with less variance, you will start showing your expertise in this process and will earn the confidence of your senior management.
For more understanding, enroll to our most valued Test Estimation Course. More than 100 students have already enrolled and benefited from the course.

http://veansys.com/testing-training/#Test Estimation

Follow and Like us:

Software Test Estimation

Software Testing Life Cycle

The video explains the complete Software Testing Life Cycle and various test documents required in each phase.  


Software Testing is a process rather than a single activity. The fundamental Testing life cycle consists of the following 5 steps:

  • Test Planning and Control

  • Analysis and Design

  • Implementation and Execution

  • Evaluating Exit criteria and Reporting

  • Test Closure activities
The Test team produces the Test Deliverables in accordance with the corresponding software testing life cycle stage/step.

Test Planning and Control


Test Planning determines the scope, objectives of testing and test approach. The availability of requirements is crucial at this stage.

Test Control is an ongoing activity of comparing actual progress against the plan and reporting the status (including deviations from the plan). It involves taking actions necessary to meet the mission and objectives of the project.

Test Plan & Test Estimates are the two important test documents produced in this phase.

Analysis and Design


In this phase, the software requirements are analysed to identify their testability and the expected behaviour of different features/functionalities of the software.

In addition to the above activities, test environment infrastructure and the support required to perform the testing are also identified.  

Test Scenarios / Cases and Traceability Matrix are the required documents. The Traceability Matrix maps the test cases with the corresponding requirements IDs. It helps in identifying the potential test cases to be updated, in case requirements changes. The matrix can also be used to find whether 100% requirements coverage is achieved.

Implementation and Execution


During Test Implementation,

  • Test cases are further refined,

  • Test data is created,

  • Test suites are created for efficient test execution and

  • Test environment is implemented and verified.
Test execution has the following major tasks,

  • Evaluating the entry criteria,

  • Executing the test cases,

  • Logging defects for the discrepancies/failed test cases and

  • Preparing Test Execution results.
Test Case Pass/Fail Criteria

The Test cases are executed and the status is documented against the expected result. The following results are applicable:

  • Passed

  • Failed

  • Blocked

  • Not Completed

  • Not Applicable (NA)
Status Reports are shared regularly with the stakeholders.

Evaluating Exit Criteria and Reporting


Evaluating Exit Criteria and Reporting is an activity during which test execution is assessed against the defined objectives. This should be performed at each test level.

Test Entry and Exit Criteria

The Entry criteria are required for the commencement of the next phase of testing in the testing life cycle. Similarly, the Exit criteria are required to exit the testing phase. 

The test results are checked against the exit criteria specified in the Test Plan document. Based on the assessment, a decision is to be made, whether to stop the testing or if more tests are to be executed. 

Test Summary Report

The Test Summary Report is to be produced, at the end of the testing phase. It specifies the overall test status about how the testing was done, test execution, defects status, confidence level of the Test Analyst and variances from the Test Plan.

Test Closure activities


The Post testing activities are meant to consolidate experience, test ware, facts and numbers.



Follow and Like us:

Software Testing Life Cycle

Selenium IDE User Interface, Features

Selenium IDE (Integrated Development Environment) is a web based Plugin tool that can be used to automate your test scripts for web testing. It is installed through the Firefox browser and once installed, it can be opened from the Tools menu (Tools -> Selenium IDE) or use shortcut ‘Ctrl+Alt+S’.

The below Selenium IDE UI screen is used to record or write testing steps.

Selenium IDE User Interface
Selenium IDE User Interface































I would say it’s a very powerful tool to quickly showcase the automation value additions in your company.  Selenium Automation is perfect for the beginners who want to get into the Automation and then gradually developing their skills with other full-fledged tools like Selenium WebDriver, HP QTP, Selenium Test Complete. Initially, It was designed for the Firefox browser only but now its test scripts can be executed in other browsers also which is a very important addition to this tool. 

Let’s go through the different components and their functionality. 

Base URL: It tells you about the website or web page you are going to test. It can be set to an absolute path and then add relative paths in your test scripts.

Toolbar gives various options to run test scripts. The Execution speed, Running entire test suite, Running current test case, Pause/Resume the execution, Step through a test case (one command at a time) for debugging, Rollup to group multiple repetitive test steps into one step.

Test Case Pane is used to view the test steps in the test script. Whether you are recording or writing your test steps in the ‘Command’, ‘Target’, or ‘Value’ fields, they will be displayed here in a sequential order.

Log presents the execution log along with the reasons for the failure of a test case.

Reference explains the different commands and their usage.

Runs and Failures give the count of successful and failed test scripts.

For more details, please enrol to our Selenium IDE course (online available), to understand the tool with a Project example along with smart Tips & Tricks.



Follow and Like us:

Selenium IDE User Interface, Features

Regression Testing, Importance and Scope Identification

People often talk about the Regression Testing and its importance. Even then I’ve seen testers, especially beginners unable to identify the scope of Regression testing. The primary focus is to make sure the existing unchanged features of the software are working after adding/changing one or multiple features. The most important thing is to identify the scope. As Functional/System testing will take care of the changed functionality but how to identify the regression scope?

Most of the companies execute the available Regression Test Suite after the functional testing but it doesn’t always solve the purpose considering time and effort required.

To target the specific areas, one needs to understand the software, requirements and can talk to the Business Analyst, Developer and other project team members. This helps to understand the areas which might get impacted by the change. Those are the primary focus areas for the Regression testing. Based on the time availability and complexity of the change, try to identify other non-related areas also based on your conversations, software knowledge and gut feeling. This exercise would give you enough scope to work on your Regression Testing planning.

Follow and Like us:

Regression Testing, Importance and Scope Identification

Thursday, 12 May 2016

Independence Level in Software Testing

Software Testing is most effective when it’s done at the highest level of independence. There are 4 levels to achieve Test Independence.

  • Testing done by the person (Development team) who has written the code.

  • Testing done by another development team member.

  • Tests designed by the Test Analyst or Test Specialist in the Testing team within the same company.

  • The highest level of independence is achieved when Testing is carried out by the Testing team from different company.
There are various benefits associated with the levels of independence as an independent tester can found more defects and can think out of the box to create more test cases. The tester would not hesitate to communicate the bugs in the software, without any bias.

Software Testing Types

The video explains the different software testing types being widely used in the software industry.



There are various types of testing being done under various Test Levels. Let’s go through them one by one.

Static Reviews: A Testing type where the test documents are manually reviewed to checked the sanity of the document, to make sure templates and testing processes are being followed correctly. The actual software is not tested in this phase.  This type of review also involves reviewing software requirements for their testability and making sure they are unambiguous.

Smoke testing: It performs a broad and shallow validation of the software. Say, you are getting a new build from the Development team and want to make sure that the features are working fine to the acceptable level to carry out further testing.

Functional Testing is required to test the features of the software. The majority of the testing effort falls under it. It’s a black box type and based on the functional specifications of the software. The application is tested by providing input and then the results are examined that need to conform to the functionality it was intended for. Functional testing of software is conducted on a complete, integrated system to evaluate the system’s compliance with its specified requirements. There are five steps that are involved while testing an application for functionality.

Integration Testing: In Integration testing, the interaction between the software components/modules is tested. Integration testing makes sure that interfaces between the components and the integration of those components are working as per the software specifications.

Regression testing: The purpose of Regression testing is to verify the unintended side effects that may have been introduced into the system, as a result of the defect fixes, new or changed functionality, environment or hardware change.

Whenever a change in a software application is made, it is quite possible that other areas within the application have been affected by this change. Regression testing is performed to verify that a fixed bug hasn’t resulted in another functionality or business rule violation. The intent of regression testing is to ensure that a change, such as a bug fix should not result in another fault being uncovered in the application.

Regression testing is important because of the following reasons:

  • Minimize the gaps in testing when an application with changes made has to be tested.

  • Testing the new changes to verify that the changes made did not affect any other area of the application.

  • Mitigates risks when regression testing is performed on the application.

  • Test coverage is increased without compromising timelines.

  • Increase speed to market the product.
Automation Testing: It automates the manual testing steps to control the execution of tests and the comparison of actual & expected results, by using specialised software Automation executes pre-scripted tests developed in a coding language (e.g. Java, VB, C#) on a software application. Smoke testing, Regression testing are the best candidates for Automation or wherever repetitive effort is required.

UAT Testing: The final testing level is conducted to determine if the software is ready for release. The actual Users test the software to find if it meets their business needs. Test Analysts provide support in co-ordination for Acceptance testing, if required. 

Non Functional: In Non-functional testing, the quality attributes of software are tested. Non-functional testing includes – Security, Usability and Performance.

Security Testing: It is a non-functional testing type and intends to identify the flaws in the security mechanisms of the software. Software security vulnerabilities are big business for potential attackers.  Identifying them early and knowing what common pitfalls to avoid can make a big difference to the resilience of the applications.

Penetration Testing: A penetration test is a proactive and authorized attempt to evaluate the security of an IT infrastructure by safely attempting to exploit system vulnerabilities, including OS, service and application flaws, improper configurations, and even risky end-user behaviour. Such assessments are also useful in validating the efficacy of defensive mechanisms, as well as end-users’ adherence to security policies. 

Testing in Production: It is carried out in the Production environment after the go-live phase. This helps in quickly verifying that application is working as expected and there are no surprises. It can be done by the Test Analyst, Application Support staff or application user.

Saturday, 7 May 2016

Lucky Leader

There is no definition of a Lucky leader. Studies have shown that behaviours and thinking of the leaders influence things around them to a great extent. We can create luck by just keeping a positive outlook towards life. We all know how the Positive Attitude promotes Team Productivity.

Lucky Leaders can pass on their positive thoughts to the team members which could play wonders. In terms of Lucky Leader attributes, the following approaches play a big role.

  • Listening to the Lucky hunches
Lucky People make effective decisions based on their intuition and gut feeling.

  • Maximise chance opportunities
Create, notice and act upon chance opportunities. They are always open to new experiences, adopt a relaxed attitude towards the life and build, grow a strong network.

  • Expecting good, bright future
This outlook helps them to interact with people positively and to survive in the stage of failure.

  • Turn bad Luck into Good
Take control of the situation than to dwell on the ill-fortune. They imagine how things could have been worse.

Team Management is getting complex day-by-day but implementing basic positive thoughts within the team goes a long way in creating a successful team.

Follow and Like us:

Lucky Leader

Managerial Courage

Managerial Courage involves showing strong belief in your ideas, thoughts. It also means that you are thoughtful about others and their ideas. You say things in the right, expected way.

It is an important part of the overall management and there are various ways to display it.

  • Whenever making any decision, always keep everybody in your mind.

  • Make a clear plan about the impacts, thoughts of your decision and communication channel.

  • A good leader or manager always understand other viewpoints, takes the buy-in before trying to implement his/her idea.

  • A courage to positively implement the ideas is another important asset.

  • Keeps all the communication channels open (360 degree approach)

  • Always ready to discuss, act upon the hard team topics like non-performing resource.
Follow and Like us:

Managerial Courage

Agile Scrum - Sprint Planning – Facts

  • In the initial phase of Sprint Planning, team asks questions and get their doubts clarified from the Product owner.

  • The Development team decides which tasks to be taken from the Product Backlog for the Sprint.

  • Product Backlog Items are features and not tasks.

  • The Development team acquires confidence by breaking the Product Backlog items into small chunks (second half).

  • In the second half of Sprint Planning, team may ask the left over questions to the Product Owner for complete understanding as they dig deeper.

  • It’s a good idea to size Sprint tasks in hours.

  • Backlog Refinement (pre-planning) part way through the Sprint.
Follow and Like us:

Agile Scrum - Sprint Planning – Facts