Author Archives: Haider Hussain

Week1: Introduction

Hi everybody,

My name is Haider Hussain. This is my introductory blog for CS448 Software Development Capstone. I’m a little late, but excited to start this new blog for this new course. I’ll be posting my entire learning in this courses here.

From the blog CS448 Software Development Capstone – Computer Science World by Haider Hussain and used with permission of the author. All other rights reserved by the author.

Week12: How to Perform Poor Testing-A Primer for Self-Improvement

The goal of this article is to point out mistakes of poor testers and helps them improve on skills and warn them from making certain mistakes that might lead to some serious faults in their software/product. Poor testing leads to poor client experience which can serious hurt company’s profitability and sales. Poor testing can be more expensive for a company because it will lead to more time and money investment to fix those errors that were left.

week12.PNG

Above image shows consequences of poor testing

            The article goes into greater detail of the Do’s and Don’ts of poor testing. Here is a list of the Don’ts of poor testing:

  1. Don’t add stress
  2. Don’t test beyond the specified limits
  3. Don’t test with unusual combinations of events
  4. Don’t check all inputs and outputs
  5. Don’t follow up

 

Here is a list of the Do’s of poor testing:

  1. Let the designer create the test plan
  2. Test only against the normal input values
  3. Prepare test plans that are not consistent with historical evidence
  4. Provide a comfortable air-conditioned environment
  5. Forget about extreme situations
  6. Ignore the FMEA or fault tree

 

Here is a list of some tips to avoid poor testing:

  1. Evaluate your metrics
  2. Maintain an effective tester’s toolbox
  3. Avoid chaos by over adherence to processes
  4. Maintain self-maintaining test
  5. Culture of concurrent development teams

 

The article goes into greater detail inside each of the above category.

 

Please visit for detail reading:

http://www.softwaretestinggenius.com/how-to-perform-poor-testing-a-primer-for-self-improvement

From the blog CS443 Software Quality Assurance & Testing – Computer Science World by Haider Hussain and used with permission of the author. All other rights reserved by the author.

Week11: Software is Everywhere

I really liked reading this blog because this blog covered the core issue of what software testing is all about? In today’s technological world computers are everywhere. According to this blog, by the year 2020 there will be more than 50 billion devices connected to the internet. All of this connectivity needs systems and software that are safe, robust and secure. Security is main goal here. In the real world, software with bugs that are not properly tested or carefully designed so that all bugs were resolved results in greater cost to both the builder and buyer of the software.

Two major teams worked together in order to discuss and build software that is secure and up to the expectation of the market. Codenomicon and Coverity teamed up as Synosys Software team. Codenomicon is the leader of industry suite of black box security testing technologies. Coverity is an award winning source code analysist. The combination of both team resulted in the best product in the market. Their product suite is better described by the following picture:

week11

Above picture explains total vulnerability management

The goal of the team was to reduce the cost and risks related software by eliminating the root cause of the software. This blog explains in greater detail every aspect of the software vulnerability, but the emphasize was on developing tools and processes that are needed to produce safe, robust and secure software with perfect functionality and speed.

 

 

 

For detail read please visit:

http://blog.coverity.com/2015/08/04/software-everywhere/#.WFhijFxlc3A

From the blog CS443 Software Quality Assurance & Testing – Computer Science World by Haider Hussain and used with permission of the author. All other rights reserved by the author.

Week10: What is the Software Testing Clinic, Exactly?

Software Testing Clinic is a safe environment for people who are new to software testing. It helps new comers learn and enhance their testing skills while enables expert testers learn and enhance their monitoring skills. In this blog, the author explains Software Testing Clinic teaming up with Ministry of Testing organizing a session for software testers both new and old software testers. The session will be covering: Agile Testing and Exploratory Testing.

Under Agile testing the teams will be led by expert mentors explaining software testers attendees with the importance and basics of Agile testing. Mentors will also explain what it means to ‘agile’ and what is important for an ‘agile’ team member. They will also cover exploratory testing.

