Custom Search

Fwd: HP Advances Modern Application Testing


    Blog: www.nuve.info

´HP today announced HP Unified Functional Testing (UFT) 11.5 and HP UFT Mobile, next-generation functional and mobile testing software that helps enterprises quickly respond to changing enterprise demands.

Mobile, social and web-based applications allow organizations to expand and innovate.  However, these applications are difficult to build while also maintaining the same quality standards associated with traditional enterprise solutions. In addition, application delivery teams are challenged to continuously provide new solutions that drive competitive differentiation.

The enhanced HP Functional Testing software suite helps IT organizations update application development and testing processes to deliver applications, such as mobile and cloud, with high-quality results. The software solutions accelerate the adoption of test automation and continuous integration, and foster collaboration between key stakeholders across the application life cycle. As a result, clients can rapidly deliver new and enhanced applications that drive innovation- without sacrificing quality.

New enhancements to the HP Functional Testing software suite enable clients to:

1. Quickly respond to changing business needs by automating functional testing earlier  in the life cycle and simplifying testing with an enhanced user experience with HP UFT 11.5;
2. Accelerate time-to-market for mobile applications with HP UFT Mobile, which automates application functional testing on mobile devices via public and private cloud testing environments; and
3. Increase employee productivity with HP Sprinter 11.5, which provides automation of laborious testing tasks with one-click conversions.

"Organizations cannot sacrifice application quality for speed," said Subbu Iyer, vice president, Applications Automation Management, Software, HP. "The new HP Functional Testing software suite provides clients with test automation tools that accelerate the continuous delivery of modern and innovative applications, while maintaining the highest quality available today."

Test more, test faster, test continuously

To support innovative, new development technologies and evolving business needs, HP UFT 11.5 offers an enhanced platform for creating end-to-end automated functional tests. Supported by a simplified and modern user experience, it:

1. Spurs business growth by delivering higher-quality composite applications through test automation support for both graphical user interfaces (GUIs) and application programming interfaces (APIs) in one updated visual user experience;
2. Reduces complexity and labor costs with automated testing integration—including HP Sprinter manual test creation—and push-button manual-to-automated script conversion; and
3. Speeds the pace of innovation with cutting-edge development technologies and tools, through the patented HP UFT Insight object recognition feature that automatically recognizes applications, irrespective of implementation technology.

"Providing doctors and patients access to critical and accurate healthcare information is essential to delivering quality patient care," said Chris Trimper, lead automation analyst, Enterprise QA, Independent Health. "HP UFT 11.5 will enable us to rapidly test and deliver quality business applications that provide our members access to the right information whenever they need it, whether for a medical claim or to find a doctor."

Manage quality throughout the mobile application lifecycle

HP UFT Mobile extends the functional testing capabilities of HP UFT to mobile devices. Clients can rapidly test mobile applications in new public and private cloud testing environments, on a wide array of mobile operating systems including Google's AndroidTM and Apple's iOS without the expense of setting up a mobile device lab. This simplifies testing in the mobile application life cycle to meet the demands of an anytime, anywhere mobile world.

Empower the tester to innovate

Designed to drive optimal efficiency in manual testing, HP Sprinter 11.5 software frees application test teams from repetitive tasks and advances exploratory testing. Client benefits include:

1. Increased employee productivity with the new integrated test-authoring feature and scanners that capture spelling errors along with localization and compliance issues;
2. Improved  time savings by reusing manual testing efforts through integrations with HP BPT that accelerate framework adoption; and
3. Reduced costs by protecting existing test investments with one-click manual to automated test conversions.  

Enhance collaboration with integration into the application life cycle

The new HP enhanced functional testing suite fully integrates with HP Application Lifecycle Management (ALM), the company's leading application life cycle management platform. As a result, clients have a single software platform to collaborate, manage and rapidly deliver applications with measurable business results.

The HP Functional Testing Suite is a key component of the HP IT Performance Suite, the next-generation enterprise performance software platform that enables IT management to improve performance with operational intelligence.

Fwd: Key to Successful Unit Testing – How Developers Test Their Own Code?



