Reputation: 3 Apprentice
- New Members
- Active Posts:
- 3 (0 per day)
- 27-September 12
- Profile Views:
- Last Active:
- Nov 01 2012 06:47 PM
- Dream Kudos:
Posts I've Made
Posted 1 Nov 2012Hi all,
I am programmer with a BS in CS. I have been programming for 7+ years in C, UNIX and SQL. I feel I am falling behind, getting stuck in my career. I need to further my knowledge.
I was thinking about going back to school for a masters or some certifications.
Do I really need a masters to stay marketable? Would certifications be enough?
What do you guys think?
To remain relevant after 7 years of programming experience, you should also have architecture and design experience if you want to be on a technical track, otherwise you should have project leading/management experience. Recruiters (at least that's what I do) look for expertise in analysis and architecture design or team leadership for someone with that many years of experience. If you are not getting such role, you should work towards such role because you do not want to compete against fresh graduates or junior engineers. Getting a masters or certification may not help.
Posted 1 Nov 2012If you want a desktop companion, Code Complete, by Steve McConnell(Microsoft Press)is one of the best programming reference. A practical guide for all software engineers.
Posted 27 Sep 2012Can any one explain different types of software testing?
OK, i'll give it a shot, not based on formal theory, but on how I try to be effective in testing and reducing testing overlap.
I classify testing according to 3 types
1. functional testing
2. integration testing
3. unit testing
Functional testing. Some may call it system testing, user acceptance test, or alpha/beta testing..
In functional testing, the focus is verifying the requirements are met, in other words, are we building the right product? So, the key input is requirements specs. Test cases are generated to verify that each and every user requirements/features are exercised. To do so, we need to be able to analyze the requirements well, meaning testable requirement specs must be available. Identifying and walking through use-cases are helpful here.
Integration testing. Objective of my integration testing is to verify the design. This test focus on ensuring the various modules making up the complete software are interacting correctly. This is important because we can have many re-used modules/libraries linked into our final code. We want to make sure we are using the modules as intended because we are assumming that the modules/libraries are implemented and tested previously. For example, a function may be defined to be executed every 10 ms and accept a certain input range. Integrating the code into a design that call the function every 5 ms may result in error. Integration test hopefully will catch this type of errors which will not be found in unit testing.
Unit testing. Objective of unit testing is verifying the implementation of the function/unit. The test cases should try to cover all the branches in the code, check for boundary conditions, ensuring error inputs are handled, etc. Unit testing checks for coding errors and robustness of implementation. Effective unit testing means the module/function should perform only one function. Unit testing techniques used in my organization include equivalence partitioning, boundary value testing, code coverage analysis using static tools. Upon completion of unit testing, we are fairly confident the module is implemented according to its design, all possible input values are exercised, and invalid values or combination are handled gracefully.
So unit testing is done after coding, followed by integration testing, and finally functional/system test. Performance measurement is therefore done at functional test as this is a customer requirement. Test cases are done according to V-model lifecycle, that means functional test cases are created after Requirements Analysis/Specification, integration test cases are created once the architecture design is done, and unit test cases should be done after unit design is completed. In practice however, this is not always strictly followed by the engineers.
So, in a nutshell,
functional testing = verify the requirements are met
integration testing = verifying the design and usage of functions
unit testing = verifying the code implementation and algorithm of functions/classes
- Member Title:
- New D.I.C Head
- Age Unknown
- Birthday Unknown
- Click here to e-mail me
Oak hasn't added any friends yet.