Under exploratory testing, Software Testing Clinic will be covering test cases/ scripts that can be problematic for testing. They will also be explaining the importance, benefits and different techniques of exploratory testing in practical scenarios.

 

Good thing about Software Testing Clinic is that you don’t need any previous or prerequisite testing skills. If you are interesting in testing or wants to become a professional software testing this is a perfect place to start. Software Testing Clinic is targeted for both junior and expert software testing personals.

 

 

 

 

For further read and instructions please visit:

http://www.ministryoftesting.com/2016/11/software-testing-clinic-exactly/

From the blog CS443 Software Quality Assurance & Testing – Computer Science World by Haider Hussain and used with permission of the author. All other rights reserved by the author.

Week9: Klaros Test Management 4.6 Provides Better JIRA Integration

This blog explains the new features and improvements that has been added to Klaros Test Management version 4.6. There are several changes made to the Klaros Test Management including user-friendly managing test suite, improved integration with issue and requirement management systems. Major updates are the following:

  1. Processing of issues and background synchronization with requirement management system is much faster.
  2. Calculation of execution and success rate of nested tasks has been refined.
  3. Dependencies between tests jobs are now well defined and block job execution has been added which blocks until dependencies criteria are resolved.
  4. Test instruction contains references to image files that are automatically displayed.
  5. Test instructions can be dynamically supplemented by test data.
  6. Multiple selection is also now possible when removing test cases from test.

Above were some of the major new features and improvements made to the Klaros Test Management version 4.6.


 

For further read please visit:

http://www.softwaretestingmagazine.com/news/klaros-test-management-4-6-provides-better-jira-integration/

From the blog CS443 Software Quality Assurance & Testing – Computer Science World by Haider Hussain and used with permission of the author. All other rights reserved by the author.

week8: Better Test Traceability with SpiraTeam 5.1

SpiraTeam 5.1 is the new release by Infectra which is its award-winning application lifecycle management (ALM) suite. SpiraTeam 5.1 provides users with the ability to have complete traceability between items in different projects, the ability to view integrated program backlogs and the ability to quickly search across all items and projects to make associations. To break down the key functionality of SpiraTeam 5.1 are the following:

  1. Enhanced Test Traceability: SpiraTeam 5.1 has a specific and targeted industries, for example Defense and government. SpiraTeam 5.1 supports deep traceability between requirements and test steps.
  1. Cross Project Traceability: SpiraTeam 5.1 makes you reuse components of projects. It also lets clients use shared requirements, test cases and tasks across programs rather than copy everything     manually.
  1. Enhanced Usability:SpiraTeam 5.1 is keep building on the previous versions of the application and it does support all of the functionality of the previous versions.

Infectra helps its customer’s software teams decrease their time and increase the returns on investments by providing effectively and affordably manage their software development lifecycle.

 

 

For further reading please visit:

http://www.softwaretestingmagazine.com/news/better-test-traceability-with-spirateam-5-1/

 

From the blog CS443 Software Quality Assurance & Testing – Computer Science World by Haider Hussain and used with permission of the author. All other rights reserved by the author.

Week7: Sauce Labs Acquires TestObject

TestObject is a real device mobile app testing platform. This will provide Sauce Labs to market automated testing for desktops, emulators, simulators, and real devices for web applications, mobile, web, hybrid and apps.

According to Charles Ramsey, CEO of Sauce Labs, the reason behind that made TestObject a beneficial product for Sauce Labs to acquire was TestObject’s high speed and reliable real device testing for mobile applications. This step will give Sauce Labs customers a single platform where both web and mobile testing solution can be accessible.

Sauce Labs is currently the largest cloud based automated testing platform on the market with 1 million tests per day and more than 800 million test run to date. By acquiring TestObject will bring additional 200+ devices, private cloud solution for enterprises, and high-speed manual testing on real devices. This will give Sauce Labs huge edge over its competitors.

 

 

Further read please visit:

http://www.softwaretestingmagazine.com/news/sauce-labs-acquires-testobject/

From the blog CS443 Software Quality Assurance & Testing – Computer Science World by Haider Hussain and used with permission of the author. All other rights reserved by the author.