Black box testers don't care about unit testing. Their main goal is to validate the application against the requirements without going into the implementation details. But as a curiosity or out of the box thinking, have you ever wondered how developers test their own code? What method they use to test before releasing code for testing? How dev-testing is important in agile process? The answer to all this is unit testing. I want to educate you on the importance of unit testing so that development and testing teams can work more collaboratively to design, test and release a excellent application.

Who knows in the future some of you may even switch to white box testing and use these code validation and improvement techniques!

What is Unit Testing?

Unit testing is not a new concept. It's been there since the early days of the programming. Usually developers and sometime white box testers write unit tests to improve code quality by verifying each and every unit of the code used to implement functional requirements (aka test driven development TDD or test-first development).

Most of us might know the classic definition of unit testing -
"Unit testing is the method of verifying smallest piece of testable code against its purpose." If the purpose or requirement failed then unit test has failed.

In simple words, unit testing means – writing a piece of code (unit test) to verify the code (unit) written for implementing requirements.

Unit testing in SDLC:

Unit Testing in SDLC

Importance of Writing Unit Tests

Unit testing is used to design robust software components that help maintain code and eliminate the issues in code units. We all know the importance of finding and fixing the defects in early stage of software development cycle. Unit testing serves the same purpose. Unit testing is the integral part of the agile software development process. When nightly build run unit test suite should run and report should be generated. If any of the unit test has failed then QA team should not accept that build for verification. If we set this as a standard process, many defects would be caught in the early development cycle, saving much testing time.

I know many developers hate to write unit tests. They either ignore or write bad unit test cases due to tight scheduled or lack of seriousness (yea they write empty unit tests, so 100% of them pass successfully ;-) ). It's important to write good unit tests or don't write them at all. It's even more important to provide sufficient time and supportive environment for real benefits.

Benefits:

  • Testing can be done in the early phases of the software development life cycle when other modules may not be available for integration
  • Fixing an issue in unit testing can fix many other issues occurring in later development and testing stages
  • Cost of fixing a defect found in unit testing is very less than the one found in the system or acceptance testing
  • Code coverage can be measured
  • Fever bugs in the system and acceptance testing
  • Code completeness can be demonstrated using unit tests. This is more useful in agile process. Testers don't get the functional builds to test until integration is completed. Code completion cannot be justified by showing that you have written and checked in the code. But running unit test can demonstrate code completeness.
  • Expect robust design and development as developers write test cases by understanding the specifications first.
  • Easily identify who broke the build
  • Saves development time: Code completion may take more time but due to decreased defect count overall development time can be saved.

Unit Testing Cycle:

Unit testing cycle

[Image credit Typemock.com]

What Makes a Good Unit Test?

Well, I'm not the right person to tell what makes a good unit test, but based on my observations on various projects I can definitely tell the characteristics of a good unit test. Bad unit test does not add value to the project. Instead, project cost increases significantly writing and managing bad unit tests.

How to write good unit tests?

  • Unit test should be written to verify single unit of code and not the integration.
  • Small and isolated unit tests with clear naming would make it very easy to write and maintain.
  • Changing other part of the software should not affect on unit test, if those are isolated and written for a specific unit of code.
  • It should run quickly
  • Unit test should be reusable

Unit Testing Frameworks

Unit testing frameworks are mostly used to help write unit tests quickly and easily. Most of the programming languages does not support unit testing with inbuilt compiler. Third party open source and commercial tools can be used to make unit testing even more fun.

List of popular unit testing tools for different programming languages:

  1. Java framework – JUnit
  2. PHP framework – PHPUnit
  3. C++ frameworks – UnitTest++ and Google C++
  4. .NET framework – NUnit
  5. Python framework – py.test

    Blog: www.nuve.info


Fwd: Five Principles for Software Security



The BSIMM (Building Security In Maturity Model) aims at helping a software tester understand and plan various initiatives involved in software security. It is a compilation of ideas and various activities that have been compiled after analyzing real world data.

Gary McGraw based on his experience in interpreting BSIMM for the past four years jointly came up with the Ten Commandments for software security with Cigital Principals including Paco Hope, Scott Matsumoto, Sammy Migues, and John Steven. Here are 5 of the Ten Commandments as posted on searchsecurity.techtarget.com.

1.    Lead your software security initiative (SSI) with a software security group (SSG)
Software Security Groups include people with good coding experience and architectural understanding. Thus, before adopting software security activities, companies should create a Software Security Group.

2.    Rely on risk management and objective measurement using the BSIMM—not "Top Ten Lists" and vulnerability counts—to define SSI success
The BSIMM provides various measures for adopting Software Security Initiatives. It provides a detailed snapshot of the SSI which can be understood by the executives in the higher levels. One can compare his/her activities with others to determine if they are leading with regards to the initiative undertaken or whether they are at par with others or if they are below the mark.  

3.    Communicate with executives, directly linking SSI success to business value and comparing your firm against its peers
Executives at the higher level expect to see key performance indicators which include the various aspects of the Software Security Initiative. Testers are expected to fix the security problems. If they are not doing anything to fix the problem, they may be seen as a part of the problem.

4.    Do not limit software security activity to only technical SDLC activities and especially not to penetration testing alone
It must be remembered that software security is not all about technical issues. Testers should take advantage of penetration testing but they must also know its limitations. The main limitation of penetration testing is that it is too expensive to fix a problem.

5.    Grow and nurture software security professionals for your SSG
The best software security professionals are difficult to find. Therefore, in order to have a team of the best SSG members, developers can be taught about security. Gary McGraw looks for a person who can review the codes apart from fixing security problems and who is well aware of penetration testing.



    Blog: www.nuve.info


Fwd: What is Beta Testing and How You Can Use It to Get Your Dream Job Or Make Some Extra Income


What is Beta Testing and How You Can Use It to Get Your Dream Job Or Make Some Extra Income


Alpha and beta testing are important testing phases for success of any software release. Both these testing techniques have saved thousands of dollars to large scale software releases for companies like Apple, Google and Microsoft.

The purpose of this article is to educate you on these testing terms and how you can use these techniques to earn some extra income or even to get a full time testing job. Freshers can put beta testing experience in resume to make it stand out from the crowd.

Read on to know more..

What is Alpha Testing?
This is a form of internal acceptance testing performed mainly by in-house software QA and testing teams. Alpha testing is the last testing done by test teams at development site after the acceptance testing and before releasing the software for beta test. Alpha testing can also be done by potential users or customers of the application. But still this is a form of in-house acceptance testing.

alpha and Beta testing

What is Beta Testing?

This is a testing stage followed by internal full alpha test cycle. This is the final testing phase where companies release the software for few external user groups outside the company test teams or employees. This initial software version is called as beta version. Most companies gather user feedback in this release.

The simple definition of beta testing – testing carried out by real users in real environment.

Though companies do rigorous in-house quality assurance from dedicated test teams, it's practically impossible to test application for each and every combination of the test environment. Beta releases make it easier to test application on thousands of test machines and fix the issues before releasing the application publicly. The selection of beta test groups can be done based on company needs. Company can either invite few users to test the preview version of the application or they can release it openly to try by every user.

Fixing the issues in beta release can significantly reduce the development cost as most of the minor glitches get fixed before the final release. Till now many big companies successfully used beta versions of their most anticipated applications. E.g. Recently Microsoft corporation released Windows 7 beta and based on feedback from thousands of users they managed to release a stable OS version. In past Apple also releases OS X beta in public and fixed many minor issues and improved the OS based on user feedback.

Related Useful Terms:
Beta Software – Preview version of the software released to the public before final release.
Beta Version – Software version releases in public that include almost all of the features but not development complete yet and may still have some errors.
Beta Testers – Testers who work on testing beta version of the software release.

How Companies Can Make Beta Test Successful

- First decide on how many days you want to keep the beta version available for testers
- Identify ideal user groups to perform this test – Either limited group of users or in public
- Provide clear test instructions (user manual)
- Make the beta software available to these groups – Gather feedback and defects
- Based on feedback analysis decide which issues needs to be fixed before final release
- Once the suggestions and defects are fixed, again release the changed version for verification to the same groups
- Once all tests are complete do not accept any further feature change request for this release
- Remove the beta label and release the final software version

How to Get Started As a Beta Tester