Week6: Shift Left: Testing in the Agile World

In this blog, the author Kishan Sundar explains Agile testing with approach of software testing activities known as “Shift Left”. Agile testing is very important in today’s highly competitive market. With Agile testing product/software are guaranteed for quick release, it also prevents defects and makes room for reassessment and upcoming plans/future of the software. With Agile testing software development occurs in steps known as sprints. Once one sprint is complete another sprint begins. In another words, one sprint leads to another subsequent sprint. The shift left approach in agile testing introduces development and testing happening simultaneously.

 week6

Above picture shows Shift Left approach

 

Sundar emphasize on the importance of the role of assurance specialists in the agile model. The reason of this emphasize is because of the comprehensive testing and quick release of the product/software. Here are some of the places where assurance specialists have to be involved:

  1. Since early stages of testing, testers are called in for field testing to interact with customer or product owner.
  2. With Shift Left approach of agile testing initial interaction will also involve epic owners and enterprise architect on how the product/software will be rolled out.
  3. There is also interaction with program management to determine timelines and decide, how should the release of software should be managed.
  4. Assurance team and agile team will be both part of the development team. There would be two teams: test developers and code developers.

With shift left approach of the agile testing performance and development is intensify with less defects and better performance.

 

 

For further reading please visit:

http://www.softwaretestingmagazine.com/knowledge/shift-left-testing-in-the-agile-world/

 

From the blog CS443 Software Quality Assurance & Testing – Computer Science World by Haider Hussain and used with permission of the author. All other rights reserved by the author.

Week4: Difference Between Unit, Integration and Functional Testing

There are key differences between unit, integration and functional testing. Each testing process has its own importance and role in the testing process of software. Let us explore these difference by explaining each one at a time:

Unit Testing:

The name of this test is self-explanatory. We are testing for the smallest units of individual functions, methods, etc. Unit testing is done before integration testing by the software developers. It checks for correct or failure output for valid or invalid inputs. Unit test tests small pieces of code. Unit test cases simplify and make testing of coding easier because it becomes easier to resolve issues at later stage. Unit testing saves time and money because it is reusable and easy to maintain.

Integration Testing:

Integration testing is testing the integration of the different part of the system together. The goal of integration testing is to check for functionality, reliability, and performance of the system. It is done on modules that are unit tested first and then integration testing defines the combination of modules gives desired output or not. There are three approaches of integration testing: big bang, top-down and bottom-up.

Functional Testing:

Like unit testing name, functional testing is self-explanatory from its name. It is testing the functionality of the application. It tests whether the application is providing the desired output for a certain input. Testing is done by per requirement and scenario. Here are the major parts of functional testing: test summary, prerequisites (if any), test case input steps, test data (if any), expected output, and notes (if any)

Detailed differences are provided in a nice table format on the website, but the three testings’ techniques are correlated. Unit testing is needed for paths/lines of code, functional and integration testing is needed for assurance.

 

 

For more detail reading please visit:

http://www.softwaretestinghelp.com/the-difference-between-unit-integration-and-functional-testing/

From the blog CS443 Software Quality Assurance & Testing – Computer Science World by Haider Hussain and used with permission of the author. All other rights reserved by the author.

Week3: Organizing Tests with xUnit Traits

It is very important that the code you write or look at is well organized because it gives the code reader to break it down and understand it better. It also shows your image as a good coder. The author of the blog explains that for large numbers of tests, needs to be broken down into categories or groups which will provide clarity and insight to testing code. He suggests one way to do it is with xUnit which might also be refer to as TraitAttribute.

The blog explains couple of benefits using traits attributes as organizing tests: first, that traits attributes uses a name and value pair. Second, when using a GUI based test runner like test runner in Visual Studio tests can be sorted according. For tests by traits to run, both key and value of the trait has to be specified on the command line.

 

 

 

For further reading please visit:

http://www.brendanconnolly.net/organizing-tests-with-xunit-traits/

From the blog CS443 Software Quality Assurance & Testing – Computer Science World by Haider Hussain and used with permission of the author. All other rights reserved by the author.