Once your application as a beta tester is accepted by a company follow these steps:
- Download and read the software requirement specifications, known defects and modules to test
- Download and install the beta software
- Start testing
- Prepare the bug report for the issues found in the application
- Also note down your suggestions/feedback about the application to improve the user experience
- Submit the bug report and feedback to the company

Adding Beta Testing Experience in Your Resume

Many entry level candidates complaint about not getting real-time testing experience on software projects. Testing beta releases is the best opportunity for freshers to show their skills and also to get hands-on experience on real projects. You can even put this experience in your resume with details (like project, project description, test environment etc.) about the beta application you tested. This will definitely catch the employer attention especially when you are a fresher seeking job in software testing field.

How to Find an Opportunity as a Beta Tester

Option 1: Get software testing experience
Let's take an example of Microsoft. You can apply to become a beta tester for Microsoft. If you check these opportunities at Microsoft there are currently more than 40 beta software available for testing. Microsoft corporation is accepting defects and suggestions for these products. This is a huge opportunity for you. Browse this list, select a product and start testing it locally. Use all your testing skills to find and log defects. Who knows – this might even land you the job of your dreams in any of such companies offering beta versions to test. You can also find some more beta application testing opportunities here and here.

Option 2: Make some extra money
Some companies even pay you money to test their beta applications. Video game testing industry is one of the best starting point for paid beta testing opportunities. Most video game companies pay decent amount to beta testers for testing beta versions of their video game releases. But be careful before making any investment as there are many scam sites asking money to join as a game tester. Before making any commitment make sure you investigate the site carefully. You can also find real jobs as beta testers on some career sites like careers.org and simplyhired.






    Blog: www.nuve.info



4 Tips to write test cases

4 Tips to write test cases

 
It is important for tester to improve how to write test cases. So, I summarize the key things that I normally consider when I am writing test cases. From this article, I will start with the meaning and the required information for test cases. Then, I will explain the tips to write test cases.

What is the test case?

The test case is a sequence of steps to test the correct behaviour of software by comparing with the expected result or expected outcome.

Required information in the test case

- Test case ID
- Component
- Test case description
- Steps to be executed
- Test data
- Expected result
- Pass/Fail

4 Tips to write test cases

1. Focus on requirement analysis
First of all, we should analyze what we are going to test. This activity occurs during development phase so we should focus in requirement analysis. We should keep in mind that we cannot write test cases well by using the poor requirement.

2. Make the test case for unfamiliar tester
We should write test cases which is easy to understand. Then, the tester who is unfamiliar with the application can execute the test case easily. Someone may think why he have to spend more time to write test cases for this purpose. Let's think what will happen if we have to assign tester from another team to help us testing but he cannot help because of our test cases.

3. Apply black box testing technique
We should always use black box testing technique to derive the effective test case.

4. Always cover negative flow
We should cover negative flow in test case because developer often make mistake with negative flow. From my experience, the problem from negative flow often cause big problem with software.



---
    Best Regards
    Venu Naik Bhukya
    Blog: www.nuve.info

Development Model : Agile Software Development

Development Model : Agile Software 

Development


What is Agile Software Development?

Agile software development is a methodology based on incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams.

Agile Manifesto

The Agile Manifesto emphasizes that:
1) Individuals and interactions over processes and tools.

2) Working software over comprehensive documentation.

3) Customer collaboration over contract negotiation.

4) Responding to change over following a plan.

That means we value the items on the left more than right.

Supplementing the Manifesto, the Twelve Principles explain what it is to be Agile.

1) Our highest priority is to satisfy the customer through early and continuous delivery of 

valuable software. This thing has been done by incremental development. Development has 

to split the big feature to many small working features and they will be released 

continuously.

2) Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. As we have released small working feature, we can get the feedback from customer quicker. Then, the changing can come to development easily.

3) Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.

4) Business people and developers must work together daily throughout the project. As we have short timescale, the quick answer from business and developers are required for both party.

5) Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.

6) The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.

7) Working software is the primary measure of progress. If development cannot release the working software, the small release to customer is unacceptable.

8) Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.

9) Continuous attention to technical excellence and good design enhances agility.

10) Simplicity is essential.

11) The best architectures, requirements, and designs emerge from self-organizing teams.

12) At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly. One activity is the retrospective meeting which is 

used for continuous improvement in how the team improve the process.